class BgpTrie

The BgpTrie is an augmented, specialized trie that allows us to lookup by network address or by path attribute list. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Types

Public Methods


Detailed Description

The BgpTrie is an augmented, specialized trie that allows us to lookup by network address or by path attribute list. We need this because we can't efficiently extract entries with the same path attribute list from a regular trie. Each set of nodes with the same path attribute pointer are linked together into a chain (a circular doubly-linked list). The BgpTrie holds a pointer to any one of those nodes.

XXX mjh: I've changed the pathmap to be a nexthop map. This will still allow the code to find the next route when the igp distance failed, but is much faster. The downside is we may not dump routes with the same PA list together. Hopefully this can be remedied when we change to a pull-based model.

typedef ::IPNet<A> IPNet

IPNet

typedef ::ChainedSubnetRoute<A> ChainedSubnetRoute

ChainedSubnetRoute

typedef map<const PAListRef<A>, const ChainedSubnetRoute*, Path_Att_Ptr_Cmp<A> > PathmapType

PathmapType

typedef RefTrie<A, const ChainedSubnetRoute> RouteTrie

RouteTrie

typedef RouteTrie::iterator iterator

iterator

 BgpTrie ()

BgpTrie

 ~BgpTrie ()

~BgpTrie

iterator  insert (const IPNet& net, const SubnetRoute<A>& route)

insert

Reimplemented from RefTrie.

void  erase (const IPNet& net)

erase

Reimplemented from RefTrie.

void  delete_all_nodes ()

delete_all_nodes

Reimplemented from RefTrie.

const PathmapType&  pathmap ()

pathmap

[const]


Generated by: pavlin on kobe.xorp.net on Wed Jan 7 19:11:04 2009, using kdoc 2.0a54+XORP.