网卡流量统计功能测试

测试目的

验证网卡支持基于端口的流量统计,包含支持对单播、组播、广播报文分类统计,支持丢弃报文分类统计、Error报文统计。

预置条件

按组网方式1搭建测试环境。

测试步骤

  1. 使用scapy,构造单播流量并发送,查看网卡单播统计,参考命令:

    # ethtool -S enp7s0f0 | egrep 'tx_packets|rx_packets'

    有结果1。

  2. 构造多播和广播流量并发送,查看网卡多播和广播报文统计,参考命令:

    # ethtool -S enp7s0f0 | egrep 'multicast|broadcast|mcast|bcast'

    有结果2。

  3. 查看网卡丢包和error统计:

    # ethtool -S enp7s0f0 | egrep 'discard|error'

    有结果3。

预期结果

  1. 返回结果包含tx_packets/rx_packets统计数据,如:

    rx_packets: 427996

    tx_packets: 375484

  2. 返回结果包含但不限于如下tx和rx的multicast和broadcast相关报文统计信息,如:

    tx_multicast_phy: 374734

    tx_broadcast_phy: 4

    rx_multicast_phy: 220280

    rx_broadcast_phy: 0

  3. 返回结果包含但不限于如下丢包和error统计,如:

    rx_crc_errors_phy: 0

    rx_discards_phy: 0

    tx_discards_phy: 0

    tx_errors_phy: 0

测试结果

-

备注

  1. 关注厂商个性化定义:
    1. 建议按照实际网卡的测试情况调整 grep 关键词。
    2. 不同厂商流量统计功能显示项具体意义存在差异。
    3. 单播:ethtool -S eno1 | grep unicast
    4. 多播:ethtool -S eno1 | grep multicast
    5. 广播:ethtool -S eno1 | grep broadcast
  2. 示例1:

    rx_xxxcast/ tx_xxxcast 代表驱动收到的报文统计。

    veb.rx_xxxcast/ veb.tx_xxxcast代表veb收到的报文统计。

    port.rx_xxxcast/ port.tx_xxxcast代表物理口收到的报文统计。

  3. 示例2:网迅

    rx_packets/ tx_packets:代表驱动接收/发送的所有报文统计,包括单播、组播、广播。

    rx_mcast_packets/tx_mcast_packets:代表驱动接收/发送的组播报文统计。

    rx_bcast_packets/tx_bcast_packets:代表驱动接收/发送的广播报文统计。