X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvat%2Fapi_format.c;h=d334bcce87098a26c26501f3e4d2f65c63a8802d;hb=f0b42f48;hp=0dde721aa1e48f9e27a5b2019943208a21640741;hpb=e166fd90d68e8b2e4c10529652992465bdf4e8c3;p=vpp.git diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 0dde721aa1e..d334bcce870 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -5549,6 +5549,7 @@ _(SW_INTERFACE_ADD_DEL_ADDRESS_REPLY, \ sw_interface_add_del_address_reply) \ _(SW_INTERFACE_SET_RX_MODE_REPLY, sw_interface_set_rx_mode_reply) \ _(SW_INTERFACE_SET_RX_PLACEMENT_REPLY, sw_interface_set_rx_placement_reply) \ +_(SW_INTERFACE_RX_PLACEMENT_DETAILS, sw_interface_rx_placement_details) \ _(SW_INTERFACE_SET_TABLE_REPLY, sw_interface_set_table_reply) \ _(SW_INTERFACE_SET_MPLS_ENABLE_REPLY, sw_interface_set_mpls_enable_reply) \ _(SW_INTERFACE_SET_VPATH_REPLY, sw_interface_set_vpath_reply) \ @@ -6620,6 +6621,82 @@ api_sw_interface_set_rx_placement (vat_main_t * vam) return ret; } +static void vl_api_sw_interface_rx_placement_details_t_handler + (vl_api_sw_interface_rx_placement_details_t * mp) +{ + vat_main_t *vam = &vat_main; + u32 worker_id = ntohl (mp->worker_id); + + print (vam->ofp, + "\n%-11d %-11s %-6d %-5d %-9s", + ntohl (mp->sw_if_index), (worker_id == 0) ? "main" : "worker", + worker_id, ntohl (mp->queue_id), + (mp->mode == + 1) ? "polling" : ((mp->mode == 2) ? "interrupt" : "adaptive")); +} + +static void vl_api_sw_interface_rx_placement_details_t_handler_json + (vl_api_sw_interface_rx_placement_details_t * mp) +{ + vat_main_t *vam = &vat_main; + vat_json_node_t *node = NULL; + + if (VAT_JSON_ARRAY != vam->json_tree.type) + { + ASSERT (VAT_JSON_NONE == vam->json_tree.type); + vat_json_init_array (&vam->json_tree); + } + 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, "worker_id", ntohl (mp->worker_id)); + vat_json_object_add_uint (node, "queue_id", ntohl (mp->queue_id)); + vat_json_object_add_uint (node, "mode", mp->mode); +} + +static int +api_sw_interface_rx_placement_dump (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_sw_interface_rx_placement_dump_t *mp; + vl_api_control_ping_t *mp_ping; + int ret; + u32 sw_if_index; + u8 sw_if_index_set = 0; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "%U", api_unformat_sw_if_index, vam, &sw_if_index)) + sw_if_index_set++; + else if (unformat (i, "sw_if_index %d", &sw_if_index)) + sw_if_index_set++; + else + break; + } + + print (vam->ofp, + "\n%-11s %-11s %-6s %-5s %-4s", + "sw_if_index", "main/worker", "thread", "queue", "mode"); + + /* Dump Interface rx placement */ + M (SW_INTERFACE_RX_PLACEMENT_DUMP, mp); + + if (sw_if_index_set) + mp->sw_if_index = htonl (sw_if_index); + else + mp->sw_if_index = ~0; + + S (mp); + + /* Use a control ping for synchronization */ + MPING (CONTROL_PING, mp_ping); + S (mp_ping); + + W (ret); + return ret; +} + static int api_sw_interface_clear_stats (vat_main_t * vam) { @@ -7115,15 +7192,17 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) { unformat_input_t *i = vam->input; vl_api_sw_interface_set_l2_bridge_t *mp; + vl_api_l2_port_type_t port_type; u32 rx_sw_if_index; u8 rx_sw_if_index_set = 0; u32 bd_id; u8 bd_id_set = 0; - u8 bvi = 0; u32 shg = 0; u8 enable = 1; int ret; + port_type = L2_API_PORT_TYPE_NORMAL; + /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -7138,7 +7217,9 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) else if (unformat (i, "shg %d", &shg)) ; else if (unformat (i, "bvi")) - bvi = 1; + port_type = L2_API_PORT_TYPE_BVI; + else if (unformat (i, "uu-fwd")) + port_type = L2_API_PORT_TYPE_UU_FWD; else if (unformat (i, "enable")) enable = 1; else if (unformat (i, "disable")) @@ -7164,7 +7245,7 @@ api_sw_interface_set_l2_bridge (vat_main_t * vam) mp->rx_sw_if_index = ntohl (rx_sw_if_index); mp->bd_id = ntohl (bd_id); mp->shg = (u8) shg; - mp->bvi = bvi; + mp->port_type = ntohl (port_type); mp->enable = enable; S (mp); @@ -7610,7 +7691,7 @@ api_bridge_flags (vat_main_t * vam) u32 bd_id; u8 bd_id_set = 0; u8 is_set = 1; - u32 flags = 0; + bd_flags_t flags = 0; int ret; /* Parse args required to build the message */ @@ -7619,15 +7700,15 @@ api_bridge_flags (vat_main_t * vam) if (unformat (i, "bd_id %d", &bd_id)) bd_id_set = 1; else if (unformat (i, "learn")) - flags |= L2_LEARN; + flags |= BRIDGE_API_FLAG_LEARN; else if (unformat (i, "forward")) - flags |= L2_FWD; + flags |= BRIDGE_API_FLAG_FWD; else if (unformat (i, "flood")) - flags |= L2_FLOOD; + flags |= BRIDGE_API_FLAG_FLOOD; else if (unformat (i, "uu-flood")) - flags |= L2_UU_FLOOD; + flags |= BRIDGE_API_FLAG_UU_FLOOD; else if (unformat (i, "arp-term")) - flags |= L2_ARP_TERM; + flags |= BRIDGE_API_FLAG_ARP_TERM; else if (unformat (i, "off")) is_set = 0; else if (unformat (i, "disable")) @@ -7645,7 +7726,7 @@ api_bridge_flags (vat_main_t * vam) M (BRIDGE_FLAGS, mp); mp->bd_id = ntohl (bd_id); - mp->feature_bitmap = ntohl (flags); + mp->flags = ntohl (flags); mp->is_set = is_set; S (mp); @@ -8486,6 +8567,8 @@ api_ip_add_del_route (vat_main_t * vam) mpls_label_t next_hop_out_label = MPLS_LABEL_INVALID; mpls_label_t next_hop_via_label = MPLS_LABEL_INVALID; + memset (&v4_next_hop_address, 0, sizeof (ip4_address_t)); + memset (&v6_next_hop_address, 0, sizeof (ip6_address_t)); /* Parse args required to build the message */ while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -8518,6 +8601,16 @@ api_ip_add_del_route (vat_main_t * vam) { next_hop_set = 1; } + else + if (unformat + (i, "via %U", api_unformat_sw_if_index, vam, &sw_if_index)) + { + next_hop_set = 1; + } + else if (unformat (i, "via sw_if_index %d", &sw_if_index)) + { + next_hop_set = 1; + } else if (unformat (i, "resolve-attempts %d", &resolve_attempts)) ; else if (unformat (i, "weight %d", &next_hop_weight)) @@ -14053,6 +14146,8 @@ api_create_vhost_user_if (vat_main_t * vam) u32 custom_dev_instance = ~0; u8 hwaddr[6]; u8 use_custom_mac = 0; + u8 disable_mrg_rxbuf = 0; + u8 disable_indirect_desc = 0; u8 *tag = 0; int ret; @@ -14071,6 +14166,10 @@ api_create_vhost_user_if (vat_main_t * vam) use_custom_mac = 1; else if (unformat (i, "server")) is_server = 1; + else if (unformat (i, "disable_mrg_rxbuf")) + disable_mrg_rxbuf = 1; + else if (unformat (i, "disable_indirect_desc")) + disable_indirect_desc = 1; else if (unformat (i, "tag %s", &tag)) ; else @@ -14093,6 +14192,8 @@ api_create_vhost_user_if (vat_main_t * vam) M (CREATE_VHOST_USER_IF, mp); mp->is_server = is_server; + mp->disable_mrg_rxbuf = disable_mrg_rxbuf; + mp->disable_indirect_desc = disable_indirect_desc; clib_memcpy (mp->sock_filename, file_name, vec_len (file_name)); vec_free (file_name); if (custom_dev_instance != ~0) @@ -14100,6 +14201,7 @@ api_create_vhost_user_if (vat_main_t * vam) mp->renumber = 1; mp->custom_dev_instance = ntohl (custom_dev_instance); } + mp->use_custom_mac = use_custom_mac; clib_memcpy (mp->mac_address, hwaddr, 6); if (tag) @@ -20431,9 +20533,9 @@ vl_api_ip_fib_details_t_handler (vl_api_ip_fib_details_t * mp) int i; print (vam->ofp, - "table-id %d, prefix %U/%d", + "table-id %d, prefix %U/%d stats-index %d", ntohl (mp->table_id), format_ip4_address, mp->address, - mp->address_length); + mp->address_length, ntohl (mp->stats_index)); fp = mp->path; for (i = 0; i < count; i++) { @@ -20643,9 +20745,9 @@ vl_api_ip6_fib_details_t_handler (vl_api_ip6_fib_details_t * mp) int i; print (vam->ofp, - "table-id %d, prefix %U/%d", + "table-id %d, prefix %U/%d stats-index %d", ntohl (mp->table_id), format_ip6_address, mp->address, - mp->address_length); + mp->address_length, ntohl (mp->stats_index)); fp = mp->path; for (i = 0; i < count; i++) { @@ -23444,6 +23546,8 @@ _(sw_interface_set_rx_mode, \ " | sw_if_index [queue ] ") \ _(sw_interface_set_rx_placement, \ " | sw_if_index [queue ] [worker | main]") \ +_(sw_interface_rx_placement_dump, \ + "[ | sw_if_index ]") \ _(sw_interface_set_table, \ " | sw_if_index vrf [ipv6]") \ _(sw_interface_set_mpls_enable, \ @@ -23500,8 +23604,8 @@ _(sw_interface_slave_dump, \ _(ip_table_add_del, \ "table [ipv6] [add | del]\n") \ _(ip_add_del_route, \ - "/ via > [table-id ]\n" \ - "[ | sw_if_index ] [resolve-attempts ]\n" \ + "/ via <||sw_if_index |via-label >\n" \ + "[table-id ] [ | sw_if_index ] [resolve-attempts ]\n"\ "[weight ] [drop] [local] [classify ] [del]\n" \ "[multipath] [count ]") \ _(ip_mroute_add_del, \ @@ -23632,6 +23736,7 @@ _(l2_interface_vlan_tag_rewrite, \ "[translate-2-[1|2]] [push_dot1q 0] tag1 tag2 ") \ _(create_vhost_user_if, \ "socket [server] [renumber ] " \ + "[disable_mrg_rxbuf] [disable_indirect_desc] " \ "[mac ]") \ _(modify_vhost_user_if, \ " | sw_if_index socket \n" \