bgp Globals


Annotated List
Files
Globals
Hierarchy
Index

aspath.hh

packet.hh

parameter.hh

path_attribute.hh

peer.hh

route_queue.hh

route_table_base.hh

route_table_cache.hh

Global member Documentation

enum ASPathSegType { AS_NONE = 0, AS_SET = 1, AS_SEQUENCE = 2 }

ASPathSegType

#include <aspath.hh>

This file contains the classes to manipulate AS segments/lists/paths

An AS_PATH is made of a list of segments, each segment being an AS_SET or an AS_SEQUENCE. Logically, you can think an AS_SEQUENCE as a list of AsNum, and an AS_SET as an unordered set of AsNum; the path would then be made of alternate AS_SET and AS_SEQUENCEs. However, the max number of elements in an AS_SEQUENCE is 255, so you might need to split a sequence into multiple ones.

The external representation of AS_SET or AS_SEQUENCE is: 1 byte: segment type 1 byte: number of element in the segment n entries: the ASnumbers in the segment, 2 or 4 bytes each

In terms of internal representation, it might be more efficient useful to store segments as either an AS_SET, or a sequence of size 1, and then do the necessary grouping on output.

The current implementation allows both forms.

Note that the external representation (provided by encode()) returns a malloc'ed chunk of memory which must be freed by the caller.

enum BgpPacketType { MESSAGETYPEOPEN = 1, MESSAGETYPEUPDATE = 2, MESSAGETYPENOTIFICATION = 3, MESSAGETYPEKEEPALIVE = 4 }

BgpPacketType

#include <packet.hh>

enum Notify { MSGHEADERERR = 1, OPENMSGERROR = 2, UPDATEMSGERR = 3, HOLDTIMEEXP = 4, FSMERROR = 5, CEASE = 6 }

Notify

#include <packet.hh>

Notification message error codes with associated subcodes.

enum ParamType { PARAMINVALID = 0, PARAMTYPEAUTH = 1, PARAMTYPECAP = 2 }

ParamType

#include <parameter.hh>

enum CapType { CAPABILITYMULTIPROTOCOL = 1, CAPABILITYREFRESH = 2, CAPABILITYREFRESHOLD = 128, CAPABILITYMULTIROUTE = 4, CAPABILITYUNKNOWN = -1, }

CapType

#include <parameter.hh>

enum PathAttType { ORIGIN = 1, AS_PATH = 2, NEXT_HOP = 3, MED = 4, LOCAL_PREF = 5, ATOMIC_AGGREGATE = 6, AGGREGATOR = 7, COMMUNITY = 8, UNKNOWN = 255 }

PathAttType

#include <path_attribute.hh>

PathAttribute

components of the path attribute. They have variable sizes The actual layout on the wire is the following: [ flags ] 1 byte [ type ] 1 byte [ len ][....] 1 or 2 bytes [ data ] len bytes

PathAttribute is the base class for a set of derived class which represent the various attributes. A PathAttribute object of a given type can be created explicitly, using one of the constructors, and then adding components to it; or it can be created by calling the create() method on a block of data received from the wire.

In addition to the parsed components (next hops, AS numbers and paths, and various other attributes), the objects always contain the wire representation of the object, a pointer to which is accessible with the data() method, and whose size is size(). Whenever the object is altered, the wire representation needs to be recomputed.

enum OriginType { IGP = 0, EGP = 1, INCOMPLETE = 2 }

OriginType

#include <path_attribute.hh>

typedef NextHopAttribute<IPv4> IPv4NextHopAttribute

IPv4NextHopAttribute

#include <path_attribute.hh>

typedef NextHopAttribute<IPv6> IPv6NextHopAttribute

IPv6NextHopAttribute

#include <path_attribute.hh>

enum FSMState { STATEIDLE = 1, STATECONNECT = 2, STATEACTIVE = 3, STATEOPENSENT = 4, STATEOPENCONFIRM = 5, STATEESTABLISHED = 6, STATESTOPPED = 7 }

FSMState

#include <peer.hh>

enum FSMEvent { EVENTBGPSTART = 1, EVENTBGPSTOP = 2, EVENTBGPTRANOPEN = 3, EVENTBGPTRANCLOSED = 4, EVENTBGPCONNOPENFAIL = 5, EVENTBGPTRANFATALERR = 6, EVENTCONNTIMEEXP = 7, EVENTHOLDTIMEEXP = 8, EVENTKEEPALIVEEXP = 9, EVENTRECOPENMESS = 10, EVENTRECKEEPALIVEMESS = 11, EVENTRECUPDATEMESS = 12, EVENTRECNOTMESS = 13 }

FSMEvent

#include <peer.hh>

enum PeerOutputState { PEER_OUTPUT_OK = 1, PEER_OUTPUT_BUSY = 2, PEER_OUTPUT_FAIL = 3 }

PeerOutputState

#include <peer.hh>

typedef enum ribout_queue_op

ribout_queue_op

#include <route_queue.hh>

enum ribout_queue_op { RTQUEUE_OP_ADD = 1, RTQUEUE_OP_DELETE = 2, RTQUEUE_OP_REPLACE_OLD = 3, RTQUEUE_OP_REPLACE_NEW = 4, RTQUEUE_OP_PUSH = 5 }

ribout_queue_op

#include <route_queue.hh>

enum RouteTableType { RIB_IN_TABLE = 1, RIB_OUT_TABLE = 2, CACHE_TABLE = 3, DECISION_TABLE = 4, FANOUT_TABLE = 5, FILTER_TABLE = 6, DELETION_TABLE = 7, DUMP_TABLE = 8, NHLOOKUP_TABLE = 9, DEBUG_TABLE = 10 }

RouteTableType

#include <route_table_base.hh>

template<> void TrieNode<IPv4, const SubnetRoute<IPv4> >  delete_payload (const SubnetRoute<IPv4>* p)

delete_payload

#include <route_table_cache.hh>

Specialize Trie so that the SubnetRoute payload is deleted using the SubnetRoute's unref method, which permits delayed deletion.

template<> void TrieNode<IPv6, const SubnetRoute<IPv6> >  delete_payload (const SubnetRoute<IPv6>* p)

delete_payload

#include <route_table_cache.hh>


Generated by: pavlin on possum.icir.org on Mon Mar 10 19:34:59 2003, using kdoc 2.0a54+XORP.