![]() |
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
IP unicast adjacency. More...
Collaboration diagram for ip_adjacency_t_: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 |