xorp

ASExternalLsa Class Reference

AS-external-LSA. More...

#include <lsa.hh>

Inheritance diagram for ASExternalLsa:
Lsa Type7Lsa

List of all members.

Public Member Functions

 ASExternalLsa (OspfTypes::Version version)
 ASExternalLsa (OspfTypes::Version version, uint8_t *buf, size_t len)
size_t min_length () const
uint16_t get_ls_type () const
 It is the responsibilty of the derived type to return this information.
bool external () const
LsaRef decode (uint8_t *buf, size_t &len) const throw (InvalidPacket)
 Decode an LSA.
bool encode ()
 Encode an LSA for transmission.
void set_network_mask (uint32_t network_mask)
uint32_t get_network_mask () const
void set_ipv6prefix (const IPv6Prefix &ipv6prefix)
IPv6Prefix get_ipv6prefix () const
template<typename A >
void set_network (IPNet< A >)
template<typename A >
IPNet< A > get_network (A) const
void set_e_bit (bool bit)
bool get_e_bit () const
void set_f_bit (bool bit)
bool get_f_bit () const
void set_t_bit (bool bit)
bool get_t_bit () const
void set_referenced_ls_type (uint16_t referenced_ls_type)
uint16_t get_referenced_ls_type () const
void set_forwarding_address_ipv6 (IPv6 forwarding_address_ipv6)
IPv6 get_forwarding_address_ipv6 () const
void set_metric (uint32_t metric)
uint32_t get_metric () const
void set_forwarding_address_ipv4 (IPv4 forwarding_address_ipv4)
IPv4 get_forwarding_address_ipv4 () const
template<typename A >
void set_forwarding_address (A)
template<typename A >
get_forwarding_address (A) const
void set_external_route_tag (uint32_t external_route_tag)
uint32_t get_external_route_tag () const
void set_referenced_link_state_id (uint32_t referenced_link_state_id)
uint32_t get_referenced_link_state_id () const
virtual ASExternalLsadonew (OspfTypes::Version version, uint8_t *buf, size_t len) const
 Create a new instance of this LSA, allows the decode routine to call either this or the Type7 donew.
virtual string str_name () const
 Name used in the str() method.
const char * name () const
 Printable name of this LSA.
void set_suppressed_lsa (Lsa::LsaRef lsar)
Lsa::LsaRef get_suppressed_lsa () const
void release_suppressed_lsa ()
string str () const
 Generate a printable representation.
template<>
void set_network (IPNet< IPv4 > net)
template<>
void set_network (IPNet< IPv6 > net)
template<>
IPNet< IPv4get_network (IPv4) const
template<>
IPNet< IPv6get_network (IPv6) const
template<>
void set_forwarding_address (IPv4 forwarding_address_ipv4)
template<>
void set_forwarding_address (IPv6 forwarding_address_ipv6)
template<>
IPv4 get_forwarding_address (IPv4) const
template<>
IPv6 get_forwarding_address (IPv6) const

Static Public Attributes

static const size_t IPV6_PREFIX_OFFSET = 28

Private Attributes

uint32_t _network_mask
bool _e_bit
bool _f_bit
bool _t_bit
IPv6Prefix _ipv6prefix
uint16_t _referenced_ls_type
IPv6 _forwarding_address
uint32_t _metric
IPv4 _forwarding_address_ipv4
IPv6 _forwarding_address_ipv6
uint32_t _external_route_tag
uint32_t _referenced_link_state_id
Lsa::LsaRef _suppressed_lsa

Detailed Description

AS-external-LSA.


Member Function Documentation

Lsa::LsaRef ASExternalLsa::decode ( uint8_t *  buf,
size_t &  len 
) const throw (InvalidPacket) [virtual]

Decode an LSA.

Parameters:
bufpointer to buffer.
lenlength of the buffer on input set to the number of bytes consumed on output.
Returns:
A reference to an LSA that manages its own memory.

Implements Lsa.

bool ASExternalLsa::encode ( ) [virtual]

Encode an LSA for transmission.

Returns:
True on success.

Implements Lsa.

bool ASExternalLsa::external ( ) const [inline, virtual]
Returns:
True this is an AS-external-LSA.

Reimplemented from Lsa.

Reimplemented in Type7Lsa.

uint16_t ASExternalLsa::get_ls_type ( ) const [inline, virtual]

It is the responsibilty of the derived type to return this information.

Returns:
The type this lsa represents.

Implements Lsa.

Reimplemented in Type7Lsa.

size_t ASExternalLsa::min_length ( ) const [inline, virtual]
Returns:
the minimum length of an AS-external-LSA.

Implements Lsa.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations