linux/net
John Hurley 7f76fa3675 net: sched: register callbacks for indirect tc block binds
Currently drivers can register to receive TC block bind/unbind callbacks
by implementing the setup_tc ndo in any of their given netdevs. However,
drivers may also be interested in binds to higher level devices (e.g.
tunnel drivers) to potentially offload filters applied to them.

Introduce indirect block devs which allows drivers to register callbacks
for block binds on other devices. The callback is triggered when the
device is bound to a block, allowing the driver to register for rules
applied to that block using already available functions.

Freeing an indirect block callback will trigger an unbind event (if
necessary) to direct the driver to remove any offloaded rules and unreg
any block rule callbacks. It is the responsibility of the implementing
driver to clean any registered indirect block callbacks before exiting,
if the block it still active at such a time.

Allow registering an indirect block dev callback for a device that is
already bound to a block. In this case (if it is an ingress block),
register and also trigger the callback meaning that any already installed
rules can be replayed to the calling driver.

Signed-off-by: John Hurley <john.hurley@netronome.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-11-11 09:54:52 -08:00
..
6lowpan
9p Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-03 10:35:52 -07:00
802
8021q 8021q: use __vlan_hwaccel helpers 2018-11-08 20:45:04 -08:00
appletalk
atm
ax25
batman-adv
bluetooth Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-01 19:58:52 -07:00
bpf
bpfilter
bridge bridge: use __vlan_hwaccel helpers 2018-11-08 20:45:04 -08:00
caif
can
ceph Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-01 19:58:52 -07:00
core net/core: use __vlan_hwaccel helpers 2018-11-08 20:45:04 -08:00
dcb
dccp net: Convert protocol error handlers from void to int 2018-11-08 17:13:08 -08:00
decnet
dns_resolver
dsa
ethernet
hsr
ieee802154
ife
ipv4 net: tcp: remove BUG_ON from tcp_v4_err 2018-11-09 15:16:29 -08:00
ipv6 udp6: cleanup stats accounting in recvmsg() 2018-11-09 20:07:05 -08:00
iucv iucv: Remove SKB list assumptions. 2018-11-10 16:55:11 -08:00
kcm
key
l2tp
l3mdev
lapb
llc
mac80211
mac802154
mpls
ncsi
netfilter nfnetlink/queue: use __vlan_hwaccel helpers 2018-11-08 20:45:04 -08:00
netlabel
netlink
netrom
nfc
nsh
openvswitch OVS: remove VLAN_TAG_PRESENT - fixup 2018-11-10 13:42:16 -08:00
packet
phonet
psample
qrtr
rds
rfkill
rose
rxrpc rxrpc: Fix lockup due to no error backoff after ack transmit error 2018-11-02 23:59:26 -07:00
sched net: sched: register callbacks for indirect tc block binds 2018-11-11 09:54:52 -08:00
sctp sctp: Fix SKB list traversal in sctp_intl_store_ordered(). 2018-11-10 19:32:23 -08:00
smc Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-01 19:58:52 -07:00
strparser
sunrpc NFS client bugfixes for Linux 4.20 2018-11-04 08:20:09 -08:00
switchdev
tipc Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-01 19:58:52 -07:00
tls Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-01 19:58:52 -07:00
unix
vmw_vsock
wimax
wireless
x25
xdp
xfrm Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-11-03 18:25:17 -07:00
Kconfig
Makefile
compat.c
socket.c Merge branch 'work.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-11-01 19:58:52 -07:00
sysctl_net.c