drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 2 ++ drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)
Add dwmac4 ip payload error statistics, and rename discripter bit macro
because latest version descriptor IPCE bit claims ip checksum error or
l4 segment length error.
Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
---
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 2 ++
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
index e99401bcc1f8..a5fb31eb0192 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
@@ -118,6 +118,8 @@ static int dwmac4_wrback_get_rx_status(struct stmmac_extra_stats *x,
x->ipv4_pkt_rcvd++;
if (rdes1 & RDES1_IPV6_HEADER)
x->ipv6_pkt_rcvd++;
+ if (rdes1 & RDES1_IP_PAYLOAD_ERROR)
+ x->ip_payload_err++;
if (message_type == RDES_EXT_NO_PTP)
x->no_ptp_rx_msg_type_ext++;
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h
index 6da070ccd737..1ce6f43d545a 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h
@@ -95,7 +95,7 @@
#define RDES1_IPV4_HEADER BIT(4)
#define RDES1_IPV6_HEADER BIT(5)
#define RDES1_IP_CSUM_BYPASSED BIT(6)
-#define RDES1_IP_CSUM_ERROR BIT(7)
+#define RDES1_IP_PAYLOAD_ERROR BIT(7)
#define RDES1_PTP_MSG_TYPE_MASK GENMASK(11, 8)
#define RDES1_PTP_PACKET_TYPE BIT(12)
#define RDES1_PTP_VER BIT(13)
--
2.17.1
Hi Minda On Mon, Sep 30, 2024 at 07:02:05PM GMT, Minda Chen wrote: Since v3 is going to be required anyway, here are several nitpicks: > Add dwmac4 ip payload error statistics, and rename discripter bit macro > because latest version descriptor IPCE bit claims ip checksum error or > l4 segment length error. s/dwmac4/DW QoS Eth v4/v5 s/ip/IP L4-segment is a too broad definition in this case. The doc says about just three protocols: TCP, UDP, or ICMP, so s/l4/TCP, UDP, or ICMP Other than that the change looks good. Reviewed-by: Serge Semin <fancer.lancer@gmail.com> -Serge(y) > > Signed-off-by: Minda Chen <minda.chen@starfivetech.com> > --- > drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 2 ++ > drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c > index e99401bcc1f8..a5fb31eb0192 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c > @@ -118,6 +118,8 @@ static int dwmac4_wrback_get_rx_status(struct stmmac_extra_stats *x, > x->ipv4_pkt_rcvd++; > if (rdes1 & RDES1_IPV6_HEADER) > x->ipv6_pkt_rcvd++; > + if (rdes1 & RDES1_IP_PAYLOAD_ERROR) > + x->ip_payload_err++; > > if (message_type == RDES_EXT_NO_PTP) > x->no_ptp_rx_msg_type_ext++; > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h > index 6da070ccd737..1ce6f43d545a 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.h > @@ -95,7 +95,7 @@ > #define RDES1_IPV4_HEADER BIT(4) > #define RDES1_IPV6_HEADER BIT(5) > #define RDES1_IP_CSUM_BYPASSED BIT(6) > -#define RDES1_IP_CSUM_ERROR BIT(7) > +#define RDES1_IP_PAYLOAD_ERROR BIT(7) > #define RDES1_PTP_MSG_TYPE_MASK GENMASK(11, 8) > #define RDES1_PTP_PACKET_TYPE BIT(12) > #define RDES1_PTP_VER BIT(13) > -- > 2.17.1 > >
On Mon, 30 Sep 2024 19:02:05 +0800 Minda Chen wrote: > Add dwmac4 ip payload error statistics, and rename discripter bit macro descriptor ^ > because latest version descriptor IPCE bit claims ip checksum error or > l4 segment length error. What is an L4 segment length error on Rx? Seems to me that reusing ip_payload_err here will be confusing -- pw-bot: cr
Hi Jakub On Wed, Oct 02, 2024 at 06:58:01AM GMT, Jakub Kicinski wrote: > On Mon, 30 Sep 2024 19:02:05 +0800 Minda Chen wrote: > > Add dwmac4 ip payload error statistics, and rename discripter bit macro > > descriptor > ^ > > > because latest version descriptor IPCE bit claims ip checksum error or > > l4 segment length error. > > What is an L4 segment length error on Rx? > Seems to me that reusing ip_payload_err here will be confusing From the current "ip_payload_err" field semantics, Minda is correct to use it for the Rx IP-payload error statistics. Here is the definition of the IPCE flag (part of the RDES4 descriptor field) cited from the Synopsys DW QoS Eth v5 HW-manual: Bit Name Description 7 IPCE IP Payload Error When this bit is set, it indicates either of the following: ■ The 16-bit IP payload checksum (that is, the TCP, UDP, or ICMP checksum) calculated by the MAC does not match the corresponding checksum field in the received segment. ■ The TCP, UDP, or ICMP segment length does not match the payload length value in the IP Header field. ■ The TCP, UDP, or ICMP segment length is less than minimum allowed segment length for TCP, UDP, or ICMP. It almost word-by-word matches to what is defined for the ERDES4_IP_PAYLOAD_ERR flag (part of the Extended RDES4 descriptor field) in DW GMAC v3.x HW-manual for which the stmmac_stats::ip_payload_err field has been added in the first place. Note the name of the flag in the descriptor matches to what is declared in the stmmac_stats structure. So based on that I don't see any problem with the patch except some minor patch-log issues I mentioned in another message. -Serge(y) > -- > pw-bot: cr >
On Wed, 2 Oct 2024 21:35:30 +0300 Serge Semin wrote: > It almost word-by-word matches to what is defined for the > ERDES4_IP_PAYLOAD_ERR flag (part of the Extended RDES4 descriptor > field) in DW GMAC v3.x HW-manual for which the > stmmac_stats::ip_payload_err field has been added in the first place. > Note the name of the flag in the descriptor matches to what is declared in > the stmmac_stats structure. I misread the ERDES4_IP_PAYLOAD_ERR as a Tx flag, somehow. All good then.
On Mon, Sep 30, 2024 at 07:02:05PM +0800, Minda Chen wrote: > Add dwmac4 ip payload error statistics, and rename discripter bit macro > because latest version descriptor IPCE bit claims ip checksum error or > l4 segment length error. > > Signed-off-by: Minda Chen <minda.chen@starfivetech.com> Reviewed-by: Simon Horman <horms@kernel.org>
© 2016 - 2024 Red Hat, Inc.