[Babel-users] AE 3 spec versus implementation

Denis Ovsienko infrastation at yandex.ru
Fri May 10 14:47:38 UTC 2013


During the work on the decoder I spotted another potential issue. RFC6126 defines address encoding 3 as follows:

   o  AE 3: link-local IPv6 address.  The value is 8 octets long, a
      prefix of fe80::/64 is implied.

The actual code in network_prefix() looks different, in that less than 8 octets of encoding would suffice for prefixes /120 and shorter (as with AE 1 and AE 2):

    case 3:
        if(pb > 8 && len < pb - 8) return -1;
        prefix[0] = 0xfe;
        prefix[1] = 0x80;
        if(pb > 8) {
            memcpy(prefix + 8, p, pb - 8);
            consumed = pb - 8;
        }
        break;


This is not tcpdump-specific, the babeld code implements it the same way. Somebody please proofread these findings.

-- 
    Denis Ovsienko



More information about the Babel-users mailing list