Go to the source code of this file.
|
typedef | CLIB_PACKED (struct { ip4_header_t ip4;gre_header_t gre;}) ip4_and_gre_header_t |
| IPv4 and GRE header. More...
|
|
typedef | CLIB_PACKED (struct { ip6_header_t ip6;gre_header_t gre;}) ip6_and_gre_header_t |
| IPv6 and GRE header. More...
|
|
static gre_protocol_info_t * | gre_get_protocol_info (gre_main_t *em, gre_protocol_t protocol) |
|
clib_error_t * | gre_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
|
void | gre_tunnel_stack (adj_index_t ai) |
| gre_tunnel_stack More...
|
|
void | gre_update_adj (vnet_main_t *vnm, u32 sw_if_index, adj_index_t ai) |
|
void | gre_register_input_protocol (vlib_main_t *vm, gre_protocol_t protocol, u32 node_index, gre_tunnel_type_t tunnel_type) |
|
int | vnet_gre_tunnel_add_del (vnet_gre_tunnel_add_del_args_t *a, u32 *sw_if_indexp) |
|
static void | gre_mk_key4 (ip4_address_t src, ip4_address_t dst, u32 fib_index, u8 ttype, u16 session_id, gre_tunnel_key4_t *key) |
|
static int | gre_match_key4 (const gre_tunnel_key4_t *key1, const gre_tunnel_key4_t *key2) |
|
static void | gre_mk_key6 (const ip6_address_t *src, const ip6_address_t *dst, u32 fib_index, u8 ttype, u16 session_id, gre_tunnel_key6_t *key) |
|
static int | gre_match_key6 (const gre_tunnel_key6_t *key1, const gre_tunnel_key6_t *key2) |
|
static void | gre_mk_sn_key (const gre_tunnel_t *gt, gre_sn_key_t *key) |
|
◆ gre_error
#define gre_error |
( |
|
n, |
|
|
|
s |
|
) |
| GRE_ERROR_##n, |
Definition at line 32 of file gre.h.
◆ GRE_OUTPUT_NEXT_LOOKUP
#define GRE_OUTPUT_NEXT_LOOKUP 1 |
◆ GRE_TUNNEL_TYPE_N
Definition at line 60 of file gre.h.
◆ GRE_TUNNEL_TYPE_NAMES
#define GRE_TUNNEL_TYPE_NAMES |
Value:{ \
}
Transparent Ethernet Bridging - the tunnel is in L2 mode.
ERSPAN type 2 - the tunnel is for port mirror SPAN output.
Definition at line 62 of file gre.h.
◆ GTK_FIB_INDEX_MASK
#define GTK_FIB_INDEX_MASK 0xfffff000 |
◆ GTK_FIB_INDEX_SHIFT
#define GTK_FIB_INDEX_SHIFT 12 |
◆ GTK_SESSION_ID_MASK
#define GTK_SESSION_ID_MASK 0xffc |
◆ GTK_SESSION_ID_MAX
◆ GTK_SESSION_ID_SHIFT
#define GTK_SESSION_ID_SHIFT 2 |
◆ GTK_TYPE_MASK
#define GTK_TYPE_MASK 0x3 |
◆ GTK_TYPE_SHIFT
◆ gre_tunnel_key4_t
Key for a IPv4 GRE Tunnel.
◆ gre_tunnel_key6_t
Key for a IPv6 GRE Tunnel We use a different type so that the V4 key hash is as small as possible.
◆ gre_tunnel_key_t
Union of the two possible key types.
◆ gre_tunnel_type_t
◆ gre_error_t
Definition at line 30 of file gre.h.
◆ gre_tunnel_type_t_
The GRE tunnel type.
Enumerator |
---|
GRE_TUNNEL_TYPE_L3 | L3 GRE (i.e.
this tunnel is in L3 mode)
|
GRE_TUNNEL_TYPE_TEB | Transparent Ethernet Bridging - the tunnel is in L2 mode.
|
GRE_TUNNEL_TYPE_ERSPAN | ERSPAN type 2 - the tunnel is for port mirror SPAN output.
Each tunnel is associated with a session ID and expected to be used for encap and output of mirrored packet from a L2 network only. There is no support for receiving ERSPAN packets from a GRE ERSPAN tunnel in VPP.
|
Definition at line 41 of file gre.h.
◆ CLIB_PACKED() [1/2]
◆ CLIB_PACKED() [2/2]
◆ gre_get_protocol_info()
◆ gre_interface_admin_up_down()
◆ gre_match_key4()
◆ gre_match_key6()
◆ gre_mk_key4()
◆ gre_mk_key6()
◆ gre_mk_sn_key()
◆ gre_register_input_protocol()
◆ gre_tunnel_stack()
gre_tunnel_stack
'stack' (resolve the recursion for) the tunnel's midchain adjacency
Definition at line 121 of file interface.c.
◆ gre_update_adj()
◆ vnet_gre_tunnel_add_del()
◆ format_gre_header
◆ format_gre_header_with_length
◆ format_gre_protocol
◆ gre4_input_node
(constructor) VLIB_REGISTER_NODE (gre4_input_node)
Definition at line 453 of file node.c.
◆ gre6_input_node
(constructor) VLIB_REGISTER_NODE (gre6_input_node)
Definition at line 473 of file node.c.
◆ gre_device_class
◆ gre_encap_node
(constructor) VLIB_REGISTER_NODE (gre_encap_node)
Definition at line 493 of file gre.c.
◆ gre_hw_interface_class
◆ gre_main
◆ unformat_gre_header
◆ unformat_gre_protocol_host_byte_order
◆ unformat_gre_protocol_net_byte_order
◆ unformat_pg_gre_header