linux_dsm_epyc7002/drivers/net/ethernet/broadcom/bnxt
Andy Gospodarek e85a9be93c bnxt_en: do not allow wildcard matches for L2 flows
Before this patch the following commands would succeed as far as the
user was concerned:

$ tc qdisc add dev p1p1 ingress
$ tc filter add dev p1p1 parent ffff: protocol all \
	flower skip_sw action drop
$ tc filter add dev p1p1 parent ffff: protocol ipv4 \
	flower skip_sw src_mac 00:02:00:00:00:01/44 action drop

The current flow offload infrastructure used does not support wildcard
matching for ethernet headers, so do not allow the second or third
commands to succeed.  If a user wants to drop traffic on that interface
the protocol and MAC addresses need to be specified explicitly:

$ tc qdisc add dev p1p1 ingress
$ tc filter add dev p1p1 parent ffff: protocol arp \
	flower skip_sw action drop
$ tc filter add dev p1p1 parent ffff: protocol ipv4 \
	flower skip_sw action drop
...
$ tc filter add dev p1p1 parent ffff: protocol ipv4 \
	flower skip_sw src_mac 00:02:00:00:00:01 action drop
$ tc filter add dev p1p1 parent ffff: protocol ipv4 \
	flower skip_sw src_mac 00:02:00:00:00:02 action drop
...

There are also checks for VLAN parameters in this patch as other callers
may wildcard those parameters even if tc does not.  Using different
flow infrastructure could allow this to work in the future for L2 flows,
but for now it does not.

Fixes: 2ae7408fed ("bnxt_en: bnxt: add TC flower filter offload support")
Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-04-11 14:41:59 -04:00
..
bnxt_dcb.c ethernet/broadcom: Use zeroing memory allocator than allocator/memset 2018-01-02 21:56:40 -05:00
bnxt_dcb.h bnxt_en: Update firmware interface to 1.9.1.15. 2018-03-31 23:24:19 -04:00
bnxt_devlink.c bnxt_en: add support for Flower based vxlan encap/decap offload 2017-10-28 00:02:45 +09:00
bnxt_devlink.h bnxt: Move generic devlink code to new file 2017-10-21 12:28:39 +01:00
bnxt_dim.c bnxt_en: add support for software dynamic interrupt moderation 2018-01-10 15:27:45 -05:00
bnxt_ethtool.c bnxt_en: Fix ethtool -x crash when device is down. 2018-04-11 14:41:59 -04:00
bnxt_ethtool.h bnxt_en: Add ETH_RESET_AP support 2017-12-01 15:29:40 -05:00
bnxt_fw_hdr.h bnxt_en: Added support for Secure Firmware Update 2016-09-19 21:32:24 -04:00
bnxt_hsi.h bnxt_en: Update firmware interface to 1.9.1.15. 2018-03-31 23:24:19 -04:00
bnxt_nvm_defs.h bnxt_en: Add support for updating flash more securely 2016-07-02 14:52:35 -04:00
bnxt_sriov.c bnxt_en: Improve valid bit checking in firmware response message. 2018-03-31 23:24:19 -04:00
bnxt_sriov.h bnxt_en: Add support for ndo_set_vf_trust 2018-03-31 23:24:19 -04:00
bnxt_tc.c bnxt_en: do not allow wildcard matches for L2 flows 2018-04-11 14:41:59 -04:00
bnxt_tc.h bnxt_en: alloc tc_info{} struct only when tc flower is enabled 2017-10-28 00:02:45 +09:00
bnxt_ulp.c bnxt_en: Add ULP calls to stop and restart IRQs. 2018-03-31 23:24:20 -04:00
bnxt_ulp.h bnxt_en: Add ULP calls to stop and restart IRQs. 2018-03-31 23:24:20 -04:00
bnxt_vfr.c bnxt: use tc_cls_can_offload_and_chain0() 2018-01-25 21:23:08 -05:00
bnxt_vfr.h bnxt_en: export a common switchdev PARENT_ID for all reps of an adapter 2018-01-17 14:48:27 -05:00
bnxt_xdp.c bnxt_en: setup xdp_rxq_info 2018-01-05 15:21:21 -08:00
bnxt_xdp.h net: bpf: rename ndo_xdp to ndo_bpf 2017-11-05 22:26:18 +09:00
bnxt.c bnxt_en: Add ULP calls to stop and restart IRQs. 2018-03-31 23:24:20 -04:00
bnxt.h bnxt_en: Reserve completion rings and MSIX for bnxt_re RDMA driver. 2018-03-31 23:24:20 -04:00
Makefile bnxt_en: add support for software dynamic interrupt moderation 2018-01-10 15:27:45 -05:00