|
|
This class can be used to store an AS number that can be either 16 or 32 bits. Originally, the AS numbers were defined as 16-bit unsigned numbers. Later the "extended" AS numbers were introduced, which are unsigned 32-bit numbers.
16-bit numbers are expanded to 32-bit by extending them with 0's in front. 32-bit numbers are represented in a 16-bit path, by a special 16-bit value, AS_TRAN, which will be allocated by IANA. Together with any AsPath containing AS_TRAN, we will always see a NEW_AS_PATH attribute which contains the full 32-bit representation of the path. So there is no loss of information.
The internal representation of an AsNum is 32-bit in host order.
An AsNum must always be initialized, so the default constructor is never called.
static const uint16_t AS_INVALID | AS_INVALID |
static const uint16_t AS_TRAN | AS_TRAN |
explicit AsNum (const uint32_t value)
| AsNum |
Constructor.
Parameters:
value | the value to assign to this AS number. |
explicit AsNum (const uint16_t value)
| AsNum |
explicit AsNum (int value)
| AsNum |
explicit AsNum (const uint8_t *d)
| AsNum |
construct from a 2-byte buffer in memory
uint16_t as ()
| as |
[const]
Get the non-extended AS number value.
Returns: the non-extended AS number value.
uint32_t as32 ()
| as32 |
[const]
Get the extended AS number value.
Returns: the extended AS number value.
void copy_out (uint8_t *d)
| copy_out |
[const]
copy the 16-bit value into a 2-byte memory buffer
bool extended ()
| extended |
[const]
Test if this is an extended AS number.
Returns: true if this is an extended AS number.
bool operator== (const AsNum& x)
| operator== |
[const]
Equality Operator
Parameters:
other | the right-hand operand to compare against. |
Returns: true if the left-hand operand is numerically same as the right-hand operand.
bool operator< (const AsNum& x)
| operator< |
[const]
Less-Than Operator
Returns: true if the left-hand operand is numerically smaller than the right-hand operand.
string str ()
| str |
[const]
Convert this AS number from binary form to presentation format.
Returns: C++ string with the human-readable ASCII representation of the AS number.
string short_str ()
| short_str |
[const]
Generated by: pavlin on possum.icir.org on Mon Mar 10 19:34:43 2003, using kdoc 2.0a54+XORP. |