|
Thomas Bogendoerfer |
098df5 |
From: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
|
|
Thomas Bogendoerfer |
098df5 |
Date: Tue, 15 Nov 2022 09:49:25 +0100
|
|
Thomas Bogendoerfer |
098df5 |
Subject: i40e: Disallow ip4 and ip6 l4_4_bytes
|
|
Thomas Bogendoerfer |
098df5 |
Patch-mainline: v6.1
|
|
Thomas Bogendoerfer |
098df5 |
Git-commit: d64aaf3f7869f915fd120763d75f11d6b116424d
|
|
Thomas Bogendoerfer |
098df5 |
References: git-fixes
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
Return -EOPNOTSUPP, when user requests l4_4_bytes for raw IP4 or
|
|
Thomas Bogendoerfer |
098df5 |
IP6 flow director filters. Flow director does not support filtering
|
|
Thomas Bogendoerfer |
098df5 |
on l4 bytes for PCTYPEs used by IP4 and IP6 filters.
|
|
Thomas Bogendoerfer |
098df5 |
Without this patch, user could create filters with l4_4_bytes fields,
|
|
Thomas Bogendoerfer |
098df5 |
which did not do any filtering on L4, but only on L3 fields.
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
Fixes: 36777d9fa24c ("i40e: check current configured input set when adding ntuple filters")
|
|
Thomas Bogendoerfer |
098df5 |
Signed-off-by: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
|
|
Thomas Bogendoerfer |
098df5 |
Signed-off-by: Kamil Maziarz <kamil.maziarz@intel.com>
|
|
Thomas Bogendoerfer |
098df5 |
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
Thomas Bogendoerfer |
098df5 |
Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
|
|
Thomas Bogendoerfer |
098df5 |
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
|
|
Thomas Bogendoerfer |
098df5 |
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
|
|
Thomas Bogendoerfer |
098df5 |
---
|
|
Thomas Bogendoerfer |
098df5 |
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 12 ++----------
|
|
Thomas Bogendoerfer |
098df5 |
1 file changed, 2 insertions(+), 10 deletions(-)
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
|
|
Thomas Bogendoerfer |
098df5 |
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
|
|
Thomas Bogendoerfer |
098df5 |
@@ -4347,11 +4347,7 @@ static int i40e_check_fdir_input_set(str
|
|
Thomas Bogendoerfer |
098df5 |
return -EOPNOTSUPP;
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
/* First 4 bytes of L4 header */
|
|
Thomas Bogendoerfer |
098df5 |
- if (usr_ip4_spec->l4_4_bytes == htonl(0xFFFFFFFF))
|
|
Thomas Bogendoerfer |
098df5 |
- new_mask |= I40E_L4_SRC_MASK | I40E_L4_DST_MASK;
|
|
Thomas Bogendoerfer |
098df5 |
- else if (!usr_ip4_spec->l4_4_bytes)
|
|
Thomas Bogendoerfer |
098df5 |
- new_mask &= ~(I40E_L4_SRC_MASK | I40E_L4_DST_MASK);
|
|
Thomas Bogendoerfer |
098df5 |
- else
|
|
Thomas Bogendoerfer |
098df5 |
+ if (usr_ip4_spec->l4_4_bytes)
|
|
Thomas Bogendoerfer |
098df5 |
return -EOPNOTSUPP;
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
/* Filtering on Type of Service is not supported. */
|
|
Thomas Bogendoerfer |
098df5 |
@@ -4390,11 +4386,7 @@ static int i40e_check_fdir_input_set(str
|
|
Thomas Bogendoerfer |
098df5 |
else
|
|
Thomas Bogendoerfer |
098df5 |
return -EOPNOTSUPP;
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
- if (usr_ip6_spec->l4_4_bytes == htonl(0xFFFFFFFF))
|
|
Thomas Bogendoerfer |
098df5 |
- new_mask |= I40E_L4_SRC_MASK | I40E_L4_DST_MASK;
|
|
Thomas Bogendoerfer |
098df5 |
- else if (!usr_ip6_spec->l4_4_bytes)
|
|
Thomas Bogendoerfer |
098df5 |
- new_mask &= ~(I40E_L4_SRC_MASK | I40E_L4_DST_MASK);
|
|
Thomas Bogendoerfer |
098df5 |
- else
|
|
Thomas Bogendoerfer |
098df5 |
+ if (usr_ip6_spec->l4_4_bytes)
|
|
Thomas Bogendoerfer |
098df5 |
return -EOPNOTSUPP;
|
|
Thomas Bogendoerfer |
098df5 |
|
|
Thomas Bogendoerfer |
098df5 |
/* Filtering on Traffic class is not supported. */
|