IPv6Prefix Class Reference

RFC 2470 A.4.1 IPv6 Prefix Representation OSPFv3 only. More...

#include <lsa.hh>

List of all members.

Public Member Functions

 IPv6Prefix (OspfTypes::Version version, bool use_metric=false)
 IPv6Prefix (const IPv6Prefix &rhs)
IPv6Prefix operator= (const IPv6Prefix &rhs)
void copy (const IPv6Prefix &rhs)
size_t length () const
IPv6Prefix decode (uint8_t *ptr, size_t &len, uint8_t prefixlen, uint8_t option) const throw (InvalidPacket)
 Decode a IPv6Prefix.
size_t copy_out (uint8_t *to_uint8) const
 Copy a wire format representation to the pointer provided.
OspfTypes::Version get_version () const
void set_network (const IPNet< IPv6 > &network)
IPNet< IPv6get_network () const
bool use_metric () const
void set_metric (uint16_t metric)
uint16_t get_metric () const
void set_prefix_options (uint8_t prefix_options)
uint8_t get_prefix_options () const
void set_bit (bool set, uint8_t bit)
bool get_bit (uint8_t bit) const
void set_nu_bit (bool set)
bool get_nu_bit () const
void set_la_bit (bool set)
bool get_la_bit () const
void set_mc_bit (bool set)
bool get_mc_bit () const
void set_p_bit (bool set)
bool get_p_bit () const
void set_dn_bit (bool set)
bool get_dn_bit () const
string str () const
 Generate a printable representation.

Static Public Member Functions

static size_t bytes_per_prefix (uint8_t prefix)

Static Public Attributes

static const uint8_t NU_bit = 0x1
static const uint8_t LA_bit = 0x2
static const uint8_t MC_bit = 0x4
static const uint8_t P_bit = 0x8
static const uint8_t DN_bit = 0x10

Private Attributes

const OspfTypes::Version _version
const bool _use_metric
IPNet< IPv6_network
uint16_t _metric
uint8_t _prefix_options

Detailed Description

RFC 2470 A.4.1 IPv6 Prefix Representation OSPFv3 only.

Member Function Documentation

static size_t IPv6Prefix::bytes_per_prefix ( uint8_t  prefix) [inline, static]
Number of bytes that will be occupied by this prefix.
size_t IPv6Prefix::copy_out ( uint8_t *  to_uint8) const

Copy a wire format representation to the pointer provided.

The caller should have called length() to pre-allocate the space required.

length() should be called by the caller to verify enough space is available.

the number of bytes written.
IPv6Prefix IPv6Prefix::decode ( uint8_t *  ptr,
size_t &  len,
uint8_t  prefixlen,
uint8_t  option 
) const throw (InvalidPacket)

Decode a IPv6Prefix.

bufpointer to buffer.
lenlength of the buffer on input set to the number of bytes consumed on output.
prefixlenprefix length
optionprefix option
A IPv6Prefix.
size_t IPv6Prefix::length ( ) const
the number of bytes the encoded data will occupy.

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