|
xorp
|
InternalMessage is used to pass route changes between BGP route table classes. More...
#include <internal_message.hh>
Public Member Functions | |
| InternalMessage (const SubnetRoute< A > *route, const PeerHandler *origin_peer, uint32_t genid) | |
| InternalMessage (const SubnetRoute< A > *route, FPAListRef pa_list, const PeerHandler *origin_peer, uint32_t genid) | |
| const IPNet< A > & | net () const |
| const SubnetRoute< A > * | route () const |
| const PeerHandler * | origin_peer () const |
| const A & | nexthop () const |
| FPAListRef & | attributes () |
| const FPAListRef & | const_attributes () const |
| bool | changed () const |
| void | set_changed () |
| void | clear_changed () const |
| bool | copied () const |
| void | set_copied () |
| void | clear_copied () const |
| bool | push () const |
| void | set_push () |
| void | clear_push () |
| bool | from_previous_peering () const |
| void | set_from_previous_peering () |
| uint32_t | genid () const |
| void | inactivate () const |
| string | str () const |
Private Attributes | |
| const SubnetRoute< A > * | _subnet_route |
| the actual route data. | |
| FPAListRef | _attributes |
| the path attribute list we use for fast accesses. | |
| const PeerHandler * | _origin_peer |
| we need origin_peer to make sure we don't send a route back to the peer it came from, or send an IBGP route to an IBGP peer. | |
| bool | _changed |
| changed indicates that the route data has been modified since the route was last stored (and so needs storing by a CacheTable). | |
| bool | _copied |
| copied indicates that the subnet route data has been copied since the route was last stored (and so needs freeing by the final recipient) | |
| uint32_t | _genid |
| genid is the generation ID from the RibIn, if known, or zero if it's not known. | |
| bool | _push |
| push indicates that this is the last route in a batch, so the push to peers is implicit. | |
| bool | _from_previous_peering |
| from_previous_peering is set on messages where the deleted route originates from a previous peering that has now gone down. | |
InternalMessage is used to pass route changes between BGP route table classes.
XORP BGP is implemented as a pipelined series of route_tables, starting with a RibInTable for each peering, converging on a DecisionTable to decide which competing route is prefered, and then fanning out again to a RibOutTable for each peer. Routing changes such as add_route, delete_route, and replace_route propagate through this pipeline. The "payload" of these changes is an InternalMessage, which contains the route itself, the peering from which this route originated, and the generation ID of the RibIn at that peering.
FPAListRef InternalMessage< A >::_attributes [private] |
the path attribute list we use for fast accesses.
This is reference counted so we don't need to worry about freeing it when we copy it from message to message.