I've had a chance to give ahcp a more thorough shakeout of late in building up my lab.
( https://plus.google.com/u/0/107942175615993706558/posts/XFGgMTUUDWC ) I'm generally pretty happy with the result. I realize that AHCP was an experiment in supplying configuration information over link local addresses, and, wow, um, it works... (am just using it for ipv6 at present) However, my own long term goal has been to get (wireless) routers to the point to where you could just throw them off the back of a truck and plug them in and have them work. This means a leetle more configuration info is needed. I spent a day looking at the codebase for AHCP and trying to prototype I wanted into it. It is extremely rare I ever get a whole day to do anything, and (for example) the last time I tried was 7+ months back. So I do not want to distract from the ongoing work on babel right now but I did want to share my thoughts before I got distracted again... Specifically: * I might argue that 2K is too small a buffer in some far off day where AHCP packets contain more stuff, be fragmented, and get signed, etc, with a bunch of forwarders (see #BUFFER_SIZE and related recvmsg call). 64K? * I defined a few new options ** -P Prefix Request -P ::/62 -P /24 # would request 4 ipv6 prefixes and one ipv4 /24. -P ::/62 -P ::/64 # would request 5 ipv6 prefixes -P SOME:IPV6:ADDRESS::/62 would request a specific range for prefix delegation (presumably from a cache) The underlying message structure in the protocol would basically match this... the conf file I suppose would syntactically be "request-prefix" There are numerous other bits of hairyness down here (lifetime, deprecation, etc) that dhcp does ** -h 'cause I like help to be explicit ** -6 -4 should be equivalent to not having specified at all ** Naming It really is nice to suggest a name and have an assigned name happen. It gives humans something to hang a dns address, subdomain, and ssid off of that can make sense. ** Lease file format This is where I realized I wasn't going to be able to spend a day on prototyping these ideas and get something useful. There is no lease for ipv6 addresses at all (which is kinda cool actually), and prefix distribution is naturally a binary tree... My first instinct was to reach for berkeley DB, my second was to stop and ask for advise. * My biggest headaches ** The dream is to flash a router, turn it on, have it get ips, get multiple routes to the internet, find an optimal channel for itself to both share locally and yet not pee on too much local spectrum, and have it also distribute ips to convential boxes in AP mode, and supply a name to dns so a user can configure it... and have the 192.168.1.1 convention die... ** Naming & discovery I now have something like 30+ AHCP distributed ips. Perhaps I can hook up the route table to SSDP in order to figure out what the heck those boxes are? Or some other service discovery mechanism? It would be nice to merely have a start at it with handing out a base name in the proto... I am thinking that handing the ahcp id into dns and using a cname for a more relevant name might work... except that that won't work for subdomain delegatio... and round and round we go... * I don't really regard these as an AHCP level problem but I'm slamming these in anyway. ** Channel selection With a dozen channels available, and multiple radios also hooked to each other via ethernet etc, trying to find an optimum channel mix is a real problem. Everybody staying on the same channel is sub-optimal of course. ** SSID I tend to broadcast "babel". This confuses people, and I recently learned that all I really need is a BSSID ** BSSID I got killed by my network bifurbicating a couple times so finding a way to enforce this or do this during a scan before setting up? or something? would be nice -- Dave Täht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html _______________________________________________ Babel-users mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users

