AFI
Advanced Forwarding Interface
 All Classes Functions Variables Typedefs Enumerations Enumerator Friends Groups
Classes | Macros | Typedefs
Data

Classes of basic data encapsulations that allow abstraction and re-use across the Aft interface. More...

Classes

class  AftData
 Base class for all Aft data classes. More...
 
class  AftDataInt
 Data class for all integers. More...
 
class  AftDataString
 Data class for strings. More...
 
class  AftDataPrefix
 Data class for byte-array prefixes. More...
 
class  AftDataIP4Addr
 Data class for IPv4 addresses. More...
 
class  AftDataIP6Addr
 Data class for IPv6 addresses. More...
 
class  AftDataEtherAddr
 Data class for Ethernet MAC addresses. More...
 
class  AftDataLabel
 Data class for MPLS labels. More...
 

Macros

#define AFT_BITS_IN_BYTE
 Basic definition to avoid playing whack-a-mole with includes.
 
#define AFT_IP6_ADDR_BITS   128
 
#define AFT_ETHER_ADDR   6
 Size of ethernet MAC address in bytes.
 
#define AFT_ETHER_ADDR_BITS   (AFT_ETHER_ADDR * AFT_BITS_IN_BYTE)
 Size of ethernet MAC address in bits.
 

Typedefs

typedef std::vector< uint8_t > AftDataBytes
 Vector of 8 bit values for data buffers.
 
typedef std::shared_ptr< AftDataAftDataPtr
 Pointer type for all AftData objects.
 

Detailed Description

Classes of basic data encapsulations that allow abstraction and re-use across the Aft interface.

AftData implements a wrapper class that allows data to be encapsulated with some state as to what the underlying data actually is (whether it's an index, an IP address or an MPLS label). This allows us to do two things

Obviously, we trade off some memory footprint for the extra context but this allows us to provide a rich interface for lookup key management, for example.