[Xorp-users] BGP packing not performed while dumping route table
Simon van der Linden
simon.vanderlinden at uclouvain.be
Wed Sep 15 09:20:51 PDT 2010
On mer, 2010-09-15 at 17:50 +0200, Marko Zec wrote:
> On Tuesday 14 September 2010 18:39:17 Simon van der Linden wrote:
> > I noticed that when a BGP peering comes up, the route table is dumped to
> > the new peer, but no packing is performed, that is, two prefixes with
> > the same set of attributes are sent in two separate UPDATEs instead of
> > only one.
> >
> > >From what I read in bgp/route_table_ribout.cc, packing is possible. Does
> > anyone has a possible explanation about this behavior? Otherwise, I'll
> > dig into it someday.
>
> As far as I can recall it, when a BGP peering comes up, a dedicated stage
> called dumptable is injected at the beginning of the outbound path of the new
> peering pipeline. The sole purpose of this stage is to scan through all the
> existing winning routes and push them one by one further down the pipeline,
> where each prefix might or might not get axed, or have its path attributes
> modified, by a filtering / policy stage, before it would eventually reach the
> ribout stage, which then packs it into a BGP update message.
Right. From what I have understood so far, it seems the dumptable calls
add_route downstream for each route, which gets immediately pushed to
the peer_handler, instead of being queued, and later pushed, so as to
make packing possible in the ribout.
> The fundamental problem is that dumptables scan over the entire IPv4 / IPv6
> address space when emitting updates downstream, instead of using path
> attributes as the first-level iteration key. That said, even if a sequence
> of prefixes with identical path attributes would make it to the ribout stage,
> that would happen out of pure luck, i.e. with real-world BGP feeds that would
> be a rather unlikely event. So extending bgp/route_table_ribout.cc to
> coalesce multiple prefixes with identical path attributes into a single BGP
> update message is unlikely to make a significant impact, without first
> rearchitecting the way in which dumptables emit prefixes, which might be a
> much more difficult problem to solve.
I'd like to measure the impact of packing in various situations (notably
for routing table transfers when a peering comes up) on some chosen set
of routes. In some data I retrieved from routeviews, there are a bit
less than 4 prefixes with the same set of attributes, on average.
Thanks,
Simon
More information about the Xorp-users
mailing list