linux/drivers/net
Florian Fainelli d156576362 net: systemport: Establish lower/upper queue mapping
Establish a queue mapping between the DSA slave network device queues
created that correspond to switch port queues, and the transmit queue
that SYSTEMPORT manages.

We need to configure the SYSTEMPORT transmit queue with the switch port number
and switch port queue number in order for the switch and SYSTEMPORT hardware to
utilize the out of band congestion notification. This hardware mechanism works
by looking at the switch port egress queue and determines whether there is
enough buffers for this queue, with that class of service for a successful
transmission and if not, backpressures the SYSTEMPORT queue that is being used.

For this to work, we implement a notifier which looks at the
DSA_PORT_REGISTER event.  When DSA network devices are registered, the
framework calls the DSA notifiers when that happens, extracts the number
of queues for these devices and their associated port number, remembers
that in the driver private structure and linearly maps those queues to
TX rings/queues that we manage.

This scheme works because DSA slave network deviecs always transmit
through SYSTEMPORT so when DSA slave network devices are
destroyed/brought down, the corresponding SYSTEMPORT queues are no
longer used. Also, by design of the DSA framework, the master network
device (SYSTEMPORT) is registered first.

For faster lookups we use an array of up to DSA_MAX_PORTS * number of
queues per port, and then map pointers to bcm_sysport_tx_ring such that
our ndo_select_queue() implementation can just index into that array to
locate the corresponding ring index.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-12 12:10:02 -07:00
..
appletalk drivers: net: appletalk: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
arcnet drivers: net: arcnet: use setup_timer() helper. 2017-09-21 11:44:42 -07:00
bonding net: bonding: Add extack messages for some enslave failures 2017-10-04 21:39:34 -07:00
caif drivers: net: caif: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
can drivers: net: can: sja1000: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
cris
dsa net: dsa: lan9303: Add basic offloading of unicast traffic 2017-10-11 13:53:21 -07:00
ethernet net: systemport: Establish lower/upper queue mapping 2017-10-12 12:10:02 -07:00
fddi
fjes
hamradio mkiss: remove redundant check on len being zero 2017-09-30 05:44:28 +01:00
hippi drivers: net: hippi: use setup_timer() helper. 2017-09-21 11:44:41 -07:00
hyperv hv_netvsc: Add ethtool handler to set and get TCP hash levels 2017-10-08 10:11:01 -07:00
ieee802154
ipvlan net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
phy net: phy: at803x: Change error to EINVAL for invalid MAC 2017-10-11 14:14:32 -07:00
plip
ppp ppp: fix race in ppp device destruction 2017-10-06 10:16:34 -07:00
slip drivers: net: slip: use setup_timer() helper. 2017-09-21 11:44:40 -07:00
team net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-09 20:11:09 -07:00
vmxnet3
wan net: wan : hdlc: use setup_timer() helper 2017-09-21 15:48:46 -07:00
wimax
wireless Merge remote-tracking branch 'net-next/master' into mac80211-next 2017-10-06 11:46:55 +02:00
xen-netback drivers: net: xen-netback: use setup_timer() helper. 2017-09-21 11:44:41 -07:00
dummy.c net: remove MTU limits for dummy and ifb device 2017-09-25 16:26:09 -07:00
eql.c drivers: net: eql: use setup_timer() helper. 2017-09-21 11:44:42 -07:00
geneve.c
gtp.c
ifb.c net: remove MTU limits for dummy and ifb device 2017-09-25 16:26:09 -07:00
Kconfig net: Add support for networking over Thunderbolt cable 2017-10-02 11:24:42 -07:00
LICENSE.SRC
loopback.c
macsec.c net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
macvlan.c net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
macvtap.c net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
Makefile net: Add support for networking over Thunderbolt cable 2017-10-02 11:24:42 -07:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c net: Add support for networking over Thunderbolt cable 2017-10-02 11:24:42 -07:00
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-05 18:19:22 -07:00
veth.c
virtio_net.
virtio_net.c bpf: add meta pointer for direct access 2017-09-26 13:36:44 -07:00
vrf.c net: vrf: Add extack messages for enslave errors 2017-10-04 21:39:33 -07:00
vsockmon.c
vxlan.c
xen-netfront.c