|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
18 #ifndef included_ipip_h
19 #define included_ipip_h
29 #define foreach_ipip_error \
31 _(DECAP_PKTS, "packets decapsulated") \
32 _(BAD_PROTOCOL, "bad protocol") \
33 _(NO_TUNNEL, "no tunnel") \
34 _(FRAGMENTED_PACKET, "fragmented outer packet")
38 #define _(sym, str) IPIP_ERROR_##sym,
51 } __clib_packed ipip_transport_t;
58 } __clib_packed ipip_mode_t;
65 ipip_transport_t transport;
68 } __clib_packed ipip_tunnel_key_t;
137 dal = clib_net_to_host_u64 (dal);
143 clib_net_to_host_u32 (t->
sixrd.
146 return clib_host_to_net_u32 (
ip4);
150 ip46_address_t *
src, ip46_address_t *
dst,
157 u32 ip4_fib_index,
u32 ip6_fib_index,
167 const ip46_address_t *
src,
168 const ip46_address_t *
dst,
169 u32 fib_index, ipip_tunnel_key_t *
key);
ipip_tunnel_t * ipip_tunnel_db_find_by_sw_if_index(u32 sw_if_index)
void ipip_mk_key_i(ipip_transport_t transport, ipip_mode_t mode, const ip46_address_t *src, const ip46_address_t *dst, u32 fib_index, ipip_tunnel_key_t *key)
enum tunnel_encap_decap_flags_t_ tunnel_encap_decap_flags_t
enum ip_dscp_t_ ip_dscp_t
#define foreach_ipip_error
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
vlib_node_registration_t ipip6_input_node
(constructor) VLIB_REGISTER_NODE (ipip6_input_node)
int sixrd_del_tunnel(u32 sw_if_index)
vl_api_tunnel_mode_t mode
bool ip4_protocol_registered
ipip_transport_t transport
A representation of a IPIP tunnel.
manual_print typedef ip6_prefix
vnet_hw_interface_class_t ipip_hw_interface_class
u32 * tunnel_index_by_sw_if_index
void ipip_mk_key(const ipip_tunnel_t *t, ipip_tunnel_key_t *key)
#define static_always_inline
ip46_address_t tunnel_dst
int ipip_del_tunnel(u32 sw_if_index)
static_always_inline u32 sixrd_get_addr_net(const ipip_tunnel_t *t, u64 dal)
void ipip_tunnel_db_add(ipip_tunnel_t *t, const ipip_tunnel_key_t *key)
struct _vlib_node_registration vlib_node_registration_t
struct ipip_tunnel_t::@420 sixrd
int ipip_add_tunnel(ipip_transport_t transport, u32 instance, ip46_address_t *src, ip46_address_t *dst, u32 fib_index, tunnel_encap_decap_flags_t flags, ip_dscp_t dscp, tunnel_mode_t mode, u32 *sw_if_indexp)
ip46_address_t tunnel_src
int sixrd_add_tunnel(ip6_address_t *ip6_prefix, u8 ip6_prefix_len, ip4_address_t *ip4_prefix, u8 ip4_prefix_len, ip4_address_t *ip4_src, bool security_check, u32 ip4_fib_index, u32 ip6_fib_index, u32 *sw_if_index)
manual_print typedef ip4_prefix
enum tunnel_mode_t_ tunnel_mode_t
STATIC_ASSERT_SIZEOF(ipip_tunnel_key_t, 5 *sizeof(u64))
ipip_tunnel_t * ipip_tunnel_db_find(const ipip_tunnel_key_t *key)
tunnel_encap_decap_flags_t flags
vlib_node_registration_t ipip4_input_node
(constructor) VLIB_REGISTER_NODE (ipip4_input_node)
vl_api_interface_index_t sw_if_index
struct _vnet_hw_interface_class vnet_hw_interface_class_t
bool ip6_protocol_registered
void ipip_tunnel_db_remove(ipip_tunnel_t *t, const ipip_tunnel_key_t *key)
vl_api_wireguard_peer_flags_t flags