FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
gre_tunnel_t Struct Reference

A representation of a GRE tunnel. More...

+ Collaboration diagram for gre_tunnel_t:

Public Member Functions

 CLIB_CACHE_LINE_ALIGN_MARK (cacheline0)
 Required for pool_get_aligned. More...
 

Data Fields

fib_node_t node
 Linkage into the FIB object graph. More...
 
gre_tunnel_key_tkey
 The hash table's key stored in separate memory since the tunnel_t memory can realloc. More...
 
ip46_address_t tunnel_src
 The tunnel's source/local address. More...
 
fib_prefix_t tunnel_dst
 The tunnel's destination/remote address. More...
 
u32 outer_fib_index
 The FIB in which the src.dst address are present. More...
 
u32 hw_if_index
 
u32 sw_if_index
 
gre_tunnel_type_t type
 
fib_node_index_t fib_entry_index
 The FIB entry sourced by the tunnel for its destination prefix. More...
 
u32 sibling_index
 The tunnel is a child of the FIB entry for its desintion. More...
 
adj_index_t l2_adj_index
 an L2 tunnel always rquires an L2 midchain. More...
 
u16 session_id
 ERSPAN type 2 session ID, least significant 10 bits of u16. More...
 
gre_sn_tgre_sn
 GRE header sequence number (SN) used for ERSPAN type 2 header, must be bumped automically to be thread safe. More...
 
u32 dev_instance
 
u32 user_instance
 

Detailed Description

A representation of a GRE tunnel.

Definition at line 176 of file gre.h.

Member Function Documentation

◆ CLIB_CACHE_LINE_ALIGN_MARK()

gre_tunnel_t::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline0  )

Required for pool_get_aligned.

Field Documentation

◆ dev_instance

u32 gre_tunnel_t::dev_instance

Definition at line 242 of file gre.h.

◆ fib_entry_index

fib_node_index_t gre_tunnel_t::fib_entry_index

The FIB entry sourced by the tunnel for its destination prefix.

Definition at line 213 of file gre.h.

◆ gre_sn

gre_sn_t* gre_tunnel_t::gre_sn

GRE header sequence number (SN) used for ERSPAN type 2 header, must be bumped automically to be thread safe.

As multiple GRE tunnels are created for the same fib-idx/DIP/SIP with different ERSPAN session number, they all share the same SN which is kept per FIB/DIP/SIP, as specified by RFC2890.

Definition at line 239 of file gre.h.

◆ hw_if_index

u32 gre_tunnel_t::hw_if_index

Definition at line 206 of file gre.h.

◆ key

gre_tunnel_key_t* gre_tunnel_t::key

The hash table's key stored in separate memory since the tunnel_t memory can realloc.

Definition at line 192 of file gre.h.

◆ l2_adj_index

adj_index_t gre_tunnel_t::l2_adj_index

an L2 tunnel always rquires an L2 midchain.

cache here for DP.

Definition at line 226 of file gre.h.

◆ node

fib_node_t gre_tunnel_t::node

Linkage into the FIB object graph.

Definition at line 186 of file gre.h.

◆ outer_fib_index

u32 gre_tunnel_t::outer_fib_index

The FIB in which the src.dst address are present.

Definition at line 205 of file gre.h.

◆ session_id

u16 gre_tunnel_t::session_id

ERSPAN type 2 session ID, least significant 10 bits of u16.

Definition at line 231 of file gre.h.

◆ sibling_index

u32 gre_tunnel_t::sibling_index

The tunnel is a child of the FIB entry for its desintion.

This is so it receives updates when the forwarding information for that entry changes. The tunnels sibling index on the FIB entry's dependency list.

Definition at line 221 of file gre.h.

◆ sw_if_index

u32 gre_tunnel_t::sw_if_index

Definition at line 207 of file gre.h.

◆ tunnel_dst

fib_prefix_t gre_tunnel_t::tunnel_dst

The tunnel's destination/remote address.

Definition at line 201 of file gre.h.

◆ tunnel_src

ip46_address_t gre_tunnel_t::tunnel_src

The tunnel's source/local address.

Definition at line 197 of file gre.h.

◆ type

gre_tunnel_type_t gre_tunnel_t::type

Definition at line 208 of file gre.h.

◆ user_instance

u32 gre_tunnel_t::user_instance

Definition at line 243 of file gre.h.


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