app/testpmd: dump more port info
[dpdk.git] / app / test-pmd / config.c
index 926daca..ed27ed6 100644 (file)
@@ -292,10 +292,13 @@ nic_xstats_display(portid_t port_id)
        }
 
        /* Display xstats */
-       for (idx_xstat = 0; idx_xstat < cnt_xstats; idx_xstat++)
+       for (idx_xstat = 0; idx_xstat < cnt_xstats; idx_xstat++) {
+               if (xstats_hide_zero && !xstats[idx_xstat].value)
+                       continue;
                printf("%s: %"PRIu64"\n",
                        xstats_names[idx_xstat].name,
                        xstats[idx_xstat].value);
+       }
        free(xstats_names);
        free(xstats);
 }
@@ -519,6 +522,16 @@ port_infos_display(portid_t port_id)
                }
        }
 
+       printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize);
+       printf("Maximum configurable length of RX packet: %u\n",
+               dev_info.max_rx_pktlen);
+       if (dev_info.max_vfs)
+               printf("Maximum number of VFs: %u\n", dev_info.max_vfs);
+       if (dev_info.max_vmdq_pools)
+               printf("Maximum number of VMDq pools: %u\n",
+                       dev_info.max_vmdq_pools);
+
+       printf("Current number of RX queues: %u\n", dev_info.nb_rx_queues);
        printf("Max possible RX queues: %u\n", dev_info.max_rx_queues);
        printf("Max possible number of RXDs per queue: %hu\n",
                dev_info.rx_desc_lim.nb_max);
@@ -526,12 +539,22 @@ port_infos_display(portid_t port_id)
                dev_info.rx_desc_lim.nb_min);
        printf("RXDs number alignment: %hu\n", dev_info.rx_desc_lim.nb_align);
 
+       printf("Current number of TX queues: %u\n", dev_info.nb_tx_queues);
        printf("Max possible TX queues: %u\n", dev_info.max_tx_queues);
        printf("Max possible number of TXDs per queue: %hu\n",
                dev_info.tx_desc_lim.nb_max);
        printf("Min possible number of TXDs per queue: %hu\n",
                dev_info.tx_desc_lim.nb_min);
        printf("TXDs number alignment: %hu\n", dev_info.tx_desc_lim.nb_align);
+
+       printf("Global RX offload capabilities: %"PRIx64"\n",
+               dev_info.rx_offload_capa);
+       printf("Queue RX offload capabilities: %"PRIx64"\n",
+               dev_info.rx_queue_offload_capa);
+       printf("Global TX offload capabilities: %"PRIx64"\n",
+               dev_info.tx_offload_capa);
+       printf("Queue TX offload capabilities: %"PRIx64"\n",
+               dev_info.tx_queue_offload_capa);
 }
 
 void
@@ -1497,7 +1520,7 @@ tx_desc_id_is_invalid(uint16_t txdesc_id)
 }
 
 static const struct rte_memzone *
-ring_dma_zone_lookup(const char *ring_name, uint8_t port_id, uint16_t q_id)
+ring_dma_zone_lookup(const char *ring_name, portid_t port_id, uint16_t q_id)
 {
        char mz_name[RTE_MEMZONE_NAMESIZE];
        const struct rte_memzone *mz;
@@ -1547,9 +1570,9 @@ ring_rxd_display_dword(union igb_ring_dword dword)
 static void
 ring_rx_descriptor_display(const struct rte_memzone *ring_mz,
 #ifndef RTE_LIBRTE_I40E_16BYTE_RX_DESC
-                          uint8_t port_id,
+                          portid_t port_id,
 #else
-                          __rte_unused uint8_t port_id,
+                          __rte_unused portid_t port_id,
 #endif
                           uint16_t desc_id)
 {
@@ -1902,7 +1925,7 @@ simple_fwd_config_setup(void)
                fwd_streams[i]->rx_queue  = 0;
                fwd_streams[i]->tx_port   = fwd_ports_ids[j];
                fwd_streams[i]->tx_queue  = 0;
-               fwd_streams[i]->peer_addr = j;
+               fwd_streams[i]->peer_addr = fwd_streams[i]->tx_port;
                fwd_streams[i]->retry_enabled = retry_enabled;
 
                if (port_topology == PORT_TOPOLOGY_PAIRED) {
@@ -1910,7 +1933,7 @@ simple_fwd_config_setup(void)
                        fwd_streams[j]->rx_queue  = 0;
                        fwd_streams[j]->tx_port   = fwd_ports_ids[i];
                        fwd_streams[j]->tx_queue  = 0;
-                       fwd_streams[j]->peer_addr = i;
+                       fwd_streams[j]->peer_addr = fwd_streams[j]->tx_port;
                        fwd_streams[j]->retry_enabled = retry_enabled;
                }
        }
@@ -2866,6 +2889,12 @@ set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value)
        }
 }
 
+void
+set_xstats_hide_zero(uint8_t on_off)
+{
+       xstats_hide_zero = on_off;
+}
+
 static inline void
 print_fdir_mask(struct rte_eth_fdir_masks *mask)
 {
@@ -3185,6 +3214,10 @@ set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate, uint64_t q_msk)
 {
        int diag = -ENOTSUP;
 
+       RTE_SET_USED(vf);
+       RTE_SET_USED(rate);
+       RTE_SET_USED(q_msk);
+
 #ifdef RTE_LIBRTE_IXGBE_PMD
        if (diag == -ENOTSUP)
                diag = rte_pmd_ixgbe_set_vf_rate_limit(port_id, vf, rate,
@@ -3275,7 +3308,7 @@ mcast_addr_pool_remove(struct rte_port *port, uint32_t addr_idx)
 }
 
 static void
-eth_port_multicast_addr_list_set(uint8_t port_id)
+eth_port_multicast_addr_list_set(portid_t port_id)
 {
        struct rte_port *port;
        int diag;
@@ -3290,7 +3323,7 @@ eth_port_multicast_addr_list_set(uint8_t port_id)
 }
 
 void
-mcast_addr_add(uint8_t port_id, struct ether_addr *mc_addr)
+mcast_addr_add(portid_t port_id, struct ether_addr *mc_addr)
 {
        struct rte_port *port;
        uint32_t i;
@@ -3318,7 +3351,7 @@ mcast_addr_add(uint8_t port_id, struct ether_addr *mc_addr)
 }
 
 void
-mcast_addr_remove(uint8_t port_id, struct ether_addr *mc_addr)
+mcast_addr_remove(portid_t port_id, struct ether_addr *mc_addr)
 {
        struct rte_port *port;
        uint32_t i;
@@ -3345,7 +3378,7 @@ mcast_addr_remove(uint8_t port_id, struct ether_addr *mc_addr)
 }
 
 void
-port_dcb_info_display(uint8_t port_id)
+port_dcb_info_display(portid_t port_id)
 {
        struct rte_eth_dcb_info dcb_info;
        uint16_t i;