_(vni) \
_(protocol) \
_(encap_fib_index) \
-_(decap_fib_index) \
-_(decap_next_index)
+_(decap_fib_index)
#define foreach_copy_ipv4 { \
_(local.ip4.as_u32) \
if (p)
return VNET_API_ERROR_INVALID_VALUE;
- if (a->decap_next_index >= VXLAN_GPE_INPUT_N_NEXT)
- return VNET_API_ERROR_INVALID_DECAP_NEXT;
-
pool_get_aligned (gm->tunnels, t, CLIB_CACHE_LINE_BYTES);
memset (t, 0, sizeof (*t));
return p[0];
}
-static uword unformat_gpe_decap_next (unformat_input_t * input, va_list * args)
-{
- u32 * result = va_arg (*args, u32 *);
- u32 tmp;
-
- if (unformat (input, "drop"))
- *result = VXLAN_GPE_INPUT_NEXT_DROP;
- else if (unformat (input, "ip4"))
- *result = VXLAN_GPE_INPUT_NEXT_IP4_INPUT;
- else if (unformat (input, "ip6"))
- *result = VXLAN_GPE_INPUT_NEXT_IP6_INPUT;
- else if (unformat (input, "ethernet"))
- *result = VXLAN_GPE_INPUT_NEXT_ETHERNET_INPUT;
- else if (unformat (input, "%d", &tmp))
- *result = tmp;
- else
- return 0;
- return 1;
-}
-
static clib_error_t *
vxlan_gpe_add_del_tunnel_command_fn (vlib_main_t * vm,
unformat_input_t * input,
u32 encap_fib_index = 0;
u32 decap_fib_index = 0;
u8 protocol = VXLAN_GPE_PROTOCOL_IP4;
- u32 decap_next_index = VXLAN_GPE_INPUT_NEXT_IP4_INPUT;
u32 vni;
u8 vni_set = 0;
int rv;
if (decap_fib_index == ~0)
return clib_error_return (0, "nonexistent decap fib id %d", tmp);
}
- else if (unformat (line_input, "decap-next %U", unformat_gpe_decap_next,
- &decap_next_index))
- ;
else if (unformat (line_input, "vni %d", &vni))
vni_set = 1;
else if (unformat(line_input, "next-ip4"))
}) ip6_vxlan_gpe_header_t;
typedef CLIB_PACKED(struct {
- /*
- * Key fields: local remote, vni
+ /*
+ * Key fields: local remote, vni
* all fields in NET byte order
*/
union {
/* vxlan VNI in HOST byte order, shifted left 8 bits */
u32 vni;
- /*decap next index*/
- u32 decap_next_index;
-
/* vnet intfc hw/sw_if_index */
u32 hw_if_index;
u32 sw_if_index;
_(DROP, "error-drop") \
_(IP4_INPUT, "ip4-input") \
_(IP6_INPUT, "ip6-input") \
-_(ETHERNET_INPUT, "ethernet-input")
+_(ETHERNET_INPUT, "ethernet-input")
typedef enum {
#define _(s,n) VXLAN_GPE_INPUT_NEXT_##s,
u8 protocol;
u32 encap_fib_index;
u32 decap_fib_index;
- u32 decap_next_index;
u32 vni;
} vnet_vxlan_gpe_add_del_tunnel_args_t;
-int vnet_vxlan_gpe_add_del_tunnel
+int vnet_vxlan_gpe_add_del_tunnel
(vnet_vxlan_gpe_add_del_tunnel_args_t *a, u32 * sw_if_indexp);