dpdk-testpmd 统计显示

背景

最近在做测试的发现 testpmd show port 统计的Tx-packets 是个极大值,很不符合预期。硬件同学说,这个是软件统计,一定是软件问题。我大概知道它是个硬件统计,但是并不能确定,于是,做了一下代码的分析。

testpmd> show port stats 0
  ######################## NIC statistics for port 0  ########################
  RX-packets: 0          RX-missed: 0          RX-bytes:  0
  RX-errors: 0
  RX-nombuf:  0
  TX-packets: 极大值          TX-errors: 0          TX-bytes:  极大值

  Throughput (since last show)
  Rx-pps:            0          Rx-bps:            0
  Tx-pps:            0          Tx-bps:            0
  ############################################################################

代码

void
nic_stats_display(portid_t port_id)
{
    ...
    ret = rte_eth_stats_get(port_id, &stats);
    if (ret != 0) {
        ...
    printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
           "%-"PRIu64"\n", stats.opackets, stats.oerrors, stats.obytes);
    }

从代码可以看出,rte_eth_stats_get -> *dev->dev_ops->stats_get
最终关联的是硬件的统计。

你可能感兴趣的:(dpdk-testpmd 统计显示)