ice: add profile conflict check for AVF FDIR
authorJunfeng Guo <junfeng.guo@intel.com>
Tue, 14 Mar 2023 02:03:15 +0000 (10:03 +0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 28 Mar 2023 16:48:41 +0000 (09:48 -0700)
commit29486b6df3e6a63b57d1ed1dce06051267282ff4
tree713ed5a5f32ed350cb1e5bd841a2f306ee9ef3d9
parentd94dbdc4e0209b5e7d736ab696f8d635b034e3ee
ice: add profile conflict check for AVF FDIR

Add profile conflict check while adding some FDIR rules to avoid
unexpected flow behavior, rules may have conflict including:
        IPv4 <---> {IPv4_UDP, IPv4_TCP, IPv4_SCTP}
        IPv6 <---> {IPv6_UDP, IPv6_TCP, IPv6_SCTP}

For example, when we create an FDIR rule for IPv4, this rule will work
on packets including IPv4, IPv4_UDP, IPv4_TCP and IPv4_SCTP. But if we
then create an FDIR rule for IPv4_UDP and then destroy it, the first
FDIR rule for IPv4 cannot work on pkt IPv4_UDP then.

To prevent this unexpected behavior, we add restriction in software
when creating FDIR rules by adding necessary profile conflict check.

Fixes: 1f7ea1cd6a37 ("ice: Enable FDIR Configure for AVF")
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c