linux_dsm_epyc7002/drivers/net/ethernet/broadcom
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
..
bnx2x bnx2x: Eliminate duplicate barriers on weakly-ordered archs 2018-03-26 12:47:55 -04:00
bnxt bnxt_en: do not allow wildcard matches for L2 flows 2018-04-11 14:41:59 -04:00
genet net: bcmgenet: Fix sparse warnings in bcmgenet_put_tx_csum() 2018-04-04 11:07:21 -04:00
b44.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
b44.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bcm63xx_enet.c ethernet/broadcom: Use zeroing memory allocator than allocator/memset 2018-01-02 21:56:40 -05:00
bcm63xx_enet.h bcm63xx_enet: use platform device id directly for miibus name 2017-12-19 11:07:16 -05:00
bcmsysport.c net: systemport: Fix sparse warnings in bcm_sysport_insert_tsb() 2018-04-04 11:07:21 -04:00
bcmsysport.h net: systemport: Fix coalescing settings handling 2018-03-30 10:03:36 -04:00
bgmac-bcma-mdio.c net: bgmac: use PHY subsystem for initializing PHY 2017-01-31 13:44:49 -05:00
bgmac-bcma.c net: bgmac: enable master mode for BCM54210E and B50212E PHYs 2017-10-12 22:59:38 -07:00
bgmac-platform.c net: ethernet: bgmac: mark expected switch fall-through 2017-11-11 18:49:26 +09:00
bgmac.c net: bgmac: Fix endian access in bgmac_dma_tx_ring_free() 2018-04-01 22:20:48 -04:00
bgmac.h net: bgmac: Correctly annotate register space 2018-04-01 22:20:48 -04:00
bnx2_fw.h
bnx2.c ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
bnx2.h ethernet/broadcom: use core min/max MTU checking 2016-10-18 11:34:18 -04:00
cnic_defs.h
cnic_if.h cnic: Add the interfaces to get FC-NPIV table. 2015-08-06 21:54:12 -07:00
cnic.c cnic: Fix an error handling path in 'cnic_alloc_bnx2x_resc()' 2017-09-23 17:04:27 -07:00
cnic.h
Kconfig net: systemport: add NET_DSA dependency 2017-10-16 21:21:05 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sb1250-mac.c ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
tg3.c ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
tg3.h tg3: APE heartbeat changes 2018-02-19 14:16:52 -05:00