X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=4f20ea823612796d409fbb137f849fc4a156ee08;hb=7866c4595b65f54f491ffc4e92b1f8cf94d6f142;hp=4c13e11226f7d53872dc1819c37f0c5f6cdbe233;hpb=e86a8edd3c14fb41ace2a12efd17bc7772bf623f;p=vpp.git diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 4c13e11226f..4f20ea82361 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -19,7 +19,6 @@ #include #include -#include #include #include #include @@ -1984,6 +1983,7 @@ static void vl_api_vxlan_add_del_tunnel_reply_t_handler vam->sw_if_index = ntohl (mp->sw_if_index); vam->result_ready = 1; } + vam->regenerate_interface_table = 1; } static void vl_api_vxlan_add_del_tunnel_reply_t_handler_json @@ -2052,6 +2052,7 @@ static void vl_api_vxlan_gpe_add_del_tunnel_reply_t_handler vam->sw_if_index = ntohl (mp->sw_if_index); vam->result_ready = 1; } + vam->regenerate_interface_table = 1; } static void vl_api_vxlan_gpe_add_del_tunnel_reply_t_handler_json @@ -2120,6 +2121,7 @@ static void vl_api_create_vhost_user_if_reply_t_handler vam->sw_if_index = ntohl (mp->sw_if_index); vam->result_ready = 1; } + vam->regenerate_interface_table = 1; } static void vl_api_create_vhost_user_if_reply_t_handler_json @@ -2203,7 +2205,7 @@ static void vl_api_memfd_segment_create_reply_t_handler socket_client_main_t *scm = vam->socket_client_main; int my_fd = -1; clib_error_t *error; - memfd_private_t memfd; + ssvm_private_t memfd; i32 retval = ntohl (mp->retval); if (retval == 0) @@ -2221,7 +2223,7 @@ static void vl_api_memfd_segment_create_reply_t_handler vam->client_index_invalid = 1; /* Note: this closes memfd.fd */ - retval = memfd_slave_init (&memfd); + retval = ssvm_slave_init_memfd (&memfd); if (retval) clib_warning ("WARNING: segment map returned %d", retval); @@ -5162,6 +5164,7 @@ static void vl_api_ipsec_gre_add_del_tunnel_reply_t_handler vam->sw_if_index = ntohl (mp->sw_if_index); vam->result_ready = 1; } + vam->regenerate_interface_table = 1; } static void vl_api_ipsec_gre_add_del_tunnel_reply_t_handler_json @@ -6329,73 +6332,12 @@ api_sw_interface_dump (vat_main_t * vam) /* recreate the interface name hash table */ vam->sw_if_index_by_interface_name = hash_create_string (0, sizeof (uword)); - /* Get list of ethernets */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "Ether", sizeof (mp->name_filter) - 1); - S (mp); - - /* and local / loopback interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "lo", sizeof (mp->name_filter) - 1); - S (mp); - - /* and packet-generator interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "pg", sizeof (mp->name_filter) - 1); - S (mp); - - /* and vxlan-gpe tunnel interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "vxlan_gpe", - sizeof (mp->name_filter) - 1); - S (mp); - - /* and vxlan tunnel interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "vxlan", sizeof (mp->name_filter) - 1); - S (mp); - - /* and geneve tunnel interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "geneve", sizeof (mp->name_filter) - 1); - S (mp); - - /* and host (af_packet) interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "host", sizeof (mp->name_filter) - 1); - S (mp); - - /* and l2tpv3 tunnel interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "l2tpv3_tunnel", - sizeof (mp->name_filter) - 1); - S (mp); - - /* and GRE tunnel interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "gre", sizeof (mp->name_filter) - 1); - S (mp); - - /* and LISP-GPE interfaces */ - M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "lisp_gpe", - sizeof (mp->name_filter) - 1); - S (mp); - - /* and IPSEC tunnel interfaces */ + /* + * Ask for all interface names. Otherwise, the epic catalog of + * name filters becomes ridiculously long, and vat ends up needing + * to be taught about new interface types. + */ M (SW_INTERFACE_DUMP, mp); - mp->name_filter_valid = 1; - strncpy ((char *) mp->name_filter, "ipsec", sizeof (mp->name_filter) - 1); S (mp); /* Use a control ping for synchronization */ @@ -7830,8 +7772,12 @@ api_tap_create_v2 (vat_main_t * vam) u8 host_mac_addr_set = 0; u8 *host_bridge = 0; ip4_address_t host_ip4_addr; + ip4_address_t host_ip4_gw; + u8 host_ip4_gw_set = 0; u32 host_ip4_prefix_len = 0; ip6_address_t host_ip6_addr; + ip6_address_t host_ip6_gw; + u8 host_ip6_gw_set = 0; u32 host_ip6_prefix_len = 0; int ret; int rx_ring_sz = 0, tx_ring_sz = 0; @@ -7862,6 +7808,12 @@ api_tap_create_v2 (vat_main_t * vam) else if (unformat (i, "host-ip6-addr %U/%d", unformat_ip6_address, &host_ip6_addr, &host_ip6_prefix_len)) ; + else if (unformat (i, "host-ip4-gw %U", unformat_ip4_address, + &host_ip4_gw)) + host_ip4_gw_set = 1; + else if (unformat (i, "host-ip6-gw %U", unformat_ip6_address, + &host_ip6_gw)) + host_ip6_gw_set = 1; else if (unformat (i, "rx-ring-size %d", &rx_ring_sz)) ; else if (unformat (i, "tx-ring-size %d", &tx_ring_sz)) @@ -7943,7 +7895,10 @@ api_tap_create_v2 (vat_main_t * vam) clib_memcpy (mp->host_ip4_addr, &host_ip4_addr, 4); if (host_ip4_prefix_len) clib_memcpy (mp->host_ip6_addr, &host_ip6_addr, 16); - + if (host_ip4_gw_set) + clib_memcpy (mp->host_ip4_gw, &host_ip4_gw, 4); + if (host_ip6_gw_set) + clib_memcpy (mp->host_ip6_gw, &host_ip6_gw, 16); vec_free (host_ns); vec_free (host_if_name);