Hi Thanks. Applied
On Tue, Jun 26, 2018 at 8:14 PM, Colin Petrie <[email protected]> wrote: > Hello, > > We've noticed that the implementation of Large Communities in Quagga > produces broken MRT RIB dump files when any RIB entries contain Large > Communities. > > It looks like a copy/paste problem, in > bgpd/bgp_attr.c/bgp_dump_routes_attr(): > if (attr->extra && attr->flag & ATTR_FLAG_BIT > (BGP_ATTR_LARGE_COMMUNITIES)) { > ... > stream_putc (s, BGP_ATTR_COMMUNITIES); > ... > > The problem is that bgpd dumps the Large Communities into the MRT file > with an attribute type code of BGP_ATTR_COMMUNITIES instead of > BGP_ATTR_LARGE_COMMUNITIES > > As a result, if the RIB entry also have regular communities, the > resulting MRT file has two community attributes (which is a protocol > violation, to have the same attribute more than once). > > In the case of bgpdump, this crashes it with an assert. For some other > parsers, they only display the second attribute (losing the first set of > communities) and parse the large communities as if they were regular > communities. > > I've attached a trivial patch to fix this. > > I'm currently investigating how to handle this in bgpdump because there > is now existing MRT data (including route-views data) that is affected > by this. > > Let me know if you have any questions, etc. > > Kind Regards, > > Colin Petrie > Systems Engineer > RIPE NCC RIS Project > > _______________________________________________ > Quagga-dev mailing list > [email protected] > https://lists.quagga.net/mailman/listinfo/quagga-dev >
_______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
