]> www.infradead.org Git - users/hch/xfs.git/commitdiff
octeontx2-af: fix detection of IP layer
authorMichal Mazur <mmazur2@marvell.com>
Wed, 10 Jul 2024 07:51:25 +0000 (13:21 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 12 Jul 2024 12:42:00 +0000 (13:42 +0100)
Checksum and length checks are not enabled for IPv4 header with
options and IPv6 with extension headers.
To fix this a change in enum npc_kpu_lc_ltype is required which will
allow adjustment of LTYPE_MASK to detect all types of IP headers.

Fixes: 21e6699e5cd6 ("octeontx2-af: Add NPC KPU profile")
Signed-off-by: Michal Mazur <mmazur2@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeontx2/af/npc.h

index d883157393ea0fa0fedb6e656788f73a90d15866..6c3aca6f278db7172c03dc9cce25daa29a11ba6e 100644 (file)
@@ -63,8 +63,13 @@ enum npc_kpu_lb_ltype {
        NPC_LT_LB_CUSTOM1 = 0xF,
 };
 
+/* Don't modify ltypes up to IP6_EXT, otherwise length and checksum of IP
+ * headers may not be checked correctly. IPv4 ltypes and IPv6 ltypes must
+ * differ only at bit 0 so mask 0xE can be used to detect extended headers.
+ */
 enum npc_kpu_lc_ltype {
-       NPC_LT_LC_IP = 1,
+       NPC_LT_LC_PTP = 1,
+       NPC_LT_LC_IP,
        NPC_LT_LC_IP_OPT,
        NPC_LT_LC_IP6,
        NPC_LT_LC_IP6_EXT,
@@ -72,7 +77,6 @@ enum npc_kpu_lc_ltype {
        NPC_LT_LC_RARP,
        NPC_LT_LC_MPLS,
        NPC_LT_LC_NSH,
-       NPC_LT_LC_PTP,
        NPC_LT_LC_FCOE,
        NPC_LT_LC_NGIO,
        NPC_LT_LC_CUSTOM0 = 0xE,