X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=5836e3c307db2b6ff948d453d5ea7c26ab5a96dd;hb=f2922422d972644e67d1ca989e40cd0100ecb06d;hp=0e2fec32218afe9e0aedd4baa9b381966efe4a65;hpb=2b5ba9501c3dda3645bf01eb53b2821471f2a946;p=vpp.git diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 0e2fec32218..5836e3c307d 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -2466,8 +2466,8 @@ static void vl_api_vxlan_gpe_add_del_tunnel_reply_t_handler_json vam->result_ready = 1; } -static void vl_api_gre_add_del_tunnel_reply_t_handler - (vl_api_gre_add_del_tunnel_reply_t * mp) +static void vl_api_gre_tunnel_add_del_reply_t_handler + (vl_api_gre_tunnel_add_del_reply_t * mp) { vat_main_t *vam = &vat_main; i32 retval = ntohl (mp->retval); @@ -2483,8 +2483,8 @@ static void vl_api_gre_add_del_tunnel_reply_t_handler } } -static void vl_api_gre_add_del_tunnel_reply_t_handler_json - (vl_api_gre_add_del_tunnel_reply_t * mp) +static void vl_api_gre_tunnel_add_del_reply_t_handler_json + (vl_api_gre_tunnel_add_del_reply_t * mp) { vat_main_t *vam = &vat_main; vat_json_node_t node; @@ -2697,13 +2697,23 @@ vl_api_ip_details_t_handler_json (vl_api_ip_details_t * mp) static void vl_api_dhcp_compl_event_t_handler (vl_api_dhcp_compl_event_t * mp) { - errmsg ("DHCP compl event: pid %d %s hostname %s host_addr %U " - "router_addr %U host_mac %U", - ntohl (mp->pid), mp->lease.is_ipv6 ? "ipv6" : "ipv4", - mp->lease.hostname, - format_ip4_address, &mp->lease.host_address, - format_ip4_address, &mp->lease.router_address, - format_ethernet_address, mp->lease.host_mac); + u8 *s, i; + + s = format (0, "DHCP compl event: pid %d %s hostname %s host_addr %U " + "host_mac %U router_addr %U", + ntohl (mp->pid), mp->lease.is_ipv6 ? "ipv6" : "ipv4", + mp->lease.hostname, + format_ip4_address, mp->lease.host_address, + format_ethernet_address, mp->lease.host_mac, + format_ip4_address, mp->lease.router_address); + + for (i = 0; i < mp->lease.count; i++) + s = + format (s, " domain_server_addr %U", format_ip4_address, + mp->lease.domain_server[i].address); + + errmsg ((char *) s); + vec_free (s); } static void vl_api_dhcp_compl_event_t_handler_json @@ -5160,7 +5170,6 @@ _(proxy_arp_add_del_reply) \ _(proxy_arp_intfc_enable_disable_reply) \ _(sw_interface_set_unnumbered_reply) \ _(ip_neighbor_add_del_reply) \ -_(oam_add_del_reply) \ _(reset_fib_reply) \ _(dhcp_proxy_config_reply) \ _(dhcp_proxy_set_vss_reply) \ @@ -5201,9 +5210,7 @@ _(ipsec_spd_add_del_reply) \ _(ipsec_interface_add_del_spd_reply) \ _(ipsec_spd_entry_add_del_reply) \ _(ipsec_sad_entry_add_del_reply) \ -_(ipsec_sa_set_key_reply) \ _(ipsec_tunnel_if_add_del_reply) \ -_(ipsec_tunnel_if_set_key_reply) \ _(ipsec_tunnel_if_set_sa_reply) \ _(delete_loopback_reply) \ _(bd_ip_mac_add_del_reply) \ @@ -5369,7 +5376,6 @@ _(SW_INTERFACE_SET_UNNUMBERED_REPLY, \ _(IP_NEIGHBOR_ADD_DEL_REPLY, ip_neighbor_add_del_reply) \ _(CREATE_VLAN_SUBIF_REPLY, create_vlan_subif_reply) \ _(CREATE_SUBIF_REPLY, create_subif_reply) \ -_(OAM_ADD_DEL_REPLY, oam_add_del_reply) \ _(RESET_FIB_REPLY, reset_fib_reply) \ _(DHCP_PROXY_CONFIG_REPLY, dhcp_proxy_config_reply) \ _(DHCP_PROXY_SET_VSS_REPLY, dhcp_proxy_set_vss_reply) \ @@ -5413,7 +5419,7 @@ _(VXLAN_OFFLOAD_RX_REPLY, vxlan_offload_rx_reply) \ _(GENEVE_ADD_DEL_TUNNEL_REPLY, geneve_add_del_tunnel_reply) \ _(VXLAN_TUNNEL_DETAILS, vxlan_tunnel_details) \ _(GENEVE_TUNNEL_DETAILS, geneve_tunnel_details) \ -_(GRE_ADD_DEL_TUNNEL_REPLY, gre_add_del_tunnel_reply) \ +_(GRE_TUNNEL_ADD_DEL_REPLY, gre_tunnel_add_del_reply) \ _(GRE_TUNNEL_DETAILS, gre_tunnel_details) \ _(L2_FIB_CLEAR_TABLE_REPLY, l2_fib_clear_table_reply) \ _(L2_INTERFACE_EFP_FILTER_REPLY, l2_interface_efp_filter_reply) \ @@ -5444,9 +5450,7 @@ _(IPSEC_INTERFACE_ADD_DEL_SPD_REPLY, ipsec_interface_add_del_spd_reply) \ _(IPSEC_SPD_ENTRY_ADD_DEL_REPLY, ipsec_spd_entry_add_del_reply) \ _(IPSEC_SAD_ENTRY_ADD_DEL_REPLY, ipsec_sad_entry_add_del_reply) \ _(IPSEC_SA_DETAILS, ipsec_sa_details) \ -_(IPSEC_SA_SET_KEY_REPLY, ipsec_sa_set_key_reply) \ _(IPSEC_TUNNEL_IF_ADD_DEL_REPLY, ipsec_tunnel_if_add_del_reply) \ -_(IPSEC_TUNNEL_IF_SET_KEY_REPLY, ipsec_tunnel_if_set_key_reply) \ _(IPSEC_TUNNEL_IF_SET_SA_REPLY, ipsec_tunnel_if_set_sa_reply) \ _(DELETE_LOOPBACK_REPLY, delete_loopback_reply) \ _(BD_IP_MAC_ADD_DEL_REPLY, bd_ip_mac_add_del_reply) \ @@ -7673,9 +7677,9 @@ api_virtio_pci_create (vat_main_t * vam) vl_api_virtio_pci_create_t *mp; u8 mac_address[6]; u8 random_mac = 1; + u8 gso_enabled = 0; u32 pci_addr = 0; u64 features = (u64) ~ (0ULL); - u32 rx_ring_sz = 0, tx_ring_sz = 0; int ret; clib_memset (mac_address, 0, sizeof (mac_address)); @@ -7691,10 +7695,8 @@ api_virtio_pci_create (vat_main_t * vam) ; else if (unformat (i, "features 0x%llx", &features)) ; - else if (unformat (i, "rx-ring-size %u", &rx_ring_sz)) - ; - else if (unformat (i, "tx-ring-size %u", &tx_ring_sz)) - ; + else if (unformat (i, "gso-enabled")) + gso_enabled = 1; else break; } @@ -7704,26 +7706,6 @@ api_virtio_pci_create (vat_main_t * vam) errmsg ("pci address must be non zero. "); return -99; } - if (!is_pow2 (rx_ring_sz)) - { - errmsg ("rx ring size must be power of 2. "); - return -99; - } - if (rx_ring_sz > 32768) - { - errmsg ("rx ring size must be 32768 or lower. "); - return -99; - } - if (!is_pow2 (tx_ring_sz)) - { - errmsg ("tx ring size must be power of 2. "); - return -99; - } - if (tx_ring_sz > 32768) - { - errmsg ("tx ring size must be 32768 or lower. "); - return -99; - } /* Construct the API message */ M (VIRTIO_PCI_CREATE, mp); @@ -7732,8 +7714,6 @@ api_virtio_pci_create (vat_main_t * vam) mp->pci_addr = htonl (pci_addr); mp->features = clib_host_to_net_u64 (features); - mp->rx_ring_sz = htons (rx_ring_sz); - mp->tx_ring_sz = htons (tx_ring_sz); if (random_mac == 0) clib_memcpy (mp->mac_address, mac_address, 6); @@ -9529,59 +9509,6 @@ api_create_subif (vat_main_t * vam) return ret; } -static int -api_oam_add_del (vat_main_t * vam) -{ - unformat_input_t *i = vam->input; - vl_api_oam_add_del_t *mp; - u32 vrf_id = 0; - u8 is_add = 1; - ip4_address_t src, dst; - u8 src_set = 0; - u8 dst_set = 0; - int ret; - - while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) - { - if (unformat (i, "vrf %d", &vrf_id)) - ; - else if (unformat (i, "src %U", unformat_ip4_address, &src)) - src_set = 1; - else if (unformat (i, "dst %U", unformat_ip4_address, &dst)) - dst_set = 1; - else if (unformat (i, "del")) - is_add = 0; - else - { - clib_warning ("parse error '%U'", format_unformat_error, i); - return -99; - } - } - - if (src_set == 0) - { - errmsg ("missing src addr"); - return -99; - } - - if (dst_set == 0) - { - errmsg ("missing dst addr"); - return -99; - } - - M (OAM_ADD_DEL, mp); - - mp->vrf_id = ntohl (vrf_id); - mp->is_add = is_add; - clib_memcpy (mp->src_address, &src, sizeof (mp->src_address)); - clib_memcpy (mp->dst_address, &dst, sizeof (mp->dst_address)); - - S (mp); - W (ret); - return ret; -} - static int api_reset_fib (vat_main_t * vam) { @@ -13292,16 +13219,17 @@ api_geneve_tunnel_dump (vat_main_t * vam) } static int -api_gre_add_del_tunnel (vat_main_t * vam) +api_gre_tunnel_add_del (vat_main_t * vam) { unformat_input_t *line_input = vam->input; - vl_api_gre_add_del_tunnel_t *mp; - ip4_address_t src4, dst4; - ip6_address_t src6, dst6; + vl_api_address_t src = { }, dst = + { + }; + vl_api_gre_tunnel_add_del_t *mp; + vl_api_gre_tunnel_type_t t_type; u8 is_add = 1; u8 ipv4_set = 0; u8 ipv6_set = 0; - u8 t_type = GRE_TUNNEL_TYPE_L3; u8 src_set = 0; u8 dst_set = 0; u32 outer_fib_id = 0; @@ -13309,10 +13237,7 @@ api_gre_add_del_tunnel (vat_main_t * vam) u32 instance = ~0; int ret; - clib_memset (&src4, 0, sizeof src4); - clib_memset (&dst4, 0, sizeof dst4); - clib_memset (&src6, 0, sizeof src6); - clib_memset (&dst6, 0, sizeof dst6); + t_type = GRE_API_TUNNEL_TYPE_L3; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { @@ -13320,32 +13245,20 @@ api_gre_add_del_tunnel (vat_main_t * vam) is_add = 0; else if (unformat (line_input, "instance %d", &instance)) ; - else if (unformat (line_input, "src %U", unformat_ip4_address, &src4)) - { - src_set = 1; - ipv4_set = 1; - } - else if (unformat (line_input, "dst %U", unformat_ip4_address, &dst4)) - { - dst_set = 1; - ipv4_set = 1; - } - else if (unformat (line_input, "src %U", unformat_ip6_address, &src6)) + else if (unformat (line_input, "src %U", unformat_vl_api_address, &src)) { src_set = 1; - ipv6_set = 1; } - else if (unformat (line_input, "dst %U", unformat_ip6_address, &dst6)) + else if (unformat (line_input, "dst %U", unformat_vl_api_address, &dst)) { dst_set = 1; - ipv6_set = 1; } else if (unformat (line_input, "outer-fib-id %d", &outer_fib_id)) ; else if (unformat (line_input, "teb")) - t_type = GRE_TUNNEL_TYPE_TEB; + t_type = GRE_API_TUNNEL_TYPE_TEB; else if (unformat (line_input, "erspan %d", &session_id)) - t_type = GRE_TUNNEL_TYPE_ERSPAN; + t_type = GRE_API_TUNNEL_TYPE_ERSPAN; else { errmsg ("parse error '%U'", format_unformat_error, line_input); @@ -13363,31 +13276,17 @@ api_gre_add_del_tunnel (vat_main_t * vam) errmsg ("tunnel dst address not specified"); return -99; } - if (ipv4_set && ipv6_set) - { - errmsg ("both IPv4 and IPv6 addresses specified"); - return -99; - } + M (GRE_TUNNEL_ADD_DEL, mp); - M (GRE_ADD_DEL_TUNNEL, mp); + clib_memcpy (&mp->tunnel.src, &src, sizeof (mp->tunnel.src)); + clib_memcpy (&mp->tunnel.dst, &dst, sizeof (mp->tunnel.dst)); - if (ipv4_set) - { - clib_memcpy (&mp->src_address, &src4, 4); - clib_memcpy (&mp->dst_address, &dst4, 4); - } - else - { - clib_memcpy (&mp->src_address, &src6, 16); - clib_memcpy (&mp->dst_address, &dst6, 16); - } - mp->instance = htonl (instance); - mp->outer_fib_id = htonl (outer_fib_id); + mp->tunnel.instance = htonl (instance); + mp->tunnel.outer_fib_id = htonl (outer_fib_id); mp->is_add = is_add; - mp->session_id = htons ((u16) session_id); - mp->tunnel_type = t_type; - mp->is_ipv6 = ipv6_set; + mp->tunnel.session_id = htons ((u16) session_id); + mp->tunnel.type = htonl (t_type); S (mp); W (ret); @@ -13398,15 +13297,34 @@ static void vl_api_gre_tunnel_details_t_handler (vl_api_gre_tunnel_details_t * mp) { vat_main_t *vam = &vat_main; - ip46_address_t src = to_ip46 (mp->is_ipv6, mp->src_address); - ip46_address_t dst = to_ip46 (mp->is_ipv6, mp->dst_address); print (vam->ofp, "%11d%11d%24U%24U%13d%14d%12d", - ntohl (mp->sw_if_index), - ntohl (mp->instance), - format_ip46_address, &src, IP46_TYPE_ANY, - format_ip46_address, &dst, IP46_TYPE_ANY, - mp->tunnel_type, ntohl (mp->outer_fib_id), ntohl (mp->session_id)); + ntohl (mp->tunnel.sw_if_index), + ntohl (mp->tunnel.instance), + format_vl_api_address, &mp->tunnel.src, + format_vl_api_address, &mp->tunnel.dst, + mp->tunnel.type, ntohl (mp->tunnel.outer_fib_id), + ntohl (mp->tunnel.session_id)); +} + +static void +vat_json_object_add_address (vat_json_node_t * node, + const char *str, const vl_api_address_t * addr) +{ + if (ADDRESS_IP6 == addr->af) + { + struct in6_addr ip6; + + clib_memcpy (&ip6, &addr->un.ip6, sizeof (ip6)); + vat_json_object_add_ip6 (node, str, ip6); + } + else + { + struct in_addr ip4; + + clib_memcpy (&ip4, &addr->un.ip4, sizeof (ip4)); + vat_json_object_add_ip4 (node, str, ip4); + } } static void vl_api_gre_tunnel_details_t_handler_json @@ -13425,26 +13343,16 @@ static void vl_api_gre_tunnel_details_t_handler_json node = vat_json_array_add (&vam->json_tree); vat_json_init_object (node); - vat_json_object_add_uint (node, "sw_if_index", ntohl (mp->sw_if_index)); - vat_json_object_add_uint (node, "instance", ntohl (mp->instance)); - if (!mp->is_ipv6) - { - clib_memcpy (&ip4, &mp->src_address, sizeof (ip4)); - vat_json_object_add_ip4 (node, "src_address", ip4); - clib_memcpy (&ip4, &mp->dst_address, sizeof (ip4)); - vat_json_object_add_ip4 (node, "dst_address", ip4); - } - else - { - clib_memcpy (&ip6, &mp->src_address, sizeof (ip6)); - vat_json_object_add_ip6 (node, "src_address", ip6); - clib_memcpy (&ip6, &mp->dst_address, sizeof (ip6)); - vat_json_object_add_ip6 (node, "dst_address", ip6); - } - vat_json_object_add_uint (node, "tunnel_type", mp->tunnel_type); - vat_json_object_add_uint (node, "outer_fib_id", ntohl (mp->outer_fib_id)); - vat_json_object_add_uint (node, "is_ipv6", mp->is_ipv6); - vat_json_object_add_uint (node, "session_id", mp->session_id); + vat_json_object_add_uint (node, "sw_if_index", + ntohl (mp->tunnel.sw_if_index)); + vat_json_object_add_uint (node, "instance", ntohl (mp->tunnel.instance)); + + vat_json_object_add_address (node, "src", &mp->tunnel.src); + vat_json_object_add_address (node, "dst", &mp->tunnel.dst); + vat_json_object_add_uint (node, "tunnel_type", mp->tunnel.type); + vat_json_object_add_uint (node, "outer_fib_id", + ntohl (mp->tunnel.outer_fib_id)); + vat_json_object_add_uint (node, "session_id", mp->tunnel.session_id); } static int @@ -14992,52 +14900,6 @@ api_ipsec_sad_entry_add_del (vat_main_t * vam) return ret; } -static int -api_ipsec_sa_set_key (vat_main_t * vam) -{ - unformat_input_t *i = vam->input; - vl_api_ipsec_sa_set_key_t *mp; - u32 sa_id; - u8 *ck = 0, *ik = 0; - int ret; - - while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) - { - if (unformat (i, "sa_id %d", &sa_id)) - ; - else if (unformat (i, "crypto_key %U", unformat_hex_string, &ck)) - ; - else if (unformat (i, "integ_key %U", unformat_hex_string, &ik)) - ; - else - { - clib_warning ("parse error '%U'", format_unformat_error, i); - return -99; - } - } - - M (IPSEC_SA_SET_KEY, mp); - - mp->sa_id = ntohl (sa_id); - mp->crypto_key.length = vec_len (ck); - mp->integrity_key.length = vec_len (ik); - - if (mp->crypto_key.length > sizeof (mp->crypto_key.data)) - mp->crypto_key.length = sizeof (mp->crypto_key.data); - - if (mp->integrity_key.length > sizeof (mp->integrity_key.data)) - mp->integrity_key.length = sizeof (mp->integrity_key.data); - - if (ck) - clib_memcpy (mp->crypto_key.data, ck, mp->crypto_key.length); - if (ik) - clib_memcpy (mp->integrity_key.data, ik, mp->integrity_key.length); - - S (mp); - W (ret); - return ret; -} - static int api_ipsec_tunnel_if_add_del (vat_main_t * vam) { @@ -15267,26 +15129,6 @@ vl_api_ipsec_sa_details_t_handler (vl_api_ipsec_sa_details_t * mp) #define vl_api_ipsec_sa_details_t_endian vl_noop_handler #define vl_api_ipsec_sa_details_t_print vl_noop_handler -static void -vat_json_object_add_address (vat_json_node_t * node, - const vl_api_address_t * addr) -{ - if (ADDRESS_IP6 == addr->af) - { - struct in6_addr ip6; - - clib_memcpy (&ip6, &addr->un.ip6, sizeof (ip6)); - vat_json_object_add_ip6 (node, "ip_address", ip6); - } - else - { - struct in_addr ip4; - - clib_memcpy (&ip4, &addr->un.ip4, sizeof (ip4)); - vat_json_object_add_ip4 (node, "ip_address", ip4); - } -} - static void vl_api_ipsec_sa_details_t_handler_json (vl_api_ipsec_sa_details_t * mp) { @@ -15325,8 +15167,8 @@ static void vl_api_ipsec_sa_details_t_handler_json mp->entry.crypto_key.length); vat_json_object_add_bytes (node, "integ_key", mp->entry.integrity_key.data, mp->entry.integrity_key.length); - vat_json_object_add_address (node, &mp->entry.tunnel_src); - vat_json_object_add_address (node, &mp->entry.tunnel_dst); + vat_json_object_add_address (node, "src", &mp->entry.tunnel_src); + vat_json_object_add_address (node, "dst", &mp->entry.tunnel_dst); vat_json_object_add_uint (node, "replay_window", clib_net_to_host_u64 (mp->replay_window)); } @@ -15365,84 +15207,6 @@ api_ipsec_sa_dump (vat_main_t * vam) return ret; } -static int -api_ipsec_tunnel_if_set_key (vat_main_t * vam) -{ - unformat_input_t *i = vam->input; - vl_api_ipsec_tunnel_if_set_key_t *mp; - u32 sw_if_index = ~0; - u8 key_type = IPSEC_IF_SET_KEY_TYPE_NONE; - u8 *key = 0; - u32 alg = ~0; - int ret; - - while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) - { - if (unformat (i, "%U", api_unformat_sw_if_index, vam, &sw_if_index)) - ; - else - if (unformat - (i, "local crypto %U", unformat_ipsec_api_crypto_alg, &alg)) - key_type = IPSEC_IF_SET_KEY_TYPE_LOCAL_CRYPTO; - else - if (unformat - (i, "remote crypto %U", unformat_ipsec_api_crypto_alg, &alg)) - key_type = IPSEC_IF_SET_KEY_TYPE_REMOTE_CRYPTO; - else - if (unformat - (i, "local integ %U", unformat_ipsec_api_integ_alg, &alg)) - key_type = IPSEC_IF_SET_KEY_TYPE_LOCAL_INTEG; - else - if (unformat - (i, "remote integ %U", unformat_ipsec_api_integ_alg, &alg)) - key_type = IPSEC_IF_SET_KEY_TYPE_REMOTE_INTEG; - else if (unformat (i, "%U", unformat_hex_string, &key)) - ; - else - { - clib_warning ("parse error '%U'", format_unformat_error, i); - return -99; - } - } - - if (sw_if_index == ~0) - { - errmsg ("interface must be specified"); - return -99; - } - - if (key_type == IPSEC_IF_SET_KEY_TYPE_NONE) - { - errmsg ("key type must be specified"); - return -99; - } - - if (alg == ~0) - { - errmsg ("algorithm must be specified"); - return -99; - } - - if (vec_len (key) == 0) - { - errmsg ("key must be specified"); - return -99; - } - - M (IPSEC_TUNNEL_IF_SET_KEY, mp); - - mp->sw_if_index = htonl (sw_if_index); - mp->alg = alg; - mp->key_type = key_type; - mp->key_len = vec_len (key); - clib_memcpy (mp->key, key, vec_len (key)); - - S (mp); - W (ret); - - return ret; -} - static int api_ipsec_tunnel_if_set_sa (vat_main_t * vam) { @@ -19506,7 +19270,7 @@ static void vl_api_ip_neighbor_details_t_handler_json vat_json_object_add_string_copy (node, "link_layer", format (0, "%U", format_vl_api_mac_address, &mp->neighbor.mac_address)); - vat_json_object_add_address (node, &mp->neighbor.ip_address); + vat_json_object_add_address (node, "ip", &mp->neighbor.ip_address); } static int @@ -20476,16 +20240,18 @@ static int api_set_punt (vat_main_t * vam) { unformat_input_t *i = vam->input; + vl_api_address_family_t af; vl_api_set_punt_t *mp; u32 ipv = ~0; u32 protocol = ~0; u32 port = ~0; int is_add = 1; + u8 is_ip4 = 1; int ret; while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { - if (unformat (i, "ip %d", &ipv)) + if (unformat (i, "%U", unformat_vl_api_address_family, &af)) ; else if (unformat (i, "protocol %d", &protocol)) ; @@ -20503,9 +20269,10 @@ api_set_punt (vat_main_t * vam) M (SET_PUNT, mp); mp->is_add = (u8) is_add; - mp->punt.ipv = (u8) ipv; - mp->punt.l4_protocol = (u8) protocol; - mp->punt.l4_port = htons ((u16) port); + mp->punt.type = PUNT_API_TYPE_L4; + mp->punt.punt.l4.af = af; + mp->punt.punt.l4.protocol = (u8) protocol; + mp->punt.punt.l4.port = htons ((u16) port); S (mp); W (ret); @@ -22379,7 +22146,7 @@ _(tap_delete_v2, \ " | sw_if_index ") \ _(sw_interface_tap_v2_dump, "") \ _(virtio_pci_create, \ - "pci-addr [use_random_mac | hw-addr ] [tx-ring-size [rx-ring-size ] [features ]") \ + "pci-addr [use_random_mac | hw-addr ] [features ] [gso-enabled]") \ _(virtio_pci_delete, \ " | sw_if_index ") \ _(sw_interface_virtio_pci_dump, "") \ @@ -22445,7 +22212,6 @@ _(create_subif, " | sw_if_index sub_id \n" \ "[outer_vlan_id ][inner_vlan_id ]\n" \ "[no_tags][one_tag][two_tags][dot1ad][exact_match][default_sub]\n" \ "[outer_vlan_id_any][inner_vlan_id_any]") \ -_(oam_add_del, "src dst [vrf ] [del]") \ _(reset_fib, "vrf [ipv6]") \ _(dhcp_proxy_config, \ "svr src \n" \ @@ -22519,7 +22285,7 @@ _(geneve_add_del_tunnel, \ "vni [encap-vrf-id ] [decap-next ] [del]") \ _(vxlan_tunnel_dump, "[ | sw_if_index ]") \ _(geneve_tunnel_dump, "[ | sw_if_index ]") \ -_(gre_add_del_tunnel, \ +_(gre_tunnel_add_del, \ "src dst [outer-fib-id ] [instance ]\n" \ "[teb | erspan ] [del]") \ _(gre_tunnel_dump, "[ | sw_if_index ]") \ @@ -22570,15 +22336,12 @@ _(ipsec_spd_entry_add_del, "spd_id priority action \n" \ " (inbound|outbound) [sa_id ] laddr_start \n" \ " laddr_stop raddr_start raddr_stop \n" \ " [lport_start lport_stop ] [rport_start rport_stop ]" ) \ -_(ipsec_sa_set_key, "sa_id crypto_key integ_key ") \ _(ipsec_tunnel_if_add_del, "local_spi remote_spi \n" \ " crypto_alg local_crypto_key remote_crypto_key \n" \ " integ_alg local_integ_key remote_integ_key \n" \ " local_ip remote_ip [esn] [anti_replay] [del]\n" \ " [instance ]") \ _(ipsec_sa_dump, "[sa_id ]") \ -_(ipsec_tunnel_if_set_key, " \n" \ - " \n") \ _(ipsec_tunnel_if_set_sa, " sa_id \n") \ _(delete_loopback,"sw_if_index ") \ _(bd_ip_mac_add_del, "bd_id [del]") \