linux/drivers/net/ethernet
David S. Miller 87e3de1e4e Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
Jeff Kirsher says:

====================
1GbE Intel Wired LAN Driver Updates 2017-10-27

This patchset is a proposal of how the Traffic Control subsystem can
be used to offload the configuration of the Credit Based Shaper
(defined in the IEEE 802.1Q-2014 Section 8.6.8.2) into supported
network devices.

As part of this work, we've assessed previous public discussions
related to TSN enabling: patches from Henrik Austad (Cisco), the
presentation from Eric Mann at Linux Plumbers 2012, patches from
Gangfeng Huang (National Instruments) and the current state of the
OpenAVNU project (https://github.com/AVnu/OpenAvnu/).

Overview
========

Time-sensitive Networking (TSN) is a set of standards that aim to
address resources availability for providing bandwidth reservation and
bounded latency on Ethernet based LANs. The proposal described here
aims to cover mainly what is needed to enable the following standards:
802.1Qat and 802.1Qav.

The initial target of this work is the Intel i210 NIC, but other
controllers' datasheet were also taken into account, like the Renesas
RZ/A1H RZ/A1M group and the Synopsis DesignWare Ethernet QoS
controller.

Proposal
========

Feature-wise, what is covered here is the configuration interfaces for
HW implementations of the Credit-Based shaper (CBS, 802.1Qav). CBS is
a per-queue shaper. Given that this feature is related to traffic
shaping, and that the traffic control subsystem already provides a
queueing discipline that offloads config into the device driver (i.e.
mqprio), designing a new qdisc for the specific purpose of offloading
the config for the CBS shaper seemed like a good fit.

For steering traffic into the correct queues, we use the socket option
SO_PRIORITY and then a mechanism to map priority to traffic classes /
Tx queues. The qdisc mqprio is currently used in our tests.

As for the CBS config interface, this patchset is proposing a new
qdisc called 'cbs'. Its 'tc' cmd line is:

$ tc qdisc add dev IFACE parent ID cbs locredit N hicredit M sendslope S \
     idleslope I

   Note that the parameters for this qdisc are the ones defined by the
   802.1Q-2014 spec, so no hardware specific functionality is exposed here.

Per-stream shaping, as defined by IEEE 802.1Q-2014 Section 34.6.1, is
not yet covered by this proposal.

v2: Merged patch 6 of the original series into patch 4 based on feedback
    from David Miller.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-29 11:20:28 +09:00
..
3com drivers/net: 3com/3c515: Convert timers to use timer_setup() 2017-10-27 12:09:15 +09:00
8390 drivers/net: 8390: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
adaptec
adi drivers: net: adi: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
aeroflex
agere drivers: net: et131x: use setup_timer() helper. 2017-09-21 11:44:39 -07:00
alacritech
allwinner
alteon
altera
amazon Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-22 13:39:14 +01:00
amd drivers/net: amd: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
apm drivers: net: xgene: Remove return statement from void function 2017-09-05 14:58:25 -07:00
apple net: ethernet: apple: Convert timers to use timer_setup() 2017-10-18 12:40:25 +01:00
aquantia net: aquantia: Bad udp rate on default interrupt coalescing 2017-10-21 12:32:24 +01:00
arc
atheros
aurora
broadcom bnxt_en: Fix randconfig build errors. 2017-10-28 18:24:15 +09:00
brocade bna: Convert timers to use timer_setup() 2017-10-18 12:39:38 +01:00
cadence net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
calxeda
cavium liquidio: fix kernel panic in VF driver 2017-10-28 18:52:46 +09:00
chelsio cxgb3: Check and handle the dma mapping errors 2017-10-29 11:10:17 +09:00
cirrus
cisco drivers: net: enic: use setup_timer() helper. 2017-09-21 11:44:44 -07:00
davicom davicom: Display proper debug level up to 6 2017-09-08 20:53:10 -07:00
dec net: tulip: Convert timers to use timer_setup() 2017-10-18 12:39:38 +01:00
dlink drivers/net: dlink: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
emulex be2net: fix TSO6/GSO issue causing TX-stall on Lancer/BEx 2017-09-13 09:28:18 -07:00
ezchip
faraday net: faraday: ftmac100: Use BUG_ON instead of if condition followed by BUG. 2017-10-27 23:53:14 +09:00
freescale dpaa_eth: remove obsolete comment 2017-10-18 13:44:47 +01:00
fujitsu
hisilicon net: hns3: fix the bug when reuse command description in hclge_add_mac_vlan_tbl 2017-10-26 17:25:35 +09:00
hp
huawei net-next/hinic: Fix a case of Tx Queue is Stopped forever 2017-09-28 10:26:50 -07:00
i825xx dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
ibm ibmvnic: Fix failover error path for non-fatal resets 2017-10-28 00:23:58 +09:00
intel igb: Add support for CBS offload 2017-10-27 09:49:36 -07:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-05 18:19:22 -07:00
mediatek drivers, net, ethernet: convert mtk_eth.dma_refcnt from atomic_t to refcount_t 2017-10-22 02:22:38 +01:00
mellanox drivers/net: mellanox: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
micrel net: ksz884x: Convert timers to use timer_setup() 2017-10-18 12:39:39 +01:00
microchip
moxa
myricom
natsemi drivers/net: natsemi: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
neterion net: neterion: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
netronome nfp: inform the VF driver needs to be restarted after changing the MAC 2017-10-28 18:59:48 +09:00
nuvoton drivers/net: nuvoton: Convert timers to use timer_setup() 2017-10-27 12:09:15 +09:00
nvidia forcedeth: Convert timers to use timer_setup() 2017-10-18 12:39:39 +01:00
nxp
oki-semi pch_gbe: Switch to new PCI IRQ allocation API 2017-10-16 21:12:32 +01:00
packetengines drivers/net: packetengines: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
pasemi
qlogic qed: Fix iWARP out of order flow 2017-10-19 12:46:43 +01:00
qualcomm net: qualcomm: rmnet: Add support for GRO 2017-10-28 00:10:23 +09:00
rdc
realtek r8169: Add support for interrupt coalesce tuning (ethtool -C) 2017-10-29 11:07:58 +09:00
renesas net: sh_eth: implement R-Car Gen[12] fallback compatibility strings 2017-10-20 08:32:24 +01:00
rocker rocker: fix rocker_tlv_put_* functions for KASAN 2017-09-25 20:18:27 -07:00
samsung drivers/net: sxgbe: Convert timers to use timer_setup() 2017-10-27 12:09:16 +09:00
seeq net: seeq: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
sfc net: ethernet/sfc: Convert timers to use timer_setup() 2017-10-25 12:57:33 +09:00
sgi net/ethernet/sgi: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
silan
sis drivers/net: sis: Convert timers to use timer_setup() 2017-10-25 13:09:47 +09:00
smsc drivers/net: smsc: Convert timers to use timer_setup() 2017-10-28 19:09:50 +09:00
stmicro stmmac: copy unicast mac address to MAC registers 2017-10-28 19:04:29 +09:00
sun net: ethernet: sun: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
synopsys
tehuti
ti net/ti/tlan: Convert timers to use timer_setup() 2017-10-18 12:39:36 +01:00
tile net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
toshiba drivers: net: spider_net: use setup_timer() helper. 2017-09-21 11:44:40 -07:00
tundra
via dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
wiznet
xilinx
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c drivers/net: fealnx: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
jme.c
jme.h
Kconfig
korina.c drivers/net: korina: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
lantiq_etop.c
Makefile
netx-eth.c