]> git.baikalelectronics.ru Git - kernel.git/commit
net: enetc: count the tc-taprio window drops
authorPo Liu <Po.Liu@nxp.com>
Tue, 10 May 2022 16:36:15 +0000 (19:36 +0300)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 May 2022 23:37:10 +0000 (16:37 -0700)
commitaad47a97afd14a6f8c70c491771e87edcf739360
treee2a64f69a4e9629697ac3177c063e18a7dd8a93c
parentdafdd280ca6f934a1371a7417b6b761b724c4163
net: enetc: count the tc-taprio window drops

The enetc scheduler for IEEE 802.1Qbv has 2 options (depending on
PTGCR[TG_DROP_DISABLE]) when we attempt to send an oversized packet
which will never fit in its allotted time slot for its traffic class:
either block the entire port due to head-of-line blocking, or drop the
packet and set a bit in the writeback format of the transmit buffer
descriptor, allowing other packets to be sent.

We obviously choose the second option in the driver, but we do not
detect the drop condition, so from the perspective of the network stack,
the packet is sent and no error counter is incremented.

This change checks the writeback of the TX BD when tc-taprio is enabled,
and increments a specific ethtool statistics counter and a generic
"tx_dropped" counter in ndo_get_stats64.

Signed-off-by: Po Liu <Po.Liu@nxp.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/enetc/enetc.c
drivers/net/ethernet/freescale/enetc/enetc.h
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
drivers/net/ethernet/freescale/enetc/enetc_hw.h