FD.io VPP
v21.01.1
Vector Packet Processing
|
IP unicast adjacency. More...
Public Member Functions | |
CLIB_CACHE_LINE_ALIGN_MARK (cacheline0) | |
CLIB_CACHE_LINE_ALIGN_MARK (cacheline1) | |
CLIB_CACHE_LINE_ALIGN_MARK (cacheline3) | |
more control plane members that do not fit on the first cacheline More... | |
Data Fields | |
fib_node_t | ia_node |
Linkage into the FIB node graph. More... | |
u32 | ia_cfg_index |
feature [arc] config index More... | |
union { | |
struct { | |
ip46_address_t next_hop | |
} nbr | |
IP_LOOKUP_NEXT_ARP/IP_LOOKUP_NEXT_REWRITE. More... | |
struct { | |
ip46_address_t next_hop | |
The recursive next-hop. More... | |
dpo_id_t next_dpo | |
The next DPO to use. More... | |
adj_midchain_fixup_t fixup_func | |
A function to perform the post-rewrite fixup. More... | |
const void * fixup_data | |
Fixup data passed back to the client in the fixup function. More... | |
fib_node_index_t fei | |
the FIB entry this midchain resolves through. More... | |
} midchain | |
IP_LOOKUP_NEXT_MIDCHAIN. More... | |
struct { | |
fib_prefix_t rx_pfx | |
} glean | |
IP_LOOKUP_NEXT_GLEAN. More... | |
} | sub_type |
VNET_DECLARE_REWRITE | |
Rewrite in second and third cache lines. More... | |
struct adj_delegate_t_ * | ia_delegates |
A sorted vector of delegates. More... | |
u32 | ia_node_index |
The VLIB node in which this adj is used to forward packets. More... | |
ip_lookup_next_t | lookup_next_index |
Next hop after ip4-lookup. More... | |
vnet_link_t | ia_link |
link/ether-type 1 bytes More... | |
fib_protocol_t | ia_nh_proto |
The protocol of the neighbor/peer. More... | |
adj_flags_t | ia_flags |
Flags on the adjacency 1-bytes. More... | |
IP unicast adjacency.
An adjacency is a representation of a peer on a particular link.
ip_adjacency_t_::CLIB_CACHE_LINE_ALIGN_MARK | ( | cacheline0 | ) |
ip_adjacency_t_::CLIB_CACHE_LINE_ALIGN_MARK | ( | cacheline1 | ) |
ip_adjacency_t_::CLIB_CACHE_LINE_ALIGN_MARK | ( | cacheline3 | ) |
more control plane members that do not fit on the first cacheline
fib_node_index_t ip_adjacency_t_::fei |
const void* ip_adjacency_t_::fixup_data |
adj_midchain_fixup_t ip_adjacency_t_::fixup_func |
struct { ... } ip_adjacency_t_::glean |
IP_LOOKUP_NEXT_GLEAN.
Glean the address to ARP for from the packet's destination. Technically these aren't adjacencies, i.e. they are not a representation of a peer. One day we might untangle this coupling and use a new Glean DPO.
struct adj_delegate_t_* ip_adjacency_t_::ia_delegates |
adj_flags_t ip_adjacency_t_::ia_flags |
vnet_link_t ip_adjacency_t_::ia_link |
fib_protocol_t ip_adjacency_t_::ia_nh_proto |
fib_node_t ip_adjacency_t_::ia_node |
u32 ip_adjacency_t_::ia_node_index |
ip_lookup_next_t ip_adjacency_t_::lookup_next_index |
struct { ... } ip_adjacency_t_::midchain |
IP_LOOKUP_NEXT_MIDCHAIN.
A nbr adj that is also recursive. Think tunnels. A nbr adj can transition to be of type MIDCHAIN so be sure to leave the two structs with the next_hop fields aligned.
struct { ... } ip_adjacency_t_::nbr |
IP_LOOKUP_NEXT_ARP/IP_LOOKUP_NEXT_REWRITE.
neighbour adjacency sub-type;
ip46_address_t ip_adjacency_t_::next_hop |
fib_prefix_t ip_adjacency_t_::rx_pfx |
union { ... } ip_adjacency_t_::sub_type |
ip_adjacency_t_::VNET_DECLARE_REWRITE |