bgp Globals


 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

aspath.hh

bgp.hh

dump_iterators.hh

packet.hh

parameter.hh

path_attribute.hh

peer.hh

peer_data.hh

profile_vars.hh

route_queue.hh

route_table_base.hh

Global member Documentation

enum ASPathSegType { AS_NONE = 0, AS_SET = 1, AS_SEQUENCE = 2, AS_CONFED_SEQUENCE = 3, AS_CONFED_SET = 4 }

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.

RFC 3065 (Autonomous System Confederations for BGP) introduced two additional segment types:

AS_CONFED_SEQUENCE: ordered set of Member AS Numbers in the local confederation that the UPDATE message has traversed

AS_CONFED_SET: unordered set of Member AS Numbers in the local confederation that the UPDATE message has traversed

inline const char *  pb (const bool val)

pb

#include <bgp.hh>


typedef enum --

--

#include <dump_iterators.hh>


enum -- { STILL_TO_DUMP, CURRENTLY_DUMPING, DOWN_DURING_DUMP, DOWN_BEFORE_DUMP, COMPLETELY_DUMPED, NEW_PEER, FIRST_SEEN_DURING_DUMP }

--

#include <dump_iterators.hh>


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 Afi { AFI_IPV4 = AFI_IPV4_VAL, AFI_IPV6 = AFI_IPV6_VAL }

Afi

#include <parameter.hh>


enum Safi { SAFI_UNICAST = SAFI_UNICAST_VAL, SAFI_MULTICAST = SAFI_MULTICAST_VAL, }

Safi

#include <parameter.hh>


inline const char *  pretty_string_safi (Safi safi)

pretty_string_safi

#include <parameter.hh>


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

ParamType

#include <parameter.hh>


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

CapType

#include <parameter.hh>


typedef ref_ptr<const BGPParameter> ParameterNode

ParameterNode

#include <parameter.hh>


List of parameters

typedef list <ParameterNode> ParameterList

ParameterList

#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, ORIGINATOR_ID = 9, CLUSTER_LIST = 10, MP_REACH_NLRI = 14, MP_UNREACH_NLRI = 15, }

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>


enum PeerType { PEER_TYPE_EBGP = 0, PEER_TYPE_IBGP = 1, PEER_TYPE_EBGP_CONFED = 2, PEER_TYPE_IBGP_CLIENT = 3, PEER_TYPE_UNCONFIGURED = 4, PEER_TYPE_INTERNAL = 255 }

PeerType

#include <peer_data.hh>


Types of BGP Peering Sessions

void  initialize_profiling_variables (Profile& p)

initialize_profiling_variables

#include <profile_vars.hh>


Profile variables See: profile_vars.cc for definitions.

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, POLICY_TABLE = 11, AGGREGATION_TABLE = 12, DAMPING_TABLE = 13 }

RouteTableType

#include <route_table_base.hh>



Generated by: pavlin on possum.icir.org on Wed Aug 2 15:36:33 2006, using kdoc $.