X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fvmxnet3%2Fvmxnet3_test.c;h=fe491b2a41da4a27701476a162a153e4b03b6e81;hb=51cbbd2282f39ff1b64781c73efbbe3b332ed3d9;hp=1b5fd5b7c9a89cf4cbde8e630bf54c1d2553d43a;hpb=b78d6a0b3c2e575343038b15b36c8682ad002edc;p=vpp.git diff --git a/src/plugins/vmxnet3/vmxnet3_test.c b/src/plugins/vmxnet3/vmxnet3_test.c index 1b5fd5b7c9a..fe491b2a41d 100644 --- a/src/plugins/vmxnet3/vmxnet3_test.c +++ b/src/plugins/vmxnet3/vmxnet3_test.c @@ -104,7 +104,7 @@ api_vmxnet3_create (vat_main_t * vam) int ret; u32 x[4]; - memset (&args, 0, sizeof (vmxnet3_create_if_args_t)); + clib_memset (&args, 0, sizeof (vmxnet3_create_if_args_t)); while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { @@ -117,10 +117,16 @@ api_vmxnet3_create (vat_main_t * vam) } else if (unformat (i, "elog")) args.enable_elog = 1; + else if (unformat (i, "bind")) + args.bind = 1; else if (unformat (i, "rx-queue-size %u", &args.rxq_size)) ; else if (unformat (i, "tx-queue-size %u", &args.txq_size)) ; + else if (unformat (i, "num-tx-queues %u", &args.txq_num)) + ; + else if (unformat (i, "num-rx-queues %u", &args.rxq_num)) + ; else { clib_warning ("unknown input '%U'", format_unformat_error, i); @@ -134,6 +140,9 @@ api_vmxnet3_create (vat_main_t * vam) mp->enable_elog = clib_host_to_net_u16 (args.enable_elog); mp->rxq_size = clib_host_to_net_u16 (args.rxq_size); mp->txq_size = clib_host_to_net_u16 (args.txq_size); + mp->txq_num = clib_host_to_net_u16 (args.txq_num); + mp->rxq_num = clib_host_to_net_u16 (args.rxq_num); + mp->bind = args.bind; S (mp); W (ret); @@ -240,33 +249,44 @@ vl_api_vmxnet3_details_t_handler (vl_api_vmxnet3_details_t * mp) { vat_main_t *vam = vmxnet3_test_main.vat_main; u32 pci_addr = ntohl (mp->pci_addr); + u16 qid; fformat (vam->ofp, "%s: sw_if_index %u mac %U\n" " version: %u\n" " PCI Address: %U\n" - " RX completion next index %u" - " RX Queue %u\n" - " ring 0 size %u fill %u consume %u produce %u\n" - " ring 1 size %u fill %u consume %u produce %u\n" - " TX completion next index %u" - " TX Queue %u\n" - " size %u consume %u produce %u\n" " state %s\n", mp->if_name, ntohl (mp->sw_if_index), format_ethernet_address, mp->hw_addr, mp->version, - format_pci_addr, &pci_addr, - ntohs (mp->rx_next), - ntohs (mp->rx_qid), - ntohs (mp->rx_qsize), ntohs (mp->rx_fill[0]), - ntohs (mp->rx_consume[0]), - ntohs (mp->rx_produce[0]), - ntohs (mp->rx_qsize), ntohs (mp->rx_fill[1]), - ntohs (mp->rx_consume[1]), - ntohs (mp->rx_produce[1]), - ntohs (mp->tx_next), - ntohs (mp->tx_qid), - ntohs (mp->tx_qsize), ntohs (mp->tx_consume), - ntohs (mp->tx_produce), mp->admin_up_down ? "up" : "down"); + format_pci_addr, &pci_addr, mp->admin_up_down ? "up" : "down"); + for (qid = 0; qid < mp->rx_count; qid++) + { + vl_api_vmxnet3_rx_list_t *rx_list = &mp->rx_list[qid]; + fformat (vam->ofp, + " RX Queue %u\n" + " RX completion next index %u\n" + " ring 0 size %u fill %u consume %u produce %u\n" + " ring 1 size %u fill %u consume %u produce %u\n", + qid, + ntohs (rx_list->rx_next), + ntohs (rx_list->rx_qsize), ntohs (rx_list->rx_fill[0]), + ntohs (rx_list->rx_consume[0]), + ntohs (rx_list->rx_produce[0]), + ntohs (rx_list->rx_qsize), ntohs (rx_list->rx_fill[1]), + ntohs (rx_list->rx_consume[1]), + ntohs (rx_list->rx_produce[1])); + } + for (qid = 0; qid < mp->tx_count; qid++) + { + vl_api_vmxnet3_tx_list_t *tx_list = &mp->tx_list[qid]; + fformat (vam->ofp, + " TX Queue %u\n" + " TX completion next index %u\n" + " size %u consume %u produce %u\n", + qid, + ntohs (tx_list->tx_next), + ntohs (tx_list->tx_qsize), ntohs (tx_list->tx_consume), + ntohs (tx_list->tx_produce)); + } } /* @@ -275,8 +295,9 @@ vl_api_vmxnet3_details_t_handler (vl_api_vmxnet3_details_t * mp) */ #define foreach_vpe_api_msg \ _(vmxnet3_create, " [rx-queue-size ] " \ - "[tx-queue-size ]") \ -_(vmxnet3_delete, "") \ + "[tx-queue-size ] [num-tx-queues ]" \ + "[num-rx-queues ] [bind]") \ +_(vmxnet3_delete, "sw_if_index ") \ _(vmxnet3_dump, "") static void