The flag makes sense just in external representation. It is reset during
BGP export, but keeping it internally broke MRT dumps for short attributes
that used it anyways.
Thanks to Simon Marsh for the bugreport and the patch.
attrs,
pool,
EA_CODE(PROTOCOL_BGP, code),
- flags,
+ flags & ~BAF_EXT_LEN,
bgp_attr_table[code].type,
val
);
static inline int
bgp_put_attr_hdr3(byte *buf, uint code, uint flags, uint len)
{
- *buf++ = flags;
+ *buf++ = flags & ~BAF_EXT_LEN;
*buf++ = code;
*buf++ = len;
return 3;