I'm not sure when I'll next have some time to spend on that, so at the risk of making a fool of myself, I've made my preliminary code public:
https://github.com/jech/shncpd This is meant to be a very naive implementation of a mildly useful subset of HNCP with minimal external dependencies. Right now, it implements the following (up to bugs): - the HNCP profile of DNCP, including silly walks and keepalives; - parsing of a significant subset of HNCP; - address allocation (not prefix allocation!). The plan is to implement prefix allocation, router advertisements, prefix delegation (manually configured), integration with Babel, perhaps a minimal DHCPv4 server, and to stop there. No integration with DHCPv6-PD, no border discovery, and certainly no mDNS proxying. I think the DNCP bits are mostly complete, but probably somewhat buggy -- for example we follow dncp-06 Section 6.1.2 and hncp-06 Section 10 (both are likely to change in the next draft), and I'm not quite positive that we perform silly walks at all the right places. Quick HOWTO. The only dependency is libbsd or libubox, compile with either make or make EXTRA_DEFINES='-DUSE_LIBUBOX' LDLIBS='-lubox -lrt' (the latter is untested). Then, on a network with at least one other HNCP peer (either shncpd or hnetd), say ./shncpd -d2 eth0 eth1 wlan0 There should be a pause of a couple of seconds, then a flurry of activity, then a bunch of "consistent" messages with exponential backoff up to random([12, 25]) seconds. In order to perform address assignment, you'll need an HNCP peer that performs address delegation (shncpd cannot do that yet). Say sudo ./shncpd -d2 -a eth0 eth1 wlan0 and you should see addresses appear on your interfaces within 5 seconds or so. Killing the daemon will cause the addresses to disappear. -- Juliusz _______________________________________________ homenet mailing list [email protected] https://www.ietf.org/mailman/listinfo/homenet
