octeontx2-af: optimize parsing of IPv6 fragments
authorAbhijit Ayarekar <aayarekar@marvell.com>
Tue, 29 Sep 2020 09:28:19 +0000 (11:28 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Sep 2020 20:12:03 +0000 (13:12 -0700)
IPv6 fragmented packet may not contain completed layer 4 information.
So stop KPU parsing after setting ipv6 fragmentation flag.

Signed-off-by: Abhijit Ayarekar <aayarekar@marvell.com>
Acked-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h

index 5f71d3c..ce70963 100644 (file)
@@ -10705,80 +10705,80 @@ static const struct npc_kpu_profile_action kpu6_action_entries[] = {
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               2, 12, 0, 1, 0,
-               NPC_S_KPU8_TCP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               2, 8, 10, 1, 0,
-               NPC_S_KPU8_UDP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 1, 0,
-               NPC_S_KPU8_SCTP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 1, 0,
-               NPC_S_KPU8_ICMP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 1, 0,
-               NPC_S_KPU8_ICMP6, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 1, 0,
-               NPC_S_KPU8_ESP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 1, 0,
-               NPC_S_KPU8_AH, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 1, 0,
-               NPC_S_KPU8_GRE, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               6, 0, 0, 5, 0,
-               NPC_S_KPU12_TU_IP6, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               2, 6, 10, 2, 0,
-               NPC_S_KPU9_TU_MPLS_IN_IP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
@@ -11100,80 +11100,80 @@ static const struct npc_kpu_profile_action kpu7_action_entries[] = {
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               2, 12, 0, 0, 0,
-               NPC_S_KPU8_TCP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               2, 8, 10, 0, 0,
-               NPC_S_KPU8_UDP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 0, 0,
-               NPC_S_KPU8_SCTP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 0, 0,
-               NPC_S_KPU8_ICMP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 0, 0,
-               NPC_S_KPU8_ICMP6, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 0, 0,
-               NPC_S_KPU8_ESP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 0, 0,
-               NPC_S_KPU8_AH, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               0, 0, 0, 0, 0,
-               NPC_S_KPU8_GRE, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               6, 0, 0, 4, 0,
-               NPC_S_KPU12_TU_IP6, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,
        },
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
-               2, 6, 10, 1, 0,
-               NPC_S_KPU9_TU_MPLS_IN_IP, 8, 0,
+               0, 0, 0, 0, 1,
+               NPC_S_NA, 0, 0,
                NPC_LID_LC, NPC_LT_NA,
                0,
                0, 0, 0, 0,