class ASPath

An ASPath is a list of ASSegments, each of which can be an AS_SET, AS_CONFED_SET, AS_SEQUENCE, or an AS_CONFED_SEQUENCE. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Types

Public Methods

Protected Members


Detailed Description

An ASPath is a list of ASSegments, each of which can be an AS_SET, AS_CONFED_SET, AS_SEQUENCE, or an AS_CONFED_SEQUENCE.

typedef list <ASSegment>::const_iterator const_iterator

const_iterator

typedef list <ASSegment>::iterator iterator

iterator

 ASPath ()

ASPath

 ASPath (const char *as_path)
throw(InvalidString)

ASPath

Initialize from a string in the format 1,2,(3,4,5),6,7,8,(9,10,11),12,13

 ASPath (const uint8_t* d, size_t len)
throw(CorruptMessage)

ASPath

construct from received data

 ASPath (const ASPath &asp1, const ASPath &asp2)

ASPath

construct an aggregate from two ASPaths

 ASPath (const ASPath &a)

ASPath

Copy constructor

 ~ASPath ()

~ASPath

void  add_segment (const ASSegment& s)

add_segment

void  prepend_segment (const ASSegment& s)

prepend_segment

size_t  path_length ()

path_length

[const]

bool  contains (const AsNum& as_num)

contains

[const]

const AsNum&  first_asnum ()

first_asnum

[const]

string  str ()

str

[const]

string  short_str ()

short_str

[const]

const ASSegment&  segment (size_t n)

segment

[const]

size_t  num_segments ()

num_segments

[const]

const uint8_t * encode (size_t &len, uint8_t *buf)

encode

[const]

Convert from internal to external representation, with the correct representation for the original AS_PATH attribute. If there are any 4-byte AS numbers, they will be encoded as AS_TRAN.

If we do not pass a buffer (buf = 0), then the routine will allocate a new one; otherwise, len indicates the size of the input buffer, which must be large enough to store the encoding.

Returns: the pointer to the buffer, len is the actual size.

size_t  wire_size ()

wire_size

[const]

Returns: the size of the list on the wire. XXX this should be made more efficient.

void  prepend_as (const AsNum &asn)

prepend_as

Add the As number to the begining of the AS_SEQUENCE that starts the As path, or if the ASPath starts with an AS_SET, then add a new AS_SEQUENCE with the new AsNum to the start of the ASPath

void  prepend_confed_as (const AsNum &asn)

prepend_confed_as

Add the As number to the begining of the AS_CONFED_SEQUENCE that starts the As path, or if the ASPath does not start with an AS_CONFED_SEQUENCE, then add a new AS_CONFED_SEQUENCE with the new AsNum to the start of the ASPath

void  remove_confed_segments ()

remove_confed_segments

remove all confederation segments from aspath

bool  contains_confed_segments ()

contains_confed_segments

[const]

Returns: true if the AS_PATH Contains confederation segments.

ASPath&  operator= (const ASPath& him)

operator=

bool  operator== (const ASPath& him)

operator==

[const]

bool  operator< (const ASPath& him)

operator<

[const]

void  encode_for_mib (vector<uint8_t>& aspath)

encode_for_mib

[const]

bool  two_byte_compatible ()

two_byte_compatible

[const]

returns true if the AS path does not lose information when represented entirely as two-byte AS numbers

void  merge_as4_path (AS4Path& as4_path)

merge_as4_path

Merge an AS4Path into a 2-byte AS Path. Both paths will end up containing the same data

param as4path the AS4_PATH to be merged.

list <ASSegment> _segments

_segments

[protected]

size_t _num_segments

_num_segments

[protected]

size_t _path_len

_path_len

[protected]


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