Okay, actually trying to put this into code: Is the intention here that a null-router ID update is acceptable only on *wildcard* retractions or on *all* retractions?
In RFC 6126, there's nothing special about a null router-ID: it's just a router ID. However, for AEs 0 and 1, the address is too short to carry a router-ID (it's 0 and 4 octets respectively, while a router-ID is 8 octets). The intention was that a shorter address should be stored in the right side of a router-ID, and padded with zeroes; e.g. the IPv4 address (AE 1) 1.2.3.4 maps to the router-ID 0:0:0:0:1:2:3:4, and the zero-length address (AE 0) maps to 0:0:0:0:0:0:0:0. However, I don't think this is spelled out in RFC 6126. So my current thinking is: - if a Babel speaker receives an update with AE 0 or 1 and bit 0x40 set, it MUST set the router-ID to the address in the update, right justified and padded with zeroes; - a Babel speaker SHOULD NOT set bit 0x40 in updates with AE 0 or 1, lest the author meet the wrath of Markus. -- Juliusz