diff options
author | Vengada Govindan <venggovi@cisco.com> | 2016-10-12 05:54:09 -0700 |
---|---|---|
committer | Vengada Govindan <venggovi@cisco.com> | 2016-12-09 06:15:02 +0000 |
commit | 6d403a013276f095e542c9b6281db96354fa6f07 (patch) | |
tree | 3954b21a8fe2bb789d42f6f6234344d39c4e1e4d /vnet/vnet/vxlan-gpe/vxlan_gpe.h | |
parent | c9b20bc7a5399fd1e7bf2d33e7c4f1f08ef1c1e4 (diff) |
VPP-470: Introduce VxLAN-GPE as transport for iOAM.
See Jira ticket for more details
- New plugins created to (a) Add VxLAN-GPE as transport (b) Provide export infra for
VxLAN-GPE.
Change-Id: Ife50c7434f53d17a4783062310f73d063d53494c
Signed-off-by: Vengada Govindan <venggovi@cisco.com>
Diffstat (limited to 'vnet/vnet/vxlan-gpe/vxlan_gpe.h')
-rw-r--r-- | vnet/vnet/vxlan-gpe/vxlan_gpe.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/vnet/vnet/vxlan-gpe/vxlan_gpe.h b/vnet/vnet/vxlan-gpe/vxlan_gpe.h index e33725f3ef3..1b4bc44e7bb 100644 --- a/vnet/vnet/vxlan-gpe/vxlan_gpe.h +++ b/vnet/vnet/vxlan-gpe/vxlan_gpe.h @@ -114,6 +114,12 @@ typedef struct { /** flags */ u32 flags; + + /** rewrite size for dynamic plugins like iOAM */ + u8 rewrite_size; + + /** Next node after VxLAN-GPE encap */ + uword encap_next_node; } vxlan_gpe_tunnel_t; /** Flags for vxlan_gpe_tunnel_t */ @@ -162,6 +168,9 @@ typedef struct { vlib_main_t * vlib_main; /** State convenience vnet_main_t */ vnet_main_t * vnet_main; + + /** List of next nodes for the decap indexed on protocol */ + uword decap_next_node_list[VXLAN_GPE_PROTOCOL_MAX]; } vxlan_gpe_main_t; vxlan_gpe_main_t vxlan_gpe_main; @@ -188,7 +197,25 @@ int vnet_vxlan_gpe_add_del_tunnel (vnet_vxlan_gpe_add_del_tunnel_args_t *a, u32 * sw_if_indexp); +int vxlan4_gpe_rewrite (vxlan_gpe_tunnel_t * t, u32 extension_size, + u8 protocol_override, uword encap_next_node); +int vxlan6_gpe_rewrite (vxlan_gpe_tunnel_t * t, u32 extension_size, + u8 protocol_override, uword encap_next_node); + +/** + * @brief Struct for defining VXLAN GPE next nodes + */ +typedef enum { + VXLAN_GPE_ENCAP_NEXT_IP4_LOOKUP, + VXLAN_GPE_ENCAP_NEXT_IP6_LOOKUP, + VXLAN_GPE_ENCAP_NEXT_DROP, + VXLAN_GPE_ENCAP_N_NEXT +} vxlan_gpe_encap_next_t; + + +void vxlan_gpe_unregister_decap_protocol (u8 protocol_id, uword next_node_index); +void vxlan_gpe_register_decap_protocol (u8 protocol_id, uword next_node_index); #endif /* included_vnet_vxlan_gpe_h */ |