From 1ffe6670e0e2777f56a297c61e9237f12e853b61 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Thu, 11 Jun 2020 16:43:28 +0800 Subject: [PATCH] net/ice/base: choose TCP dummy packet by protocol In order to find proper dummy packets for switch filter, it need to check ipv4 next protocol number, if it is 0x06, which means next payload is TCP, we need to use TCP format dummy packet. Signed-off-by: Wei Zhao Signed-off-by: Paul M Stillwell Jr Signed-off-by: Qi Zhang Acked-by: Qiming Yang --- drivers/net/ice/base/ice_switch.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c index a3fda0f189..0e220580a6 100644 --- a/drivers/net/ice/base/ice_switch.c +++ b/drivers/net/ice/base/ice_switch.c @@ -13,6 +13,7 @@ #define ICE_IPV4_NVGRE_PROTO_ID 0x002F #define ICE_PPP_IPV6_PROTO_ID 0x0057 #define ICE_IPV6_ETHER_ID 0x86DD +#define ICE_TCP_PROTO_ID 0x06 /* Dummy ethernet header needed in the ice_aqc_sw_rules_elem * struct to configure any switch filter rules. @@ -6836,6 +6837,12 @@ ice_find_dummy_packet(struct ice_adv_lkup_elem *lkups, u16 lkups_cnt, lkups[i].m_u.ethertype.ethtype_id == 0xFFFF) ipv6 = true; + else if (lkups[i].type == ICE_IPV4_IL && + lkups[i].h_u.ipv4_hdr.protocol == + ICE_TCP_PROTO_ID && + lkups[i].m_u.ipv4_hdr.protocol == + 0xFF) + tcp = true; } if (tun_type == ICE_SW_TUN_IPV4_ESP) { -- 2.20.1