FD.io VPP  v16.09
Vector Packet Processing
ip_adjacency_t Struct Reference

IP unicast adjacency. More...

Public Member Functions

 STRUCT_MARK (signature_start)
 STRUCT_MARK (signature_end)
 vnet_declare_rewrite (VLIB_BUFFER_PRE_DATA_SIZE)
 Rewrite in second/third cache lines. More...

Data Fields

u32 heap_handle
 Handle for this adjacency in adjacency heap. More...
u32 if_address_index
 Interface address index for this local/arp adjacency. More...
u16 n_adj
 Number of adjecencies in block. More...
union {
   ip_lookup_next_t   lookup_next_index: 16
   u16   lookup_next_index_as_int
 Next hop after ip4-lookup. More...
i16 explicit_fib_index
 Force re-lookup in a different FIB. More...
u16 mcast_group_index
u16 saved_lookup_next_index
 Highest possible perf subgraph arc interposition, e.g. More...
union {
   struct {
      ip46_address_t   next_hop
   }   arp
 IP_LOOKUP_NEXT_ARP only. More...
   struct {
      u16   table_index
   }   classify
   struct {
      ip46_address_t   next_hop
   }   indirect
   u8   opaque [IP_ADJACENCY_OPAQUE_SZ]
u32 special_adjacency_format_function_index
 Special format function for this adjacency. More...
u32 share_count
 Number of FIB entries sharing this adjacency. More...
u32 next_adj_with_signature
 Use this adjacency instead. More...

Detailed Description

IP unicast adjacency.

cache aligned.

Definition at line 164 of file lookup.h.

Member Function Documentation

ip_adjacency_t::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline0  )
ip_adjacency_t::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline1  )
ip_adjacency_t::STRUCT_MARK ( signature_start  )
ip_adjacency_t::STRUCT_MARK ( signature_end  )
ip_adjacency_t::vnet_declare_rewrite ( VLIB_BUFFER_PRE_DATA_SIZE  )

Rewrite in second/third cache lines.

Field Documentation

union { ... }

Next hop after ip4-lookup.

union { ... }
struct { ... } ip_adjacency_t::arp


struct { ... } ip_adjacency_t::classify


i16 ip_adjacency_t::explicit_fib_index

Force re-lookup in a different FIB.

~0 => normal behavior

Definition at line 185 of file lookup.h.

u32 ip_adjacency_t::heap_handle

Handle for this adjacency in adjacency heap.

Definition at line 167 of file lookup.h.

u32 ip_adjacency_t::if_address_index

Interface address index for this local/arp adjacency.

Definition at line 172 of file lookup.h.

struct { ... } ip_adjacency_t::indirect


ip_lookup_next_t ip_adjacency_t::lookup_next_index

Definition at line 180 of file lookup.h.

u16 ip_adjacency_t::lookup_next_index_as_int

Definition at line 181 of file lookup.h.

u16 ip_adjacency_t::mcast_group_index

Definition at line 186 of file lookup.h.

u16 ip_adjacency_t::n_adj

Number of adjecencies in block.

Greater than 1 means multipath; otherwise equal to 1.

Definition at line 176 of file lookup.h.

u32 ip_adjacency_t::next_adj_with_signature

Use this adjacency instead.

Definition at line 218 of file lookup.h.

ip46_address_t ip_adjacency_t::next_hop

Definition at line 194 of file lookup.h.

u8 ip_adjacency_t::opaque[IP_ADJACENCY_OPAQUE_SZ]

Definition at line 204 of file lookup.h.

u16 ip_adjacency_t::saved_lookup_next_index

Highest possible perf subgraph arc interposition, e.g.

for ip6 ioam

Definition at line 189 of file lookup.h.

u32 ip_adjacency_t::share_count

Number of FIB entries sharing this adjacency.

Definition at line 216 of file lookup.h.

u32 ip_adjacency_t::special_adjacency_format_function_index

Special format function for this adjacency.

Specifically good for cases which use the entire rewrite for their own purposes. Can easily reduce to a u16 or a u8 if/when the first cache line reads "full" on the free space gas gauge.

Definition at line 212 of file lookup.h.

u16 ip_adjacency_t::table_index

Definition at line 198 of file lookup.h.

The documentation for this struct was generated from the following file: