class PathAttribute


 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Types

Public Methods

Public Static Methods

Protected Methods

Protected Static Methods

Protected Members


Detailed Description

enum Flags { Optional = 0x80, Transitive = 0x40, Partial = 0x20, Extended = 0x10, ValidFlags = 0xf0, NoFlags = 0 }

Flags

PathAttributecreate (const uint8_t* d, uint16_t max_len, size_t& actual_length)
throw(CorruptMessage)

create

[static]

main routine to create a PathAttribute from incoming data. Takes a chunk of memory of size l, returns an object of the appropriate type and actual_length is the number of bytes used from the packet. Throws an exception on error.

PathAttributeclone ()

clone

[const pure virtual]

Make a copy of the current attribute. The derived class should use new to generate a copy of itself. The wire format representation will not be used by the caller.

 ~PathAttribute ()

~PathAttribute

[virtual]

const uint8_t * data ()

data

[const]

size_t  wire_size ()

wire_size

[const]

Returns: the size of the wire representation.

size_t  header_size ()

header_size

[const]

Returns: the size of the header.

PathAttType  type ()

type

[const]

Returns: the type of the attribute

Flags  flags ()

flags

[const]

Returns: the flags for the attribute

void  set_partial ()

set_partial

Set the partial flag

bool  operator< (const PathAttribute& him)

operator<

[const]

comparison operators are used to sort attributes. Right now the sort order is based on the type, size() and payload representation.

bool  operator== (const PathAttribute& him)

operator==

[const]

void  add_hash (MD5_CTX *context)

add_hash

[const]

compute the hash for this object.

string  str ()

str

[const virtual]

void  pretty_print ()

pretty_print

bool  optional ()

optional

[const]

bool  transitive ()

transitive

[const]

bool  partial ()

partial

[const]

bool  extended ()

extended

[const]

bool  well_known ()

well_known

[const]

const int  sorttype ()

sorttype

[protected const]

sorttype() is only used in sorting a path attribute list. It is different from PathAttType because we want to sort the path attribute list on NextHop for less expensive processing when the IGP information for a nexthop changes. So we give priority to NEXT_HOP and keep other values unchanged.

 PathAttribute (Flags f, PathAttType t)

PathAttribute

[protected]

helper constructor used when creating an object from a derived class. NOTE: it does not provide a usable object as _data is invalid.

 PathAttribute (const uint8_t *d)

PathAttribute

[protected]

basic constructor from data, assumes that the block has at least the required size. NOTE: it does not provide a usable object as _data is invalid.

uint8_t * set_header (size_t payload_size)

set_header

[protected]

helper function to fill the header. Needs _flags and _type properly initialized, overwrites _size and _data by allocating a new block of appropriate size (payload_size + 3 or 4 header bytes).

size_t  length (const uint8_t* d)

length

[protected static]

fetch the length from the header. Assume the header is there.

size_t  total_tlv_length (const uint8_t* d)

total_tlv_length

[protected static]

Total length including the header. Used to send the whole TLV back when an error has been detected.

const uint8_t * payload (const uint8_t *d)

payload

[protected]

size_t _size

_size

[protected]

uint8_t * _data

_data

[protected]

uint8_t _flags

_flags

[protected]

uint8_t _type

_type

[protected]


Generated by: pavlin on possum.icir.org on Thu Mar 9 04:43:34 2006, using kdoc $.