AFI
Advanced Forwarding Interface
|
![]() |
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< AftData > | AftDataPtr |
Pointer type for all AftData objects. | |
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.