diff options
Diffstat (limited to 'vpp/api/api.c')
-rw-r--r-- | vpp/api/api.c | 121 |
1 files changed, 14 insertions, 107 deletions
diff --git a/vpp/api/api.c b/vpp/api/api.c index 9bf4d3c9..24f7d9c0 100644 --- a/vpp/api/api.c +++ b/vpp/api/api.c @@ -67,8 +67,7 @@ #include <vnet/vxlan/vxlan.h> #include <vnet/gre/gre.h> #include <vnet/l2/l2_vtr.h> -#include <vnet/nsh-gre/nsh_gre.h> -#include <vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h> +#include <vnet/vxlan-gpe/vxlan_gpe.h> #include <vnet/lisp-gpe/lisp_gpe.h> #include <vnet/lisp-cp/control.h> #include <vnet/map/map.h> @@ -288,10 +287,9 @@ _(IP_ADDRESS_DUMP, ip_address_dump) \ _(IP_DUMP, ip_dump) \ _(SW_INTERFACE_VHOST_USER_DETAILS, sw_interface_vhost_user_details) \ _(SHOW_VERSION, show_version) \ -_(NSH_GRE_ADD_DEL_TUNNEL, nsh_gre_add_del_tunnel) \ _(L2_FIB_TABLE_DUMP, l2_fib_table_dump) \ _(L2_FIB_TABLE_ENTRY, l2_fib_table_entry) \ -_(NSH_VXLAN_GPE_ADD_DEL_TUNNEL, nsh_vxlan_gpe_add_del_tunnel) \ +_(VXLAN_GPE_ADD_DEL_TUNNEL, vxlan_gpe_add_del_tunnel) \ _(INTERFACE_NAME_RENUMBER, interface_name_renumber) \ _(WANT_IP4_ARP_EVENTS, want_ip4_arp_events) \ _(INPUT_ACL_SET_INTERFACE, input_acl_set_interface) \ @@ -4528,88 +4526,18 @@ vl_api_l2_patch_add_del_t_handler (vl_api_l2_patch_add_del_t *mp) } static void -vl_api_nsh_gre_add_del_tunnel_t_handler -(vl_api_nsh_gre_add_del_tunnel_t * mp) +vl_api_vxlan_gpe_add_del_tunnel_t_handler +(vl_api_vxlan_gpe_add_del_tunnel_t * mp) { - vl_api_nsh_gre_add_del_tunnel_reply_t * rmp; + vl_api_vxlan_gpe_add_del_tunnel_reply_t * rmp; int rv = 0; - vnet_nsh_gre_add_del_tunnel_args_t _a, *a = &_a; + vnet_vxlan_gpe_add_del_tunnel_args_t _a, *a = &_a; u32 encap_fib_index, decap_fib_index; - u32 decap_next_index; + u8 protocol; uword * p; ip4_main_t * im = &ip4_main; - u32 * tlvs = 0; u32 sw_if_index = ~0; - int i; - - p = hash_get (im->fib_index_by_table_id, ntohl(mp->encap_vrf_id)); - if (! p) { - rv = VNET_API_ERROR_NO_SUCH_FIB; - goto out; - } - encap_fib_index = p[0]; - - decap_next_index = ntohl(mp->decap_next_index); - - /* Interpret decap_vrf_id as an opaque if sending to other-than-ip4-input */ - if (decap_next_index == NSH_GRE_INPUT_NEXT_IP4_INPUT) { - p = hash_get (im->fib_index_by_table_id, ntohl(mp->decap_vrf_id)); - if (! p) { - rv = VNET_API_ERROR_NO_SUCH_INNER_FIB; - goto out; - } - decap_fib_index = p[0]; - } else { - decap_fib_index = ntohl(mp->decap_vrf_id); - } - - memset (a, 0, sizeof (*a)); - a->is_add = mp->is_add; - /* ip addresses sent in network byte order */ - a->src.as_u32 = ntohl(mp->src); - a->dst.as_u32 = ntohl(mp->dst); - a->encap_fib_index = encap_fib_index; - a->decap_fib_index = decap_fib_index; - a->decap_next_index = decap_next_index; - a->nsh_hdr.ver_o_c = mp->ver_o_c; - a->nsh_hdr.length = mp->length; - a->nsh_hdr.md_type = mp->md_type; - a->nsh_hdr.next_protocol = mp->next_protocol; - a->nsh_hdr.spi_si = ntohl(mp->spi_si); - a->nsh_hdr.c1 = ntohl(mp->c1); - a->nsh_hdr.c2 = ntohl(mp->c2); - a->nsh_hdr.c3 = ntohl(mp->c3); - a->nsh_hdr.c4 = ntohl(mp->c4); - - for (i = 0; i < mp->tlv_len_in_words; i++) - vec_add1 (tlvs, ntohl(mp->tlvs[i])); - - a->nsh_hdr.tlvs = tlvs; - - rv = vnet_nsh_gre_add_del_tunnel (a, &sw_if_index); - -out: - REPLY_MACRO2(VL_API_NSH_GRE_ADD_DEL_TUNNEL_REPLY, - ({ - rmp->sw_if_index = ntohl (sw_if_index); - })); -} - -static void -vl_api_nsh_vxlan_gpe_add_del_tunnel_t_handler -(vl_api_nsh_vxlan_gpe_add_del_tunnel_t * mp) -{ - vl_api_nsh_vxlan_gpe_add_del_tunnel_reply_t * rmp; - int rv = 0; - vnet_nsh_vxlan_gpe_add_del_tunnel_args_t _a, *a = &_a; - u32 encap_fib_index, decap_fib_index; - u32 decap_next_index; - uword * p; - ip4_main_t * im = &ip4_main; - u32 * tlvs = 0; - u32 sw_if_index = ~0; - int i; p = hash_get (im->fib_index_by_table_id, ntohl(mp->encap_vrf_id)); if (! p) { @@ -4618,10 +4546,10 @@ vl_api_nsh_vxlan_gpe_add_del_tunnel_t_handler } encap_fib_index = p[0]; - decap_next_index = ntohl(mp->decap_next_index); + protocol = ntohl(mp->protocol); /* Interpret decap_vrf_id as an opaque if sending to other-than-ip4-input */ - if (decap_next_index == NSH_GRE_INPUT_NEXT_IP4_INPUT) { + if (protocol == VXLAN_GPE_INPUT_NEXT_IP4_INPUT) { p = hash_get (im->fib_index_by_table_id, ntohl(mp->decap_vrf_id)); if (! p) { rv = VNET_API_ERROR_NO_SUCH_INNER_FIB; @@ -4636,31 +4564,16 @@ vl_api_nsh_vxlan_gpe_add_del_tunnel_t_handler a->is_add = mp->is_add; /* ip addresses sent in network byte order */ - a->src.as_u32 = ntohl(mp->src); - a->dst.as_u32 = ntohl(mp->dst); + a->local.as_u32 = ntohl(mp->local); + a->remote.as_u32 = ntohl(mp->remote); a->encap_fib_index = encap_fib_index; a->decap_fib_index = decap_fib_index; - a->decap_next_index = decap_next_index; + a->protocol = protocol; a->vni = ntohl(mp->vni); - a->nsh_hdr.ver_o_c = mp->ver_o_c; - a->nsh_hdr.length = mp->length; - a->nsh_hdr.md_type = mp->md_type; - a->nsh_hdr.next_protocol = mp->next_protocol; - a->nsh_hdr.spi_si = ntohl(mp->spi_si); - a->nsh_hdr.c1 = ntohl(mp->c1); - a->nsh_hdr.c2 = ntohl(mp->c2); - a->nsh_hdr.c3 = ntohl(mp->c3); - a->nsh_hdr.c4 = ntohl(mp->c4); - - for (i = 0; i < mp->tlv_len_in_words; i++) - vec_add1 (tlvs, ntohl(mp->tlvs[i])); - - a->nsh_hdr.tlvs = tlvs; - - rv = vnet_nsh_vxlan_gpe_add_del_tunnel (a, &sw_if_index); + rv = vnet_vxlan_gpe_add_del_tunnel (a, &sw_if_index); out: - REPLY_MACRO2(VL_API_NSH_VXLAN_GPE_ADD_DEL_TUNNEL_REPLY, + REPLY_MACRO2(VL_API_VXLAN_GPE_ADD_DEL_TUNNEL_REPLY, ({ rmp->sw_if_index = ntohl (sw_if_index); })); @@ -6044,12 +5957,6 @@ vpe_api_hookup (vlib_main_t *vm) am->api_trace_cfg [VL_API_VXLAN_ADD_DEL_TUNNEL].size += 16 * sizeof (u32); - /* - * trace space for 4 nsh-gre variable TLV words - */ - am->api_trace_cfg [VL_API_NSH_GRE_ADD_DEL_TUNNEL].size - += 4 * sizeof (u32); - /* * Thread-safe API messages */ |