summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/intel/iavf/iavf_fdir.h
diff options
context:
space:
mode:
authorPiotr Gardocki <piotrx.gardocki@intel.com>2023-08-07 17:46:04 +0300
committerTony Nguyen <anthony.l.nguyen@intel.com>2023-08-16 18:27:29 +0300
commit751969e5b1196821ef78f0aa664a8a97c92c9057 (patch)
tree9db7bedf348042cf5d8c5a66dc4a98738af5bff0 /drivers/net/ethernet/intel/iavf/iavf_fdir.h
parentde4c5efeeca7172306bdc2e3efc0c6c3953bb338 (diff)
downloadlinux-751969e5b1196821ef78f0aa664a8a97c92c9057.tar.xz
iavf: fix FDIR rule fields masks validation
Return an error if a field's mask is neither full nor empty. When a mask is only partial the field is not being used for rule programming but it gives a wrong impression it is used. Fix by returning an error on any partial mask to make it clear they are not supported. The ip_ver assignment is moved earlier in code to allow using it in iavf_validate_fdir_fltr_masks. Fixes: 527691bf0682 ("iavf: Support IPv4 Flow Director filters") Fixes: e90cbc257a6f ("iavf: Support IPv6 Flow Director filters") Signed-off-by: Piotr Gardocki <piotrx.gardocki@intel.com> Tested-by: Rafal Romanowski <rafal.romanowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/iavf/iavf_fdir.h')
-rw-r--r--drivers/net/ethernet/intel/iavf/iavf_fdir.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/iavf/iavf_fdir.h b/drivers/net/ethernet/intel/iavf/iavf_fdir.h
index 33c55c366315..9eb9f73f6adf 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_fdir.h
+++ b/drivers/net/ethernet/intel/iavf/iavf_fdir.h
@@ -110,6 +110,8 @@ struct iavf_fdir_fltr {
struct virtchnl_fdir_add vc_add_msg;
};
+int iavf_validate_fdir_fltr_masks(struct iavf_adapter *adapter,
+ struct iavf_fdir_fltr *fltr);
int iavf_fill_fdir_add_msg(struct iavf_adapter *adapter, struct iavf_fdir_fltr *fltr);
void iavf_print_fdir_fltr(struct iavf_adapter *adapter, struct iavf_fdir_fltr *fltr);
bool iavf_fdir_is_dup_fltr(struct iavf_adapter *adapter, struct iavf_fdir_fltr *fltr);