Go to the source code of this file.
|
u8 * | format_gre_tunnel_type (u8 *s, va_list *args) |
|
| STATIC_ASSERT_SIZEOF (gre_tunnel_key_common_t, sizeof(u64)) |
|
| STATIC_ASSERT_SIZEOF (gre_tunnel_key4_t, 2 *sizeof(u64)) |
|
| STATIC_ASSERT_SIZEOF (gre_tunnel_key6_t, 5 *sizeof(u64)) |
|
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) |
|
adj_walk_rc_t | mgre_mk_complete_walk (adj_index_t ai, void *data) |
|
adj_walk_rc_t | mgre_mk_incomplete_walk (adj_index_t ai, void *data) |
|
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, gre_tunnel_type_t ttype, tunnel_mode_t tmode, 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, gre_tunnel_type_t ttype, tunnel_mode_t tmode, 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) |
|
◆ foreach_gre_tunnel_type
#define foreach_gre_tunnel_type |
Value:_(L3, "L3") \
_(TEB, "TEB") \
_(ERSPAN, "ERSPAN") \
L3: GRE (i.e.
this tunnel is in L3 mode) TEB: Transparent Ethernet Bridging - the tunnel is in L2 mode 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
Definition at line 49 of file gre.h.
◆ gre_error
#define gre_error |
( |
|
n, |
|
|
|
s |
|
) |
| GRE_ERROR_##n, |
Definition at line 35 of file gre.h.
◆ GRE_OUTPUT_NEXT_LOOKUP
#define GRE_OUTPUT_NEXT_LOOKUP 1 |
◆ GTK_SESSION_ID_MAX
#define GTK_SESSION_ID_MAX (0x3ff) |
The session ID is only a 10 bit value.
Definition at line 162 of file gre.h.
◆ 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_common_t
Elements of the GRE key that are common for v6 and v6 addresses.
◆ gre_tunnel_key_t
Union of the two possible key types.
◆ gre_tunnel_type_t
◆ mgre_walk_ctx_t
◆ gre_error_t
Definition at line 33 of file gre.h.
◆ gre_tunnel_type_t_
The GRE tunnel type.
Enumerator |
---|
foreach_gre_tunnel_type | |
Definition at line 57 of file gre.h.
◆ CLIB_PACKED() [1/2]
◆ CLIB_PACKED() [2/2]
◆ format_gre_tunnel_type()
u8* format_gre_tunnel_type |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
◆ 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 132 of file interface.c.
◆ gre_update_adj()
◆ mgre_mk_complete_walk()
◆ mgre_mk_incomplete_walk()
◆ STATIC_ASSERT_SIZEOF() [1/3]
◆ STATIC_ASSERT_SIZEOF() [2/3]
◆ STATIC_ASSERT_SIZEOF() [3/3]
◆ 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 454 of file node.c.
◆ gre6_input_node
(constructor) VLIB_REGISTER_NODE (gre6_input_node)
Definition at line 474 of file node.c.
◆ gre_device_class
◆ gre_erspan_encap_node
(constructor) VLIB_REGISTER_NODE (gre_erspan_encap_node)
Definition at line 683 of file gre.c.
◆ gre_hw_interface_class
◆ gre_main
◆ gre_teb_encap_node
(constructor) VLIB_REGISTER_NODE (gre_teb_encap_node)
Definition at line 670 of file gre.c.
◆ mgre_hw_interface_class
◆ unformat_gre_header
◆ unformat_gre_protocol_host_byte_order
◆ unformat_gre_protocol_net_byte_order
◆ unformat_pg_gre_header