$Id$ Here are some projects for Google's Summer of Code. Transparent TCP proxy Kentaro Kurahone has programmed/ported several TCP extensions to the implementation in NetBSD, including Eifel detection/response and SACK. The extensions may improve TCP throughput on CUWiN's multihop wireless network. Figure out how to intercept TCP connections originating at or beyond the edges of the wireless network (for example, at a subscriber's PC, or on the Internet) and convert the end host's TCP stream into a stream with options such as SACK/Eifel enabled. Gateway discovery/negotiation Use HSLS Opaque LSAs to advertise gateway capabilities: IPv4 global addresses, IPv4 NAT, IPv6/6to4, VPN. Negotiate capabilities. Set up tunnel to gateway. Don't flap between gateways. Make the default route a cloning route; operate on more than one gateway. Do a gradual switchover to a new gateway. Use different gateways for different classes of service (voice, video, etc.). Q: For QoS, should we set up tunnels with different DIFFSERV labels, and send packets down tunnels w/ like DIFFSERV, only? Name service We can use help to implement the ad hoc name service for the OSI project. In , see name-service, name-service-tasks, and name-service-use-cases-arch. Ports Mac OS X It's BSD, so it might not be *too* difficult to port net80211 and the *BSD wireless drivers. Then we can run hslsd/etx "in the usual way." Lots of work. Apple should support this development, since it makes *so* much sense. Sick Sascha on 'em? Debuggability We need to add sparse kernel dumps (hard), and reserve a partition to collect them on the nodes (easy). We should collect netbsd.gdb kernels for releases and put them in some known location. For our development/testing builds, we should also collect the netbsd.gdb kernels somewhere. We should build all of our daemons and utilities w/ -g -DDEBUG, and collect unstripped versions for releases (and optionally for development builds). Logging and alerts Need to alert operators about exceptional conditions. Need to log exceptional events and debug messages to node and/or central server. Need to control log size!! Need to queue up log messages during network outages. User interface Need to be able to reconfigure individual interfaces for different roles (AP, mesh, subscriber). Need to set firewall/bandwidth-shaping rules. Set log destination. Set subscriber's machine names & addresses. Select gateway. Reliability Need some useful measures of node "liveness". Need node recovery strategies with different levels of severity: ifconfig up/down interface, restart daemon, reset computer. Set resource limits on programs. Recover from resource exhaustion. "Miniaturization" Pare things down to fit in small Flash ROMs like cheap APs have. $Id$