I can confirm that toke's current set of fixes compiles on a rpi3, AND that I am too stupid to figure out how to create a correct, basic, babeld .conf file for bird.
On Sat, Apr 30, 2016 at 10:39 AM, Toke Høiland-Jørgensen <[email protected]> wrote: > Juliusz Chroboczek <[email protected]> writes: > >>> 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. > > I didn't actually mean a 'null router ID'. I meant an *unset* router ID. > I.e., if flag 0x40 is set or the update is preceded by a router ID TLV, > the router ID is *set*. It may or may not be set to all-zeroes, but that > is orthogonal. So I was referring to the text stating "the current > router-id and seqno is not used" - does that refer to all retractions or > just wildcard ones? > > (I suspect the answer to be the former, and that the fact that this > poses problems is an artifact of the current update handling flow in the > Bird code; but want to be sure before I change it). > >> 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. > > Well, I've always thought about 0x40 as specifying that the router ID be > the 64 bits from the address that is semantically encoded by the TLV, > not the literal bytes in the TLV itself. I.e. Bird does this: > > if (tlv->flags & BABEL_FLAG_ROUTER_ID) > { > state->router_id = ((u64) _I2(msg->prefix)) << 32 | _I3(msg->prefix); > state->router_id_seen = 1; > } > > where msg is the internal data structure containing the parsed values. > > This means there's no problem in combining flag 0x40 with AE 0; but for > IPv4 addresses it needs to be specified whether the addresses should be > padded to the right or the left. > >> 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; > > Yes, this seems reasonable, and should go into a -bis I guess. > >> - a Babel speaker SHOULD NOT set bit 0x40 in updates with AE 0 or 1, >> lest the author meet the wrath of Markus. > > This is "for the time being", or? Surely Markus can be appeased by the > time a new draft is written? ;) > > -Toke > > _______________________________________________ > Babel-users mailing list > [email protected] > http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users -- Dave Täht Let's go make home routers and wifi faster! With better software! http://blog.cerowrt.org _______________________________________________ Babel-users mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users

