numam-dpdk/drivers/net
Hyong Youb Kim 4182ee7f02 net/enic: fix flow director SCTP matching
The firmware filter API does not have flags indicating "match SCTP
packet". Instead, the driver needs to explicitly add an IP match and
set the protocol number (132 for SCTP) in the IP header.

The existing code (copy_fltr_v2) has two bugs.

1. It sets the protocol number (132) in the match value, but not the
mask. The mask remains 0, so the match becomes a wildcard match. The
NIC ends up matching all protocol numbers (i.e. thinks non-SCTP
packets are SCTP).

2. It modifies the input argument (rte_eth_fdir_input). The driver
tracks filters using rte_hash_{add,del}_key(input). So, addding
(RTE_ETH_FILTER_ADD) and deleting (RTE_ETH_FILTER_DELETE) must use the
same input argument for the same filter. But, overwriting the protocol
number while adding the filter breaks this assumption, and causes
delete operation to fail.

So, set the mask as well as protocol value. Do not modify the input
argument, and use const in function signatures to make the intention
clear. Also move a couple function declarations to enic_clsf.c from
enic.h as they are strictly local.

Fixes: dfbd6a9cb5 ("net/enic: extend flow director support for 1300 series")
Cc: stable@dpdk.org

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2019-03-08 17:52:22 +01:00
..
af_packet net/af_packet: fix setting MTU decrements sockaddr twice 2018-12-21 16:22:41 +01:00
ark ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
atlantic drivers/net: fix several Tx prepare functions 2018-12-13 17:53:50 +00:00
avp fix indentation in symbol maps 2018-11-26 20:16:46 +01:00
axgbe drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
bnx2x drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
bnxt drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
bonding net/bonding: fix reset active slave 2019-02-22 14:39:49 +01:00
cxgbe drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
dpaa net/dpaa: update RSS offload types 2019-01-14 17:44:29 +01:00
dpaa2 net/dpaa2: support generic flow 2019-03-01 18:17:35 +01:00
e1000 drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
ena net/ena: get device info statically 2019-02-20 16:41:43 +01:00
enetc ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
enic net/enic: fix flow director SCTP matching 2019-03-08 17:52:22 +01:00
failsafe net/failsafe: add default Tx mbuf fast free capability 2018-12-21 16:22:41 +01:00
fm10k net/fm10k: fix internal switch initial status 2019-01-14 17:44:29 +01:00
i40e net/i40e: fix statistics 2019-01-24 18:18:10 +01:00
iavf net/iavf: rename remaining avf strings 2019-03-01 18:17:35 +01:00
ice net/ice: enable VLAN filter offloads support 2019-02-19 10:35:00 +01:00
ifc vhost: remove vDPA available ring relay helper 2019-02-08 19:27:07 +01:00
ixgbe net/ixgbe: support loopback for X540/X550 2019-03-01 18:17:36 +01:00
kni ethdev: remove release function for secondary process 2018-10-26 22:14:05 +02:00
liquidio ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
mlx4 net/mlx: prefix private structure 2019-03-01 18:17:35 +01:00
mlx5 net/mlx: prefix private structure 2019-03-01 18:17:35 +01:00
mvneta ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
mvpp2 net/mvpp2: fix possible uninitialized variable access 2018-11-16 11:13:51 +01:00
netvsc net/netvsc: fix probe when VF not found 2018-12-21 16:22:40 +01:00
nfp drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
null ethdev: remove release function for secondary process 2018-10-26 22:14:05 +02:00
octeontx net/octeontx: fix failures when available ports > queues 2018-11-16 12:03:54 +01:00
pcap build: improve pcap dependency handling 2019-03-01 14:19:56 +01:00
qede drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
ring ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
sfc net/sfc: do not use PMD log type 2019-03-01 18:17:36 +01:00
softnic net/softnic: fix possible buffer overflow 2019-03-01 18:17:36 +01:00
szedata2 ethdev: free all common data when releasing port 2018-10-26 22:14:05 +02:00
tap drivers/net: fix shifting 32-bit signed variable 31 times 2019-03-01 18:17:36 +01:00
thunderx net/thunderx: fix Tx desc corruption in scatter-gather mode 2018-11-14 00:35:53 +01:00
vdev_netvsc net/vdev_netvsc: get rid of unnecessary debug log message 2018-12-13 16:31:06 +00:00
vhost net/vhost: fix double free of MAC address 2018-12-21 16:22:41 +01:00
virtio net/virtio: optimize Tx enqueue for packed ring 2019-02-22 14:39:49 +01:00
vmxnet3 drivers/net: fix several Tx prepare functions 2018-12-13 17:53:50 +00:00
Makefile net/iavf: rename remaining avf strings 2019-03-01 18:17:35 +01:00
meson.build net/iavf: rename avf to iavf 2019-03-01 18:17:35 +01:00