* Re: [PATCH] stmmac: disable tx coalescing
From: David Miller @ 2016-12-11 19:31 UTC (permalink / raw)
To: pavel
Cc: peppe.cavallaro, netdev, linux-kernel, alexandre.torgue,
LinoSanfilippo
In-Reply-To: <20161211190750.GA14287@amd>
From: Pavel Machek <pavel@ucw.cz>
Date: Sun, 11 Dec 2016 20:07:50 +0100
> David, ping? Can I get you to apply this one?
>
> As you noticed, tx coalescing is completely broken in that driver, and
> not easy to repair. This is simplest way to disable it. It can still
> be re-enabled from userspace, so code can be fixed in future.
Sorry I'm not applying this, I want you and the driver maintainer
to reach a real solution.
^ permalink raw reply
* Re: [PATCH] [v4] net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause
From: Florian Fainelli @ 2016-12-11 19:45 UTC (permalink / raw)
To: Timur Tabi, David Miller, netdev, jon.mason, nks.gnu
In-Reply-To: <1481138451-28144-1-git-send-email-timur@codeaurora.org>
Le 12/07/16 à 11:20, Timur Tabi a écrit :
> Instead of having individual PHY drivers set the SUPPORTED_Pause and
> SUPPORTED_Asym_Pause flags, phylib itself should set those flags,
> unless there is a hardware erratum or other special case. During
> autonegotiation, the PHYs will determine whether to enable pause
> frame support.
>
> Pause frames are a feature that is supported by the MAC. It is the MAC
> that generates the frames and that processes them. The PHY can only be
> configured to allow them to pass through.
>
> This commit also effectively reverts the recently applied c7a61319
> ("net: phy: dp83848: Support ethernet pause frames").
>
> So the new process is:
>
> 1) Unless the PHY driver overrides it, phylib sets the SUPPORTED_Pause
> and SUPPORTED_AsymPause bits in phydev->supported. This indicates that
> the PHY supports pause frames.
>
> 2) The MAC driver checks phydev->supported before it calls phy_start().
> If (SUPPORTED_Pause | SUPPORTED_AsymPause) is set, then the MAC driver
> sets those bits in phydev->advertising, if it wants to enable pause
> frame support.
>
> 3) When the link state changes, the MAC driver checks phydev->pause and
> phydev->asym_pause, If the bits are set, then it enables the corresponding
> features in the MAC. The algorithm is:
>
> if (phydev->pause)
> The MAC should be programmed to receive and honor
> pause frames it receives, i.e. enable receive flow control.
>
> if (phydev->pause != phydev->asym_pause)
> The MAC should be programmed to transmit pause
> frames when needed, i.e. enable transmit flow control.
>
> Signed-off-by: Timur Tabi <timur@codeaurora.org>
This is already applied but:
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Thanks!
--
Florian
^ permalink raw reply
* Re: [PATCH] stmmac: disable tx coalescing
From: Pavel Machek @ 2016-12-11 19:57 UTC (permalink / raw)
To: David Miller
Cc: peppe.cavallaro, netdev, linux-kernel, alexandre.torgue,
LinoSanfilippo
In-Reply-To: <20161211.143113.268450274785467682.davem@davemloft.net>
[-- Attachment #1: Type: text/plain, Size: 1744 bytes --]
On Sun 2016-12-11 14:31:13, David Miller wrote:
> From: Pavel Machek <pavel@ucw.cz>
> Date: Sun, 11 Dec 2016 20:07:50 +0100
>
> > David, ping? Can I get you to apply this one?
> >
> > As you noticed, tx coalescing is completely broken in that driver, and
> > not easy to repair. This is simplest way to disable it. It can still
> > be re-enabled from userspace, so code can be fixed in future.
>
> Sorry I'm not applying this, I want you and the driver maintainer
> to reach a real solution.
This is what you said about this driver:
# > 4.9-rc6 still has the delays. With the
# >
# > #define STMMAC_COAL_TX_TIMER 1000
# > #define STMMAC_TX_MAX_FRAMES 2
# >
# > settings, delays go away, and driver still works. (It fails fairly
# > fast in 4.4). Good news. But the question still is: what is going on
# > there?
#
# 256 packets looks way too large for being a trigger for aborting the
# TX coalescing timer.
#
# Looking more deeply into this, the driver is using non-highres timers
# to implement the TX coalescing. This simply cannot work.
#
# 1 HZ, which is the lowest granularity of non-highres timers in the
# kernel, is variable as well as already too large of a delay for
# effective TX coalescing.
#
# I seriously think that the TX coalescing support should be ripped out
# or disabled entirely until it is implemented properly in this driver.
I'm doing just that -- disabling it entirely until it is done
properly.
Unfortunately, maintainer does not think delays are huge problem. So I
need your help here.
Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply
* [PATCH net] net: dsa: mv88e6xxx: Fix opps when adding vlan bridge
From: Andrew Lunn @ 2016-12-11 20:07 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Vivien Didelot, Andrew Lunn
A port is not necessarily assigned to a netdev. And a port does not
need to be a member of a bridge. So when iterating over all ports,
check before using the netdev and bridge_dev for a port. Otherwise we
dereference a NULL pointer.
Fixes: da9c359e19f0 ("net: dsa: mv88e6xxx: check hardware VLAN in use")
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
drivers/net/dsa/mv88e6xxx/chip.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 883fd9809dd2..4e5ab856b87a 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -1796,6 +1796,9 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port,
if (dsa_is_dsa_port(ds, i) || dsa_is_cpu_port(ds, i))
continue;
+ if (!ds->ports[port].netdev)
+ continue;
+
if (vlan.data[i] ==
GLOBAL_VTU_DATA_MEMBER_TAG_NON_MEMBER)
continue;
@@ -1804,6 +1807,9 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port,
chip->ports[port].bridge_dev)
break; /* same bridge, check next VLAN */
+ if (!chip->ports[i].bridge_dev)
+ continue;
+
netdev_warn(ds->ports[port].netdev,
"hardware VLAN %d already used by %s\n",
vlan.vid,
--
2.10.2
^ permalink raw reply related
* Re: [PATCH 1/2] net: ethernet: sxgbe: remove private tx queue lock
From: Pavel Machek @ 2016-12-11 20:11 UTC (permalink / raw)
To: Lino Sanfilippo
Cc: Francois Romieu, bh74.an, ks.giri, vipul.pandya, peppe.cavallaro,
alexandre.torgue, davem, linux-kernel, netdev
In-Reply-To: <c76124b9-6376-42b9-2821-b5a8185f5034@gmx.de>
[-- Attachment #1: Type: text/plain, Size: 2356 bytes --]
Hi!
> On 09.12.2016 12:21, Pavel Machek wrote:
> > On Fri 2016-12-09 00:19:43, Francois Romieu wrote:
> >> Lino Sanfilippo <LinoSanfilippo@gmx.de> :
> >> [...]
> >> > OTOH Pavel said that he actually could produce a deadlock. Now I wonder if
> >> > this is caused by that locking scheme (in a way I have not figured out yet)
> >> > or if it is a different issue.
> >>
> >> stmmac_tx_err races with stmmac_xmit.
> >
> > Umm, yes, that looks real.
> >
> > And that means that removing tx_lock will not be completely trivial
> > :-(. Lino, any ideas there?
> >
>
> Ok, the race is there but it looks like a problem that is not related to
> the use or removal of the private lock.
Well, removal of the private lock will make it trickier to fix :-(.
> By a glimpse into other drivers (e.g sky2 or e1000), a possible way to handle a
> tx error is to start a separate task and restart the tx path in that task instead
> the irq handler (or timer in case of the watchdog).
>
> In that task we could do:
> 1. deactivate napi
> 2. deactivate irqs
> 3. wait for running napi/irqs do complete (_sync)
> 4. call stmmac_tx_err()
> 5. reenable napi
> 6. reenable irqs
>
> We have to ensure that no xmit() is executing while stmmac_tx_err() does the cleanup,
> so stmmac_tx_err() should IMO rather call netif_tx_disable() instead of netif_stop_queue()
> (the former grabs the xmit lock before it sets __QUEUE_STATE_DRV_XOFF to disable
> the queue).
Do you understand what stmmac_tx_err(priv); is supposed to do? In
particular, if it is called while the driver is working ok -- should
the driver survive that?
Because it does not currently, and I don't know how to test that
code. Unplugging the cable does not provoke that.
I tried
} else if (unlikely(status == tx_hard_error))
stmmac_tx_err(priv);
+
+ {
+ static int i;
+ i++;
+ if (i==1000) {
+ i = 0;
+ printk("Simulated error\n");
+ stmmac_tx_err(priv);
+ }
+ }
}
but the driver does not survive that :-(.
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply
* [GIT] Networking
From: David Miller @ 2016-12-11 20:21 UTC (permalink / raw)
To: torvalds; +Cc: akpm, netdev, linux-kernel
This is a pull request for the upcoming merge window:
1) Platform regulatory domain support for ath10k, from Bartosz
Markowski.
2) Centralize min/max MTU checking, thus removing tons of duplicated
code all of the the various drivers. From Jarod Wilson.
3) Support ingress actions in act_mirred, from Shmulik Ladkani.
4) Improve device adjacency tracking, from David Ahern.
5) Add support for LED triggers on PHY link state changes, from
Zach Brown.
6) Improve UDP socket memory accounting, from Paolo Abeni.
7) Set SK_MEM_QUANTUM to a fixed size of 4096, instead of PAGE_SIZE.
From Eric Dumazet.
8) Collapse TCP SKBs at retransmit time even if the right side SKB
has frags. Also from Eric Dumazet.
9) Add IP_RECVFRAGSIZE and IPV6_RECVFRAGSIZE cmsgs, from Willem de
Bruijn.
10) Support routing by UID, from Lorenzo Colitti.
11) Handle L3 domain binding (ie. VRF) for RAW sockets, from
David Ahern.
12) tcp_get_info() can run lockless, from Eric Dumazet.
13) 4-tuple UDP hashing in SFC driver, from Edward Cree.
14) Avoid reorders in GRO code, from Eric Dumazet.
15) IPV6 Segment Routing support, from David Lebrun.
16) Support MPLS push and pop for L3 packets in openvswitch, from
Jiri Benc.
17) Add LRU datastructure support for BPF, Martin KaFai Lau.
18) VF support in liquidio driver, from Raghu Vatsavayi.
19) Multiqueue support in alx driver, from Tobias Regnery.
20) Networking cgroup BPF support, from Daniel Mack.
21) TCP chronograph measurements, from Francis Yan.
22) XDP support for qed driver, from Yuval Mintz.
23) BPF based lwtunnels, from Thomas Graf.
24) Consistent FIB dumping to offloading drivers, from Ido Schimmel.
25) Many optimizations for UDP under high load, from Eric
Dumazet.
The following changes since commit 045169816b31b10faed984b01c390db1b32ee4c1:
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2016-12-10 09:47:13 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
for you to fetch changes up to d84701ecbcd6ad63faa7a9c18ad670d1c4d561c0:
netfilter: nft_counter: rework atomic dump and reset (2016-12-11 10:01:05 -0500)
----------------------------------------------------------------
Aaron Conole (4):
virtio-net: Update the mtu code to match virtio spec
netfilter: introduce accessor functions for hook entries
netfilter: decouple nf_hook_entry and nf_hook_ops
netfilter: convert while loops to for loops
Aaron Young (1):
ldmvsw: tx queue stuck in stopped state after LDC reset
Alan Brady (3):
i40e/i40evf: fix interrupt affinity bug
i40e: fix MAC filters when removing VLANs
i40evf: check for msix_entries null dereference
Alexander Aring (1):
at86rf230: fix cca ed values for rf233
Alexander Duyck (14):
i40e: Rewrite Flow Director busy wait loop
i40e: Remove unused function i40e_vsi_lookup
i40e: Drop code for unsupported flow types
i40e: Drop redundant Rx descriptor processing code
i40e: Clean up handling of msglevel flags and debug parameter
net: Move functions for configuring traffic classes out of inline headers
net: Add sysfs value to determine queue traffic class
net: Refactor removal of queues from XPS map and apply on num_tc changes
net: Add support for XPS with QoS via traffic classes
i40e: Add common function for finding VSI by type
i40e: Reorder logic for coalescing RS bits
i40e: Be much more verbose about what we can and cannot offload
i40evf: Be much more verbose about what we can and cannot offload
i40e/i40evf: napi_poll must return the work done
Alexei Starovoitov (6):
samples/bpf: fix sockex2 example
samples/bpf: fix bpf loader
samples/bpf: fix include path
cgroup, bpf: remove unnecessary #include
samples/bpf: silence compiler warnings
bpf: fix state equivalence
Alexey Dobriyan (9):
netns: make struct pernet_operations::id unsigned int
net: make struct napi_alloc_cache::skb_count unsigned int
netlink: use "unsigned int" in nla_next()
netlink: smaller nla_attr_minlen table
net: fix bogus cast in skb_pagelen() and use unsigned variables
netlink: 2-clause nla_ok()
netns: publish net_generic correctly
netns: add dummy struct inside "struct net_generic"
netns: fix net_generic() "id - 1" bloat
Allan W. Nielsen (1):
net: phy: Cleanup the Edge-Rate feature in Microsemi PHYs.
Amit Kushwaha (2):
net: socket: preferred __aligned(size) for control buffer
net: socket: removed an unnecessary newline
Amitkumar Karwar (6):
mwifiex: prevent register accesses after host is sleeping
mwifiex: report error to PCIe for suspend failure
mwifiex: Fix NULL pointer dereference in skb_dequeue()
mwifiex: add memrw command information in README
mwifiex: ignore calibration data failure
mwifiex: remove redundant pdev check in suspend/resume handlers
Anders K. Pedersen (1):
netfilter: nf_tables: introduce routing expression
Andreas Färber (2):
net: dsa: mv88e6xxx: Fix mv88e6xxx_g1_irq_free() interrupt count
MAINTAINERS: Add device tree bindings to mv88e6xx section
Andrei Otcheretianski (1):
cfg80211: allow vendor commands to be sent to nan interface
Andrew Lunn (34):
net: dsa: mv88e6xxx: Implement interrupt support.
net: phy: Use threaded IRQ, to allow IRQ from sleeping devices
net: phy: Threaded interrupts allow some simplification
net: phy: Use phy name when requesting the interrupt
arm: vf610: zii devel b: Add support for switch interrupts
net: dsa: mv88e6xxx: Don't modify RGMII delays when not RGMII mode
net: dsa: mv88e6xxx: 6351 family also has RGMII delays
net: dsa: mv88e6xxx: Respect SPEED_UNFORCED, don't set force bit
net: dsa: mv88e6xxx: Fix typos when removing g1 interrupts
net: dsa: mv88e6xxx: Fix unconditional irq freeing
net: dsa: mv88e6xxx: Mask g1 interrupts and free interrupt
net: dsa: mv88e6xxx: Fix cleanup on error for g1 interrupt setup
net: dsa: mv88e6xxx: Fix releasing for the global2 interrupts
net: dsa: mv88e6xxx: Hold the mutex while freeing g1 interrupts
net: dsa: mv88e6xxx: Take switch out of reset before probe
net: dsa: mv88e6xxx: Fix unused variable warning by using variable
net: dsa: mv88e6xxx: Add the mv88e6390 family
net: dsa: mv88e6xxx: Abstract stats_snapshot into ops structure
net: dsa: mv88e6xxx: Add comment about family a device belongs to
net: dsa: mv88e6xxx: Add mv88e6390 stats snapshot operation
net: dsa: mv88e6xxx: Add mv88e6390 statistics unit init
net: dsa: mv88e6xxx: Add stats_get_sset_count|string to ops structure
net: dsa: mv88e6xxx: Add stats_get_stats to ops structure
net: dsa: mv88e6xxx: Implement mv88e6390 get_stats
net: dsa: mv88e6xxx: Move g1 stats code in global1.[ch]
net: dsa: mv88e6xxx: Implement mv88e6390 tag remap
net: dsa: mv88e6xxx: Monitor and Management tables
net: dsa: mv88e6xxx: Move the tagging protocol into info
net: dsa: mv88e6xxx: Refactor CPU and DSA port setup
net: dsa: mv88e6xxx: Reserved Management frames to CPU
net: dsa: mv88e6xxx: Refactor setting of jumbo frames
net: dsa: mv88e6xxx: Refactor egress rate limiting
net: dsa: mv88e6xxx: Refactor pause configuration
net: dsa: mv88e6xxx: Implement mv88e6390 pause control
Andrey Konovalov (1):
tun: Use netif_receive_skb instead of netif_rx
Andrey Vagin (4):
net: allow to kill a task which waits net_mutex in copy_new_ns
net: skip genenerating uevents for network namespaces that are exiting
net: add an ioctl to get a socket network namespace
tcp: allow to enable the repair mode for non-listening sockets
Anilkumar Kolli (3):
ath10k: add cc_wraparound type for QCA9888 and QCA9884
ath10k: add per peer htt tx stats support for 10.4
ath10k: add support for per sta tx bitrate
Anthony Romano (2):
mt7601u: wait for clear rxq when stopping mac
ath9k_htc: don't use HZ for usb msg timeouts
Antonio Quartulli (2):
batman-adv: remove unsed argument from batadv_dbg_arp() function
skbedit: allow the user to specify bitmask for mark
Arend Van Spriel (12):
cfg80211: add generic helper to check interface is running
brcmfmac: add support for 43341 chip
brcmfmac: move pno helper functions in separate source file
brcmfmac: fix handling ssids in .sched_scan_start() callback
brcmfmac: change prototype for brcmf_do_escan()
brcmfmac: make internal escan more generic
brcmfmac: split up brcmf_pno_config() function
brcmfmac: move scheduled scan activation to pno source file
brcmfmac: use provided channels for scheduled scan
brcmfmac: remove restriction from .sched_scan_start() callback
brcmfmac: use requested scan interval in scheduled scan
brcmfmac: fix scheduled scan result handling for newer chips
Arnd Bergmann (17):
fjes: fix format string for trace output
mac80211: fils_aead: fix encrypt error handling
net: ip, diag: include net/inet_sock.h
udp: provide udp{4,6}_lib_lookup for nf_socket_ipv{4,6}
netfilter: conntrack: fix NF_REPEAT handling
net: mii: report 0 for unknown lp_advertising
netronome: don't access real_num_rx_queues directly
wireless: fix bogus maybe-uninitialized warning
cw1200: fix bogus maybe-uninitialized warning
marvell: mark mvneta and mvpp2 32-bit only
mlxsw: switchib: add MLXSW_PCI dependency
net/mlx5e: skip loopback selftest with !CONFIG_INET
irda: w83977af_ir: fix damaged whitespace
net/mlx5e: use %pad format string for dma_addr_t
net: xgene: move xgene_cle_ptree_ewdn data off stack
net: xgene: avoid bogus maybe-uninitialized warning
net: mvneta: select GENERIC_ALLOCATOR
Artemy Kovalyov (2):
net/mlx5: Update struct mlx5_ifc_xrqc_bits
net/mlx5: Ensure SRQ physical address structure endianness
Arturo Borrero Gonzalez (1):
netfilter: update Arturo Borrero Gonzalez email address
Asbjørn Sloth Tønnesen (8):
net: l2tp: change L2TP_ATTR_UDP_ZERO_CSUM6_{RX, TX} attribute types
net: l2tp: only set L2TP_ATTR_UDP_CSUM if AF_INET
net: l2tp: netlink: l2tp_nl_tunnel_send: set UDP6 checksum flags
net: l2tp: cleanup: remove redundant condition
net: l2tp: fix negative assignment to unsigned int
net: l2tp: export debug flags to UAPI
net: l2tp: deprecate PPPOL2TP_MSG_* in favour of L2TP_MSG_*
net: l2tp: ppp: change PPPOL2TP_MSG_* => L2TP_MSG_*
Aviya Erenfeld (1):
iwlwifi: mvm: use dev_coredumpsg()
Barry Day (1):
rtl8xxxu: tx rate reported before set
Bartosz Markowski (1):
ath10k: add platform regulatory domain support
Ben Greear (1):
ath10k: wmi-alloc-chunk should use DMA_BIDIRECTIONAL
Benjamin Berg (1):
ath10k: allow setting coverage class
Bert Kenward (2):
ethernet/sfc: use core min/max MTU checking
sfc: Firmware-Assisted TSO version 2
Bhumika Goyal (2):
net: ieee802154: constify ieee802154_ops structures
ath9k: constify ath_bus_ops structure
Bimmy Pujari (3):
i40e/i40evf: Changed version from 1.6.16 to 1.6.19
i40e/i40evf: Changed version from 1.6.19 to 1.6.21
Changed version from 1.6.21 to 1.6.25
Brian Norris (11):
mwifiex: don't do unbalanced free()'ing in cleanup_if()
mwifiex: resolve races between async FW init (failure) and device removal
mwifiex: don't pretend to resume while remove()'ing
mwifiex: resolve suspend() race with async FW init failure
mwifiex: usb: handle HS failures
mwifiex: sdio: don't check for NULL sdio_func
mwifiex: stop checking for NULL drvata/intfdata
mwifiex: pcie: stop checking for NULL adapter->card
mwifiex: cleanup wake-IRQ handling if suspend fails
mwifiex: avoid double-disable_irq() race
mwifiex: pcie: implement timeout loop for FW programming doorbell
Calvin Owens (1):
netfilter: nfnetlink_log: Use GFP_NOWARN for skb allocation
Carolyn Wyborny (5):
i40e: Fix client interaction
i40e: Fix for long link down notification time
i40e: change message to only appear when extra debug info is wanted
i40e: Add support for 25G devices
i40e: Add FEC for 25g
Chris Paterson (2):
can: rcar_can: Add r8a7796 support
can: rcar_canfd: Add r8a7796 support
Colin Ian King (6):
s390/lcs: remove trailing space at end of dev_err message
net caif: insert missing spaces in pr_* messages and unbreak multi-line strings
i40e: Add missing \n to end of dev_err message
ath9k_htc: fix minor mistakes in dev_err messages
cxgb4: fix memory leak on txq_info
net: can: usb: kvaser_usb: fix spelling mistake of "outstanding"
Cyrill Gorcunov (4):
net: ip, diag -- Add diag interface for raw sockets
net: ip, diag -- Adjust raw_abort to use unlocked __udp_disconnect
net: ip, raw_diag -- Fix socket leaking for destroy request
net: ip, raw_diag -- Use jump for exiting from nested loop
Dan Carpenter (5):
liquidio CN23XX: bitwise vs logical AND typo
net/mlx5: remove a duplicate condition
sfc: remove unneeded variable
drivers: net: xgene: uninitialized variable in xgene_enet_free_pagepool()
net: mvneta: Indent some statements
Daniel Borkmann (22):
bpf: add various tests around spill/fill of regs
bpf: add initial suite for selftests
bpf: add helper for retrieving current numa node id
reuseport, bpf: add test case for bpf_get_numa_node_id
bpf, inode: add support for symlinks and fix mtime/ctime
bpf, mlx4: fix prog refcount in mlx4_en_try_alloc_resources error path
bpf, mlx5: fix mlx5e_create_rq taking reference on prog
bpf, mlx5: fix various refcount issues in mlx5e_xdp_set
bpf, mlx5: drop priv->xdp_prog reference on netdev cleanup
bpf: add __must_check attributes to refcount manipulating helpers
bpf: drop unnecessary context cast from BPF_PROG_RUN
bpf: drop useless bpf_fd member from cls/act
bpf: reuse dev_is_mac_header_xmit for redirect
bpf: add owner_prog_type and accounted mem to array map's fdinfo
bpf: allow for mount options to specify permissions
bpf: fix multiple issues in selftest suite and samples
bpf, xdp: allow to pass flags to dev_change_xdp_fd
bpf, xdp: drop rcu_read_lock from bpf_prog_run_xdp and move to caller
bpf: remove type arg from __is_valid_{,xdp_}access
bpf, cls: consolidate prog deletion path
bpf: add prog_digest and expose it via fdinfo/netlink
bpf: fix loading of BPF_MAXINSNS sized programs
Daniel Mack (7):
bpf: add new prog type for cgroup socket filtering
cgroup: add support for eBPF programs
bpf: add BPF_PROG_ATTACH and BPF_PROG_DETACH commands
net: filter: run cgroup eBPF ingress programs
net: ipv4, ipv6: run cgroup eBPF egress programs
samples: bpf: add userspace example for attaching eBPF programs to cgroups
bpf: cgroup: fix documentation of __cgroup_bpf_update()
Daode Huang (3):
net: hns: set default mac pause time to 0xffff
net: hns: bug fix about restart auto-negotiation
net: hns: fix to intimate the link-status change by adding LF/RF method
David Ahern (20):
net: Remove refnr arg when inserting link adjacencies
net: Introduce new api for walking upper and lower devices
net: bonding: Flip to the new dev walk API
IB/core: Flip to the new dev walk API
IB/ipoib: Flip to new dev walk API
ixgbe: Flip to the new dev walk API
mlxsw: Flip to the new dev walk API
rocker: Flip to the new dev walk API
net: Remove all_adj_list and its references
net: Add warning if any lower device is still in adjacency list
net: dev: Improve debug statements for adjacency tracking
net: dev: Fix non-RCU based lower dev walker
net: Enable support for VRF with ipv4 multicast
net: Update raw socket bind to consider l3 domain
bpf: Refactor cgroups code in prep for new type
bpf: Add new cgroup attach type to enable sock modifications
samples: bpf: add userspace example for modifying sk_bound_dev_if
bpf: Add support for reading socket family, type, protocol
samples/bpf: Update bpf loader for cgroup section names
samples/bpf: add userspace example for prohibiting sockets
David Ertman (1):
i40e: Fix bit logic error in failure case
David Lebrun (11):
ipv6: implement dataplane support for rthdr type 4 (Segment Routing Header)
ipv6: sr: add code base for control plane support of SR-IPv6
ipv6: sr: add support for SRH encapsulation and injection with lwtunnels
ipv6: sr: add core files for SR HMAC support
ipv6: sr: implement API to control SR HMAC structure
ipv6: sr: add calls to verify and insert HMAC signatures
ipv6: add source address argument for ipv6_push_nfrag_opts
ipv6: sr: add support for SRH injection through setsockopt
ipv6: sr: add documentation file for per-interface sysctls
ipv6: sr: add option to control lwtunnel support
lwtunnel: subtract tunnel headroom from mtu on output redirect
David S. Miller (164):
Merge branch 'xgene-gpio'
Merge branch 's390-net'
Merge branch 'centralize-netdevice-mtu-bounds-checking'
Merge branch 's390-net'
Merge git://git.kernel.org/.../davem/net
Merge branch 'ingress-actions'
Merge branch 'qed-next'
Merge branch 'fjes-next'
Merge branch 'ila-cached-route'
Merge branch 'mv88e6xxx-interrupt-support'
Merge branch 'dp83867-impedance-control'
Merge branch 'ethernet-use-core-min-max-mtu'
Merge branch 'bpf-selftests'
Merge branch 'netdev-adjacency'
Merge branch 'phy-led-triggers'
Merge branch 'smc91x-dt'
Merge branch 'ovs-remove-unused'
Merge branch 'macb-ethtool-ringparam'
Merge branch 'MTU-core-range-checking-more'
Merge branch 'udpmem'
Merge branch 'bpf-numa-id'
Merge branch 'mlxsw-cosmetics-plus-res-mgmt-rewrite'
Merge branch 'BCM54612E'
Merge branch 'genetlink-improvements'
Merge branch 'master' of git://git.kernel.org/.../klassert/ipsec-next
Merge branch 'mlxsw-next'
Merge branch '40GbE' of git://git.kernel.org/.../jkirsher/next-queue
Merge tag 'batadv-next-for-davem-20161027' of git://git.open-mesh.org/linux-merge
Merge tag 'mac80211-next-for-davem-2016-10-28' of git://git.kernel.org/.../jberg/mac80211-next
Merge git://git.kernel.org/.../davem/net
Merge branch 'mlxsw-IB'
Merge tag 'shared-for-4.10-1' of git://git.kernel.org/.../leon/linux-rdma
mv643xx_eth: Fix merge error.
mv643xx_eth: Properly resolve merge conflict.
Merge branch 'xps-DCB'
Merge branch 'qed-next'
Merge branch 'bridge-PIM-hello'
Merge branch '40GbE' of git://git.kernel.org/.../jkirsher/next-queue
Merge branch 'qed-next'
Merge branch 'nfp-cleanups-and-RX-path-rewrite'
Merge branch 'tipc-socket-layer-improvements'
Merge git://git.kernel.org/.../pablo/nf-next
Merge branch 'cls_flower-misc'
Merge branch 'mlx4-XDP-tx-refactor'
Merge branch 'diag-raw-fixes'
Merge branch 'stmmac-OXNAS'
Merge branch 'ip-recvfragsize-cmsg'
Merge branch 'dsa-mv88e6xxx-port-operation-refine'
Merge branch 'uid-routing'
Merge branch 'amd-xgbe-updates'
Merge branch 'nfp-ring-reconfig-and-xdp-support'
Merge branch '10GbE' of git://git.kernel.org/.../jkirsher/next-queue
Merge branch 'dwmac-sti-refactor-cleanup'
Merge branch 'ns2-amac'
Merge branch 'udp-fwd-mem-sched-on-dequeue'
Merge branch 'IFF_NO_QUEUE-semantics'
Merge branch 'rds-tcp-fixes'
Merge branch 'Meson-GXL-internal-phy'
Merge branch 'tcp_get_info-locking'
Merge branch 'stmmac-dwmac-rk-PM'
Merge branch 'mlx5-SRIOV-offload-tunnel_key-set-release'
Merge branch 'sfc-udp-rss'
Merge branch 'ipv6-sr'
Merge branch 'PHC-freq-fine-tuning'
Merge tag 'batadv-next-for-davem-20161108-v2' of git://git.open-mesh.org/linux-merge
Merge branch 'hns-fixes'
Merge branch 'ovs-L3-encap'
Merge branch 'amd-xgbe-updates'
genetlink: Make family a signed integer.
Merge branch 'dsa-mv88e6xxx-post-refactor-fixes'
Merge git://git.kernel.org/.../pablo/nf-next
Merge git://git.kernel.org/.../davem/net
Merge branch 'bpf-lru'
Merge branch 'vxlan-xmit-improvements'
vxlan: Fix uninitialized variable warnings.
Merge branch 'phy_ethtool_nway_reset'
Merge branch 'sun4i-emac-big-endian'
Merge branch 'amd-xgbe-next'
Merge branch 'liquidio-CN23XX-VF-support'
Merge branch 'dpaa_eth-next'
Merge branch 'alx-multiqueue-support'
Merge branch 'busypoll-preemption-and-other-optimizations'
Merge branch 'nway-reset'
Merge branch 'amd-xgbe-next'
Merge branch 'bnxt_en-next'
Merge branch 'mlxsw-i2c'
Merge branch 'rds-ha-failover-fixes'
Merge branch 'sfc-tso-v2'
Merge branch 'mlx5-next'
Merge branch 'ethtool-phy-downshift'
Merge branch 'net-marvell-freescale-compile-test'
Merge tag 'batadv-next-for-davem-20161119' of git://git.open-mesh.org/linux-merge
Merge branch 'mV88e6xxx-interrupt-fixes'
Merge branch 'mlx5-bpf-refcnt-fixes'
Merge branch 'bridge-igmpv3-mldv2-support'
Merge branch 'tcp-cong-undo_cwnd-mandatory'
Merge branch 'geneve-lwt-efficiency'
Merge branch 'mv88e6390-initial-support'
Merge branch 'mlxsw-thermal-zone'
Merge git://git.kernel.org/.../davem/net
Merge branch 'phy-broadcom-wirespeed-downshift-support'
Merge branch 'mlx5-next'
Merge branch 'cgroup-bpf'
Merge branch 'thunderx-new-features'
Merge branch 'mlxsw-trap-groups-and-policers'
Merge git://git.kernel.org/.../davem/net
Merge tag 'wireless-drivers-next-for-davem-2016-11-25' of git://git.kernel.org/.../kvalo/wireless-drivers-next
Merge branch 'bpf-misc-next'
Merge branch 'MV88E6097-fixes'
Merge branch 'mlx5-DCBX-and-ethtool-updates'
Merge branch 'phy-doc-improvements'
Merge branch 'eee-broken-modes'
Merge branch 'mlxsw-enhancements'
Merge branch 'tcp-sender-chronographs'
Merge branch 'broadcom-phy-internal-counters'
Merge branch 'liquidio-VF'
Merge branch 'qed-XDP-support'
Merge branch 'cpsw-per-channel-shaping'
Merge branch 'mdix_ctrl'
Merge branch 'sfc-defalconisation-fixups'
Merge branch 'altera-tse-sgmii-pcs'
Merge branch 'mlx5-updates'
Merge branch 'lwt-bpf'
Merge branch 'qed-iscsi'
Merge branch 'offloading-tc-rules-hw'
Merge branch 'bpf-support-for-sockets'
Merge branch 'mvneta-64bit'
Merge tag 'wireless-drivers-next-for-davem-2016-12-01' of git://git.kernel.org/.../kvalo/wireless-drivers-next
Merge git://git.kernel.org/.../davem/net
Merge tag 'linux-can-next-for-4.10-20161201' of git://git.kernel.org/.../mkl/linux-can-next
Merge branch 'xgene-jumbo-and-pause-frame'
Merge branch 'samples-bpf-automated-cgroup-tests'
Merge branch '40GbE' of git://git.kernel.org/.../jkirsher/next-queue
Merge branch 'fib-notifier-event-replay'
Merge branch 'mv88e6390-batch-two'
Merge branch 'mv88e6390-batch-three'
Merge branch 'bnxt_en-dcbnl'
Merge branch 'tcp-tsq-perf'
Merge branch 'for-upstream' of git://git.kernel.org/.../bluetooth/bluetooth-next
Merge branch 'ethoc-next'
Merge branch 'bpf-prog-digest'
Merge branch 'hix5hd2_gmac-txsg-reset-clock-control'
Merge branch 'Alacritech-SLIC-driver'
Merge branch 'mv88e6xxx-rework-reset-and-PPU-code'
Merge git://git.kernel.org/.../davem/net
Merge branch 'w83977af_ir-neatening'
Merge branch 'bnxt_en-RDMA'
Merge branch 'ti-cpts-update-and-fixes'
Merge branch '40GbE' of git://git.kernel.org/.../jkirsher/next-queue
Merge git://git.kernel.org/.../pablo/nf-next
Merge branch 'cls_flower-flags'
Merge branch 'cls_flower-ICMP'
Merge branch 'stmmac-DMA-burst'
Merge branch 'liqudio-VF-data-path'
Merge branch 'lan7801-mac-only'
Merge branch 'xdp-head-adjustment'
Merge branch 'for-upstream' of git://git.kernel.org/.../bluetooth/bluetooth-next
Merge branch 'liquidio-VF-offloads-and-stats'
Merge branch 'qcom-emac'
Merge branch 'udp-receive-path-optimizations'
Merge tag 'mac80211-next-for-davem-2016-12-09' of git://git.kernel.org/.../jberg/mac80211-next
Merge git://git.kernel.org/.../davem/net
Merge branch 'bridge-fast-ageing-on-topology-change'
Merge branch 'sxgbe-stmmac-remove-private-tx-lock'
Davide Caratti (9):
netfilter: conntrack: simplify init/uninit of L4 protocol trackers
netfilter: built-in NAT support for DCCP
netfilter: built-in NAT support for SCTP
netfilter: built-in NAT support for UDPlite
netfilter: nf_conntrack_tuple_common.h: fix #include
netfilter: conntrack: built-in support for DCCP
netfilter: conntrack: built-in support for SCTP
netfilter: conntrack: built-in support for UDPlite
netfilter: nat: skip checksum on offload SCTP packets
Dedy Lansky (1):
wil6210: fix net queue stop/wake
Don Skidmore (6):
ixgbe: Add X552 iXFI configuration helper function
ixgbe: Add support to retrieve and store LED link active
ixgbe: Update setup PHY link to unset all speeds
ixgbe: Add X553 PHY FC autoneg support
ixgbe: Add X553 FW ALEF support
ixgbe: Correct X550 phy ID
Dongpo Li (4):
net: hix5hd2_gmac: add generic compatible string
net: hix5hd2_gmac: add tx scatter-gather feature
net: hix5hd2_gmac: add reset control and clock signals
ARM: dts: hix5hd2: add gmac generic compatible and clock names
Dwip Banerjee (1):
ipvs: Decrement ttl
Edward Cree (11):
sfc: enable 4-tuple RSS hashing for UDP
sfc: report 4-tuple UDP hashing to ethtool, if it's enabled
sfc: Update MCDI protocol definitions
sfc: Update EF10 register definitions
sfc: handle failure to allocate TSOv2 contexts
sfc: remove Software TSO
sfc: separate out SFC4000 ("Falcon") support into new sfc-falcon driver
sfc: fix debug message format string in efx_farch_handle_rx_not_ok
sfc: don't select SFC_FALCON
sfc: remove RESET_TYPE_RX_RECOVERY
sfc: remove EFX_BUG_ON_PARANOID, use EFX_WARN_ON_[ONCE_]PARANOID instead
Elad Raz (14):
devlink: Prevent port_type_set() callback when it's not needed
mlxsw: core: Zero payload buffers for couple of registers
mlxsw: switchx2: Add support for physical port names
mlxsw: switchx2: Fix port speed configuration
mlxsw: reg: Add eth prefix to PTYS pack and unpack
mlxsw: reg: Add Infiniband support to PTYS
mlxsw: reg: Add local-port to Infiniband port mapping
mlxsw: switchx2: Add Infiniband switch partition
mlxsw: core: Add "eth" prefix to mlxsw_core_port_set
mlxsw: core: Add port type (Eth/IB) set API
mlxsw: switchx2: Add eth prefix to port create and remove
mlxsw: switchx2: Add IB port support
mlxsw: switchib: Introduce SwitchIB and SwitchIB silicon driver
mlxsw: pci: Fix the FW ready mask length
Emil Tantilov (5):
ixgbe: do not use ixgbe specific mdio defines
ixgbe: fix link status check for copper X550em
ixgbe: remove SFP ixfi support
ixgbe: use link instead of I2C combined abstraction
ixgbe: set device if before calling get_invariants
Emmanuel Grumbach (3):
iwlwifi: mvm: tell the firmware about the AID of the peer
mac80211: allow the driver not to pass the tid to ieee80211_sta_uapsd_trigger
mac80211: uapsd_queues is in QoS IE order
Eric B Munson (1):
netfilter: ipset: Add element count to hash headers
Eric Dumazet (51):
tcp: relax listening_hash operations
sch_htb: do not report fake rate estimators
tcp/dccp: drop SYN packets if accept queue is full
net: set SK_MEM_QUANTUM to 4096
tcp: enhance tcp collapsing
tcp: shortcut listeners in tcp_get_info()
tcp: no longer hold ehash lock while calling tcp_get_info()
net-gro: avoid reorders
bnxt_en: do not call napi_hash_add()
net: napi_hash_add() is no longer exported
tcp: remove unaligned accesses from tcp_get_info()
net: busy-poll: allow preemption in sk_busy_loop()
net: busy-poll: remove need_resched() from sk_can_busy_loop()
net: busy-poll: return busypolling status to drivers
net/mlx4_en: use napi_complete_done() return value
bnx2x: switch to napi_complete_done()
sfc: remove napi_hash_del() call
netpoll: more efficient locking
net/mlx4_en: remove napi_hash_del() call
net/mlx5e: remove napi_hash_del() calls
net_sched: sch_fq: use hash_ptr()
udp: enable busy polling for all sockets
udp: avoid one cache line miss in recvmsg()
bnx2: use READ_ONCE() instead of barrier()
mlx4: avoid unnecessary dirtying of critical fields
tcp: enhance tcp_collapse_retrans() with skb_shift()
mlx4: reorganize struct mlx4_en_tx_ring
net: properly flush delay-freed skbs
mlx4: do not use priv->stats_lock in mlx4_en_auto_moderation()
mlx4: give precise rx/tx bytes/packets counters
mlx4: fix use-after-free in mlx4_en_fold_software_stats()
net_sched: gen_estimator: account for timer drifts
tcp: tsq: add tsq_flags / tsq_enum
tcp: tsq: remove one locked operation in tcp_wfree()
tcp: tsq: add shortcut in tcp_tasklet_func()
tcp: tsq: avoid one atomic in tcp_wfree()
tcp: tsq: add a shortcut in tcp_small_queue_check()
tcp: tcp_mtu_probe() is likely to exit early
net: reorganize struct sock for better data locality
tcp: tsq: move tsq_flags close to sk_wmem_alloc
net_sched: gen_estimator: complete rewrite of rate estimators
net/udp: do not touch skb->peeked unless really needed
net: sock_rps_record_flow() is for connected sockets
net: rfs: add a jump label
udp: under rx pressure, try to condense skbs
net: do not read sk_drops if application does not care
udp: add busylocks in RX path
udp: copy skb->truesize in the first cache line
udp: add batching to udp_rmem_release()
udp: udp_rmem_release() should touch sk_rmem_alloc later
net: skb_condense() can also deal with empty skbs
Erik Nordmark (2):
ipv6 addrconf: Implemented enhanced DAD (RFC7527)
ipv6: Allow IPv4-mapped address as next-hop
Erik Stromdahl (1):
ath10k: fix TLV set regdomain command
Eugenia Emantayev (1):
net/mlx5: Fix length of async_event_mask
Fabio Estevam (1):
net: phy: at803x: Add a definition for PHY ID mask
Filip Sadowski (4):
i40e: Bit test mask correction
i40e: Removal of workaround for simple MAC address filter deletion
i40e: removed unreachable code
i40e: Driver prints log message on link speed change
Florian Fainelli (43):
mdio: Demote print from info to debug in mdio_driver_register
net: phy: Add phy_ethtool_nway_reset
net: nb8800: Utilize phy_ethtool_nway_reset
net: bcm63xx_enet: Utilize phy_ethtool_nway_reset
net: mv643xx_eth: Utilize phy_ethtool_nway_reset
net: smsc911x: Utilize phy_ethtool_nway_reset
net: ethernet: smsc9420: Utilize phy_ethtool_nway_reset
net: ethernet: ll_temac: Utilize phy_ethtool_nway_reset
net: ethernet: ixp4xx_eth: Utilize phy_ethtool_nway_reset
net: bcmgenet: Utilize phy_ethtool_nway_reset
net: fs_enet: Utilize phy_ethtool_nway_reset
net: fec: Utilize phy_ethtool_nway_reset
net: ethernet: ucc: Utilize phy_ethtool_nway_reset
net: ethernet: lantiq_etop: Utilize phy_ethtool_nway_reset
net: usb: ax88172x: Utilize phy_ethtool_nway_reset
net: usb: lan78xx: Utilize phy_ethtool_nway_reset
net: bcm63xx_enet: Fix build failure with phy_ethtool_nway_reset
net: stmmac: Implement ethtool::nway_reset
net: ethoc: Implement ethtool::nway_reset
net: ethernet: mvneta: Implement ethtool::nway_reset
net: ethernet: mvpp2: Implement ethtool::nway_reset
net: ethernet: marvell: pxa168_eth: Implement ethtool::nway_reset
net: gianfar_ptp: Rename FS bit to FIPERST
net: fsl: Allow most drivers to be built with COMPILE_TEST
bus: mvebu-bus: Provide inline stub for mvebu_mbus_get_dram_win_info
net: marvell: Allow drivers to be built with COMPILE_TEST
net: dsa: mv88e6xxx: Select IRQ_DOMAIN
net: phy: broadcom: Move bcm54xx_auxctl_{read, write} to common library
net: phy: broadcom: Add support code for downshift/Wirespeed
net: phy: broadcom: Allow enabling or disabling of EEE
net: phy: bcm7xxx: Add support for downshift/Wirespeed
net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change
ethtool: Protect {get, set}_phy_tunable with PHY device mutex
Documentation: net: phy: remove description of function pointers
Documentation: net: phy: Add a paragraph about pause frames/flow control
Documentation: net: phy: Add blurb about RGMII
Documentation: net: phy: Add links to several standards documents
net: phy: broadcom: Add support code for reading PHY counters
net: phy: bcm7xxx: Plug in support for reading PHY error counters
r8169: Add support for restarting auto-negotiation
net: ethoc: Account for duplex changes
net: ethoc: Utilize of_get_mac_address()
net: ethoc: Demote packet dropped error message to debug
Florian Westphal (24):
xfrm: remove unused helper
netfilter: nf_tables: allow expressions to return STOLEN
flow_dissector: __skb_get_hash_symmetric arg can be const
netfilter: nf_tables: add fib expression
netfilter: nf_queue: place volatile data in own cacheline
netfilter: conntrack: remove unused netns_ct member
dctcp: update cwnd on congestion event
tcp: add cwnd_undo functions to various tcp cc algorithms
tcp: make undo_cwnd mandatory for congestion modules
tcp: randomize tcp timestamp offsets for each connection
tcp: allow to turn tcp timestamp randomization off
netfilter: conntrack: remove unused init_net hook
netfilter: add and use nf_ct_netns_get/put
netfilter: nat: add dependencies on conntrack module
netfilter: nf_tables: add conntrack dependencies for nat/masq/redir expressions
netfilter: conntrack: register hooks in netns when needed by ruleset
netfilter: conntrack: add nf_conntrack_default_on sysctl
Revert "dctcp: update cwnd on congestion event"
netfilter: defrag: only register defrag functionality if needed
netfilter: x_tables: pass xt_counters struct instead of packet counter
netfilter: x_tables: pass xt_counters struct to counter allocator
netfilter: x_tables: pack percpu counter allocations
netfilter: ingress: translate 0 nf_hook_slow retval to -1
netfilter: add and use nf_fwd_netdev_egress
Francis Yan (6):
tcp: instrument tcp sender limits chronographs
tcp: instrument how long TCP is busy sending
tcp: instrument how long TCP is limited by receive window
tcp: instrument how long TCP is limited by insufficient send buffer
tcp: export sender limits chronographs to TCP_INFO
tcp: SOF_TIMESTAMPING_OPT_STATS option for SO_TIMESTAMPING
Franky Lin (1):
brcmfmac: add pcie host dongle interface rev6 support
Gal Pressman (2):
net/mlx5: Add MPCNT register infrastructure
net/mlx5e: Expose PCIe statistics to ethtool
Ganesh Goudar (1):
cxgb4/cxgb4vf: Remove deprecated module parameters
Gao Feng (11):
net: vlan: Use sizeof instead of literal number
netfilter: xt_multiport: Use switch case instead of multiple condition checks
driver: tun: Move tun check into the block of TUNSETIFF condition check
driver: tun: Use new macro SOCK_IOC_TYPE instead of literal number 0x89
driver: macvlan: Replace integer number with bool value
ipvs: Use IS_ERR_OR_NULL(svc) instead of IS_ERR(svc) || svc == NULL
driver: macvlan: Remove duplicated IFF_UP condition check in macvlan_forward_source
driver: ipvlan: Remove useless member mtu_adj of struct ipvl_dev
netfilter: xt_multiport: Fix wrong unmatch result with multiple ports
driver: ipvlan: Free ipvl_port directly with kfree instead of kfree_rcu
driver: macvlan: Remove the rcu member of macvlan_port
Geert Uytterhoeven (2):
net: phy: Fix use after free in phy_detach()
can: rcar_canfd: Correct order of interrupt specifiers
Geliang Tang (2):
ath5k: drop duplicate header vmalloc.h
Bluetooth: btmrvl: drop duplicate header slab.h
Gianluca Borello (1):
bpf: Preserve const register type on const OR alu ops
Govindarajulu Varadarajan (1):
enic: set skb->hash type properly
Gregory CLEMENT (5):
net: mvneta: Optimize rx path for small frame
net: mvneta: Do not allocate buffer in rxq init with HWBM
net: mvneta: Use cacheable memory to store the rx buffer virtual address
net: mvneta: Only disable mvneta_bm for 64-bits
ARM64: dts: marvell: Add network support for Armada 3700
Grygorii Strashko (11):
net: ethernet: ti: cpts: switch to readl/writel_relaxed()
net: ethernet: ti: allow cpts to be built separately
net: ethernet: ti: cpsw: minimize direct access to struct cpts
net: ethernet: ti: cpts: fix unbalanced clk api usage in cpts_register/unregister
net: ethernet: ti: cpts: fix registration order
net: ethernet: ti: cpts: disable cpts when unregistered
net: ethernet: ti: cpts: drop excessive writes to CTRL and INT_EN regs
net: ethernet: ti: cpts: rework initialization/deinitialization
net: ethernet: ti: cpts: move dt props parsing to cpts driver
net: ethernet: ti: cpts: calc mult and shift from refclk freq
net: ethernet: ti: cpts: fix overflow check period
Hadar Hen Zion (22):
net/sched: act_tunnel_key: add helper inlines to access tcf_tunnel_key
flow_dissector: Add enums for encapsulation keys
net/sched: cls_flower: Allow setting encapsulation fields as used key
net/sched: cls_flower: Add UDP port to tunnel parameters
net/dst: Add dst port to dst_metadata utility functions
net/sched: act_tunnel_key: Add UDP dst port option
net/mlx5: Move alloc/dealloc encap commands declarations to common header file
net/mlx5: Check max encap header size capability
net/mlx5: Add creation flags when adding new flow table
net/mlx5: Support encap id when setting new steering entry
net/mlx5e: Add TC tunnel release action for SRIOV offloads
net/mlx5e: Add ndo_udp_tunnel_add to VF representors
net/mlx5e: Add basic TC tunnel set action for SRIOV offloads
net/sched: Add separate check for skip_hw flag
net/sched: cls_flower: Try to offload only if skip_hw flag isn't set
net/sched: cls_flower: Provide a filter to replace/destroy hardware filter functions
net/sched: act_mirred: Add new tc_action_ops get_dev()
net/sched: cls_flower: Add offload support using egress Hardware device
net/mlx5e: Bring back representor's ndos that were accidentally removed
net/mlx5e: Save the represntor netdevice as part of the representor
net/mlx5e: Support adding ingress tc rule when egress device flag is set
net/sched: cls_flower: Set the filter Hardware device for all use-cases
Haishuang Yan (1):
geneve: fix ip_hdr_len reserved for geneve6 tunnel.
Haiyang Zhang (1):
tools: hv: Enable network manager for bonding scripts on RHEL
Hangbin Liu (1):
igmp: Document sysctl force_igmp_version
Hariprasad Shenai (1):
cxgb4: Allocate Tx queues dynamically
Harshitha Ramamurthy (1):
i40e: Fix for ethtool Supported link modes
Henry Tieman (3):
i40e: Remove unreachable code
i40e: Pass unknown PHY type for unknown PHYs
i40e: Blink LED on 1G BaseT boards
Huy Nguyen (10):
net/mlx5: Port module event hardware structures
net/mlx5: Add handling for port module event
net/mlx5e: Add port module event counters to ethtool stats
net/mlx5: Set driver version into firmware
net/mlx5e: Add qos capability check
net/mlx5e: Support DCBX CEE API
net/mlx5e: Read ETS settings directly from firmware
net/mlx5: Add DCBX firmware commands support
net/mlx5e: ConnectX-4 firmware support for DCBX
net/mlx5e: Add DCBX control interface
Ido Schimmel (17):
mlxsw: spectrum: Remove extra whitespace
switchdev: Remove redundant variable
mlxsw: spectrum_router: Adjust placement of FIB abort warning
mlxsw: resources: Add maximum buffer size
mlxsw: spectrum_buffers: Limit size of pools
mlxsw: core: Add missing rollback in error path
mlxsw: core: Change order of operations in removal path
ipv4: fib: Export free_fib_info()
ipv4: fib: Add fib_info_hold() helper
mlxsw: core: Create an ordered workqueue for FIB offload
mlxsw: spectrum_router: Implement FIB offload in deferred work
rocker: Create an ordered workqueue for FIB offload
rocker: Implement FIB offload in deferred work
rocker: Register FIB notifier before creating ports
ipv4: fib: Convert FIB notification chain to be atomic
ipv4: fib: Allow for consistent FIB dumping
ipv4: fib: Replay events when registering FIB notifier
Ilan Peer (1):
cfg80211: allow aborting in-progress connection atttempts
Ivan Khoronzhuk (14):
net: ethernet: ti: davinci_cpdma: free memory while channel destroy
net: ethernet: ti: davinci_cpdma: fix fixed prio cpdma ctlr configuration
net: ethernet: ti: davinci_cpdma: don't stop ctlr if it was stopped
net: ethernet: ti: davinci_cpdma: add weight function for channels
net: ethernet: ti: davinci_cpdma: add set rate for a channel
net: ethernet: ti: cpsw: add .ndo to set per-queue rate
net: ethernet: ti: cpsw: optimize end of poll cycle
net: ethernet: ti: cpsw: split tx budget according between channels
net: ethernet: ti: cpsw: fix early budget split
net: ethernet: ti: cpsw: use same macros to get active slave
net: ethernet: ti: cpsw: don't start queue twice
net: ethernet: ti: cpsw: combine budget and weight split and check
net: ethernet: ti: cpsw: re-split res only when speed is changed
net: ethernet: ti: cpsw: sync rates for channels in dual emac mode
Ivan Vecera (1):
mlxsw: core: Implement thermal zone
Iyappan Subramanian (10):
drivers: net: xgene: fix: Use GPIO to get link status
arm64: xgene: defconfig: Enable Standby GPIO
drivers: net: xgene: Add helper function
drivers: net: xgene: Configure classifier with pagepool
drivers: net: xgene: Add support for Jumbo frame
drivers: net: xgene: Add change_mtu function
drivers: net: xgene: fix: RSS for non-TCP/UDP
drivers: net: xgene: Add flow control configuration
drivers: net: xgene: Add flow control initialization
drivers: net: xgene: ethtool: Add get/set_pauseparam
Jacob Keller (31):
i40e: drop is_vf and is_netdev fields in struct i40e_mac_filter
i40e: make use of __dev_uc_sync and __dev_mc_sync
i40e: move i40e_put_mac_in_vlan and i40e_del_mac_all_vlan
i40e: refactor i40e_put_mac_in_vlan to avoid changing f->vlan
i40e: When searching all MAC/VLAN filters, ignore removed filters
i40e: implement __i40e_del_filter and use where applicable
i40e: store MAC/VLAN filters in a hash with the MAC Address as key
i40e: properly cleanup on allocation failure in i40e_sync_vsi_filters
i40e: avoid looping to check whether we're in VLAN mode
i40e: remove duplicate add/delete adminq command code for filters
i40e: correct check for reading TSYNINDX from the receive descriptor
i40e: use a mutex instead of spinlock in PTP user entry points
i40e: replace PTP Rx timestamp hang logic
i40evf: avoid an extra msleep while
i40e: remove error_param_int label from i40e_vc_config_promiscuous_mode_msg
i40e: remove second check of VLAN_N_VID in i40e_vlan_rx_add_vid
i40e: avoid duplicate private flags definitions
i40e: fix trivial typo in naming of i40e_sync_filters_subtask
i40evf: protect against NULL msix_entries and q_vectors pointers
i40e: set broadcast promiscuous mode for each active VLAN
i40e/i40evf: replace for memcpy with single memcpy call in ethtool
i40e: restore workaround for removing default MAC filter
i40e: remove code to handle dev_addr specially
i40e: use unsigned printf format specifier for active_filters count
i40e: defeature support for PTP L4 frame detection on XL710
i40e: recalculate vsi->active_filters from hash contents
i40e: refactor i40e_update_filter_state to avoid passing aq_err
i40e: delete filter after adding its replacement when converting
i40e: factor out addition/deletion of VLAN per each MAC address
i40e: use (add|rm)_vlan_all_mac helper functions when changing PVID
i40e: move all updates for VLAN mode into i40e_sync_vsi_filters
Jakub Kicinski (28):
net: report right mtu value in error message
nfp: simplify nfp_net_poll()
nfp: remove support for nfp3200
nfp: remove unnecessary call to ether_setup()
nfp: remove inline attributes and dead code
nfp: centralize the buffer size calculation
nfp: add buffer drop/recycle helper for RX
nfp: use alloc_frag() and build_skb()
nfp: add separate buffer allocation function for napi
nfp: use AND instead of modulo to get ring indexes
nfp: create separate define for max number of vectors
nfp: use unsigned int for vector/ring counts
nfp: remove nfp_net_irqs_wanted()
nfp: replace num_irqs with max_r_vecs
nfp: bring back support for different ring counts
nfp: add support for ethtool .get_channels
nfp: centralize runtime reconfiguration logic
nfp: rename ring allocation helpers
nfp: reuse ring helpers on .ndo_open() path
nfp: loosen relation between rings and IRQs vectors
nfp: add helper to reassign rings to IRQ vectors
nfp: move RSS indirection table init into a separate function
nfp: add support for ethtool .set_channels
nfp: reorganize nfp_net_rx() to get packet offsets early
debugfs: constify argument to debugfs_real_fops()
nfp: add XDP support in the driver
nfp: remove unnecessary parameters from nfp_net_bpf_offload()
nfp: add support for offload of XDP programs
James Minor (4):
ath6kl: fix busreqs so they can be reused when sg is cleaned up
ath6kl: after cleanup properly reflect that sg is disabled
ath6kl: configure SDIO when power is reapplied
wlcore: Allow scans when in AP mode
Jan Beulich (1):
xen-netback: prefer xenbus_scanf() over xenbus_gather()
Jarno Rajahalme (5):
virtio_net: Simplify call sites for virtio_net_hdr_{from, to}_skb().
virtio_net.h: Fix comment.
virtio_net: Do not clear memory for struct virtio_net_hdr twice.
af_packet: Use virtio_net_hdr_to_skb().
af_packet: Use virtio_net_hdr_from_skb() directly.
Jarod Wilson (27):
net: centralize net_device min/max MTU checking
net: deprecate eth_change_mtu, remove usage
ethernet/atheros: use core min/max MTU checking
ethernet/broadcom: use core min/max MTU checking
ethernet/intel: use core min/max MTU checking
ethernet/marvell: use core min/max MTU checking
ethernet/mellanox: use core min/max MTU checking
ethernet/qlogic: use core min/max MTU checking
ethernet/realtek: use core min/max MTU checking
ethernet/sun: use core min/max MTU checking
ethernet/dlink: use core min/max MTU checking
ethernet/neterion: use core min/max MTU checking
ethernet/cavium: use core min/max MTU checking
ethernet/ibm: use core min/max MTU checking
ethernet/tile: use core min/max MTU checking
ethernet/toshiba: use core min/max MTU checking
ethernet: use core min/max MTU checking
ethernet: use net core MTU range checking in more drivers
net: use core MTU range checking in USB NIC drivers
net: use core MTU range checking in wireless drivers
net: use core MTU range checking in WAN drivers
net: use core MTU range checking in core net infra
net: use core MTU range checking in virt drivers
net: use core MTU range checking in misc drivers
s390/net: use net core MTU range checking
ipv4/6: use core net MTU range checking
net: remove MTU limits on a few ether_setup callers
Jason Wang (2):
tuntap: remove unnecessary sk_receive_queue length check during xmit
virtio-net: enable multiqueue by default
Jes Sorensen (7):
rtl8xxxu: Fix memory leak in handling rxdesc16 packets
rtl8xxxu: Fix big-endian problem reporting mactime
rtl8xxxu: Fix rtl8723bu driver reload issue
rtl8xxxu: Fix rtl8192eu driver reload issue
rtl8xxxu: Obtain RTS rates from mac80211
rtl8xxxu: Pass tx_info to fill_txdesc in order to have access to retry count
rtl8xxxu: Work around issue with 8192eu and 8723bu devices not reconnecting
Jesper Dangaard Brouer (3):
net: make default TX queue length a defined constant
net/qdisc: IFF_NO_QUEUE drivers should use consistent TX queue len
qdisc: catch misconfig of attaching qdisc to tx_queue_len zero device
Jesper Nilsson (1):
net: phy: dp83848: Support ethernet pause frames
Jiri Benc (11):
openvswitch: correctly fragment packet with mpls headers
openvswitch: remove unused functions
openvswitch: remove unnecessary EXPORT_SYMBOLs
openvswitch: use hard_header_len instead of hardcoded ETH_HLEN
openvswitch: add mac_proto field to the flow key
openvswitch: pass mac_proto to ovs_vport_send
openvswitch: support MPLS push and pop for L3 packets
openvswitch: add processing of L3 packets
openvswitch: netlink: support L3 packets
openvswitch: add Ethernet push and pop actions
openvswitch: allow L3 netdev ports
Jiri Pirko (18):
mlxsw: item: Make struct mlxsw_item args const
mlxsw: item: Make char *buf arg constant for getters
mlxsw: reg: Use helper macro to define registers
mlxsw: reg: Generare register names automatically
mlxsw: cmd: Push resource query defines to cmd.h
mlxsw: Convert resources into array
mlxsw: pci: Rename header with HW definitions
mlxsw: Move PCI id table definitions into driver modules
mlxsw: spectrum: Set physical device for port netdevice
mlxsw: switchx2: Set physical device for port netdevice
rocker: set physical device for port netdevice
mlxsw: switchx2: Check if port is usable before calling port create
mlxsw: switchx2: Move port used check outside port remove function
mlxsw: spectrum: Move port used check outside port remove function
mlxsw: Make devlink port instances independent of spectrum/switchx2 port instances
mlxsw: reg: Fix pwm_frequency field size in MFCR register
mlxsw: spectrum_router: Add FIB abort warning
mlxsw: reg: Add Management Fan Speed Limit register
Jiri Slaby (2):
p54: memset(0) whole array
bcma: add Dell Inspiron 3148
Joachim Eastwood (11):
stmmac: dwmac-sti: remove useless of_node check
stmmac: dwmac-sti: remove clk NULL checks
stmmac: dwmac-sti: add PM ops and resume function
stmmac: dwmac-sti: move st, gmac_en parsing to sti_dwmac_parse_data
stmmac: dwmac-sti: move clk_prepare_enable out of init and add error handling
stmmac: dwmac-sti: clean up and rename sti_dwmac_init
stmmac: dwmac-sti: remove unused priv dev member
stmmac: dwmac-rk: turn resume/suspend into standard PM callbacks
stmmac: dwmac-rk: turn exit into standard driver remove callback
stmmac: dwmac-rk: absorb rk_gmac_init into probe
Revert "net: stmmac: allow to split suspend/resume from init/exit callbacks"
Joe Perches (11):
rds: Remove unused rds_conn_error
rds: Remove duplicate prefix from rds_conn_path_error use
i40e: Make struct i40e_stats const
i40evf: Move some i40evf_reset_task code to separate function
irda: w83977af_ir: Whitespace neatening
irda: w83977af_ir: More whitespace neatening
irda: w83977af_ir: Remove and add blank lines
irda: w83977af_ir: Neaten pointer comparisons
irda: w83977af_ir: Use the common brace style
irda: w83977af_ir: Parenthesis alignment
irda: w83977af_ir: Neaten logging
Johan Hedberg (1):
Bluetooth: SMP: Add support for H7 crypto function and CT2 auth flag
Johannes Berg (25):
mac80211: remove unnecessary mesh check
mac80211_hwsim: make multi-channel ops const
mac80211: preserve more bits when building QoS header
nl80211: correctly use nl80211_nan_srf_policy
nl80211: ifdef WoWLAN related policies
iwlwifi: mvm: use firmware station PM notification for AP_LINK_PS
wireless: radiotap: fix timestamp sampling position values
mac80211: fix tid_agg_rx NULL dereference
mac80211: improve RX aggregation data in debugfs
wireless: deprecate WDS and disable by default
cfg80211: fix beacon interval in interface combination iteration
cfg80211: mesh: track (and thus validate) beacon interval
cfg80211: disallow beacon_int_min_gcd with IBSS
cfg80211: validate beacon int as part of iface combinations
mac80211: validate new interface's beacon intervals
nl80211: move unsplit command advertising to a separate function
nl80211: use nla_parse_nested() instead of nla_parse()
cfg80211: handle fragmented IEs in splitting
genetlink: introduce and use genl_family_attrbuf()
genetlink: no longer support using static family IDs
genetlink: statically initialize families
genetlink: use idr to track families
genetlink: mark families as __ro_after_init
nl80211: fix logic inversion in start_nan()
cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts
Johannes Thumshirn (1):
cw1200: Don't leak memory if krealloc failes
Jon Mason (7):
net: phy: broadcom: add bcm54xx_auxctl_read
Documentation: devicetree: add PHY lane swap binding
net: phy: broadcom: Add BCM54810 PHY entry
Documentation: devicetree: net: add NS2 bindings to amac
net: ethernet: bgmac: device tree phy enablement
net: ethernet: bgmac: add NS2 support
arm64: dts: NS2: add AMAC ethernet support
Josef Bacik (1):
bpf: add test for the verifier equal logic bug
Jouni Malinen (9):
cfg80211: Rename SAE_DATA to more generic AUTH_DATA
mac80211: Allow AUTH_DATA to be used for FILS
cfg80211: Add feature flag for Fast Initial Link Setup (FILS) as STA
cfg80211: Define IEEE P802.11ai (FILS) information elements
cfg80211: Add Fast Initial Link Setup (FILS) auth algs
cfg80211: Add KEK/nonces for FILS association frames
mac80211: Add FILS auth alg mapping
mac80211: FILS AEAD protection for station mode association frames
mac80211: Claim Fast Initial Link Setup (FILS) STA support
Jozsef Kadlecsik (19):
netfilter: ipset: Remove extra whitespaces in ip_set.h
netfilter: ipset: Mark some helper args as const.
netfilter: ipset: Headers file cleanup
netfilter: ipset: Improve skbinfo get/init helpers
netfilter: ipset: Use kmalloc() in comment extension helper
netfilter: ipset: Split extensions into separate files
netfilter: ipset: Separate memsize calculation code into dedicated function
netfilter: ipset: Regroup ip_set_put_extensions and add extern
netfilter: ipset: Add element count to all set types header
netfilter: ipset: Count non-static extension memory for userspace
netfilter: ipset: Remove redundant mtype_expire() arguments
netfilter: ipset: Simplify mtype_expire() for hash types
netfilter: ipset: Make NLEN compile time constant for hash types
netfilter: ipset: Make sure element data size is a multiple of u32
netfilter: ipset: Optimize hash creation routine
netfilter: ipset: Make struct htype per ipset family
netfilter: ipset: Collapse same condition body to a single one
netfilter: ipset: Fix reported memory size for hash:* types
netfilter: ipset: use setup_timer() and mod_timer().
Julia Lawall (5):
ipvlan: constify l3mdev_ops structure
ptp: use permission-specific DEVICE_ATTR variants
solos-pci: use permission-specific DEVICE_ATTR variants
netfilter: x_tables: simplify IS_ERR_OR_NULL to NULL test
net: netcp: replace IS_ERR_OR_NULL by IS_ERR
Kalle Valo (4):
Merge tag 'iwlwifi-next-for-kalle-2016-10-25-2' of git://git.kernel.org/.../iwlwifi/iwlwifi-next
Merge ath-next from git://git.kernel.org/.../kvalo/ath.git
Merge ath-next from git://git.kernel.org/.../kvalo/ath.git
Merge ath-next from git://git.kernel.org/.../kvalo/ath.git
Kamal Heib (1):
net/mlx5e: Add support for ethtool self diagnostics test
Karthik D A (3):
mwifiex: vendor_ie length check for parse WMM IEs
mwifiex: fix p2p device doesn't find in scan problem
mwifiex: Disable adhoc feature based on firmware capability
Kejian Yan (5):
Doc: hisi: hns adds mc-mac-mask property
net: hns: add fuzzy match of tcam table for hns
net: hns: fix for promisc mode in HNS driver
net: hns: add multicast tcam table clear
net: hns: add the support to add/remove the ucast entry to/from table
Keller, Jacob E (1):
i40e: don't truncate match_method assignment
Kirtika Ruchandani (7):
mwifiex: Removed unused mwifiex_private* 'priv' variable
mwifiex: Remove unused 'chan_num' variable
mwifiex: Remove unused 'sta_ptr' variable
mwifiex: Remove unused 'adapter'variable
mwifiex: Remove unused 'pm_flag' variable
mwifiex: Removed unused 'pkt_type' variable
mwifiex: Remove unused 'bcd_usb' variable
LABBE Corentin (5):
net: stmmac: replace all pr_xxx by their netdev_xxx counterpart
net: stmmac: replace hardcoded function name by __func__
net: stmmac: replace if (netif_msg_type) by their netif_xxx counterpart
net: stmmac: avoid Camelcase naming
net: stmmac: unify mdio functions
Larry Finger (10):
rtlwifi: rtl8192de: Remove address of Free Software Foundation
rtlwifi: rtl8192se: Remove address of Free Software Foundation
rtlwifi: rtl8192ce: Remove address of Free Software Foundation
rtlwifi: rtl8192cu: Remove address of Free Software Foundation
rtlwifi: rtl8723ae: Remove address of Free Software Foundation
rtlwifi: rtl8188ee: Remove address of Free Software Foundation
rtlwifi: rtl8192c: Remove address of Free Software Foundation
rtlwifi: Remove address of Free Software Foundation
ssb: Fix error routine when fallback SPROM fails
rtlwifi: Fix enter/exit power_save
Lendacky, Thomas (26):
amd-xgbe: Fix formatting of PCS register dump
amd-xgbe: Prepare for priority-based FIFO allocation
amd-xgbe: Perform priority-based hardware FIFO allocation
amd-xgbe: Prepare for working with more than one type of phy
amd-xgbe: Prepare for introduction of clause 37 autoneg
amd-xgbe: Add support for clause 37 auto-negotiation
amd-xgbe: Prepare for a new PCS register access method
amd-xgbe: Support for 64-bit management counter registers
amd-xgbe: Update how to determine DMA channel status
amd-xgbe: Prepare for supporting PCI devices
amd-xgbe: Guard against incorrectly generated interrupts
amd-xgbe: Add a workaround for Tx timestamp issue
amd-xgbe: Add PCI device support
amd-xgbe: Allow for a greater number of Rx queues
amd-xgbe: Add support for new DMA interrupt mode
amd-xgbe: Add ECC status support for the device memory
amd-xgbe: Add I2C support for sideband communication
net: phy: expose phy_aneg_done API for use by drivers
amd-xgbe: Add support for SFP+ modules
amd-xgbe: Add support for MDIO attached PHYs
amd-xgbe: Add support for a KR redriver
amd-xgbe: Fix mask appliciation for Clause 37 register
amd-xgbe: Fix up some coccinelle identified warnings
amd-xgbe: Fix possible uninitialized variable
amd-xgbe: Fix maximum GPIO value check
amd-xgbe: Update connection validation for backplane mode
Liad Kaufman (5):
iwlwifi: mvm: update txq metadata to current owner
iwlwifi: mvm: fix reserved txq freeing
iwlwifi: mvm: support MONITOR vif in DQA mode
iwlwifi: mvm: fix dqa deferred frames marking
iwlwifi: mvm: enable dynamic queue allocation mode
Lihong Yang (1):
i40e: fix confusing dmesg info for ethtool -L option
Lino Sanfilippo (4):
net: ethernet: slicoss: add slicoss gigabit ethernet driver
MAINTAINERS: add entry for slicoss ethernet driver
net: ethernet: sxgbe: remove private tx queue lock
net: ethernet: stmmac: remove private tx queue lock
Linus Lüssing (9):
mac80211_hwsim: suggest nl80211 instead of wext driver in documentation
batman-adv: fix batadv_forw_packet kerneldoc for list attribute
batman-adv: Allow selecting BATMAN V if CFG80211 is not built
batman-adv: Add wrapper for ARP reply creation
batman-adv: Remove unnecessary lockdep in batadv_mcast_mla_list_free
batman-adv: Remove unused skb_reset_mac_header()
batman-adv: Use own timer for multicast TT and TVLV updates
batman-adv: Simple (re)broadcast avoidance
batman-adv: fix rare race conditions on interface removal
Lior David (6):
wil6210: fix deadlock when using fw_no_recovery option
wil6210: align to latest auto generated wmi.h
wil6210: support NL80211_ATTR_WIPHY_RETRY_SHORT
wil6210: delay remain on channel when scan is active
wil6210: add debugfs blobs for UCODE code and data
wil6210: align to latest auto generated wmi.h
Liping Zhang (9):
netfilter: nft_numgen: start round robin from zero
netfilter: nft_meta: permit pkttype mangling in ip/ip6 prerouting
netfilter: nf_tables: remove useless U8_MAX validation
netfilter: nf_tables: simplify the basic expressions' init routine
netfilter: nf_log: do not assume ethernet header in netdev family
netfilter: nfnetlink_log: add "nf-logger-5-1" module alias name
netfilter: nft_fib: convert htonl to ntohl properly
netfilter: nft_fib_ipv4: initialize *dest to zero
netfilter: rpfilter: bypass ipv4 lbcast packets with zeronet source
Lorenzo Colitti (5):
net: core: Add a UID field to struct sock.
net: core: add UID to flows, rules, and routes
net: inet: Support UID-based routing in IP protocols.
net: core: add missing check for uid_range in rule_exists.
net: ipv4: Don't crash if passing a null sk to ip_rt_update_pmtu.
Maciej Sosin (1):
i40e: Implementation of ERROR state for NVM update state machine
Madalin Bucur (9):
devres: add devm_alloc_percpu()
dpaa_eth: add support for DPAA Ethernet
dpaa_eth: add ethtool functionality
dpaa_eth: add ethtool statistics
dpaa_eth: add sysfs exports
dpaa_eth: add trace points
arch/powerpc: Enable FSL_PAMU
arch/powerpc: Enable FSL_FMAN
arch/powerpc: Enable dpaa_eth
Maharaja Kennadyrajan (1):
ath10k: provide provision to get Transmit Power Control stats for 10.4
Manish Chopra (3):
qede: GSO support for tunnels with outer csum
qede: Prevent GSO on long Geneve headers
qed: Fix possible race when reading firmware return code.
Manoharan, Rajkumar (1):
ath10k: fix monitor vdev for receiving other bss frames
Marcelo Ricardo Leitner (1):
netfilter: x_tables: avoid warn and OOM killer on vmalloc call
Marcin Wojtas (2):
net: mvneta: Convert to be 64 bits compatible
net: mvneta: Add network support for Armada 3700 SoC
Marek Lindner (3):
batman-adv: refactor wifi interface detection
batman-adv: additional checks for virtual interfaces on top of WiFi
batman-adv: retrieve B.A.T.M.A.N. V WiFi neighbor stats from real interface
Mark Bloch (7):
net/mlx5: Don't unlock fte while still using it
net/mlx5: Use fte status to decide on firmware command
net/mlx5: Refactor find_flow_rule
net/mlx5: Group similer rules under the same fte
net/mlx5: Add multi dest support
net/mlx5: Add option to add fwd rule with counter
net/mlx5e: Add tc support for FWD rule with counter
Mark Rustad (2):
ixgbe: Handle previously-freed msix_entries
ixgbevf: Handle previously-freed msix_entries
Markus Elfring (1):
batman-adv: Less function calls in batadv_is_ap_isolated() after error detection
Martin Blumenstingl (3):
Documentation: dt: net: add ath9k wireless device binding
ath9k: add a helper to get the string representation of ath_bus_type
ath9k: parse the device configuration from an OF node
Martin KaFai Lau (11):
bpf: LRU List
bpf: Add percpu LRU list
bpf: Refactor codes handling percpu map
bpf: Add BPF_MAP_TYPE_LRU_HASH
bpf: Add BPF_MAP_TYPE_LRU_PERCPU_HASH
bpf: Add tests for the LRU bpf_htab
bpf: Fix compilation warning in __bpf_lru_list_rotate_inactive
bpf: xdp: Allow head adjustment in XDP prog
mlx4: xdp: Allow raising MTU up to one page minus eth and vlan hdrs
mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active
bpf: xdp: Add XDP example for head adjustment
Mathias Kresin (1):
rt2x00: add support for mac addr from device tree
Matthias Schiffer (1):
ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
Maxim Altshul (2):
wlcore: Pass win_size taken from ieee80211_sta to FW
wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event
Maya Erez (3):
wil6210: add support for power save enable / disable
wil6210: add support for abort scan
wil6210: validate wil_pmc_alloc parameters
Miaoqing Pan (2):
ath9k: change entropy formula for easier understanding
ath9k: fix NULL pointer dereference
Michael Braun (5):
mac80211: remove unnecessary num_mcast_sta check
mac80211: filter multicast data packets on AP / AP_VLAN
mac80211: avoid extra memcpy in A-MSDU head creation
mac80211: fix A-MSDU outer SA/DA
cfg80211: configure multicast to unicast for AP interfaces
Michael Chan (15):
bnxt_en: Update firmware interface spec to 1.5.4.
bnxt_en: Enhance autoneg support.
bnxt_en: Add UDP RSS support for 57X1X chips.
bnxt_en: Add ethtool -n|-N rx-flow-hash support.
bnxt_en: Re-factor bnxt_setup_tc().
bnxt_en: Update firmware header file to latest 1.6.0.
bnxt_en: Implement DCBNL to support host-based DCBX.
bnxt_en: Add PFC statistics.
bnxt_en: Add bnxt_set_max_func_irqs().
bnxt_en: Enable MSIX early in bnxt_init_one().
bnxt_en: Move function reset to bnxt_init_one().
bnxt_en: Improve completion ring allocation for VFs.
bnxt_en: Reserve RDMA resources by default.
bnxt_en: Refactor the driver registration function with firmware.
bnxt_en: Add interface to support RDMA driver.
Michael S. Tsirkin (1):
netdevice: fix sparse warning for HARD_TX_LOCK
Michael Weiser (3):
net: ethernet: stmmac: change dma descriptors to __le32
net: ethernet: sun4i-emac: Allow to enable netif messages
net: ethernet: sun4i-emac: Read rxhdr in CPU byte-order
Michal Kazior (3):
ath: export alpha2 helper
ath10k: fix null deref on wmi-tlv when trying spectral scan
ath10k: add spectral scan support to wmi-tlv
Michal Kosiarz (3):
i40e: Fix for division by zero
i40e: Add Clause22 implementation
i40e: Add functions which apply correct PHY access method for read and write operation
Mickaël Salaün (1):
bpf: Use u64_to_user_ptr()
Mintz, Yuval (19):
qed: Add nvram selftest
qed*: Add support for WoL
qede: Decouple ethtool caps from qed
qed: Learn of RDMA capabilities per-device
qed: Use VF-queue feature
qede: Don't override priv_flags
qed: Correct VF mac number
qed: Prevent stack corruption on MFW interaction
qede: Optimize aggregation information size
qed: Optimize qed_chain datapath usage
qede: Remove 'num_tc'.
qede: Refactor statistics gathering
qede: Refactor data-path Rx flow
qede: Revise state locking scheme
qed*: Handle-based L2-queues.
qede: Don't check netdevice for rx-hash
qede: Better utilize the qede_[rt]x_queue
qede: Add basic XDP support
qede: Add support for XDP_TX
Mitch Williams (4):
i40e: reopen client after reset
i40e: clear mac filter count on reset
i40e: simplify txd use count calculation
i40e: lock service task correctly
Mohamad Haj Yahia (4):
net/mlx5: Introduce TSAR manipulation firmware commands
net/mlx5: Introduce E-switch QoS management
net/mlx5: Add SRIOV VF max rate configuration support
net/mlx5: Make the command interface cache more flexible
Mohammed Shafi Shajakhan (6):
ath10k: cleanup calling ath10k_htt_rx_h_unchain
ath10k: fix failure to send NULL func frame for 10.4
ath10k: clean up HTT tx buffer allocation and free
ath10k: remove extraneous error message in tx alloc
ath10k: fix soft lockup during firmware crash/hw-restart
ath10k: fix Tx DMA alloc failure during continuous wifi down/up
Mugunthan V N (4):
net: phy: dp83867: Add documentation for optional impedance control
net: phy: dp83867: add support for MAC impedance configuration
ARM: dts: dra72-evm-revc: add phy impedance settings
ARM: dts: dra72-evm-revc: fix correct phy delay
Murali Karicheri (1):
clocksource: export the clocks_calc_mult_shift to use by timestamp code
Neal Cardwell (1):
tcp_bbr: add a state transition diagram and accompanying comment
Neil Armstrong (4):
net: stmmac: Add OXNAS Glue Driver
dt-bindings: net: Add OXNAS DWMAC Bindings
net: mdio-mux-mmioreg: Add support for 16bit and 32bit register sizes
net: phy: Add Meson GXL Internal PHY driver
Neill Whillans (1):
net: ethernet: altera_tse: add support for SGMII PCS
Nicolas Iooss (1):
ath10k: use the right length of "background"
Niklas Cassel (11):
net: stmmac: enable tx queue 0 for gmac4 IPs synthesized with multiple TX queues
net: stmmac: do not call phy_ethtool_ksettings_set from atomic context
bindings: net: stmmac: correct note about TSO
net: stmmac: dwmac-generic: add missing compatible strings
net: stmmac: stmmac_platform: use correct setup function for gmac4
net: stmmac: return error if no DMA configuration is found
net: stmmac: simplify the common DMA init API
net: stmmac: stmmac_platform: fix parsing of DT binding
net: stmmac: dwmac1000: fix define DMA_BUS_MODE_RPBL_MASK
net: stmmac: add support for independent DMA pbl for tx/rx
net: smmac: allow configuring lower pbl values
Nikolay Aleksandrov (6):
net: pim: add common pimhdr struct and helpers
net: pim: add a helper to check for IPv4 all pim routers address
net: pim: add all RFC7761 message types
bridge: mcast: add router port on PIM hello message
bridge: mcast: add IGMPv3 query support
bridge: mcast: add MLDv2 querier support
Nogah Frankel (19):
mlxsw: spectrum: Remove unused traps
mlxsw: core: Create a generic function to register / unregister traps
mlxsw: core: Expose generic macros for rx trap
mlxsw: spectrum: Use generic listener struct for rx traps
mlxsw: switchx2: Use generic listener struct for rx traps
mlxsw: core: Introduce generic macro for event
mlxsw: spectrum: Use generic listener struct for events
mlxsw: switchx2: Use generic listener struct for events
mlxsw: switchib: Use generic listener struct for events
mlxsw: Change trap set function
mlxsw: Add option to choose trap group
mlxsw: core: Change emad trap group settings
mlxsw: resources: Add max trap groups resource
mlxsw: Change trap groups setting
mlxsw: spectrum: Add BGP trap
mlxsw: Create a different trap group list for each device
mlxsw: resources: Add max cpu policers resource
mlxsw: reg: Add QoS Policer Configuration Register
mlxsw: spectrum: Add policers for trap groups
Or Gerlitz (5):
net: Add net-device param to the get offloaded stats ndo
net/mlx5e: Support HW (offloaded) and SW counters for SRIOV switchdev mode
net/mlx5e: Support VF vport link state control for SRIOV switchdev mode
net/sched: cls_flower: Add support for matching on flags
net/mlx5e: Offload TC matching on packets being IP fragments
Pablo Neira (1):
netfilter: nft_counter: rework atomic dump and reset
Pablo Neira Ayuso (31):
netfilter: nft_ct: add notrack support
netfilter: nf_log: add packet logging for netdev family
netfilter: move socket lookup infrastructure to nf_socket_ipv{4,6}.c
netfilter: get rid of useless debugging from core
netfilter: remove comments that predate rcu days
netfilter: kill NF_HOOK_THRESH() and state->tresh
netfilter: deprecate NF_STOP
netfilter: x_tables: move hook state into xt_action_param structure
netfilter: nf_tables: use hook state from xt_action_param structure
netfilter: use switch() to handle verdict cases from nf_hook_slow()
netfilter: remove hook_entries field from nf_hook_state
netfilter: merge nf_iterate() into nf_hook_slow()
netfilter: handle NF_REPEAT from nf_conntrack_in()
netfilter: nft_hash: get random bytes if seed is not specified
Merge tag 'ipvs-for-v4.10' of https://git.kernel.org/.../horms/ipvs-next
netfilter: nft_payload: layer 4 checksum adjustment for pseudoheader fields
netfilter: nf_tables: add stateful objects
netfilter: nft_counter: add stateful object type
netfilter: nft_quota: add stateful object type
netfilter: nf_tables: add stateful object reference expression
netfilter: nft_quota: dump consumed quota
netfilter: nf_tables: atomic dump and reset for stateful objects
netfilter: nf_tables: notify internal updates of stateful objects
netfilter: nft_quota: add depleted flag for objects
netfilter: nf_tables: add stateful object reference to set elements
netfilter: nft_objref: support for stateful object maps
netfilter: nf_tables: allow to filter stateful object dumps by type
netfilter: nf_tables: constify struct nft_ctx * parameter in nft_trans_alloc()
netfilter: nft_set: introduce nft_{hash, rbtree}_deactivate_one()
netfilter: nf_tables: support for set flushing
netfilter: nft_quota: allow to restore consumed quota
Paolo Abeni (7):
net/socket: factor out helpers for memory and queue manipulation
udp: implement memory accounting helpers
udp: use it's own memory accounting schema
net/sock: add an explicit sk argument for ip_cmsg_recv_offset()
udp: do fwd memory scheduling on dequeue
udplite: fix NULL pointer dereference
udp: be less conservative with sock rmem accounting
Parthasarathy Bhuvaragan (16):
tipc: return early for non-blocking sockets at link congestion
tipc: wakeup sleeping users at disconnect
tipc: set kern=0 in sk_alloc() during tipc_accept()
tipc: rename struct tipc_skb_cb member handle to bytes_read
tipc: rename tsk->remote to tsk->peer for consistent naming
tipc: remove tsk->connected for connectionless sockets
tipc: remove tsk->connected from tipc_sock
tipc: remove probing_intv from tipc_sock
tipc: remove socket state SS_READY
tipc: create TIPC_LISTEN as a new sk_state
tipc: create TIPC_ESTABLISHED as a new sk_state
tipc: create TIPC_OPEN as a new sk_state
tipc: create TIPC_DISCONNECTING as a new sk_state
tipc: remove SS_DISCONNECTING state
tipc: create TIPC_CONNECTING as a new sk_state
tipc: remove SS_CONNECTED sock state
Paul Gortmaker (2):
net: cris: make eth_v10.c explicitly non-modular
net: ethernet: ti: davinci_cpdma: add missing EXPORTs
Pavel Machek (3):
Bluetooth: __ variants of u8 and friends are not neccessary inside kernel
stmmac: fix comments, make debug output consistent
stmmac: cleanup documenation, make it match reality
Pedersen, Thomas (2):
ath10k: implement offset_tsf ieee80211_op
ath10k: remove set/get_tsf ieee80211_ops
Peng Tao (2):
vhost-vsock: remove unused vq variable
vhost: remove unnecessary smp_mb from vhost_work_queue
Peter Robinson (1):
net: arc_emac: add dependencies on associated arches and compile test
Philippe Reynes (28):
net: mv643xx_eth: use phydev from struct net_device
net: mv643xx_eth: use new api ethtool_{get|set}_link_ksettings
net: stmmac: use phydev from struct net_device
net: stmmac: use new api ethtool_{get|set}_link_ksettings
net: ti: cpsw: use new api ethtool_{get|set}_link_ksettings
net: ti: netcp_ethss: use new api ethtool_{get|set}_link_ksettings
net: usb: lan78xx: use new api ethtool_{get|set}_link_ksettings
net: dsa: slave: use new api ethtool_{get|set}_link_ksettings
net: bonding: use new api ethtool_{get|set}_link_ksettings
net: mii: add generic function to support ksetting support
net: 3c59x: use new api ethtool_{get|set}_link_ksettings
net: 3c509: use new api ethtool_{get|set}_link_ksettings
net: 3com: typhoon: use new api ethtool_{get|set}_link_ksettings
net: adaptec: starfire: use new api ethtool_{get|set}_link_ksettings
net: alteon: acenic: use new api ethtool_{get|set}_link_ksettings
net: amd8111e: use new api ethtool_{get|set}_link_ksettings
net: amd: pcnet32: use new api ethtool_{get|set}_link_ksettings
net: xgbe: use new api ethtool_{get|set}_link_ksettings
net: 3com: typhoon: fix typhoon_get_link_ksettings
net: atheros: atl1e: use new api ethtool_{get|set}_link_ksettings
net: alx: use new api ethtool_{get|set}_link_ksettings
net: atheros: atl1c: use new api ethtool_{get|set}_link_ksettings
net: atheros: atl1: use new api ethtool_{get|set}_link_ksettings
net: atheros: atl2: use new api ethtool_{get|set}_link_ksettings
net: bnx2: use new api ethtool_{get|set}_link_ksettings
net: brocade: bna: use new api ethtool_{get|set}_link_ksettings
net: calxeda: xgmac: use new api ethtool_{get|set}_link_ksettings
net: nicvf: use new api ethtool_{get|set}_link_ksettings
Piotr Raczynski (1):
i40e: Add protocols over MCTP to i40e_aq_discover_capabilities
Prameela Rani Garnepudi (6):
rsi: Fix memory leak in module unload
rsi: Host to device command frame vap_capabilites modified with new field vap status
rsi: Add support to filter rx frames
rsi: Add support for configuring tx power
rsi: Add support for antenna selection
rsi: Add support for 802.11d
Prasanna Karthik (3):
Bluetooth: hci_bcsp: Use setup_timer Kernel API instead of init_timer
Bluetooth: hci_h5: Use setup_timer Kernel API instead of init_timer
Bluetooth: hci_qca: Use setup_timer Kernel API instead of init_timer
Preethi Banala (1):
i40e: group base mode VF offload flags
Purushottam Kushwaha (2):
cfg80211: pass struct to interface combination check/iter
cfg80211: support virtual interfaces with different beacon intervals
Qianqian Xie (9):
net: hns: delete redundant macro definition
net: hns: modify ethtool statistics value error
net: hns: modify buffer format of cpu data to le64
net: hns: modify tcam table and set mac key
net: hns: modify tcam table of mac uc-entry
net: hns: modify table index to get mac entry
net: hns: modify tcam table of mac mc-port
net: hns: modify tcam table of mac mc-entry
net: hns: modify tcam table of mask_key
Rafal Ozieblo (1):
cadence: Add LSO support.
Rafał Miłecki (2):
brcmfmac: proto: add callback for queuing TX data
brcmfmac: print name of connect status event
Raghu Vatsavayi (30):
liquidio CN23XX: HW config for VF support
liquidio CN23XX: sysfs VF config support
liquidio CN23XX: Mailbox support
liquidio CN23XX: mailbox interrupt processing
liquidio CN23XX: VF related operations
liquidio CN23XX: device states
liquidio CN23XX: code cleanup
liquidio CN23XX: copyrights changes and alignment
liquidio CN23XX: fix for new check patch errors
liquidio CN23XX: VF register definitions
liquidio CN23XX: VF registration
liquidio CN23XX: VF config setup
liquidio CN23XX: VF queue setup
liquidio CN23XX: VF register access
liquidio CN23XX: init VF softcommand queues
liquidio CN23XX: VF mailbox
liquidio CN23XX: VF interrupt
liquidio CN23XX: VF init and destroy
liquidio CN23XX: VF offload features
liquidio CN23XX: VF link status
liquidio CN23XX: VF mac address
liquidio CN23XX: VF scatter gather lists
liquidio CN23XX: VF xmit
liquidio CN23XX: VF TX buffers
liquidio VF rx data and ctl path
liquidio VF vlan support
liquidio VF vxlan
liquidio VF ethtool stats
liquidio VF timestamp
liquidio VF error handling
Rajat Jain (4):
mwifiex: report wakeup for wowlan
mwifiex: Allow mwifiex early access to device structure
mwifiex: Introduce mwifiex_probe_of() to parse common properties
mwifiex: Enable WoWLAN for both sdio and pcie
Rajkumar Manoharan (1):
ath10k: advertize hardware packet loss mechanism
Raju Lakkaraju (10):
net: phy: Add support for Microsemi VSC 8530/40 Fast Ethernet PHY
ethtool: (uapi) Add ETHTOOL_PHY_GTUNABLE and ETHTOOL_PHY_STUNABLE
ethtool: Implements ETHTOOL_PHY_GTUNABLE/ETHTOOL_PHY_STUNABLE
ethtool: (uapi) Add ETHTOOL_PHY_DOWNSHIFT to PHY tunables
ethtool: Core impl for ETHTOOL_PHY_DOWNSHIFT tunable
net: phy: Add downshift get/set support in Microsemi PHYs driver
net: phy: add mdix_ctrl to hold the user configuration.
net: phy: update the mdix_ctrl with correct value.
net: phy: Add mdi(x) support in Microsemi PHYs driver
net: phy: Fix the mdix_ctrl changes
Rasmus Villemoes (1):
net: atarilance: use %8ph for printing hex string
Richard Cochran (3):
ptp: Introduce a high resolution frequency adjustment method.
ptp: igb: Use the high resolution frequency method.
ptp: dp83640: Use the high resolution frequency method.
Ricky Liang (1):
mwifiex: fix memory leak in mwifiex_save_hidden_ssid_channels()
Robert Jarzmik (5):
ARM: pxa: enhance smc91x platform data
net: smc91x: isolate u16 writes alignment workaround
net: smc91x: take into account half-word workaround
net: smsc91x: add u16 workaround for pxa platforms
net: smc91x: fix neponset breakage by pxa u16 writes
Roi Dayan (10):
net/sched: cls_flower: add missing unbind call when destroying flows
net/sched: cls_flower: merge filter delete/destroy common code
devlink: Add E-Switch inline mode control
net/mlx5: Enable to query min inline for a specific vport
net/mlx5: E-Switch, Add control for inline mode
net/mlx5e: Enforce min inline mode when offloading flows
net/mlx5e: Remove redundant hashtable lookup in configure flower
net/mlx5e: Correct cleanup order when deleting offloaded TC rules
net/mlx5e: Refactor tc del flow to accept mlx5e_tc_flow instance
net/mlx5e: Remove flow encap entry in the correct place
Roopa Prabhu (1):
bridge: add address and vlan to fdb warning messages
Saeed Mahameed (4):
IB/mlx5: Skip handling unknown events
net/mlx5: Add ConnectX-5 PCIe 4.0 VF device ID
net/mlx5: Set driver version infrastructure
net/mlx5e: Add support for loopback selftest
Salil (1):
net: hns: Fix to conditionally convey RX checksum flag to stack
Sara Sharon (2):
iwlwifi: mvm: assign cab queue to the correct station
mac80211: add a HW flag for supporting HW TX fragmentation
Sargun Dhillon (3):
samples: bpf: Refactor test_cgrp2_attach -- use getopt, and add mode
samples, bpf: Refactor test_current_task_under_cgroup - separate out helpers
samples, bpf: Add automated test for cgroup filter attachments
Shaker Daibes (2):
net/mlx5e: Moves pflags to priv->params
net/mlx5e: Add CQE compression user control
Shaohui Xie (1):
net: phy: aquantia: add PHY ID of AQR106 and AQR107
Sharon Dvir (1):
iwlwifi: pcie: give a meaningful name to interrupt request
Shengzhen Li (3):
mwifiex: add power save parameters in hs_cfg cmd
mwifiex: check tx_hw_pending before downloading sleep confirm
mwifiex: complete blocked power save handshake in main process
Shmulik Ladkani (5):
net/sched: act_mirred: Rename tcfm_ok_push to tcfm_mac_header_xmit and make it a bool
net/sched: act_mirred: Refactor detection whether dev needs xmit at mac header
net/sched: tc_mirred: Rename public predicates 'is_tcf_mirred_redirect' and 'is_tcf_mirred_mirror'
net/sched: act_mirred: Implement ingress actions
net/sched: em_meta: Fix 'meta vlan' to correctly recognize zero VID frames
Simon Horman (3):
net/sched: cls_flower: Support matching on SCTP ports
flow dissector: ICMP support
net/sched: cls_flower: Support matching on ICMP type and code
Simon Wunderlich (1):
batman-adv: Start new development cycle
Soheil Hassas Yeganeh (2):
sock: do not set sk_err in sock_dequeue_err_skb
sock: reset sk_err for ICMP packets read from error queue
Souptick Joarder (2):
ethernet :mellanox :mlx4: Replace pci_pool_alloc by pci_pool_zalloc
ethernet :mellanox :mlx5: Replace pci_pool_alloc by pci_pool_zalloc
Sowmini Varadhan (7):
ixgbe: ixgbe_atr() should access udp_hdr(skb) only for UDP packets
ixgbe: ixgbe_atr() compute l4_proto only if non-paged data has network/transport headers
RDS: TCP: report addr/port info based on TCP socket in rds-info
RDS: TCP: start multipath acceptor loop at 0
RDS: TCP: set RDS_FLAG_RETRANSMITTED in cp_retrans list
RDS: TCP: Track peer's connection generation number
RDS: TCP: Force every connection to be initiated by numerically smaller IP address
Stanislaw Gruszka (9):
rt2800: correctly report MCS TX parameters
rt2800usb: do not wipe out USB_DMA_CFG settings
rt2800: OFDM rates are mandatory
rt2800: do not overwrite WPDMA_GLO_CFG_WP_DMA_BURST_SIZE
rt2800: correct AUTO_RSP_CFG
rt2800: correct TX_SW_CFG1 for 5592
rt2800: use RTS/CTS protection instead of CTS-to-self
rt2800: tune *_PROT_CFG parameters
rt2800: disable CCK rates on HT
Stefan Eichenberger (4):
net: dsa: mv88e6xxx: add MV88E6097 switch
net: dsa: mv88e6xxx: add g1_irqs definition for MV88E6097
net: dsa: mv88e6xxx: add missing comment for MV88E6097
net: dsa: mv88e6xxx: Use EDSA on mv88e6097
Stefan Hajnoczi (1):
VSOCK: add loopback to virtio_transport
Stefan Richter (4):
firewire: net: fix maximum possible MTU
firewire: net: set initial MTU = 1500 unconditionally, fix IPv6 on some CardBus cards
ethernet: fix min/max MTU typos
firewire: net: really fix maximum possible MTU
Stefan Schmidt (7):
ieee802154: add myself as co-maintainer to MAINTAINERS file
ieee802154: fakelb: print number of created fake devices during probe
docs: ieee802154: update main documentation file
ieee802154: atusb: sync header file from firmware for new features
ieee802154: atusb: store firmware version after retrieval for later use
ieee802154: atusb: try to read permanent extended address from device
ieee802154: atusb: implement .set_frame_retries ops callback
Stephen Agate (1):
net: phy: vitesse: add support for VSC8572
Sudarsana Kalluru (1):
qed*: Management firmware - notifications and defaults
Sunil Goutham (4):
net: thunderx: 80xx BGX0 configuration changes
net: thunderx: Configure RED and backpressure levels
net: thunderx: Pause frame support
net: thunderx: Fix transmit queue timeout issue
Sven Eckelmann (29):
batman-adv: Add B.A.T.M.A.N. V sysfs files to README
batman-adv: Add network_coding and mcast sysfs files to README
batman-adv: Add dat, mcast, nc and neighbor debugfs files to README
batman-adv: Document new nc, mcast and tpmeter log levels
batman-adv: Remove unused function batadv_hash_delete
batman-adv: Move batadv_sum_counter to soft-interface.c
batman-adv: Remove unused batadv_icmp_user_cmd_type
batman-adv: Remove needless init of variables on stack
batman-adv: Use proper name for fragments list head
batman-adv: Use proper name for gateway list head
batman-adv: Use octal permissions instead of macros
batman-adv: Avoid precedence issues in macros
batman-adv: Revert "use core MTU range checking in misc drivers"
batman-adv: Introduce missing headers for genetlink restructure
batman-adv: Mark batadv_netlink_ops as const
batman-adv: Close two alignment holes in batadv_hard_iface
batman-adv: use consume_skb for non-dropped packets
batman-adv: Count all non-success TX packets as dropped
batman-adv: Consume skb in batadv_frag_send_packet
batman-adv: Consume skb in batadv_send_skb_to_orig
batman-adv: Consume skb in receive handlers
batman-adv: Remove dev_queue_xmit return code exception
batman-adv: Disallow mcast src address for data frames
batman-adv: Disallow zero and mcast src address for mgmt frames
batman-adv: Return non-const ptr in batadv_getlink_net
batman-adv: Reject unicast packet with zero/mcast dst address
batman-adv: Cache the type of wifi device for each hardif
batman-adv: Update wifi flags on upper link change
batman-adv: Add module alias for batadv netlink family
Taku Izumi (6):
fjes: ethtool -d support for fjes driver
fjes: Enhance ethtool -S for fjes driver
fjes: Add tracepoints in fjes driver
fjes: ethtool -w and -W support for fjes driver
fjes: Add debugfs entry for EP status information in fjes driver
fjes: Update fjes driver version : 1.2
Tariq Toukan (6):
net/mlx4_en: Add TX_XDP for CQ types
net/mlx4_en: Refactor the XDP forwarding rings scheme
net/mlx4_en: Add ethtool statistics for XDP cases
net/mlx5e: Implement Fragmented Work Queue (WQ)
net/mlx5e: Move function mlx5e_create_umr_mkey
net/mlx5e: Create UMR MKey per RQ
Thanneeru Srinivasulu (1):
net: thunderx: Add ethtool support for supported ports and link modes.
Thomas Graf (10):
bpf: Detect identical PTR_TO_MAP_VALUE_OR_NULL registers
ila: Fix tailroom allocation of lwtstate
lwt: Remove unused len field
netlink: Add nla_memdup() to wrap kmemdup() use on nlattr
bpf: Print function name in addition to function id
route: Set orig_output when redirecting to lwt on locally generated traffic
route: Set lwtstate for local traffic and cached input dsts
bpf: BPF for lightweight tunnel infrastructure
bpf: Add tests and samples for LWT-BPF
bpf: add additional verifier tests for BPF_PROG_TYPE_LWT_*
Timur Tabi (3):
net: qcom/emac: move phy init code to separate files
net: qcom/emac: add support for the Qualcomm Technologies QDF2400
net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause
Tobias Klauser (8):
net: hip04: Remove superfluous ether_setup after alloc_etherdev
vlan: Remove unnecessary comparison of unsigned against 0
net: fs_enet: Use net_device_stats from struct net_device
bpf: Remove unused but set variables
ehea: Remove unnecessary memset of stats in netdev private data
net: axienet: Utilize of_get_mac_address()
net: ll_temac: Utilize of_get_mac_address()
net: ethernet: slicoss: use module_pci_driver()
Tobias Regnery (10):
alx: refactor descriptor allocation
alx: extend data structures for multi queue support
alx: add ability to allocate and free alx_napi structures
alx: switch to per queue data structures
alx: prepare interrupt functions for multiple queues
alx: prepare resource allocation for multi queue support
alx: prepare tx path for multi queue support
alx: enable msi-x interrupts by default
alx: enable multiple tx queues
brcmsmac: fix array out-of-bounds access in qm_log10
Toke Høiland-Jørgensen (1):
ath9k: Switch to using mac80211 intermediate software queues.
Tom Herbert (4):
lwtunnel: Add destroy state operation
ila: Cache a route to translated address
ila: Don't use dest cache when gateway is set
ila: Fix crash caused by rhashtable changes
Tomasz Chilinski (1):
netfilter: ipset: hash:ipmac type support added to ipset
Tomer Tayar (1):
qed: Learn resources from management firmware
Tushar Dave (1):
i40e: fix panic on SPARC while changing num of desc
Ulrik De Bie (1):
ptp: gianfar: Use high resolution frequency method.
Ursula Braun (4):
Subject: [PATCH] af_iucv: enable control sends in case of SEND_SHUTDOWN
Subject: [PATCH] af_iucv: drop skbs rejected by filter
s390/netiucv: get rid of one memcpy in netiucv_printuser
s390/netiucv: improve checking of sysfs attribute buffer
Uwe Kleine-König (3):
net: fec: drop check for clk==NULL before calling clk_*
net: phy: marvell: optimize logic for page changing during init
net/phy: add trace events for mdio accesses
Vadim Pasternak (4):
mlxsw: Add bus capability flag
mlxsw: Introduce support for I2C bus
mlxsw: Invoke driver's init/fini methods only if defined
mlxsw: minimal: Add I2C support for Mellanox ASICs
Vamsi Krishna (1):
nl80211: Use different attrs for BSSID and random MAC addr in scan req
Vasanthakumar Thiagarajan (1):
ath10k: fix kernel panic due to race in accessing arvif list
Vishal Thanki (1):
rt2x00: Fix incorrect usage of CONFIG_RT2X00_LIB_USB
Vitaly Kuznetsov (2):
hv_netvsc: fix a race between netvsc_send() and netvsc_init_buf()
hv_netvsc: remove excessive logging on MTU change
Vittorio Gambaletta (VittGam) (1):
ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards.
Vivien Didelot (18):
net: dsa: mv88e6xxx: add port files
net: dsa: mv88e6xxx: add port state setter
net: dsa: mv88e6xxx: add port vlan map setter
net: dsa: mv88e6xxx: add port FID accessors
net: dsa: mv88e6xxx: add port PVID accessors
net: dsa: mv88e6xxx: add port 802.1Q mode setter
net: dsa: mv88e6xxx: add port link setter
net: dsa: mv88e6xxx: add port duplex setter
net: dsa: mv88e6xxx: add port's RGMII delay setter
net: dsa: mv88e6xxx: add port's MAC speed setter
net: dsa: mv88e6xxx: setup port's MAC
net: dsa: mv88e6xxx: add helper to disable ports
net: dsa: mv88e6xxx: add helper to hardware reset
net: dsa: mv88e6xxx: add a soft reset operation
net: dsa: mv88e6xxx: add PPU operations
net: bridge: add helper to offload ageing time
net: bridge: add helper to set topology change
net: bridge: shorten ageing time on topology change
WANG Cong (5):
net: fix sleeping for sk_wait_event()
audit: remove useless synchronize_net()
act_mirred: fix a typo in get_dev
netlink: use blocking notifier
e1000: use disable_hardirq() for e1000_netpoll()
Wei Yongjun (21):
net: ethernet: nb8800: fix error return code in nb8800_open()
fsl/fman: fix error return code in mac_probe()
cfg80211: fix possible memory leak in cfg80211_iter_combinations()
net: dsa: mv88e6xxx: fix non static symbol warning
qed: Remove useless set memory to zero use memset()
net: arc_emac: use dev_kfree_skb_any instead of dev_kfree_skb
dwc_eth_qos: use dev_kfree_skb_any instead of dev_kfree_skb
net: ethernet: mediatek: use dev_kfree_skb_any instead of dev_kfree_skb
myri10ge: fix typo in parameter description
net: netcp: drop kfree for memory allocated with devm_kzalloc
net: dsa: mv88e6xxx: use setup_timer to simplify the code
net: eth: altera: Fix error return code in altera_tse_probe()
net: ns83820: use dev_kfree_skb_irq instead of kfree_skb
amd-xgbe: Fix error return code in xgbe_probe()
net: ena: use setup_timer() and mod_timer()
net: netcp: add missing of_node_put() in netcp_probe()
genetlink: fix error return code in genl_register_family()
mlxsw: Remove unused including <generated/utsrelease.h>
mwifiex: fix missing destroy_workqueue() on error in mwifiex_add_virtual_intf()
rtlwifi: Use dev_kfree_skb_irq instead of kfree_skb
rtl8xxxu: Fix non static symbol warning
Willem de Bruijn (4):
ipv4: add IP_RECVFRAGSIZE cmsg
ipv6: add IPV6_RECVFRAGSIZE cmsg
ipv6: on reassembly, record frag_max_size
netfilter: xt_bpf: support ebpf
WingMan Kwok (2):
net: ethernet: ti: cpts: clean up event list if event pool is empty
net: ethernet: ti: netcp: add support of cpts
Woojung Huh (4):
lan78xx: Use irq_domain for phy interrupt from USB Int. EP
lan78xx: relocate mdix setting to phy driver
phy: fix error case of phy_led_triggers_(un)register
lan78xx: add LAN7801 MAC only support
Woojung.Huh@microchip.com (1):
phy: add phy fixup unregister functions
Wright Feng (1):
brcmfmac: update beacon IE after bss up and clear when AP stopped
Xin Long (4):
sctp: reuse sent_count to avoid retransmitted chunks for RTT measurements
sctp: remove the old ttl expires policy
sctp: clean up sctp_packet_transmit
sctp: use new rhlist interface on sctp transport rhashtable
Xinming Hu (4):
mwifiex: update tx_pkts_queued for requeued packets
mwifiex: fix command timeout problem seen in stress tests
mwifiex: parse device tree node for PCIe
mwifiex: reset card->adapter during device unregister
Xo Wang (2):
net: phy: broadcom: Update Auxiliary Control Register macros
net: phy: broadcom: Add support for BCM54612E
Yegor Yefremov (2):
cpsw: ethtool: add support for getting/setting EEE registers
cpsw: ethtool: add support for nway reset
Yotam Gigi (1):
tc_act: Remove tcf_act macro
Yuchung Cheng (1):
tcp: fix the missing avr32 SOF_TIMESTAMPING_OPT_STATS
Yuval Mintz (6):
qed: Pass MAC hints to VFs
qed*: Allow unicast filtering
qed: Allow chance for fast ramrod completions
qed: Handle malicious VFs events
qed: Add support for hardware offloaded iSCSI.
qed: Add iSCSI out of order packet handling.
Zach Brown (6):
skge: Rename LED_OFF and LED_ON in marvel skge driver to avoid conflicts with leds namespace
net: phy: Encapsulate actions performed during link state changes into function phy_adjust_link
net: phy: Create phy_supported_speeds function which lists speeds currently supported by a phydevice
net: phy: leds: add support for led triggers on phy link state change
net: macb: Use variables with defaults for tx/rx ring sizes instead of hardcoded values
net: macb: Add ethtool get_ringparam and set_ringparam functionality
Zefir Kurtisi (1):
ath9k: feed only active spectral / dfs-detector
Zhang Shengju (12):
macvtap: replace printk with netdev_err
neigh: remove duplicate check for same neigh
rtnetlink: return the correct error code
qede: use reset to set network header
bnx2x: use reset to set network header
mlx4: use reset to set mac header
iwlwifi: use reset to set transport header
staging: wilc1000: use reset to set mac header
nlmon: use core MTU range checking in nlmon driver
dummy: expend mtu range for dummy device
icmp: correct return value of icmp_rcv()
macsec: remove first zero and add attribute name in comments
hayeswang (1):
r8152: add new products of Lenovo
jbrunet (3):
net: phy: add an option to disable EEE advertisement
dt-bindings: net: add EEE capability constants
dt: bindings: add ethernet phy eee-broken-modes option documentation
kbuild test robot (1):
netfilter: ipset: hash: fix boolreturn.cocci warnings
pravin shelar (12):
genetlink: Fix generic netlink family unregister
vxlan: avoid vlan processing in vxlan device.
vxlan: avoid checking socket multiple times.
vxlan: simplify exception handling
vxlan: improve vxlan route lookup checks.
vxlan: simplify RTF_LOCAL handling.
vxlan: simplify vxlan xmit
vxlan: remove unsed vxlan_dev_dst_port()
geneve: Unify LWT and netdev handling.
geneve: Merge ipv4 and ipv6 geneve_build_skb()
geneve: Remove redundant socket checks.
geneve: Optimize geneve device lookup.
stephen hemminger (1):
Revert "net: Add driver helper functions to determine checksum offloadability"
vamsi krishna (1):
cfg80211: Add support to update connection parameters
vegard.nossum@oracle.com (1):
ieee802154: check device type
Documentation/devicetree/bindings/net/brcm,amac.txt | 16 +-
Documentation/devicetree/bindings/net/can/rcar_can.txt | 12 +-
Documentation/devicetree/bindings/net/can/rcar_canfd.txt | 14 +-
Documentation/devicetree/bindings/net/cpsw.txt | 8 +-
Documentation/devicetree/bindings/net/dsa/marvell.txt | 24 +-
Documentation/devicetree/bindings/net/hisilicon-hix5hd2-gmac.txt | 27 +-
Documentation/devicetree/bindings/net/hisilicon-hns-dsaf.txt | 8 +
Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt | 7 +-
Documentation/devicetree/bindings/net/mdio-mux-mmioreg.txt | 4 +-
Documentation/devicetree/bindings/net/mscc-phy-vsc8531.txt | 51 +-
Documentation/devicetree/bindings/net/oxnas-dwmac.txt | 39 +
Documentation/devicetree/bindings/net/phy.txt | 6 +
Documentation/devicetree/bindings/net/smsc-lan91c111.txt | 2 +
Documentation/devicetree/bindings/net/stmmac.txt | 14 +-
Documentation/devicetree/bindings/net/ti,dp83867.txt | 12 +
.../devicetree/bindings/net/wireless/{marvell-sd8xxx.txt => marvell-8xxx.txt} | 8 +-
Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt | 48 +
Documentation/driver-model/devres.txt | 4 +
Documentation/networking/batman-adv.txt | 35 +-
Documentation/networking/ieee802154.txt | 26 +-
Documentation/networking/ip-sysctl.txt | 33 +-
Documentation/networking/l2tp.txt | 8 +-
Documentation/networking/mac80211_hwsim/README | 2 +-
Documentation/networking/nf_conntrack-sysctl.txt | 11 +
Documentation/networking/phy.txt | 149 +-
Documentation/networking/seg6-sysctl.txt | 18 +
Documentation/networking/stmmac.txt | 71 +-
Documentation/networking/timestamping.txt | 10 +
MAINTAINERS | 11 +-
arch/alpha/include/uapi/asm/socket.h | 2 +
arch/arm/boot/dts/dra72-evm-revc.dts | 10 +-
arch/arm/boot/dts/hisi-x5hd2.dtsi | 6 +-
arch/arm/boot/dts/vf610-zii-dev-rev-b.dts | 51 +
arch/arm/mach-pxa/idp.c | 1 +
arch/arm/mach-pxa/mainstone.c | 1 +
arch/arm/mach-pxa/stargate2.c | 1 +
arch/arm64/boot/dts/broadcom/ns2-svk.dts | 5 +
arch/arm64/boot/dts/broadcom/ns2.dtsi | 12 +
arch/arm64/boot/dts/marvell/armada-3720-db.dts | 23 +
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 23 +
arch/arm64/configs/defconfig | 1 +
arch/avr32/include/uapi/asm/socket.h | 2 +
arch/frv/include/uapi/asm/socket.h | 2 +
arch/ia64/include/uapi/asm/socket.h | 2 +
arch/m32r/include/uapi/asm/socket.h | 2 +
arch/m68k/emu/nfeth.c | 1 -
arch/mips/include/uapi/asm/socket.h | 2 +
arch/mn10300/include/uapi/asm/socket.h | 2 +
arch/mn10300/unit-asb2303/include/unit/smc91111.h | 2 +-
arch/parisc/include/uapi/asm/socket.h | 2 +
arch/powerpc/configs/dpaa.config | 3 +
arch/powerpc/include/uapi/asm/socket.h | 2 +
arch/powerpc/net/bpf_jit_comp64.c | 4 +-
arch/s390/include/uapi/asm/socket.h | 2 +
arch/s390/net/bpf_jit_comp.c | 2 +-
arch/sparc/include/uapi/asm/socket.h | 2 +
arch/um/drivers/net_kern.c | 8 -
arch/x86/net/bpf_jit_comp.c | 2 +-
arch/xtensa/include/uapi/asm/socket.h | 2 +
crypto/algif_aead.c | 9 +-
crypto/algif_skcipher.c | 18 +-
drivers/acpi/event.c | 6 +-
drivers/atm/solos-pci.c | 2 +-
drivers/base/devres.c | 66 +
drivers/bcma/host_pci.c | 1 +
drivers/bluetooth/btmrvl_drv.h | 1 -
drivers/bluetooth/hci_bcsp.c | 4 +-
drivers/bluetooth/hci_h5.c | 4 +-
drivers/bluetooth/hci_qca.c | 9 +-
drivers/char/pcmcia/synclink_cs.c | 1 -
drivers/crypto/chelsio/chcr_algo.c | 16 +-
drivers/crypto/chelsio/chcr_core.c | 3 +-
drivers/firewire/net.c | 21 +-
drivers/hsi/clients/ssi_protocol.c | 14 +-
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/core/core_priv.h | 9 +-
drivers/infiniband/core/roce_gid_mgmt.c | 42 +-
drivers/infiniband/hw/cxgb4/device.c | 1 +
drivers/infiniband/hw/mlx5/main.c | 26 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 +-
drivers/infiniband/hw/nes/nes.c | 1 -
drivers/infiniband/hw/nes/nes.h | 4 +-
drivers/infiniband/hw/nes/nes_nic.c | 10 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 38 +-
drivers/isdn/hysdn/hysdn_net.c | 1 -
drivers/media/dvb-core/dvb_net.c | 2 +-
drivers/message/fusion/mptlan.c | 15 +-
drivers/misc/sgi-xp/xpnet.c | 21 +-
drivers/net/appletalk/ipddp.c | 1 -
drivers/net/bonding/bond_alb.c | 82 +-
drivers/net/bonding/bond_main.c | 35 +-
drivers/net/can/usb/kvaser_usb.c | 4 +-
drivers/net/cris/eth_v10.c | 12 +-
drivers/net/dsa/mv88e6xxx/Kconfig | 1 +
drivers/net/dsa/mv88e6xxx/Makefile | 1 +
drivers/net/dsa/mv88e6xxx/chip.c | 2041 +++++++++++++++--------
drivers/net/dsa/mv88e6xxx/global1.c | 367 +++++
drivers/net/dsa/mv88e6xxx/global1.h | 18 +
drivers/net/dsa/mv88e6xxx/global2.c | 186 ++-
drivers/net/dsa/mv88e6xxx/global2.h | 17 +
drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | 244 ++-
drivers/net/dsa/mv88e6xxx/port.c | 729 +++++++++
drivers/net/dsa/mv88e6xxx/port.h | 71 +
drivers/net/dummy.c | 3 +
drivers/net/ethernet/3com/3c509.c | 56 +-
drivers/net/ethernet/3com/3c515.c | 1 -
drivers/net/ethernet/3com/3c574_cs.c | 1 -
drivers/net/ethernet/3com/3c589_cs.c | 1 -
drivers/net/ethernet/3com/3c59x.c | 16 +-
drivers/net/ethernet/3com/typhoon.c | 66 +-
drivers/net/ethernet/8390/8390.c | 1 -
drivers/net/ethernet/8390/8390p.c | 1 -
drivers/net/ethernet/8390/ax88796.c | 1 -
drivers/net/ethernet/8390/axnet_cs.c | 1 -
drivers/net/ethernet/8390/etherh.c | 1 -
drivers/net/ethernet/8390/hydra.c | 1 -
drivers/net/ethernet/8390/mac8390.c | 1 -
drivers/net/ethernet/8390/mcf8390.c | 1 -
drivers/net/ethernet/8390/ne2k-pci.c | 1 -
drivers/net/ethernet/8390/pcnet_cs.c | 1 -
drivers/net/ethernet/8390/smc-ultra.c | 1 -
drivers/net/ethernet/8390/wd.c | 1 -
drivers/net/ethernet/8390/zorro8390.c | 1 -
drivers/net/ethernet/Kconfig | 2 +
drivers/net/ethernet/Makefile | 2 +
drivers/net/ethernet/adaptec/starfire.c | 15 +-
drivers/net/ethernet/adi/bfin_mac.c | 1 -
drivers/net/ethernet/aeroflex/greth.c | 9 -
drivers/net/ethernet/agere/et131x.c | 7 +-
drivers/net/ethernet/alacritech/Kconfig | 28 +
drivers/net/ethernet/alacritech/Makefile | 4 +
drivers/net/ethernet/alacritech/slic.h | 575 +++++++
drivers/net/ethernet/alacritech/slicoss.c | 1871 +++++++++++++++++++++
drivers/net/ethernet/allwinner/sun4i-emac.c | 26 +-
drivers/net/ethernet/alteon/acenic.c | 70 +-
drivers/net/ethernet/altera/altera_tse.h | 12 +-
drivers/net/ethernet/altera/altera_tse_main.c | 107 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 18 +-
drivers/net/ethernet/amd/Kconfig | 10 +-
drivers/net/ethernet/amd/a2065.c | 1 -
drivers/net/ethernet/amd/am79c961a.c | 1 -
drivers/net/ethernet/amd/amd8111e.c | 19 +-
drivers/net/ethernet/amd/ariadne.c | 1 -
drivers/net/ethernet/amd/atarilance.c | 9 +-
drivers/net/ethernet/amd/au1000_eth.c | 1 -
drivers/net/ethernet/amd/declance.c | 1 -
drivers/net/ethernet/amd/hplance.c | 1 -
drivers/net/ethernet/amd/lance.c | 1 -
drivers/net/ethernet/amd/mvme147.c | 1 -
drivers/net/ethernet/amd/ni65.c | 1 -
drivers/net/ethernet/amd/nmclan_cs.c | 1 -
drivers/net/ethernet/amd/pcnet32.c | 15 +-
drivers/net/ethernet/amd/sun3lance.c | 1 -
drivers/net/ethernet/amd/sunlance.c | 1 -
drivers/net/ethernet/amd/xgbe/Makefile | 5 +-
drivers/net/ethernet/amd/xgbe/xgbe-common.h | 385 ++++-
drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c | 154 +-
drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 1142 +++++++++----
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 349 +++-
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 87 +-
drivers/net/ethernet/amd/xgbe/xgbe-i2c.c | 492 ++++++
drivers/net/ethernet/amd/xgbe/xgbe-main.c | 699 ++------
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 1130 +++++++------
drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 529 ++++++
drivers/net/ethernet/amd/xgbe/xgbe-phy-v1.c | 845 ++++++++++
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 3084 +++++++++++++++++++++++++++++++++++
drivers/net/ethernet/amd/xgbe/xgbe-platform.c | 642 ++++++++
drivers/net/ethernet/amd/xgbe/xgbe.h | 386 ++++-
drivers/net/ethernet/apm/xgene/xgene_enet_cle.c | 704 ++++----
drivers/net/ethernet/apm/xgene/xgene_enet_cle.h | 5 +-
drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c | 70 +
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 140 +-
drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 27 +-
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 350 +++-
drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 31 +-
drivers/net/ethernet/apm/xgene/xgene_enet_ring2.c | 1 +
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 146 +-
drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 140 +-
drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h | 9 +
drivers/net/ethernet/apple/bmac.c | 1 -
drivers/net/ethernet/apple/mace.c | 1 -
drivers/net/ethernet/apple/macmace.c | 1 -
drivers/net/ethernet/arc/Kconfig | 5 +-
drivers/net/ethernet/arc/emac_main.c | 2 +-
drivers/net/ethernet/atheros/alx/alx.h | 36 +-
drivers/net/ethernet/atheros/alx/ethtool.c | 59 +-
drivers/net/ethernet/atheros/alx/hw.h | 1 -
drivers/net/ethernet/atheros/alx/main.c | 564 +++++--
drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c | 54 +-
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 41 +-
drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c | 62 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 12 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 81 +-
drivers/net/ethernet/atheros/atlx/atl2.c | 82 +-
drivers/net/ethernet/atheros/atlx/atl2.h | 3 -
drivers/net/ethernet/aurora/nb8800.c | 17 +-
drivers/net/ethernet/broadcom/Kconfig | 10 +
drivers/net/ethernet/broadcom/b44.c | 9 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 42 +-
drivers/net/ethernet/broadcom/bgmac-bcma.c | 22 +
drivers/net/ethernet/broadcom/bgmac-platform.c | 74 +-
drivers/net/ethernet/broadcom/bgmac.c | 32 +-
drivers/net/ethernet/broadcom/bgmac.h | 9 +
drivers/net/ethernet/broadcom/bnx2.c | 107 +-
drivers/net/ethernet/broadcom/bnx2.h | 6 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 6 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 25 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 22 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 7 +-
drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 474 ++++--
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 48 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 502 ++++++
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.h | 41 +
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 190 ++-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 1770 ++++++++++++--------
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 22 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 346 ++++
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 93 ++
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 9 +-
drivers/net/ethernet/broadcom/sb1250-mac.c | 12 +-
drivers/net/ethernet/broadcom/tg3.c | 9 +-
drivers/net/ethernet/brocade/bna/bnad.c | 7 +-
drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 54 +-
drivers/net/ethernet/cadence/macb.c | 329 +++-
drivers/net/ethernet/cadence/macb.h | 17 +
drivers/net/ethernet/calxeda/xgmac.c | 37 +-
drivers/net/ethernet/cavium/Kconfig | 12 +
drivers/net/ethernet/cavium/liquidio/Makefile | 24 +
drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c | 322 +++-
drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.h | 44 +-
drivers/net/ethernet/cavium/liquidio/cn23xx_pf_regs.h | 51 +-
drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c | 722 ++++++++
drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.h | 50 +
drivers/net/ethernet/cavium/liquidio/cn23xx_vf_regs.h | 274 ++++
drivers/net/ethernet/cavium/liquidio/cn66xx_device.c | 49 +-
drivers/net/ethernet/cavium/liquidio/cn66xx_device.h | 41 +-
drivers/net/ethernet/cavium/liquidio/cn66xx_regs.h | 49 +-
drivers/net/ethernet/cavium/liquidio/cn68xx_device.c | 38 +-
drivers/net/ethernet/cavium/liquidio/cn68xx_device.h | 37 +-
drivers/net/ethernet/cavium/liquidio/cn68xx_regs.h | 37 +-
drivers/net/ethernet/cavium/liquidio/lio_core.c | 74 +-
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c | 577 +++++--
drivers/net/ethernet/cavium/liquidio/lio_main.c | 450 ++++-
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 3251 ++++++++++++++++++++++++++++++++++++
drivers/net/ethernet/cavium/liquidio/liquidio_common.h | 101 +-
drivers/net/ethernet/cavium/liquidio/liquidio_image.h | 36 +-
drivers/net/ethernet/cavium/liquidio/octeon_config.h | 46 +-
drivers/net/ethernet/cavium/liquidio/octeon_console.c | 156 +-
drivers/net/ethernet/cavium/liquidio/octeon_device.c | 150 +-
drivers/net/ethernet/cavium/liquidio/octeon_device.h | 147 +-
drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 101 +-
drivers/net/ethernet/cavium/liquidio/octeon_droq.h | 18 +-
drivers/net/ethernet/cavium/liquidio/octeon_iq.h | 25 +-
drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c | 318 ++++
drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h | 115 ++
drivers/net/ethernet/cavium/liquidio/octeon_main.h | 47 +-
drivers/net/ethernet/cavium/liquidio/octeon_mem_ops.c | 7 +-
drivers/net/ethernet/cavium/liquidio/octeon_mem_ops.h | 5 +-
drivers/net/ethernet/cavium/liquidio/octeon_network.h | 14 +-
drivers/net/ethernet/cavium/liquidio/octeon_nic.c | 5 +-
drivers/net/ethernet/cavium/liquidio/octeon_nic.h | 7 +-
drivers/net/ethernet/cavium/liquidio/request_manager.c | 51 +-
drivers/net/ethernet/cavium/liquidio/response_manager.c | 14 +-
drivers/net/ethernet/cavium/liquidio/response_manager.h | 6 +-
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 13 +-
drivers/net/ethernet/cavium/thunder/nic.h | 19 +
drivers/net/ethernet/cavium/thunder/nic_main.c | 37 +
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c | 117 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 74 +-
drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 33 +-
drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 27 +-
drivers/net/ethernet/cavium/thunder/q_struct.h | 8 +-
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 74 +-
drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 12 +
drivers/net/ethernet/chelsio/cxgb/common.h | 5 +
drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 18 +-
drivers/net/ethernet/chelsio/cxgb/pm3393.c | 8 +-
drivers/net/ethernet/chelsio/cxgb/vsc7326.c | 5 -
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 4 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 19 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 12 -
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 111 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c | 114 ++
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 17 +
drivers/net/ethernet/chelsio/cxgb4/sge.c | 121 +-
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 15 +-
drivers/net/ethernet/cirrus/cs89x0.c | 1 -
drivers/net/ethernet/cirrus/ep93xx_eth.c | 1 -
drivers/net/ethernet/cirrus/mac89x0.c | 1 -
drivers/net/ethernet/cisco/enic/enic.h | 2 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 25 +-
drivers/net/ethernet/cisco/enic/enic_res.h | 2 +-
drivers/net/ethernet/davicom/dm9000.c | 1 -
drivers/net/ethernet/dec/tulip/de2104x.c | 1 -
drivers/net/ethernet/dec/tulip/de4x5.c | 1 -
drivers/net/ethernet/dec/tulip/dmfe.c | 1 -
drivers/net/ethernet/dec/tulip/tulip_core.c | 1 -
drivers/net/ethernet/dec/tulip/uli526x.c | 1 -
drivers/net/ethernet/dec/tulip/winbond-840.c | 1 -
drivers/net/ethernet/dec/tulip/xircom_cb.c | 1 -
drivers/net/ethernet/dlink/dl2k.c | 22 +-
drivers/net/ethernet/dlink/sundance.c | 6 +-
drivers/net/ethernet/dnet.c | 1 -
drivers/net/ethernet/ec_bhf.c | 1 -
drivers/net/ethernet/emulex/benet/be_main.c | 22 +-
drivers/net/ethernet/ethoc.c | 45 +-
drivers/net/ethernet/fealnx.c | 1 -
drivers/net/ethernet/freescale/Kconfig | 6 +-
drivers/net/ethernet/freescale/Makefile | 1 +
drivers/net/ethernet/freescale/dpaa/Kconfig | 10 +
drivers/net/ethernet/freescale/dpaa/Makefile | 12 +
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 2753 +++++++++++++++++++++++++++++++
drivers/net/ethernet/freescale/dpaa/dpaa_eth.h | 185 +++
drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c | 165 ++
drivers/net/ethernet/freescale/dpaa/dpaa_eth_trace.h | 141 ++
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 417 +++++
drivers/net/ethernet/freescale/fec_main.c | 38 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 1 -
drivers/net/ethernet/freescale/fman/mac.c | 8 +-
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | 51 +-
drivers/net/ethernet/freescale/fs_enet/fs_enet.h | 1 -
drivers/net/ethernet/freescale/gianfar.c | 9 +-
drivers/net/ethernet/freescale/gianfar_ptp.c | 25 +-
drivers/net/ethernet/freescale/ucc_geth.c | 1 -
drivers/net/ethernet/freescale/ucc_geth_ethtool.c | 9 +-
drivers/net/ethernet/fujitsu/fmvj18x_cs.c | 1 -
drivers/net/ethernet/hisilicon/hip04_eth.c | 2 -
drivers/net/ethernet/hisilicon/hisi_femac.c | 1 -
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 352 +++-
drivers/net/ethernet/hisilicon/hns/hnae.h | 19 +-
drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 38 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c | 4 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 73 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h | 17 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 411 ++++-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 31 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 31 -
drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h | 13 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c | 41 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.h | 5 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 117 +-
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 3 +-
drivers/net/ethernet/hp/hp100.c | 2 -
drivers/net/ethernet/i825xx/82596.c | 1 -
drivers/net/ethernet/i825xx/ether1.c | 1 -
drivers/net/ethernet/i825xx/lib82596.c | 1 -
drivers/net/ethernet/i825xx/sun3_82586.c | 1 -
drivers/net/ethernet/ibm/ehea/ehea_main.c | 14 +-
drivers/net/ethernet/ibm/emac/core.c | 10 +-
drivers/net/ethernet/ibm/ibmveth.c | 6 +-
drivers/net/ethernet/ibm/ibmvnic.c | 16 +-
drivers/net/ethernet/intel/e100.c | 9 -
drivers/net/ethernet/intel/e1000/e1000_main.c | 16 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 22 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 15 +-
drivers/net/ethernet/intel/i40e/i40e.h | 85 +-
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 51 +-
drivers/net/ethernet/intel/i40e/i40e_client.c | 85 +-
drivers/net/ethernet/intel/i40e/i40e_client.h | 2 -
drivers/net/ethernet/intel/i40e/i40e_common.c | 316 +++-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 113 +-
drivers/net/ethernet/intel/i40e/i40e_devids.h | 2 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 168 +-
drivers/net/ethernet/intel/i40e/i40e_fcoe.c | 12 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 1484 +++++++++--------
drivers/net/ethernet/intel/i40e/i40e_nvm.c | 16 +
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 19 +-
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 158 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 219 ++-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 48 +-
drivers/net/ethernet/intel/i40e/i40e_type.h | 106 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 4 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 141 +-
drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 4 +-
drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 51 +-
drivers/net/ethernet/intel/i40evf/i40e_common.c | 2 +
drivers/net/ethernet/intel/i40evf/i40e_devids.h | 2 +
drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 4 +
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 156 +-
drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 46 +-
drivers/net/ethernet/intel/i40evf/i40e_type.h | 87 +-
drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 4 +
drivers/net/ethernet/intel/i40evf/i40evf.h | 3 +-
drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 8 +
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 260 ++-
drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c | 3 +
drivers/net/ethernet/intel/igb/e1000_defines.h | 3 +-
drivers/net/ethernet/intel/igb/igb_main.c | 15 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 16 +-
drivers/net/ethernet/intel/igbvf/defines.h | 3 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 14 +-
drivers/net/ethernet/intel/ixgb/ixgb_main.c | 16 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 62 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 179 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 240 ++-
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 12 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 70 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 751 ++++++---
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 42 +-
drivers/net/ethernet/jme.c | 12 +-
drivers/net/ethernet/korina.c | 1 -
drivers/net/ethernet/lantiq_etop.c | 26 +-
drivers/net/ethernet/marvell/Kconfig | 20 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 177 +-
drivers/net/ethernet/marvell/mvneta.c | 388 +++--
drivers/net/ethernet/marvell/mvpp2.c | 37 +-
drivers/net/ethernet/marvell/pxa168_eth.c | 8 +-
drivers/net/ethernet/marvell/skge.c | 13 +-
drivers/net/ethernet/marvell/skge.h | 4 +-
drivers/net/ethernet/marvell/sky2.c | 18 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 6 +-
drivers/net/ethernet/mellanox/mlx4/en_cq.c | 30 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 103 +-
drivers/net/ethernet/mellanox/mlx4/en_main.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 431 +++--
drivers/net/ethernet/mellanox/mlx4/en_port.c | 83 +-
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 139 +-
drivers/net/ethernet/mellanox/mlx4/en_selftest.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 74 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 71 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 66 +
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 163 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 108 +-
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 47 +-
drivers/net/ethernet/mellanox/mlx5/core/en_clock.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/en_common.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 457 +++++-
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 105 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 62 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 27 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 314 ++--
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 173 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c | 352 ++++
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 50 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 583 ++++++-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 251 ++-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 63 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 237 ++-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 46 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 9 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 405 +++--
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 7 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 40 +
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 14 +
drivers/net/ethernet/mellanox/mlx5/core/port.c | 120 ++
drivers/net/ethernet/mellanox/mlx5/core/rl.c | 65 +
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/wq.c | 26 +-
drivers/net/ethernet/mellanox/mlx5/core/wq.h | 18 +-
drivers/net/ethernet/mellanox/mlxsw/Kconfig | 45 +-
drivers/net/ethernet/mellanox/mlxsw/Makefile | 7 +
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 5 +
drivers/net/ethernet/mellanox/mlxsw/core.c | 336 +++-
drivers/net/ethernet/mellanox/mlxsw/core.h | 165 +-
drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 4 +-
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c | 442 +++++
drivers/net/ethernet/mellanox/mlxsw/i2c.c | 582 +++++++
drivers/net/ethernet/mellanox/mlxsw/i2c.h | 60 +
drivers/net/ethernet/mellanox/mlxsw/ib.h | 39 +
drivers/net/ethernet/mellanox/mlxsw/item.h | 50 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 97 ++
drivers/net/ethernet/mellanox/mlxsw/pci.c | 199 +--
drivers/net/ethernet/mellanox/mlxsw/pci.h | 208 +--
drivers/net/ethernet/mellanox/mlxsw/pci_hw.h | 229 +++
drivers/net/ethernet/mellanox/mlxsw/port.h | 4 +
drivers/net/ethernet/mellanox/mlxsw/reg.h | 888 +++++-----
drivers/net/ethernet/mellanox/mlxsw/resources.h | 127 ++
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 532 +++---
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 6 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 3 +
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 136 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 7 +-
drivers/net/ethernet/mellanox/mlxsw/switchib.c | 605 +++++++
drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 650 +++++---
drivers/net/ethernet/mellanox/mlxsw/trap.h | 1 +
drivers/net/ethernet/micrel/ks8851.c | 1 -
drivers/net/ethernet/micrel/ks8851_mll.c | 1 -
drivers/net/ethernet/micrel/ksz884x.c | 33 +-
drivers/net/ethernet/microchip/enc28j60.c | 1 -
drivers/net/ethernet/moxa/moxart_ether.c | 1 -
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 22 +-
drivers/net/ethernet/natsemi/jazzsonic.c | 1 -
drivers/net/ethernet/natsemi/macsonic.c | 1 -
drivers/net/ethernet/natsemi/natsemi.c | 7 +-
drivers/net/ethernet/natsemi/ns83820.c | 13 +-
drivers/net/ethernet/natsemi/xtsonic.c | 1 -
drivers/net/ethernet/neterion/s2io.c | 9 +-
drivers/net/ethernet/neterion/vxge/vxge-config.h | 2 +-
drivers/net/ethernet/neterion/vxge/vxge-main.c | 9 +-
drivers/net/ethernet/netronome/nfp/nfp_bpf.h | 1 +
drivers/net/ethernet/netronome/nfp/nfp_bpf_jit.c | 92 +-
drivers/net/ethernet/netronome/nfp/nfp_bpf_verifier.c | 3 +
drivers/net/ethernet/netronome/nfp/nfp_net.h | 73 +-
drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 1255 ++++++++------
drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h | 13 +-
drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c | 50 +-
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 94 ++
drivers/net/ethernet/netronome/nfp/nfp_net_offload.c | 9 +-
drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c | 45 +-
drivers/net/ethernet/netx-eth.c | 1 -
drivers/net/ethernet/nuvoton/w90p910_ether.c | 1 -
drivers/net/ethernet/nvidia/forcedeth.c | 9 +-
drivers/net/ethernet/nxp/lpc_eth.c | 1 -
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 13 +-
drivers/net/ethernet/packetengines/hamachi.c | 1 -
drivers/net/ethernet/packetengines/yellowfin.c | 1 -
drivers/net/ethernet/pasemi/pasemi_mac.c | 12 +-
drivers/net/ethernet/qlogic/Kconfig | 3 +
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 12 -
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 7 +
drivers/net/ethernet/qlogic/qed/Makefile | 1 +
drivers/net/ethernet/qlogic/qed/qed.h | 37 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 437 +++--
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 121 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_iscsi.c | 1277 +++++++++++++++
drivers/net/ethernet/qlogic/qed/qed_iscsi.h | 52 +
drivers/net/ethernet/qlogic/qed/qed_l2.c | 611 ++++---
drivers/net/ethernet/qlogic/qed/qed_l2.h | 133 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 555 ++++++-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 9 +
drivers/net/ethernet/qlogic/qed/qed_main.c | 105 ++
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 441 ++++-
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 158 ++
drivers/net/ethernet/qlogic/qed/qed_ooo.c | 501 ++++++
drivers/net/ethernet/qlogic/qed/qed_ooo.h | 176 ++
drivers/net/ethernet/qlogic/qed/qed_reg_addr.h | 2 +
drivers/net/ethernet/qlogic/qed/qed_roce.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_selftest.c | 101 ++
drivers/net/ethernet/qlogic/qed/qed_selftest.h | 10 +
drivers/net/ethernet/qlogic/qed/qed_sp.h | 4 +-
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_spq.c | 121 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.c | 398 +++--
drivers/net/ethernet/qlogic/qed/qed_sriov.h | 22 +-
drivers/net/ethernet/qlogic/qed/qed_vf.c | 101 +-
drivers/net/ethernet/qlogic/qed/qed_vf.h | 54 +-
drivers/net/ethernet/qlogic/qede/qede.h | 170 +-
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 268 +--
drivers/net/ethernet/qlogic/qede/qede_main.c | 1501 ++++++++++-------
drivers/net/ethernet/qlogic/qla3xxx.c | 1 -
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 6 -
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 4 +
drivers/net/ethernet/qlogic/qlge/qlge_main.c | 7 +
drivers/net/ethernet/qualcomm/emac/Makefile | 4 +-
drivers/net/ethernet/qualcomm/emac/emac-sgmii-fsm9900.c | 245 +++
drivers/net/ethernet/qualcomm/emac/emac-sgmii-qdf2400.c | 217 +++
drivers/net/ethernet/qualcomm/emac/emac-sgmii-qdf2432.c | 210 +++
drivers/net/ethernet/qualcomm/emac/emac-sgmii.c | 569 +------
drivers/net/ethernet/qualcomm/emac/emac-sgmii.h | 6 +-
drivers/net/ethernet/qualcomm/emac/emac.c | 13 +-
drivers/net/ethernet/qualcomm/qca_framing.h | 6 +-
drivers/net/ethernet/qualcomm/qca_spi.c | 16 +-
drivers/net/ethernet/rdc/r6040.c | 1 -
drivers/net/ethernet/realtek/8139cp.c | 8 +-
drivers/net/ethernet/realtek/8139too.c | 13 +-
drivers/net/ethernet/realtek/atp.c | 1 -
drivers/net/ethernet/realtek/r8169.c | 16 +-
drivers/net/ethernet/renesas/ravb_main.c | 1 -
drivers/net/ethernet/renesas/sh_eth.c | 2 -
drivers/net/ethernet/rocker/rocker.h | 1 +
drivers/net/ethernet/rocker/rocker_main.c | 130 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 1 +
drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h | 1 -
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 44 +-
drivers/net/ethernet/seeq/ether3.c | 1 -
drivers/net/ethernet/seeq/sgiseeq.c | 1 -
drivers/net/ethernet/sfc/Kconfig | 7 +-
drivers/net/ethernet/sfc/Makefile | 7 +-
drivers/net/ethernet/sfc/ef10.c | 242 ++-
drivers/net/ethernet/sfc/ef10_regs.h | 103 +-
drivers/net/ethernet/sfc/efx.c | 89 +-
drivers/net/ethernet/sfc/enum.h | 5 +-
drivers/net/ethernet/sfc/ethtool.c | 33 +-
drivers/net/ethernet/sfc/falcon/Kconfig | 21 +
drivers/net/ethernet/sfc/falcon/Makefile | 6 +
drivers/net/ethernet/sfc/falcon/bitfield.h | 542 ++++++
drivers/net/ethernet/sfc/falcon/efx.c | 3350 ++++++++++++++++++++++++++++++++++++++
drivers/net/ethernet/sfc/falcon/efx.h | 277 ++++
drivers/net/ethernet/sfc/falcon/enum.h | 171 ++
drivers/net/ethernet/sfc/falcon/ethtool.c | 1343 +++++++++++++++
drivers/net/ethernet/sfc/{ => falcon}/falcon.c | 1040 ++++++------
drivers/net/ethernet/sfc/{ => falcon}/falcon_boards.c | 94 +-
drivers/net/ethernet/sfc/falcon/farch.c | 2892 ++++++++++++++++++++++++++++++++
drivers/net/ethernet/sfc/falcon/farch_regs.h | 2932 +++++++++++++++++++++++++++++++++
drivers/net/ethernet/sfc/falcon/filter.h | 272 ++++
drivers/net/ethernet/sfc/falcon/io.h | 290 ++++
drivers/net/ethernet/sfc/{ => falcon}/mdio_10g.c | 86 +-
drivers/net/ethernet/sfc/{ => falcon}/mdio_10g.h | 54 +-
drivers/net/ethernet/sfc/falcon/mtd.c | 133 ++
drivers/net/ethernet/sfc/falcon/net_driver.h | 1464 +++++++++++++++++
drivers/net/ethernet/sfc/falcon/nic.c | 527 ++++++
drivers/net/ethernet/sfc/falcon/nic.h | 513 ++++++
drivers/net/ethernet/sfc/{ => falcon}/phy.h | 18 +-
drivers/net/ethernet/sfc/{ => falcon}/qt202x_phy.c | 140 +-
drivers/net/ethernet/sfc/falcon/rx.c | 974 +++++++++++
drivers/net/ethernet/sfc/falcon/selftest.c | 808 +++++++++
drivers/net/ethernet/sfc/falcon/selftest.h | 55 +
drivers/net/ethernet/sfc/{ => falcon}/tenxpress.c | 108 +-
drivers/net/ethernet/sfc/falcon/tx.c | 649 ++++++++
drivers/net/ethernet/sfc/falcon/tx.h | 27 +
drivers/net/ethernet/sfc/{ => falcon}/txc43128_phy.c | 134 +-
drivers/net/ethernet/sfc/falcon/workarounds.h | 44 +
drivers/net/ethernet/sfc/farch.c | 182 +--
drivers/net/ethernet/sfc/mcdi.c | 1 -
drivers/net/ethernet/sfc/mcdi.h | 4 +-
drivers/net/ethernet/sfc/mcdi_mon.c | 4 +-
drivers/net/ethernet/sfc/mcdi_pcol.h | 483 +++++-
drivers/net/ethernet/sfc/mcdi_port.c | 3 +-
drivers/net/ethernet/sfc/net_driver.h | 78 +-
drivers/net/ethernet/sfc/nic.h | 174 +-
drivers/net/ethernet/sfc/ptp.c | 2 +-
drivers/net/ethernet/sfc/rx.c | 27 +-
drivers/net/ethernet/sfc/siena.c | 4 +-
drivers/net/ethernet/sfc/tx.c | 1055 ++++--------
drivers/net/ethernet/sfc/tx.h | 27 +
drivers/net/ethernet/sfc/tx_tso.c | 451 +++++
drivers/net/ethernet/sfc/workarounds.h | 21 -
drivers/net/ethernet/sgi/ioc3-eth.c | 1 -
drivers/net/ethernet/sgi/meth.c | 1 -
drivers/net/ethernet/silan/sc92031.c | 1 -
drivers/net/ethernet/sis/sis190.c | 1 -
drivers/net/ethernet/sis/sis900.c | 1 -
drivers/net/ethernet/smsc/epic100.c | 1 -
drivers/net/ethernet/smsc/smc911x.c | 1 -
drivers/net/ethernet/smsc/smc9194.c | 1 -
drivers/net/ethernet/smsc/smc91c92_cs.c | 1 -
drivers/net/ethernet/smsc/smc91x.c | 6 +-
drivers/net/ethernet/smsc/smc91x.h | 80 +-
drivers/net/ethernet/smsc/smsc911x.c | 8 +-
drivers/net/ethernet/smsc/smsc9420.c | 10 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
drivers/net/ethernet/stmicro/stmmac/chain_mode.c | 55 +-
drivers/net/ethernet/stmicro/stmmac/common.h | 11 +-
drivers/net/ethernet/stmicro/stmmac/descs.h | 20 +-
drivers/net/ethernet/stmicro/stmmac/descs_com.h | 48 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c | 3 +
drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c | 217 +++
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 95 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 83 +-
drivers/net/ethernet/stmicro/stmmac/dwmac1000.h | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c | 6 +
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c | 26 +-
drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c | 7 +
drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 3 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 6 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 62 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c | 37 +-
drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 55 +-
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 48 +-
drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 39 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 2 -
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 122 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 384 +++--
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 137 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 2 +
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 41 +-
drivers/net/ethernet/sun/cassini.c | 7 +-
drivers/net/ethernet/sun/ldmvsw.c | 5 +-
drivers/net/ethernet/sun/niu.c | 7 +-
drivers/net/ethernet/sun/sunbmac.c | 1 -
drivers/net/ethernet/sun/sungem.c | 11 +-
drivers/net/ethernet/sun/sunhme.c | 1 -
drivers/net/ethernet/sun/sunqe.c | 1 -
drivers/net/ethernet/sun/sunvnet.c | 5 +-
drivers/net/ethernet/sun/sunvnet_common.c | 26 +-
drivers/net/ethernet/sun/sunvnet_common.h | 3 +-
drivers/net/ethernet/synopsys/dwc_eth_qos.c | 2 +-
drivers/net/ethernet/tehuti/tehuti.c | 14 +-
drivers/net/ethernet/tehuti/tehuti.h | 3 +
drivers/net/ethernet/ti/Kconfig | 9 +-
drivers/net/ethernet/ti/Makefile | 3 +-
drivers/net/ethernet/ti/cpmac.c | 1 -
drivers/net/ethernet/ti/cpsw.c | 441 +++--
drivers/net/ethernet/ti/cpsw.h | 2 -
drivers/net/ethernet/ti/cpts.c | 233 ++-
drivers/net/ethernet/ti/cpts.h | 80 +-
drivers/net/ethernet/ti/davinci_cpdma.c | 561 +++++--
drivers/net/ethernet/ti/davinci_cpdma.h | 6 +
drivers/net/ethernet/ti/netcp.h | 2 +-
drivers/net/ethernet/ti/netcp_core.c | 52 +-
drivers/net/ethernet/ti/netcp_ethss.c | 479 +++++-
drivers/net/ethernet/ti/tlan.c | 1 -
drivers/net/ethernet/tile/tilegx.c | 21 +-
drivers/net/ethernet/tile/tilepro.c | 27 +-
drivers/net/ethernet/toshiba/ps3_gelic_net.c | 23 +-
drivers/net/ethernet/toshiba/ps3_gelic_net.h | 1 -
drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 1 -
drivers/net/ethernet/toshiba/spider_net.c | 24 +-
drivers/net/ethernet/toshiba/tc35815.c | 1 -
drivers/net/ethernet/tundra/tsi108_eth.c | 1 -
drivers/net/ethernet/via/via-rhine.c | 1 -
drivers/net/ethernet/via/via-velocity.c | 11 +-
drivers/net/ethernet/wiznet/w5100.c | 1 -
drivers/net/ethernet/wiznet/w5300.c | 1 -
drivers/net/ethernet/xilinx/ll_temac_main.c | 18 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 20 +-
drivers/net/ethernet/xircom/xirc2ps_cs.c | 1 -
drivers/net/ethernet/xscale/ixp4xx_eth.c | 8 +-
drivers/net/fddi/skfp/skfddi.c | 1 -
drivers/net/fjes/Makefile | 2 +-
drivers/net/fjes/fjes.h | 16 +
drivers/net/fjes/fjes_debugfs.c | 117 ++
drivers/net/fjes/fjes_ethtool.c | 181 +-
drivers/net/fjes/fjes_hw.c | 171 +-
drivers/net/fjes/fjes_hw.h | 34 +
drivers/net/fjes/fjes_main.c | 65 +-
drivers/net/fjes/fjes_trace.c | 30 +
drivers/net/fjes/fjes_trace.h | 380 +++++
drivers/net/geneve.c | 713 ++++----
drivers/net/gtp.c | 24 +-
drivers/net/hippi/rrunner.c | 1 -
drivers/net/hyperv/hyperv_net.h | 4 +-
drivers/net/hyperv/netvsc.c | 15 +-
drivers/net/hyperv/netvsc_drv.c | 14 +-
drivers/net/hyperv/rndis_filter.c | 6 +-
drivers/net/ieee802154/adf7242.c | 2 +-
drivers/net/ieee802154/at86rf230.c | 16 +-
drivers/net/ieee802154/atusb.c | 81 +-
drivers/net/ieee802154/atusb.h | 11 +-
drivers/net/ieee802154/fakelb.c | 2 +-
drivers/net/ipvlan/ipvlan.h | 2 -
drivers/net/ipvlan/ipvlan_main.c | 8 +-
drivers/net/irda/w83977af_ir.c | 671 ++++----
drivers/net/macsec.c | 49 +-
drivers/net/macvlan.c | 24 +-
drivers/net/macvtap.c | 7 +-
drivers/net/mii.c | 197 +++
drivers/net/nlmon.c | 20 +-
drivers/net/ntb_netdev.c | 3 +
drivers/net/phy/Kconfig | 22 +-
drivers/net/phy/Makefile | 2 +
drivers/net/phy/aquantia.c | 28 +
drivers/net/phy/at803x.c | 13 +-
drivers/net/phy/bcm-cygnus.c | 5 +-
drivers/net/phy/bcm-phy-lib.c | 187 ++-
drivers/net/phy/bcm-phy-lib.h | 15 +-
drivers/net/phy/bcm7xxx.c | 92 +-
drivers/net/phy/broadcom.c | 139 +-
drivers/net/phy/dp83640.c | 14 +-
drivers/net/phy/dp83867.c | 28 +
drivers/net/phy/icplus.c | 6 +-
drivers/net/phy/intel-xway.c | 24 +-
drivers/net/phy/marvell.c | 10 +-
drivers/net/phy/mdio-mux-mmioreg.c | 60 +-
drivers/net/phy/mdio_bus.c | 11 +
drivers/net/phy/mdio_device.c | 2 +-
drivers/net/phy/meson-gxl.c | 81 +
drivers/net/phy/micrel.c | 30 +-
drivers/net/phy/microchip.c | 39 +-
drivers/net/phy/mscc.c | 358 +++-
drivers/net/phy/national.c | 2 +-
drivers/net/phy/phy.c | 136 +-
drivers/net/phy/phy_device.c | 159 +-
drivers/net/phy/phy_led_triggers.c | 134 ++
drivers/net/phy/smsc.c | 18 +-
drivers/net/phy/vitesse.c | 14 +
drivers/net/plip/plip.c | 1 -
drivers/net/ppp/ppp_generic.c | 2 +-
drivers/net/ppp/pppoe.c | 2 +-
drivers/net/rionet.c | 15 +-
drivers/net/sb1000.c | 1 -
drivers/net/slip/slip.c | 11 +-
drivers/net/team/team.c | 25 +-
drivers/net/tun.c | 52 +-
drivers/net/usb/Kconfig | 5 +
drivers/net/usb/asix_devices.c | 4 +-
drivers/net/usb/ax88172a.c | 10 +-
drivers/net/usb/ax88179_178a.c | 4 +-
drivers/net/usb/catc.c | 1 -
drivers/net/usb/cdc-phonet.c | 12 +-
drivers/net/usb/cdc_ether.c | 28 +
drivers/net/usb/cdc_ncm.c | 5 +-
drivers/net/usb/kaweth.c | 1 -
drivers/net/usb/lan78xx.c | 462 ++++--
drivers/net/usb/lan78xx.h | 14 +
drivers/net/usb/pegasus.c | 1 -
drivers/net/usb/r8152.c | 24 +-
drivers/net/usb/rtl8150.c | 1 -
drivers/net/usb/sierra_net.c | 13 +-
drivers/net/usb/smsc75xx.c | 4 +-
drivers/net/usb/usbnet.c | 4 +-
drivers/net/veth.c | 17 +-
drivers/net/virtio_net.c | 34 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 7 +-
drivers/net/vrf.c | 23 +-
drivers/net/vxlan.c | 350 ++--
drivers/net/wan/c101.c | 1 -
drivers/net/wan/cosa.c | 1 -
drivers/net/wan/dscc4.c | 1 -
drivers/net/wan/farsync.c | 1 -
drivers/net/wan/fsl_ucc_hdlc.c | 1 -
drivers/net/wan/hdlc.c | 11 +-
drivers/net/wan/hdlc_fr.c | 3 +-
drivers/net/wan/hostess_sv11.c | 1 -
drivers/net/wan/ixp4xx_hss.c | 1 -
drivers/net/wan/lmc/lmc_main.c | 1 -
drivers/net/wan/n2.c | 1 -
drivers/net/wan/pc300too.c | 1 -
drivers/net/wan/pci200syn.c | 1 -
drivers/net/wan/sbni.c | 1 -
drivers/net/wan/sealevel.c | 1 -
drivers/net/wan/wanxl.c | 1 -
drivers/net/wan/x25_asy.c | 5 +-
drivers/net/wimax/i2400m/netdev.c | 22 +-
drivers/net/wireless/Kconfig | 13 +
drivers/net/wireless/ath/ath.h | 6 +
drivers/net/wireless/ath/ath10k/core.c | 21 +-
drivers/net/wireless/ath/ath10k/core.h | 44 +-
drivers/net/wireless/ath/ath10k/debug.h | 22 +
drivers/net/wireless/ath/ath10k/debugfs_sta.c | 13 +
drivers/net/wireless/ath/ath10k/htt.c | 2 +
drivers/net/wireless/ath/ath10k/htt.h | 31 +-
drivers/net/wireless/ath/ath10k/htt_rx.c | 137 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 129 +-
drivers/net/wireless/ath/ath10k/hw.c | 142 ++
drivers/net/wireless/ath/ath10k/hw.h | 28 +-
drivers/net/wireless/ath/ath10k/mac.c | 192 ++-
drivers/net/wireless/ath/ath10k/spectral.c | 2 +-
drivers/net/wireless/ath/ath10k/wmi-ops.h | 6 +
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 77 +-
drivers/net/wireless/ath/ath10k/wmi.c | 62 +-
drivers/net/wireless/ath/ath10k/wmi.h | 18 +-
drivers/net/wireless/ath/ath5k/debug.c | 1 -
drivers/net/wireless/ath/ath6kl/sdio.c | 15 +-
drivers/net/wireless/ath/ath6kl/wmi.c | 8 +-
drivers/net/wireless/ath/ath9k/ahb.c | 2 +-
drivers/net/wireless/ath/ath9k/ath9k.h | 27 +-
drivers/net/wireless/ath/ath9k/channel.c | 2 -
drivers/net/wireless/ath/ath9k/common-spectral.c | 8 +-
drivers/net/wireless/ath/ath9k/debug.c | 14 +-
drivers/net/wireless/ath/ath9k/debug.h | 2 -
drivers/net/wireless/ath/ath9k/debug_sta.c | 4 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 9 +-
drivers/net/wireless/ath/ath9k/hif_usb.h | 2 +
drivers/net/wireless/ath/ath9k/htc_hst.c | 6 +-
drivers/net/wireless/ath/ath9k/hw.c | 2 +-
drivers/net/wireless/ath/ath9k/init.c | 50 +-
drivers/net/wireless/ath/ath9k/main.c | 9 +-
drivers/net/wireless/ath/ath9k/pci.c | 7 +-
drivers/net/wireless/ath/ath9k/recv.c | 17 +-
drivers/net/wireless/ath/ath9k/rng.c | 2 +-
drivers/net/wireless/ath/ath9k/xmit.c | 338 ++--
drivers/net/wireless/ath/main.c | 7 +
drivers/net/wireless/ath/regd.c | 3 +-
drivers/net/wireless/ath/regd.h | 1 +
drivers/net/wireless/ath/wil6210/cfg80211.c | 129 +-
drivers/net/wireless/ath/wil6210/main.c | 100 +-
drivers/net/wireless/ath/wil6210/netdev.c | 19 +-
drivers/net/wireless/ath/wil6210/p2p.c | 160 +-
drivers/net/wireless/ath/wil6210/pmc.c | 55 +-
drivers/net/wireless/ath/wil6210/txrx.c | 110 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 25 +-
drivers/net/wireless/ath/wil6210/wil_crash_dump.c | 6 +
drivers/net/wireless/ath/wil6210/wmi.c | 160 +-
drivers/net/wireless/ath/wil6210/wmi.h | 586 +++++--
drivers/net/wireless/atmel/atmel.c | 13 +-
drivers/net/wireless/broadcom/b43/main.c | 2 +
drivers/net/wireless/broadcom/b43legacy/main.c | 2 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/Makefile | 3 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c | 12 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 10 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 411 ++---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 4 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 8 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c | 4 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.h | 2 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h | 23 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c | 15 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h | 1 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 44 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.h | 4 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 171 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c | 242 +++
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.h | 40 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c | 2 +-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h | 9 +
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 +
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_qmath.c | 5 +-
drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h | 1 +
drivers/net/wireless/cisco/airo.c | 14 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 3 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 8 +-
drivers/net/wireless/intel/ipw2x00/libipw.h | 1 -
drivers/net/wireless/intel/ipw2x00/libipw_module.c | 9 -
drivers/net/wireless/intel/ipw2x00/libipw_rx.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-fw-file.h | 2 +
drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 26 +
drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h | 9 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 1 +
drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 100 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 24 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 86 +-
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 6 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 3 +
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 37 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 1 +
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 29 +-
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 +-
drivers/net/wireless/intersil/hostap/hostap_80211_rx.c | 2 +-
drivers/net/wireless/intersil/hostap/hostap_main.c | 15 +-
drivers/net/wireless/intersil/orinoco/main.c | 6 +-
drivers/net/wireless/intersil/p54/fwio.c | 2 +-
drivers/net/wireless/intersil/prism54/islpci_dev.c | 1 -
drivers/net/wireless/mac80211_hwsim.c | 111 +-
drivers/net/wireless/marvell/libertas/main.c | 1 -
drivers/net/wireless/marvell/mwifiex/README | 23 +
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 24 +-
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 5 +-
drivers/net/wireless/marvell/mwifiex/fw.h | 11 +
drivers/net/wireless/marvell/mwifiex/init.c | 1 +
drivers/net/wireless/marvell/mwifiex/main.c | 116 +-
drivers/net/wireless/marvell/mwifiex/main.h | 45 +-
drivers/net/wireless/marvell/mwifiex/pcie.c | 183 ++-
drivers/net/wireless/marvell/mwifiex/pcie.h | 2 +
drivers/net/wireless/marvell/mwifiex/scan.c | 12 +-
drivers/net/wireless/marvell/mwifiex/sdio.c | 157 +-
drivers/net/wireless/marvell/mwifiex/sdio.h | 9 +-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 87 +-
drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 63 +-
drivers/net/wireless/marvell/mwifiex/usb.h | 2 +
drivers/net/wireless/marvell/mwifiex/wmm.c | 31 +-
drivers/net/wireless/mediatek/mt7601u/init.c | 14 +-
drivers/net/wireless/mediatek/mt7601u/regs.h | 3 +
drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 67 +-
drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2x00.h | 1 +
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 25 +-
drivers/net/wireless/ralink/rt2x00/rt61pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt73usb.c | 5 +-
drivers/net/wireless/ray_cs.c | 1 -
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 27 +-
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 2 +-
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 111 +-
drivers/net/wireless/realtek/rtlwifi/base.c | 8 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 11 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 18 +-
drivers/net/wireless/realtek/rtlwifi/pci.h | 4 -
drivers/net/wireless/realtek/rtlwifi/ps.c | 36 +-
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192c/main.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/def.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/dm.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/dm.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/reg.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rf.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rf.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/table.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/table.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/def.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/dm.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/dm.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/mac.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/mac.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/reg.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/table.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/table.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/def.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/reg.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/rf.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/rf.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/table.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/table.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/def.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/dm.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/dm.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/reg.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/rf.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/rf.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/table.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/table.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hal_bt_coexist.h | 4 -
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c | 4 -
drivers/net/wireless/realtek/rtlwifi/usb.c | 4 -
drivers/net/wireless/realtek/rtlwifi/usb.h | 4 -
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 175 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 134 +-
drivers/net/wireless/rsi/rsi_main.h | 4 +
drivers/net/wireless/rsi/rsi_mgmt.h | 32 +-
drivers/net/wireless/st/cw1200/wsm.c | 24 +-
drivers/net/wireless/ti/wl18xx/event.c | 28 +
drivers/net/wireless/ti/wl18xx/event.h | 1 +
drivers/net/wireless/ti/wl18xx/main.c | 3 +-
drivers/net/wireless/ti/wlcore/acx.c | 5 +-
drivers/net/wireless/ti/wlcore/acx.h | 3 +-
drivers/net/wireless/ti/wlcore/main.c | 9 +-
drivers/net/wireless/wl3501_cs.c | 1 -
drivers/net/wireless/zydas/zd1201.c | 1 -
drivers/net/xen-netback/interface.c | 5 +-
drivers/net/xen-netback/xenbus.c | 12 +-
drivers/net/xen-netfront.c | 2 +
drivers/ptp/ptp_clock.c | 5 +-
drivers/ptp/ptp_sysfs.c | 2 +-
drivers/s390/net/ctcm_main.c | 5 +-
drivers/s390/net/lcs.c | 2 +-
drivers/s390/net/netiucv.c | 41 +-
drivers/s390/net/qeth_core_main.c | 4 -
drivers/s390/net/qeth_l2_main.c | 2 +
drivers/s390/net/qeth_l3_main.c | 2 +
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 1 +
drivers/scsi/pmcraid.c | 11 +-
drivers/ssb/pci.c | 1 +
drivers/staging/octeon/ethernet.c | 22 +-
drivers/staging/rtl8188eu/os_dep/mon.c | 1 -
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 1 -
drivers/staging/rtl8192u/r8192U_core.c | 1 -
drivers/staging/slicoss/slicoss.c | 1 -
drivers/staging/unisys/include/iochannel.h | 10 +-
drivers/staging/unisys/visornic/visornic_main.c | 4 +-
drivers/staging/wilc1000/linux_mon.c | 4 +-
drivers/staging/wlan-ng/p80211netdev.c | 18 +-
drivers/target/iscsi/cxgbit/cxgbit_main.c | 1 +
drivers/target/target_core_user.c | 4 +-
drivers/thermal/thermal_core.c | 6 +-
drivers/tty/n_gsm.c | 12 +-
drivers/tty/synclink.c | 1 -
drivers/tty/synclink_gt.c | 1 -
drivers/tty/synclinkmp.c | 1 -
drivers/usb/gadget/function/f_phonet.c | 11 +-
drivers/usb/gadget/function/u_ether.c | 14 +-
drivers/vhost/vhost.c | 2 +-
drivers/vhost/vsock.c | 3 -
fs/dlm/netlink.c | 16 +-
fs/lockd/netns.h | 2 +-
fs/lockd/svc.c | 2 +-
fs/nfs/inode.c | 2 +-
fs/nfs/netns.h | 2 +-
fs/nfs_common/grace.c | 2 +-
fs/nfsd/netns.h | 2 +-
fs/nfsd/nfsctl.c | 2 +-
fs/nsfs.c | 2 +-
fs/quota/netlink.c | 10 +-
include/dt-bindings/net/mdio.h | 19 +
include/dt-bindings/net/mscc-phy-vsc8531.h | 21 -
include/linux/bpf-cgroup.h | 92 ++
include/linux/bpf.h | 19 +-
include/linux/bpf_verifier.h | 14 +-
include/linux/brcmphy.h | 27 +-
include/linux/cgroup-defs.h | 4 +
include/linux/debugfs.h | 3 +-
include/linux/device.h | 19 +
include/linux/drbd_genl.h | 2 +-
include/linux/fddidevice.h | 1 -
include/linux/filter.h | 37 +-
include/linux/genl_magic_func.h | 29 +-
include/linux/hdlc.h | 2 -
include/linux/hippidevice.h | 1 -
include/linux/ieee80211.h | 26 +
include/linux/if_arp.h | 16 +
include/linux/if_vlan.h | 16 -
include/linux/ipv6.h | 10 +-
include/linux/mbus.h | 8 +
include/linux/mii.h | 4 +
include/linux/mlx5/device.h | 16 +
include/linux/mlx5/driver.h | 60 +-
include/linux/mlx5/fs.h | 43 +-
include/linux/mlx5/mlx5_ifc.h | 319 +++-
include/linux/mlx5/port.h | 9 +
include/linux/mlx5/srq.h | 2 +-
include/linux/mlx5/vport.h | 10 +-
include/linux/netdevice.h | 210 +--
include/linux/netfilter.h | 89 +-
include/linux/netfilter/ipset/ip_set.h | 136 +-
include/linux/netfilter/ipset/ip_set_bitmap.h | 2 +-
include/linux/netfilter/ipset/ip_set_comment.h | 11 +-
include/linux/netfilter/ipset/ip_set_counter.h | 75 +
include/linux/netfilter/ipset/ip_set_skbinfo.h | 46 +
include/linux/netfilter/ipset/ip_set_timeout.h | 4 +-
include/linux/netfilter/nf_conntrack_dccp.h | 2 +-
include/linux/netfilter/x_tables.h | 86 +-
include/linux/netfilter_ingress.h | 9 +-
include/linux/netpoll.h | 13 +-
include/linux/phy.h | 44 +-
include/linux/phy_led_triggers.h | 51 +
include/linux/pim.h | 81 +-
include/linux/proc_fs.h | 4 +
include/linux/ptp_clock_kernel.h | 8 +
include/linux/qed/qed_chain.h | 144 +-
include/linux/qed/qed_eth_if.h | 61 +-
include/linux/qed/qed_if.h | 49 +
include/linux/qed/qed_iscsi_if.h | 229 +++
include/linux/seg6.h | 6 +
include/linux/seg6_genl.h | 6 +
include/linux/seg6_hmac.h | 6 +
include/linux/seg6_iptunnel.h | 6 +
include/linux/skbuff.h | 23 +-
include/linux/smc91x.h | 1 +
include/linux/stmmac.h | 5 +-
include/linux/tcp.h | 24 +-
include/linux/udp.h | 3 +
include/linux/virtio_net.h | 4 +-
include/net/act_api.h | 5 +-
include/net/bluetooth/bluetooth.h | 25 +-
include/net/bonding.h | 2 +-
include/net/busy_poll.h | 33 +-
include/net/cfg80211.h | 161 +-
include/net/devlink.h | 2 +
include/net/dst_metadata.h | 10 +-
include/net/fib_rules.h | 9 +-
include/net/flow.h | 9 +-
include/net/flow_dissector.h | 22 +
include/net/gen_stats.h | 17 +-
include/net/genetlink.h | 107 +-
include/net/ieee80211_radiotap.h | 4 +-
include/net/if_inet6.h | 1 +
include/net/inet_connection_sock.h | 5 -
include/net/inet_sock.h | 1 +
include/net/ip.h | 6 +-
include/net/ip6_route.h | 5 +-
include/net/ip_fib.h | 8 +-
include/net/ip_tunnels.h | 6 +-
include/net/ipv6.h | 3 +-
include/net/lwtunnel.h | 13 +-
include/net/mac80211.h | 19 +-
include/net/ndisc.h | 5 +-
include/net/net_namespace.h | 2 +-
include/net/netfilter/ipv4/nf_conntrack_ipv4.h | 9 +
include/net/netfilter/ipv4/nf_defrag_ipv4.h | 3 +-
include/net/netfilter/ipv6/nf_conntrack_ipv6.h | 9 +
include/net/netfilter/ipv6/nf_defrag_ipv6.h | 3 +-
include/net/netfilter/nf_conntrack.h | 4 +
include/net/netfilter/nf_conntrack_l3proto.h | 16 +-
include/net/netfilter/nf_conntrack_l4proto.h | 20 +-
include/net/netfilter/nf_conntrack_synproxy.h | 2 +-
include/net/netfilter/nf_dup_netdev.h | 1 +
include/net/netfilter/nf_log.h | 7 +
include/net/netfilter/nf_nat_l4proto.h | 9 +
include/net/netfilter/nf_queue.h | 1 +
include/net/netfilter/nf_socket.h | 27 +
include/net/netfilter/nf_tables.h | 137 +-
include/net/netfilter/nf_tables_core.h | 34 +-
include/net/netfilter/nft_fib.h | 31 +
include/net/netfilter/xt_rateest.h | 10 +-
include/net/netlink.h | 15 +-
include/net/netns/conntrack.h | 44 +-
include/net/netns/generic.h | 16 +-
include/net/netns/ipv4.h | 3 +
include/net/netns/ipv6.h | 1 +
include/net/netns/netfilter.h | 6 +
include/net/pkt_cls.h | 21 +-
include/net/pkt_sched.h | 2 +
include/net/raw.h | 6 +
include/net/rawv6.h | 7 +
include/net/route.h | 5 +-
include/net/sch_generic.h | 2 +-
include/net/sctp/sctp.h | 2 +-
include/net/sctp/structs.h | 7 +-
include/net/secure_seq.h | 8 +-
include/net/seg6.h | 62 +
include/net/seg6_hmac.h | 62 +
include/net/sock.h | 126 +-
include/net/tc_act/tc_mirred.h | 6 +-
include/net/tc_act/tc_skbedit.h | 1 +
include/net/tc_act/tc_tunnel_key.h | 37 +
include/net/tcp.h | 23 +-
include/net/udp.h | 20 +
include/net/udplite.h | 1 +
include/net/vxlan.h | 10 -
include/trace/events/mdio.h | 42 +
include/uapi/asm-generic/socket.h | 2 +
include/uapi/linux/bpf.h | 642 ++++----
include/uapi/linux/devlink.h | 8 +
include/uapi/linux/ethtool.h | 18 +-
include/uapi/linux/fib_rules.h | 6 +
include/uapi/linux/genetlink.h | 3 +-
include/uapi/linux/if_ether.h | 3 +
include/uapi/linux/if_link.h | 6 +
include/uapi/linux/if_pppol2tp.h | 13 +-
include/uapi/linux/in.h | 1 +
include/uapi/linux/in6.h | 1 +
include/uapi/linux/inet_diag.h | 17 +
include/uapi/linux/ipv6.h | 4 +
include/uapi/linux/l2tp.h | 21 +-
include/uapi/linux/lwtunnel.h | 24 +
include/uapi/linux/net_tstamp.h | 3 +-
include/uapi/linux/netfilter.h | 2 +-
include/uapi/linux/netfilter/nf_conntrack_tuple_common.h | 3 +
include/uapi/linux/netfilter/nf_tables.h | 133 ++
include/uapi/linux/netfilter/xt_bpf.h | 21 +
include/uapi/linux/nl80211.h | 76 +-
include/uapi/linux/openvswitch.h | 15 +
include/uapi/linux/pkt_cls.h | 28 +
include/uapi/linux/rtnetlink.h | 1 +
include/uapi/linux/seg6.h | 54 +
include/uapi/linux/seg6_genl.h | 32 +
include/uapi/linux/seg6_hmac.h | 21 +
include/uapi/linux/seg6_iptunnel.h | 44 +
include/uapi/linux/sockios.h | 3 +
include/uapi/linux/tc_act/tc_bpf.h | 1 +
include/uapi/linux/tc_act/tc_skbedit.h | 2 +
include/uapi/linux/tc_act/tc_tunnel_key.h | 1 +
include/uapi/linux/tcp.h | 12 +
init/Kconfig | 12 +
kernel/audit.c | 5 +-
kernel/bpf/Makefile | 3 +-
kernel/bpf/bpf_lru_list.c | 695 ++++++++
kernel/bpf/bpf_lru_list.h | 84 +
kernel/bpf/cgroup.c | 200 +++
kernel/bpf/core.c | 68 +-
kernel/bpf/hashtab.c | 438 ++++-
kernel/bpf/helpers.c | 12 +
kernel/bpf/inode.c | 99 +-
kernel/bpf/syscall.c | 182 ++-
kernel/bpf/verifier.c | 130 +-
kernel/cgroup.c | 18 +
kernel/events/core.c | 2 +-
kernel/seccomp.c | 2 +-
kernel/taskstats.c | 18 +-
kernel/time/clocksource.c | 1 +
kernel/trace/bpf_trace.c | 2 +
lib/nlattr.c | 2 +-
net/802/fddi.c | 11 +-
net/802/hippi.c | 14 +-
net/8021q/vlan.c | 9 +-
net/8021q/vlan.h | 2 +-
net/8021q/vlan_dev.c | 3 +
net/Kconfig | 8 +
net/atm/br2684.c | 6 +-
net/atm/lec.c | 11 +-
net/batman-adv/Kconfig | 2 +-
net/batman-adv/bat_iv_ogm.c | 58 +-
net/batman-adv/bat_v.c | 8 +-
net/batman-adv/bat_v_elp.c | 71 +-
net/batman-adv/bat_v_ogm.c | 75 +-
net/batman-adv/debugfs.c | 26 +-
net/batman-adv/distributed-arp-table.c | 84 +-
net/batman-adv/fragmentation.c | 82 +-
net/batman-adv/fragmentation.h | 2 +-
net/batman-adv/gateway_client.c | 9 +-
net/batman-adv/hard-interface.c | 225 ++-
net/batman-adv/hard-interface.h | 21 +-
net/batman-adv/hash.h | 30 -
net/batman-adv/icmp_socket.c | 5 +-
net/batman-adv/log.c | 4 +-
net/batman-adv/log.h | 12 +-
net/batman-adv/main.c | 16 +-
net/batman-adv/main.h | 28 +-
net/batman-adv/multicast.c | 70 +-
net/batman-adv/multicast.h | 6 -
net/batman-adv/netlink.c | 31 +-
net/batman-adv/network-coding.c | 43 +-
net/batman-adv/originator.c | 23 +-
net/batman-adv/packet.h | 12 +-
net/batman-adv/routing.c | 180 +-
net/batman-adv/send.c | 419 +++--
net/batman-adv/send.h | 11 +-
net/batman-adv/soft-interface.c | 27 +-
net/batman-adv/sysfs.c | 53 +-
net/batman-adv/tp_meter.c | 6 -
net/batman-adv/translation-table.c | 39 +-
net/batman-adv/tvlv.c | 5 +-
net/batman-adv/types.h | 45 +-
net/bluetooth/bnep/netdev.c | 3 +-
net/bluetooth/smp.c | 85 +-
net/bluetooth/smp.h | 1 +
net/bridge/br_device.c | 5 +-
net/bridge/br_fdb.c | 10 +-
net/bridge/br_multicast.c | 188 ++-
net/bridge/br_netfilter_hooks.c | 26 +-
net/bridge/br_netlink.c | 34 +-
net/bridge/br_private.h | 11 +-
net/bridge/br_private_stp.h | 1 +
net/bridge/br_stp.c | 65 +-
net/bridge/br_stp_if.c | 14 +-
net/bridge/br_stp_timer.c | 2 +-
net/bridge/br_sysfs_br.c | 40 +
net/bridge/netfilter/Kconfig | 1 +
net/bridge/netfilter/ebt_arpreply.c | 3 +-
net/bridge/netfilter/ebt_log.c | 11 +-
net/bridge/netfilter/ebt_nflog.c | 6 +-
net/bridge/netfilter/ebt_redirect.c | 6 +-
net/bridge/netfilter/ebtable_broute.c | 2 +-
net/bridge/netfilter/ebtables.c | 6 +-
net/bridge/netfilter/nf_log_bridge.c | 17 +-
net/bridge/netfilter/nft_meta_bridge.c | 2 +-
net/bridge/netfilter/nft_reject_bridge.c | 30 +-
net/caif/caif_dev.c | 2 +-
net/caif/cfcnfg.c | 9 +-
net/core/Makefile | 1 +
net/core/datagram.c | 72 +-
net/core/dev.c | 870 +++++-----
net/core/devlink.c | 100 +-
net/core/drop_monitor.c | 21 +-
net/core/ethtool.c | 97 ++
net/core/fib_rules.c | 78 +-
net/core/filter.c | 336 +++-
net/core/flow_dissector.c | 33 +-
net/core/gen_estimator.c | 294 ++--
net/core/gen_stats.c | 20 +-
net/core/lwt_bpf.c | 396 +++++
net/core/lwtunnel.c | 17 +
net/core/neighbour.c | 15 +-
net/core/net-sysfs.c | 65 +-
net/core/net_namespace.c | 42 +-
net/core/netpoll.c | 6 +-
net/core/pktgen.c | 2 +-
net/core/rtnetlink.c | 20 +-
net/core/secure_seq.c | 11 +-
net/core/skbuff.c | 70 +-
net/core/sock.c | 84 +-
net/core/stream.c | 28 +-
net/core/sysctl_net_core.c | 5 +-
net/dccp/ipv4.c | 8 +-
net/dccp/ipv6.c | 2 +-
net/decnet/af_decnet.c | 16 +-
net/dsa/slave.c | 16 +-
net/ethernet/eth.c | 8 +-
net/hsr/hsr_device.c | 1 +
net/hsr/hsr_netlink.c | 23 +-
net/ieee802154/netlink.c | 24 +-
net/ieee802154/nl-phy.c | 6 +-
net/ieee802154/nl802154.c | 44 +-
net/ipv4/Kconfig | 8 +
net/ipv4/Makefile | 1 +
net/ipv4/af_inet.c | 12 +-
net/ipv4/fib_frontend.c | 3 +
net/ipv4/fib_semantics.c | 1 +
net/ipv4/fib_trie.c | 155 +-
net/ipv4/fou.c | 23 +-
net/ipv4/icmp.c | 6 +-
net/ipv4/inet_connection_sock.c | 4 +-
net/ipv4/inet_diag.c | 73 +-
net/ipv4/ip_gre.c | 4 +-
net/ipv4/ip_output.c | 31 +-
net/ipv4/ip_sockglue.c | 32 +-
net/ipv4/ip_tunnel.c | 10 +-
net/ipv4/ip_vti.c | 2 +-
net/ipv4/ipip.c | 2 +-
net/ipv4/ipmr.c | 15 +-
net/ipv4/netfilter/Kconfig | 14 +
net/ipv4/netfilter/Makefile | 3 +
net/ipv4/netfilter/arp_tables.c | 42 +-
net/ipv4/netfilter/ip_tables.c | 42 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 6 +-
net/ipv4/netfilter/ipt_MASQUERADE.c | 11 +-
net/ipv4/netfilter/ipt_REJECT.c | 4 +-
net/ipv4/netfilter/ipt_SYNPROXY.c | 8 +-
net/ipv4/netfilter/ipt_rpfilter.c | 10 +-
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 145 +-
net/ipv4/netfilter/nf_defrag_ipv4.c | 41 +-
net/ipv4/netfilter/nf_socket_ipv4.c | 163 ++
net/ipv4/netfilter/nft_dup_ipv4.c | 2 +-
net/ipv4/netfilter/nft_fib_ipv4.c | 241 +++
net/ipv4/netfilter/nft_masq_ipv4.c | 15 +-
net/ipv4/netfilter/nft_redir_ipv4.c | 14 +-
net/ipv4/netfilter/nft_reject_ipv4.c | 4 +-
net/ipv4/ping.c | 3 +-
net/ipv4/raw.c | 33 +-
net/ipv4/raw_diag.c | 266 +++
net/ipv4/route.c | 116 +-
net/ipv4/syncookies.c | 3 +-
net/ipv4/tcp.c | 116 +-
net/ipv4/tcp_bbr.c | 32 +-
net/ipv4/tcp_cong.c | 14 +-
net/ipv4/tcp_dctcp.c | 1 +
net/ipv4/tcp_highspeed.c | 11 +-
net/ipv4/tcp_hybla.c | 1 +
net/ipv4/tcp_illinois.c | 10 +
net/ipv4/tcp_input.c | 33 +-
net/ipv4/tcp_ipv4.c | 26 +-
net/ipv4/tcp_lp.c | 1 +
net/ipv4/tcp_metrics.c | 23 +-
net/ipv4/tcp_minisocks.c | 4 +-
net/ipv4/tcp_output.c | 185 ++-
net/ipv4/tcp_scalable.c | 15 +
net/ipv4/tcp_timer.c | 4 +-
net/ipv4/tcp_vegas.c | 1 +
net/ipv4/tcp_veno.c | 10 +
net/ipv4/tcp_westwood.c | 1 +
net/ipv4/tcp_yeah.c | 10 +
net/ipv4/udp.c | 254 ++-
net/ipv4/udplite.c | 3 +-
net/ipv6/Kconfig | 35 +
net/ipv6/Makefile | 4 +-
net/ipv6/addrconf.c | 50 +-
net/ipv6/af_inet6.c | 18 +-
net/ipv6/ah6.c | 5 +-
net/ipv6/datagram.c | 6 +
net/ipv6/esp6.c | 5 +-
net/ipv6/exthdrs.c | 268 ++-
net/ipv6/icmp.c | 7 +-
net/ipv6/ila/ila_lwt.c | 92 +-
net/ipv6/ila/ila_xlat.c | 43 +-
net/ipv6/inet6_connection_sock.c | 2 +
net/ipv6/ip6_gre.c | 6 +-
net/ipv6/ip6_output.c | 16 +-
net/ipv6/ip6_tunnel.c | 12 +-
net/ipv6/ip6_vti.c | 28 +-
net/ipv6/ip6mr.c | 2 +-
net/ipv6/ipcomp6.c | 5 +-
net/ipv6/ipv6_sockglue.c | 18 +
net/ipv6/ndisc.c | 29 +-
net/ipv6/netfilter.c | 1 +
net/ipv6/netfilter/Kconfig | 14 +
net/ipv6/netfilter/Makefile | 3 +
net/ipv6/netfilter/ip6_tables.c | 43 +-
net/ipv6/netfilter/ip6t_MASQUERADE.c | 2 +-
net/ipv6/netfilter/ip6t_REJECT.c | 23 +-
net/ipv6/netfilter/ip6t_SYNPROXY.c | 8 +-
net/ipv6/netfilter/ip6t_rpfilter.c | 3 +-
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 146 +-
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 42 +-
net/ipv6/netfilter/nf_socket_ipv6.c | 151 ++
net/ipv6/netfilter/nft_dup_ipv6.c | 2 +-
net/ipv6/netfilter/nft_fib_ipv6.c | 275 ++++
net/ipv6/netfilter/nft_masq_ipv6.c | 14 +-
net/ipv6/netfilter/nft_redir_ipv6.c | 14 +-
net/ipv6/netfilter/nft_reject_ipv6.c | 6 +-
net/ipv6/ping.c | 1 +
net/ipv6/raw.c | 8 +-
net/ipv6/reassembly.c | 7 +-
net/ipv6/route.c | 27 +-
net/ipv6/seg6.c | 495 ++++++
net/ipv6/seg6_hmac.c | 484 ++++++
net/ipv6/seg6_iptunnel.c | 431 +++++
net/ipv6/sit.c | 16 +-
net/ipv6/syncookies.c | 2 +
net/ipv6/tcp_ipv6.c | 14 +-
net/ipv6/udp.c | 48 +-
net/ipv6/udplite.c | 3 +-
net/ipv6/xfrm6_tunnel.c | 2 +-
net/irda/irlan/irlan_eth.c | 4 +-
net/irda/irnetlink.c | 22 +-
net/iucv/af_iucv.c | 34 +-
net/key/af_key.c | 2 +-
net/l2tp/l2tp_core.c | 2 +-
net/l2tp/l2tp_core.h | 10 -
net/l2tp/l2tp_eth.c | 2 +
net/l2tp/l2tp_ip6.c | 1 +
net/l2tp/l2tp_netlink.c | 59 +-
net/l2tp/l2tp_ppp.c | 60 +-
net/llc/af_llc.c | 24 +-
net/mac80211/Makefile | 1 +
net/mac80211/aes_cmac.c | 8 +-
net/mac80211/aes_cmac.h | 4 +
net/mac80211/agg-rx.c | 8 +-
net/mac80211/cfg.c | 35 +-
net/mac80211/debugfs.c | 1 +
net/mac80211/debugfs_netdev.c | 11 +
net/mac80211/debugfs_sta.c | 9 +-
net/mac80211/fils_aead.c | 342 ++++
net/mac80211/fils_aead.h | 19 +
net/mac80211/ieee80211_i.h | 26 +-
net/mac80211/iface.c | 31 +-
net/mac80211/main.c | 5 +
net/mac80211/mlme.c | 81 +-
net/mac80211/rx.c | 11 +-
net/mac80211/sta_info.c | 23 +-
net/mac80211/sta_info.h | 4 +-
net/mac80211/tx.c | 55 +-
net/mac80211/util.c | 61 +-
net/mac80211/wme.c | 23 +-
net/mac80211/wpa.c | 2 +-
net/mpls/mpls_iptunnel.c | 5 +-
net/netfilter/Kconfig | 56 +-
net/netfilter/Makefile | 24 +-
net/netfilter/core.c | 100 +-
net/netfilter/ipset/Kconfig | 9 +
net/netfilter/ipset/Makefile | 1 +
net/netfilter/ipset/ip_set_bitmap_gen.h | 31 +-
net/netfilter/ipset/ip_set_core.c | 22 +-
net/netfilter/ipset/ip_set_hash_gen.h | 254 ++-
net/netfilter/ipset/ip_set_hash_ip.c | 10 +-
net/netfilter/ipset/ip_set_hash_ipmac.c | 315 ++++
net/netfilter/ipset/ip_set_hash_ipmark.c | 10 +-
net/netfilter/ipset/ip_set_hash_ipport.c | 6 +-
net/netfilter/ipset/ip_set_hash_ipportip.c | 6 +-
net/netfilter/ipset/ip_set_hash_ipportnet.c | 10 +-
net/netfilter/ipset/ip_set_hash_net.c | 8 +-
net/netfilter/ipset/ip_set_hash_netiface.c | 10 +-
net/netfilter/ipset/ip_set_hash_netnet.c | 8 +-
net/netfilter/ipset/ip_set_hash_netport.c | 10 +-
net/netfilter/ipset/ip_set_hash_netportnet.c | 10 +-
net/netfilter/ipset/ip_set_list_set.c | 37 +-
net/netfilter/ipvs/ip_vs_core.c | 2 +-
net/netfilter/ipvs/ip_vs_ctl.c | 25 +-
net/netfilter/ipvs/ip_vs_xmit.c | 54 +
net/netfilter/nf_conntrack_core.c | 19 +-
net/netfilter/nf_conntrack_proto.c | 158 +-
net/netfilter/nf_conntrack_proto_dccp.c | 101 +-
net/netfilter/nf_conntrack_proto_gre.c | 13 +-
net/netfilter/nf_conntrack_proto_sctp.c | 100 +-
net/netfilter/nf_conntrack_proto_udplite.c | 103 +-
net/netfilter/nf_conntrack_standalone.c | 10 +
net/netfilter/nf_dup_netdev.c | 35 +-
net/netfilter/nf_internals.h | 5 -
net/netfilter/nf_log_common.c | 28 +
net/netfilter/nf_log_netdev.c | 81 +
net/netfilter/nf_nat_core.c | 12 +
net/netfilter/nf_nat_proto_dccp.c | 36 +-
net/netfilter/nf_nat_proto_sctp.c | 40 +-
net/netfilter/nf_nat_proto_udplite.c | 35 +-
net/netfilter/nf_queue.c | 36 +-
net/netfilter/nf_synproxy_core.c | 2 +-
net/netfilter/nf_tables_api.c | 718 +++++++-
net/netfilter/nf_tables_core.c | 91 +-
net/netfilter/nf_tables_trace.c | 8 +-
net/netfilter/nfnetlink_log.c | 5 +-
net/netfilter/nfnetlink_queue.c | 6 +-
net/netfilter/nft_bitwise.c | 13 +-
net/netfilter/nft_byteorder.c | 13 +-
net/netfilter/nft_cmp.c | 16 +-
net/netfilter/nft_counter.c | 223 ++-
net/netfilter/nft_ct.c | 76 +-
net/netfilter/nft_dynset.c | 13 +-
net/netfilter/nft_fib.c | 159 ++
net/netfilter/nft_fib_inet.c | 82 +
net/netfilter/nft_fwd_netdev.c | 4 +-
net/netfilter/nft_hash.c | 6 +-
net/netfilter/nft_immediate.c | 16 +-
net/netfilter/nft_log.c | 5 +-
net/netfilter/nft_lookup.c | 18 +-
net/netfilter/nft_masq.c | 6 +-
net/netfilter/nft_meta.c | 11 +-
net/netfilter/nft_nat.c | 11 +-
net/netfilter/nft_numgen.c | 2 +-
net/netfilter/nft_objref.c | 226 +++
net/netfilter/nft_payload.c | 120 +-
net/netfilter/nft_queue.c | 2 +-
net/netfilter/nft_quota.c | 158 +-
net/netfilter/nft_range.c | 13 +-
net/netfilter/nft_redir.c | 6 +-
net/netfilter/nft_reject_inet.c | 18 +-
net/netfilter/nft_rt.c | 153 ++
net/netfilter/nft_set_hash.c | 25 +-
net/netfilter/nft_set_rbtree.c | 12 +-
net/netfilter/x_tables.c | 60 +-
net/netfilter/xt_AUDIT.c | 10 +-
net/netfilter/xt_CONNSECMARK.c | 4 +-
net/netfilter/xt_CT.c | 6 +-
net/netfilter/xt_LOG.c | 6 +-
net/netfilter/xt_NETMAP.c | 31 +-
net/netfilter/xt_NFLOG.c | 6 +-
net/netfilter/xt_NFQUEUE.c | 4 +-
net/netfilter/xt_RATEEST.c | 4 +-
net/netfilter/xt_REDIRECT.c | 16 +-
net/netfilter/xt_TCPMSS.c | 4 +-
net/netfilter/xt_TEE.c | 4 +-
net/netfilter/xt_TPROXY.c | 31 +-
net/netfilter/xt_addrtype.c | 10 +-
net/netfilter/xt_bpf.c | 96 +-
net/netfilter/xt_cluster.c | 2 +-
net/netfilter/xt_connbytes.c | 4 +-
net/netfilter/xt_connlabel.c | 6 +-
net/netfilter/xt_connlimit.c | 14 +-
net/netfilter/xt_connmark.c | 8 +-
net/netfilter/xt_conntrack.c | 12 +-
net/netfilter/xt_devgroup.c | 4 +-
net/netfilter/xt_dscp.c | 2 +-
net/netfilter/xt_hashlimit.c | 2 +-
net/netfilter/xt_helper.c | 4 +-
net/netfilter/xt_ipvs.c | 4 +-
net/netfilter/xt_multiport.c | 52 +-
net/netfilter/xt_nat.c | 18 +-
net/netfilter/xt_nfacct.c | 2 +-
net/netfilter/xt_osf.c | 10 +-
net/netfilter/xt_owner.c | 2 +-
net/netfilter/xt_pkttype.c | 4 +-
net/netfilter/xt_policy.c | 4 +-
net/netfilter/xt_rateest.c | 28 +-
net/netfilter/xt_recent.c | 12 +-
net/netfilter/xt_set.c | 38 +-
net/netfilter/xt_socket.c | 336 +---
net/netfilter/xt_state.c | 4 +-
net/netlabel/netlabel_calipso.c | 21 +-
net/netlabel/netlabel_cipso_v4.c | 22 +-
net/netlabel/netlabel_mgmt.c | 21 +-
net/netlabel/netlabel_unlabeled.c | 21 +-
net/netlink/af_netlink.c | 8 +-
net/netlink/genetlink.c | 323 ++--
net/nfc/netlink.c | 34 +-
net/openvswitch/actions.c | 129 +-
net/openvswitch/conntrack.c | 8 +-
net/openvswitch/datapath.c | 35 +-
net/openvswitch/datapath.h | 2 +-
net/openvswitch/flow.c | 105 +-
net/openvswitch/flow.h | 22 +
net/openvswitch/flow_netlink.c | 179 +-
net/openvswitch/vport-internal_dev.c | 10 -
net/openvswitch/vport-netdev.c | 10 +-
net/openvswitch/vport.c | 48 +-
net/openvswitch/vport.h | 3 +-
net/packet/af_packet.c | 69 +-
net/phonet/pep-gprs.c | 12 +-
net/phonet/pep.c | 9 +-
net/phonet/pn_dev.c | 2 +-
net/rds/af_rds.c | 4 +
net/rds/connection.c | 18 +-
net/rds/message.c | 1 +
net/rds/rds.h | 12 +-
net/rds/recv.c | 36 +
net/rds/send.c | 9 +-
net/rds/tcp.c | 22 +-
net/rds/tcp_connect.c | 14 +-
net/rds/tcp_listen.c | 31 +-
net/rds/tcp_send.c | 3 +
net/rds/threads.c | 3 +-
net/rxrpc/input.c | 7 +-
net/sched/act_api.c | 9 +-
net/sched/act_bpf.c | 20 +-
net/sched/act_connmark.c | 2 +-
net/sched/act_csum.c | 2 +-
net/sched/act_gact.c | 2 +-
net/sched/act_ife.c | 2 +-
net/sched/act_ipt.c | 16 +-
net/sched/act_mirred.c | 85 +-
net/sched/act_nat.c | 2 +-
net/sched/act_pedit.c | 2 +-
net/sched/act_police.c | 23 +-
net/sched/act_simple.c | 2 +-
net/sched/act_skbedit.c | 23 +-
net/sched/act_skbmod.c | 2 +-
net/sched/act_tunnel_key.c | 17 +-
net/sched/act_vlan.c | 2 +-
net/sched/cls_api.c | 24 +
net/sched/cls_bpf.c | 49 +-
net/sched/cls_flower.c | 296 +++-
net/sched/em_ipset.c | 17 +-
net/sched/em_meta.c | 9 +-
net/sched/sch_api.c | 13 +-
net/sched/sch_cbq.c | 6 +-
net/sched/sch_drr.c | 6 +-
net/sched/sch_fq.c | 4 +-
net/sched/sch_generic.c | 2 +-
net/sched/sch_hfsc.c | 6 +-
net/sched/sch_htb.c | 6 +-
net/sched/sch_qfq.c | 8 +-
net/sched/sch_teql.c | 5 +-
net/sctp/associola.c | 8 +-
net/sctp/chunk.c | 32 +-
net/sctp/input.c | 93 +-
net/sctp/output.c | 441 ++---
net/sctp/outqueue.c | 4 +-
net/sctp/socket.c | 7 +-
net/socket.c | 36 +-
net/sunrpc/netns.h | 2 +-
net/sunrpc/sunrpc_syms.c | 2 +-
net/sunrpc/svcsock.c | 22 +-
net/sunrpc/xprtsock.c | 4 +-
net/switchdev/switchdev.c | 5 +-
net/tipc/core.c | 2 +-
net/tipc/core.h | 2 +-
net/tipc/msg.h | 2 +-
net/tipc/netlink.c | 27 +-
net/tipc/netlink_compat.c | 25 +-
net/tipc/socket.c | 498 +++---
net/unix/af_unix.c | 4 +-
net/vmw_vsock/virtio_transport.c | 56 +
net/vmw_vsock/virtio_transport_common.c | 10 +-
net/wimax/stack.c | 22 +-
net/wireless/core.c | 33 +-
net/wireless/core.h | 5 +-
net/wireless/lib80211_crypt_tkip.c | 2 +-
net/wireless/mesh.c | 2 +
net/wireless/mlme.c | 18 +-
net/wireless/nl80211.c | 551 ++++---
net/wireless/rdev-ops.h | 24 +
net/wireless/sme.c | 16 +-
net/wireless/trace.h | 37 +
net/wireless/util.c | 125 +-
net/xfrm/xfrm_state.c | 8 -
samples/bpf/Makefile | 28 +-
samples/bpf/bpf_helpers.h | 6 +
samples/bpf/bpf_load.c | 112 +-
samples/bpf/bpf_load.h | 2 +
samples/bpf/cgroup_helpers.c | 177 ++
samples/bpf/cgroup_helpers.h | 16 +
samples/bpf/libbpf.c | 21 +
samples/bpf/libbpf.h | 5 +-
samples/bpf/lwt_len_hist.sh | 37 +
samples/bpf/lwt_len_hist_kern.c | 82 +
samples/bpf/lwt_len_hist_user.c | 76 +
samples/bpf/map_perf_test_kern.c | 39 +
samples/bpf/map_perf_test_user.c | 32 +
samples/bpf/sock_flags_kern.c | 44 +
samples/bpf/sockex2_kern.c | 2 +-
samples/bpf/test_cgrp2_attach.c | 167 ++
samples/bpf/test_cgrp2_attach2.c | 132 ++
samples/bpf/test_cgrp2_sock.c | 83 +
samples/bpf/test_cgrp2_sock.sh | 47 +
samples/bpf/test_cgrp2_sock2.c | 66 +
samples/bpf/test_cgrp2_sock2.sh | 81 +
samples/bpf/test_current_task_under_cgroup_user.c | 108 +-
samples/bpf/test_lru_dist.c | 541 ++++++
samples/bpf/test_lwt_bpf.c | 253 +++
samples/bpf/test_lwt_bpf.sh | 399 +++++
samples/bpf/test_maps.c | 503 ------
samples/bpf/tracex2_user.c | 4 +-
samples/bpf/tracex3_user.c | 6 +-
samples/bpf/xdp1_user.c | 97 +-
samples/bpf/xdp_tx_iptunnel_common.h | 37 +
samples/bpf/xdp_tx_iptunnel_kern.c | 236 +++
samples/bpf/xdp_tx_iptunnel_user.c | 256 +++
tools/hv/bondvf.sh | 4 +-
tools/include/linux/filter.h | 24 +
tools/testing/selftests/Makefile | 3 +-
tools/testing/selftests/bpf/.gitignore | 3 +
tools/testing/selftests/bpf/Makefile | 13 +
tools/testing/selftests/bpf/bpf_sys.h | 108 ++
tools/testing/selftests/bpf/bpf_util.h | 38 +
tools/testing/selftests/bpf/config | 5 +
tools/testing/selftests/bpf/test_kmod.sh | 39 +
tools/testing/selftests/bpf/test_lru_map.c | 587 +++++++
tools/testing/selftests/bpf/test_maps.c | 526 ++++++
{samples => tools/testing/selftests}/bpf/test_verifier.c | 1030 +++++++++---
tools/testing/selftests/net/.gitignore | 1 +
tools/testing/selftests/net/Makefile | 11 +-
tools/testing/selftests/net/reuseport_bpf_numa.c | 255 +++
1787 files changed, 107896 insertions(+), 28870 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/oxnas-dwmac.txt
rename Documentation/devicetree/bindings/net/wireless/{marvell-sd8xxx.txt => marvell-8xxx.txt} (91%)
create mode 100644 Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt
create mode 100644 Documentation/networking/seg6-sysctl.txt
create mode 100644 drivers/net/dsa/mv88e6xxx/port.c
create mode 100644 drivers/net/dsa/mv88e6xxx/port.h
create mode 100644 drivers/net/ethernet/alacritech/Kconfig
create mode 100644 drivers/net/ethernet/alacritech/Makefile
create mode 100644 drivers/net/ethernet/alacritech/slic.h
create mode 100644 drivers/net/ethernet/alacritech/slicoss.c
create mode 100644 drivers/net/ethernet/amd/xgbe/xgbe-i2c.c
create mode 100644 drivers/net/ethernet/amd/xgbe/xgbe-pci.c
create mode 100644 drivers/net/ethernet/amd/xgbe/xgbe-phy-v1.c
create mode 100644 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
create mode 100644 drivers/net/ethernet/amd/xgbe/xgbe-platform.c
create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.h
create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
create mode 100644 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c
create mode 100644 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.h
create mode 100644 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_regs.h
create mode 100644 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
create mode 100644 drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c
create mode 100644 drivers/net/ethernet/cavium/liquidio/octeon_mailbox.h
create mode 100644 drivers/net/ethernet/freescale/dpaa/Kconfig
create mode 100644 drivers/net/ethernet/freescale/dpaa/Makefile
create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth.h
create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c
create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth_trace.h
create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/i2c.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/i2c.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/ib.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/minimal.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/pci_hw.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/resources.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/switchib.c
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_iscsi.c
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_iscsi.h
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_ooo.c
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_ooo.h
create mode 100644 drivers/net/ethernet/qualcomm/emac/emac-sgmii-fsm9900.c
create mode 100644 drivers/net/ethernet/qualcomm/emac/emac-sgmii-qdf2400.c
create mode 100644 drivers/net/ethernet/qualcomm/emac/emac-sgmii-qdf2432.c
create mode 100644 drivers/net/ethernet/sfc/falcon/Kconfig
create mode 100644 drivers/net/ethernet/sfc/falcon/Makefile
create mode 100644 drivers/net/ethernet/sfc/falcon/bitfield.h
create mode 100644 drivers/net/ethernet/sfc/falcon/efx.c
create mode 100644 drivers/net/ethernet/sfc/falcon/efx.h
create mode 100644 drivers/net/ethernet/sfc/falcon/enum.h
create mode 100644 drivers/net/ethernet/sfc/falcon/ethtool.c
rename drivers/net/ethernet/sfc/{ => falcon}/falcon.c (72%)
rename drivers/net/ethernet/sfc/{ => falcon}/falcon_boards.c (89%)
create mode 100644 drivers/net/ethernet/sfc/falcon/farch.c
create mode 100644 drivers/net/ethernet/sfc/falcon/farch_regs.h
create mode 100644 drivers/net/ethernet/sfc/falcon/filter.h
create mode 100644 drivers/net/ethernet/sfc/falcon/io.h
rename drivers/net/ethernet/sfc/{ => falcon}/mdio_10g.c (74%)
rename drivers/net/ethernet/sfc/{ => falcon}/mdio_10g.h (58%)
create mode 100644 drivers/net/ethernet/sfc/falcon/mtd.c
create mode 100644 drivers/net/ethernet/sfc/falcon/net_driver.h
create mode 100644 drivers/net/ethernet/sfc/falcon/nic.c
create mode 100644 drivers/net/ethernet/sfc/falcon/nic.h
rename drivers/net/ethernet/sfc/{ => falcon}/phy.h (72%)
rename drivers/net/ethernet/sfc/{ => falcon}/qt202x_phy.c (77%)
create mode 100644 drivers/net/ethernet/sfc/falcon/rx.c
create mode 100644 drivers/net/ethernet/sfc/falcon/selftest.c
create mode 100644 drivers/net/ethernet/sfc/falcon/selftest.h
rename drivers/net/ethernet/sfc/{ => falcon}/tenxpress.c (79%)
create mode 100644 drivers/net/ethernet/sfc/falcon/tx.c
create mode 100644 drivers/net/ethernet/sfc/falcon/tx.h
rename drivers/net/ethernet/sfc/{ => falcon}/txc43128_phy.c (78%)
create mode 100644 drivers/net/ethernet/sfc/falcon/workarounds.h
create mode 100644 drivers/net/ethernet/sfc/tx.h
create mode 100644 drivers/net/ethernet/sfc/tx_tso.c
create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c
create mode 100644 drivers/net/fjes/fjes_debugfs.c
create mode 100644 drivers/net/fjes/fjes_trace.c
create mode 100644 drivers/net/fjes/fjes_trace.h
create mode 100644 drivers/net/phy/meson-gxl.c
create mode 100644 drivers/net/phy/phy_led_triggers.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.h
create mode 100644 include/dt-bindings/net/mdio.h
delete mode 100644 include/dt-bindings/net/mscc-phy-vsc8531.h
create mode 100644 include/linux/bpf-cgroup.h
create mode 100644 include/linux/netfilter/ipset/ip_set_counter.h
create mode 100644 include/linux/netfilter/ipset/ip_set_skbinfo.h
create mode 100644 include/linux/phy_led_triggers.h
create mode 100644 include/linux/qed/qed_iscsi_if.h
create mode 100644 include/linux/seg6.h
create mode 100644 include/linux/seg6_genl.h
create mode 100644 include/linux/seg6_hmac.h
create mode 100644 include/linux/seg6_iptunnel.h
create mode 100644 include/net/netfilter/nf_socket.h
create mode 100644 include/net/netfilter/nft_fib.h
create mode 100644 include/net/seg6.h
create mode 100644 include/net/seg6_hmac.h
create mode 100644 include/trace/events/mdio.h
create mode 100644 include/uapi/linux/seg6.h
create mode 100644 include/uapi/linux/seg6_genl.h
create mode 100644 include/uapi/linux/seg6_hmac.h
create mode 100644 include/uapi/linux/seg6_iptunnel.h
create mode 100644 kernel/bpf/bpf_lru_list.c
create mode 100644 kernel/bpf/bpf_lru_list.h
create mode 100644 kernel/bpf/cgroup.c
create mode 100644 net/core/lwt_bpf.c
create mode 100644 net/ipv4/netfilter/nf_socket_ipv4.c
create mode 100644 net/ipv4/netfilter/nft_fib_ipv4.c
create mode 100644 net/ipv4/raw_diag.c
create mode 100644 net/ipv6/netfilter/nf_socket_ipv6.c
create mode 100644 net/ipv6/netfilter/nft_fib_ipv6.c
create mode 100644 net/ipv6/seg6.c
create mode 100644 net/ipv6/seg6_hmac.c
create mode 100644 net/ipv6/seg6_iptunnel.c
create mode 100644 net/mac80211/fils_aead.c
create mode 100644 net/mac80211/fils_aead.h
create mode 100644 net/netfilter/ipset/ip_set_hash_ipmac.c
create mode 100644 net/netfilter/nf_log_netdev.c
create mode 100644 net/netfilter/nft_fib.c
create mode 100644 net/netfilter/nft_fib_inet.c
create mode 100644 net/netfilter/nft_objref.c
create mode 100644 net/netfilter/nft_rt.c
create mode 100644 samples/bpf/cgroup_helpers.c
create mode 100644 samples/bpf/cgroup_helpers.h
create mode 100644 samples/bpf/lwt_len_hist.sh
create mode 100644 samples/bpf/lwt_len_hist_kern.c
create mode 100644 samples/bpf/lwt_len_hist_user.c
create mode 100644 samples/bpf/sock_flags_kern.c
create mode 100644 samples/bpf/test_cgrp2_attach.c
create mode 100644 samples/bpf/test_cgrp2_attach2.c
create mode 100644 samples/bpf/test_cgrp2_sock.c
create mode 100755 samples/bpf/test_cgrp2_sock.sh
create mode 100644 samples/bpf/test_cgrp2_sock2.c
create mode 100755 samples/bpf/test_cgrp2_sock2.sh
create mode 100644 samples/bpf/test_lru_dist.c
create mode 100644 samples/bpf/test_lwt_bpf.c
create mode 100644 samples/bpf/test_lwt_bpf.sh
delete mode 100644 samples/bpf/test_maps.c
create mode 100644 samples/bpf/xdp_tx_iptunnel_common.h
create mode 100644 samples/bpf/xdp_tx_iptunnel_kern.c
create mode 100644 samples/bpf/xdp_tx_iptunnel_user.c
create mode 100644 tools/testing/selftests/bpf/.gitignore
create mode 100644 tools/testing/selftests/bpf/Makefile
create mode 100644 tools/testing/selftests/bpf/bpf_sys.h
create mode 100644 tools/testing/selftests/bpf/bpf_util.h
create mode 100644 tools/testing/selftests/bpf/config
create mode 100755 tools/testing/selftests/bpf/test_kmod.sh
create mode 100644 tools/testing/selftests/bpf/test_lru_map.c
create mode 100644 tools/testing/selftests/bpf/test_maps.c
rename {samples => tools/testing/selftests}/bpf/test_verifier.c (72%)
create mode 100644 tools/testing/selftests/net/reuseport_bpf_numa.c
^ permalink raw reply
* Re: [PATCH 1/1] Signed-off-by: Jan Wang <bbw725@163.com>
From: Eric Dumazet @ 2016-12-11 20:27 UTC (permalink / raw)
To: Jan Wang; +Cc: David S. Miller, netdev
In-Reply-To: <1481470312-8497-1-git-send-email-bbw725@163.com>
On Sun, 2016-12-11 at 23:31 +0800, Jan Wang wrote:
> [net]: Missing init queue tail
>
> Accept queue tail doesn't initialize NULL.
> Though looks like no harm, unify it with reqsk_queue_remove(
> it will initialize tail to NULL when empty).
Well, if having a NULL or not causes no harm, what about removing
code, instead of adding some defensive one ?
Also your patch submission is wrong :
Title should not include 'Signed-off-by...'
Anyway, net-next is closed, you'll have to wait before submitting such a
change.
diff --git a/include/net/request_sock.h b/include/net/request_sock.h
index 6ebe13eb1c4cbcd84c4b3345b051b3320d7591e6..a655c6aea7c0c8c429d5629c7fb639d6de832438 100644
--- a/include/net/request_sock.h
+++ b/include/net/request_sock.h
@@ -195,8 +195,6 @@ static inline struct request_sock *reqsk_queue_remove(struct request_sock_queue
if (req) {
sk_acceptq_removed(parent);
queue->rskq_accept_head = req->dl_next;
- if (queue->rskq_accept_head == NULL)
- queue->rskq_accept_tail = NULL;
}
spin_unlock_bh(&queue->rskq_lock);
return req;
^ permalink raw reply related
* Re: [PATCH net] net: dsa: mv88e6xxx: Fix opps when adding vlan bridge
From: Vivien Didelot @ 2016-12-11 21:02 UTC (permalink / raw)
To: Andrew Lunn, David Miller; +Cc: netdev, Andrew Lunn
In-Reply-To: <1481486839-19502-1-git-send-email-andrew@lunn.ch>
Hi Andrew,
Andrew Lunn <andrew@lunn.ch> writes:
> @@ -1804,6 +1807,9 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port,
> chip->ports[port].bridge_dev)
> break; /* same bridge, check next VLAN */
>
> + if (!chip->ports[i].bridge_dev)
> + continue;
> +
The above truncated test:
if (chip->ports[i].bridge_dev ==
chip->ports[port].bridge_dev)
break; /* same bridge, check next VLAN */
should handle the case where bridge_dev is NULL, but if you want to
explicitly test it, I'd move it before this statement.
> netdev_warn(ds->ports[port].netdev,
> "hardware VLAN %d already used by %s\n",
> vlan.vid,
Thanks,
Vivien
^ permalink raw reply
* [PATCH] net: chelsio: cxgb2: use new api ethtool_{get|set}_link_ksettings
From: Philippe Reynes @ 2016-12-11 21:47 UTC (permalink / raw)
To: davem, jarod; +Cc: netdev, linux-kernel, Philippe Reynes
The ethtool api {get|set}_settings is deprecated.
We move this driver to new api {get|set}_link_ksettings.
Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
---
drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 64 +++++++++++++++++------------
1 files changed, 37 insertions(+), 27 deletions(-)
diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c
index 81d1d0b..3a05f90 100644
--- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c
+++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c
@@ -568,28 +568,33 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs,
reg_block_dump(ap, buf, A_MC5_CONFIG, A_MC5_MASK_WRITE_CMD);
}
-static int get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+static int get_link_ksettings(struct net_device *dev,
+ struct ethtool_link_ksettings *cmd)
{
struct adapter *adapter = dev->ml_priv;
struct port_info *p = &adapter->port[dev->if_port];
+ u32 supported, advertising;
- cmd->supported = p->link_config.supported;
- cmd->advertising = p->link_config.advertising;
+ supported = p->link_config.supported;
+ advertising = p->link_config.advertising;
if (netif_carrier_ok(dev)) {
- ethtool_cmd_speed_set(cmd, p->link_config.speed);
- cmd->duplex = p->link_config.duplex;
+ cmd->base.speed = p->link_config.speed;
+ cmd->base.duplex = p->link_config.duplex;
} else {
- ethtool_cmd_speed_set(cmd, SPEED_UNKNOWN);
- cmd->duplex = DUPLEX_UNKNOWN;
+ cmd->base.speed = SPEED_UNKNOWN;
+ cmd->base.duplex = DUPLEX_UNKNOWN;
}
- cmd->port = (cmd->supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE;
- cmd->phy_address = p->phy->mdio.prtad;
- cmd->transceiver = XCVR_EXTERNAL;
- cmd->autoneg = p->link_config.autoneg;
- cmd->maxtxpkt = 0;
- cmd->maxrxpkt = 0;
+ cmd->base.port = (supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE;
+ cmd->base.phy_address = p->phy->mdio.prtad;
+ cmd->base.autoneg = p->link_config.autoneg;
+
+ ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
+ supported);
+ ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,
+ advertising);
+
return 0;
}
@@ -628,36 +633,41 @@ static int speed_duplex_to_caps(int speed, int duplex)
ADVERTISED_1000baseT_Half | ADVERTISED_1000baseT_Full | \
ADVERTISED_10000baseT_Full)
-static int set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+static int set_link_ksettings(struct net_device *dev,
+ const struct ethtool_link_ksettings *cmd)
{
struct adapter *adapter = dev->ml_priv;
struct port_info *p = &adapter->port[dev->if_port];
struct link_config *lc = &p->link_config;
+ u32 advertising;
+
+ ethtool_convert_link_mode_to_legacy_u32(&advertising,
+ cmd->link_modes.advertising);
if (!(lc->supported & SUPPORTED_Autoneg))
return -EOPNOTSUPP; /* can't change speed/duplex */
- if (cmd->autoneg == AUTONEG_DISABLE) {
- u32 speed = ethtool_cmd_speed(cmd);
- int cap = speed_duplex_to_caps(speed, cmd->duplex);
+ if (cmd->base.autoneg == AUTONEG_DISABLE) {
+ u32 speed = cmd->base.speed;
+ int cap = speed_duplex_to_caps(speed, cmd->base.duplex);
if (!(lc->supported & cap) || (speed == SPEED_1000))
return -EINVAL;
lc->requested_speed = speed;
- lc->requested_duplex = cmd->duplex;
+ lc->requested_duplex = cmd->base.duplex;
lc->advertising = 0;
} else {
- cmd->advertising &= ADVERTISED_MASK;
- if (cmd->advertising & (cmd->advertising - 1))
- cmd->advertising = lc->supported;
- cmd->advertising &= lc->supported;
- if (!cmd->advertising)
+ advertising &= ADVERTISED_MASK;
+ if (advertising & (advertising - 1))
+ advertising = lc->supported;
+ advertising &= lc->supported;
+ if (!advertising)
return -EINVAL;
lc->requested_speed = SPEED_INVALID;
lc->requested_duplex = DUPLEX_INVALID;
- lc->advertising = cmd->advertising | ADVERTISED_Autoneg;
+ lc->advertising = advertising | ADVERTISED_Autoneg;
}
- lc->autoneg = cmd->autoneg;
+ lc->autoneg = cmd->base.autoneg;
if (netif_running(dev))
t1_link_start(p->phy, p->mac, lc);
return 0;
@@ -788,8 +798,6 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *e,
}
static const struct ethtool_ops t1_ethtool_ops = {
- .get_settings = get_settings,
- .set_settings = set_settings,
.get_drvinfo = get_drvinfo,
.get_msglevel = get_msglevel,
.set_msglevel = set_msglevel,
@@ -807,6 +815,8 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *e,
.get_ethtool_stats = get_stats,
.get_regs_len = get_regs_len,
.get_regs = get_regs,
+ .get_link_ksettings = get_link_ksettings,
+ .set_link_ksettings = set_link_ksettings,
};
static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
--
1.7.4.4
^ permalink raw reply related
* [PATCH] net: chelsio: cxgb3: use new api ethtool_{get|set}_link_ksettings
From: Philippe Reynes @ 2016-12-11 23:27 UTC (permalink / raw)
To: santosh, davem; +Cc: netdev, linux-kernel, Philippe Reynes
The ethtool api {get|set}_settings is deprecated.
We move this driver to new api {get|set}_link_ksettings.
Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
---
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 65 +++++++++++++----------
1 files changed, 37 insertions(+), 28 deletions(-)
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
index 092b3c1..7b2224a 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
@@ -1801,27 +1801,31 @@ static int set_phys_id(struct net_device *dev,
return 0;
}
-static int get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+static int get_link_ksettings(struct net_device *dev,
+ struct ethtool_link_ksettings *cmd)
{
struct port_info *p = netdev_priv(dev);
+ u32 supported;
- cmd->supported = p->link_config.supported;
- cmd->advertising = p->link_config.advertising;
+ ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
+ p->link_config.supported);
+ ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,
+ p->link_config.advertising);
if (netif_carrier_ok(dev)) {
- ethtool_cmd_speed_set(cmd, p->link_config.speed);
- cmd->duplex = p->link_config.duplex;
+ cmd->base.speed = p->link_config.speed;
+ cmd->base.duplex = p->link_config.duplex;
} else {
- ethtool_cmd_speed_set(cmd, SPEED_UNKNOWN);
- cmd->duplex = DUPLEX_UNKNOWN;
+ cmd->base.speed = SPEED_UNKNOWN;
+ cmd->base.duplex = DUPLEX_UNKNOWN;
}
- cmd->port = (cmd->supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE;
- cmd->phy_address = p->phy.mdio.prtad;
- cmd->transceiver = XCVR_EXTERNAL;
- cmd->autoneg = p->link_config.autoneg;
- cmd->maxtxpkt = 0;
- cmd->maxrxpkt = 0;
+ ethtool_convert_link_mode_to_legacy_u32(&supported,
+ cmd->link_modes.supported);
+
+ cmd->base.port = (supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE;
+ cmd->base.phy_address = p->phy.mdio.prtad;
+ cmd->base.autoneg = p->link_config.autoneg;
return 0;
}
@@ -1860,44 +1864,49 @@ static int speed_duplex_to_caps(int speed, int duplex)
ADVERTISED_1000baseT_Half | ADVERTISED_1000baseT_Full | \
ADVERTISED_10000baseT_Full)
-static int set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+static int set_link_ksettings(struct net_device *dev,
+ const struct ethtool_link_ksettings *cmd)
{
struct port_info *p = netdev_priv(dev);
struct link_config *lc = &p->link_config;
+ u32 advertising;
+
+ ethtool_convert_link_mode_to_legacy_u32(&advertising,
+ cmd->link_modes.advertising);
if (!(lc->supported & SUPPORTED_Autoneg)) {
/*
* PHY offers a single speed/duplex. See if that's what's
* being requested.
*/
- if (cmd->autoneg == AUTONEG_DISABLE) {
- u32 speed = ethtool_cmd_speed(cmd);
- int cap = speed_duplex_to_caps(speed, cmd->duplex);
+ if (cmd->base.autoneg == AUTONEG_DISABLE) {
+ u32 speed = cmd->base.speed;
+ int cap = speed_duplex_to_caps(speed, cmd->base.duplex);
if (lc->supported & cap)
return 0;
}
return -EINVAL;
}
- if (cmd->autoneg == AUTONEG_DISABLE) {
- u32 speed = ethtool_cmd_speed(cmd);
- int cap = speed_duplex_to_caps(speed, cmd->duplex);
+ if (cmd->base.autoneg == AUTONEG_DISABLE) {
+ u32 speed = cmd->base.speed;
+ int cap = speed_duplex_to_caps(speed, cmd->base.duplex);
if (!(lc->supported & cap) || (speed == SPEED_1000))
return -EINVAL;
lc->requested_speed = speed;
- lc->requested_duplex = cmd->duplex;
+ lc->requested_duplex = cmd->base.duplex;
lc->advertising = 0;
} else {
- cmd->advertising &= ADVERTISED_MASK;
- cmd->advertising &= lc->supported;
- if (!cmd->advertising)
+ advertising &= ADVERTISED_MASK;
+ advertising &= lc->supported;
+ if (!advertising)
return -EINVAL;
lc->requested_speed = SPEED_INVALID;
lc->requested_duplex = DUPLEX_INVALID;
- lc->advertising = cmd->advertising | ADVERTISED_Autoneg;
+ lc->advertising = advertising | ADVERTISED_Autoneg;
}
- lc->autoneg = cmd->autoneg;
+ lc->autoneg = cmd->base.autoneg;
if (netif_running(dev))
t3_link_start(&p->phy, &p->mac, lc);
return 0;
@@ -2097,8 +2106,6 @@ static void get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
}
static const struct ethtool_ops cxgb_ethtool_ops = {
- .get_settings = get_settings,
- .set_settings = set_settings,
.get_drvinfo = get_drvinfo,
.get_msglevel = get_msglevel,
.set_msglevel = set_msglevel,
@@ -2120,6 +2127,8 @@ static void get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
.get_regs_len = get_regs_len,
.get_regs = get_regs,
.get_wol = get_wol,
+ .get_link_ksettings = get_link_ksettings,
+ .set_link_ksettings = set_link_ksettings,
};
static int in_range(int val, int lo, int hi)
--
1.7.4.4
^ permalink raw reply related
* (unknown),
From: KA Alice @ 2016-12-11 23:33 UTC (permalink / raw)
I would like to solicit your assistance to claim $9 M from my bank and
you will benefit 30% of the fund for assisting me while the remaining
70% will be mine, let know if you are capable so that i can give you
the full details of the transaction.
Regards,
^ permalink raw reply
* [PATCH iproute2 -net-next] lwt: BPF support for LWT
From: Daniel Borkmann @ 2016-12-12 0:14 UTC (permalink / raw)
To: stephen; +Cc: tgraf, alexei.starovoitov, netdev
From: Thomas Graf <tgraf@suug.ch>
Adds support to configure BPF programs as nexthop actions via the LWT
framework.
Example:
ip route add 192.168.253.2/32 \
encap bpf out obj lwt_len_hist_kern.o section len_hist \
dev veth0
Signed-off-by: Thomas Graf <tgraf@suug.ch>
---
include/bpf_api.h | 5 ++
ip/iproute_lwtunnel.c | 186 +++++++++++++++++++++++++++++++++++++++++++++----
lib/bpf.c | 18 +++++
man/man8/ip-route.8.in | 41 ++++++++++-
4 files changed, 235 insertions(+), 15 deletions(-)
diff --git a/include/bpf_api.h b/include/bpf_api.h
index 72578c9..d132471 100644
--- a/include/bpf_api.h
+++ b/include/bpf_api.h
@@ -87,6 +87,11 @@
__section(ELF_SECTION_ACTION)
#endif
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
#ifndef __section_license
# define __section_license \
__section(ELF_SECTION_LICENSE)
diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
index b656143..6c1f8fb 100644
--- a/ip/iproute_lwtunnel.c
+++ b/ip/iproute_lwtunnel.c
@@ -24,20 +24,7 @@
#include "rt_names.h"
#include "utils.h"
#include "iproute_lwtunnel.h"
-
-static int read_encap_type(const char *name)
-{
- if (strcmp(name, "mpls") == 0)
- return LWTUNNEL_ENCAP_MPLS;
- else if (strcmp(name, "ip") == 0)
- return LWTUNNEL_ENCAP_IP;
- else if (strcmp(name, "ip6") == 0)
- return LWTUNNEL_ENCAP_IP6;
- else if (strcmp(name, "ila") == 0)
- return LWTUNNEL_ENCAP_ILA;
- else
- return LWTUNNEL_ENCAP_NONE;
-}
+#include "bpf_util.h"
static const char *format_encap_type(int type)
{
@@ -50,11 +37,44 @@ static const char *format_encap_type(int type)
return "ip6";
case LWTUNNEL_ENCAP_ILA:
return "ila";
+ case LWTUNNEL_ENCAP_BPF:
+ return "bpf";
default:
return "unknown";
}
}
+static void encap_type_usage(void)
+{
+ int i;
+
+ fprintf(stderr, "Usage: ip route ... encap TYPE [ OPTIONS ] [...]\n");
+
+ for (i = 1; i <= LWTUNNEL_ENCAP_MAX; i++)
+ fprintf(stderr, "%s %s\n", format_encap_type(i),
+ i == 1 ? "TYPE := " : " ");
+
+ exit(-1);
+}
+
+static int read_encap_type(const char *name)
+{
+ if (strcmp(name, "mpls") == 0)
+ return LWTUNNEL_ENCAP_MPLS;
+ else if (strcmp(name, "ip") == 0)
+ return LWTUNNEL_ENCAP_IP;
+ else if (strcmp(name, "ip6") == 0)
+ return LWTUNNEL_ENCAP_IP6;
+ else if (strcmp(name, "ila") == 0)
+ return LWTUNNEL_ENCAP_ILA;
+ else if (strcmp(name, "bpf") == 0)
+ return LWTUNNEL_ENCAP_BPF;
+ else if (strcmp(name, "help") == 0)
+ encap_type_usage();
+
+ return LWTUNNEL_ENCAP_NONE;
+}
+
static void print_encap_mpls(FILE *fp, struct rtattr *encap)
{
struct rtattr *tb[MPLS_IPTUNNEL_MAX+1];
@@ -159,6 +179,34 @@ static void print_encap_ip6(FILE *fp, struct rtattr *encap)
fprintf(fp, "tc %d ", rta_getattr_u8(tb[LWTUNNEL_IP6_TC]));
}
+static void print_encap_bpf_prog(FILE *fp, struct rtattr *encap,
+ const char *str)
+{
+ struct rtattr *tb[LWT_BPF_PROG_MAX+1];
+
+ parse_rtattr_nested(tb, LWT_BPF_PROG_MAX, encap);
+ fprintf(fp, "%s ", str);
+
+ if (tb[LWT_BPF_PROG_NAME])
+ fprintf(fp, "%s ", rta_getattr_str(tb[LWT_BPF_PROG_NAME]));
+}
+
+static void print_encap_bpf(FILE *fp, struct rtattr *encap)
+{
+ struct rtattr *tb[LWT_BPF_MAX+1];
+
+ parse_rtattr_nested(tb, LWT_BPF_MAX, encap);
+
+ if (tb[LWT_BPF_IN])
+ print_encap_bpf_prog(fp, tb[LWT_BPF_IN], "in");
+ if (tb[LWT_BPF_OUT])
+ print_encap_bpf_prog(fp, tb[LWT_BPF_OUT], "out");
+ if (tb[LWT_BPF_XMIT])
+ print_encap_bpf_prog(fp, tb[LWT_BPF_XMIT], "xmit");
+ if (tb[LWT_BPF_XMIT_HEADROOM])
+ fprintf(fp, "%d ", rta_getattr_u32(tb[LWT_BPF_XMIT_HEADROOM]));
+}
+
void lwt_print_encap(FILE *fp, struct rtattr *encap_type,
struct rtattr *encap)
{
@@ -184,6 +232,9 @@ void lwt_print_encap(FILE *fp, struct rtattr *encap_type,
case LWTUNNEL_ENCAP_IP6:
print_encap_ip6(fp, encap);
break;
+ case LWTUNNEL_ENCAP_BPF:
+ print_encap_bpf(fp, encap);
+ break;
}
}
@@ -365,6 +416,109 @@ static int parse_encap_ip6(struct rtattr *rta, size_t len, int *argcp, char ***a
return 0;
}
+struct lwt_x {
+ struct rtattr *rta;
+ size_t len;
+};
+
+static void bpf_lwt_cb(void *lwt_ptr, int fd, const char *annotation)
+{
+ struct lwt_x *x = lwt_ptr;
+
+ rta_addattr32(x->rta, x->len, LWT_BPF_PROG_FD, fd);
+ rta_addattr_l(x->rta, x->len, LWT_BPF_PROG_NAME, annotation,
+ strlen(annotation) + 1);
+}
+
+static const struct bpf_cfg_ops bpf_cb_ops = {
+ .ebpf_cb = bpf_lwt_cb,
+};
+
+static int lwt_parse_bpf(struct rtattr *rta, size_t len, int *argcp, char ***argvp,
+ int attr, const enum bpf_prog_type bpf_type)
+{
+ struct bpf_cfg_in cfg = {
+ .argc = *argcp,
+ .argv = *argvp,
+ };
+ struct lwt_x x = {
+ .rta = rta,
+ .len = len,
+ };
+ struct rtattr *nest;
+ int err;
+
+ nest = rta_nest(rta, len, attr);
+ err = bpf_parse_common(bpf_type, &cfg, &bpf_cb_ops, &x);
+ if (err < 0) {
+ fprintf(stderr, "Failed to parse eBPF program: %s\n", strerror(err));
+ return -1;
+ }
+ rta_nest_end(rta, nest);
+
+ *argcp = cfg.argc;
+ *argvp = cfg.argv;
+
+ return 0;
+}
+
+static void lwt_bpf_usage(void)
+{
+ fprintf(stderr, "Usage: ip route ... encap bpf [ in BPF ] [ out BPF ] [ xmit BPF ] [...]\n");
+ fprintf(stderr, "BPF := obj FILE [ section NAME ] [ verbose ]\n");
+ exit(-1);
+}
+
+static int parse_encap_bpf(struct rtattr *rta, size_t len, int *argcp,
+ char ***argvp)
+{
+ char **argv = *argvp;
+ int argc = *argcp;
+ int headroom_set = 0;
+
+ while (argc > 0) {
+ if (strcmp(*argv, "in") == 0) {
+ NEXT_ARG();
+ if (lwt_parse_bpf(rta, len, &argc, &argv, LWT_BPF_IN,
+ BPF_PROG_TYPE_LWT_IN) < 0)
+ return -1;
+ } else if (strcmp(*argv, "out") == 0) {
+ NEXT_ARG();
+ if (lwt_parse_bpf(rta, len, &argc, &argv, LWT_BPF_OUT,
+ BPF_PROG_TYPE_LWT_OUT) < 0)
+ return -1;
+ } else if (strcmp(*argv, "xmit") == 0) {
+ NEXT_ARG();
+ if (lwt_parse_bpf(rta, len, &argc, &argv, LWT_BPF_XMIT,
+ BPF_PROG_TYPE_LWT_XMIT) < 0)
+ return -1;
+ } else if (strcmp(*argv, "headroom") == 0) {
+ unsigned int headroom;
+
+ NEXT_ARG();
+ if (get_unsigned(&headroom, *argv, 0) || headroom == 0)
+ invarg("headroom is invalid\n", *argv);
+ if (!headroom_set)
+ rta_addattr32(rta, 1024, LWT_BPF_XMIT_HEADROOM,
+ headroom);
+ headroom_set = 1;
+ } else if (strcmp(*argv, "help") == 0) {
+ lwt_bpf_usage();
+ } else {
+ break;
+ }
+ NEXT_ARG_FWD();
+ }
+
+ /* argv is currently the first unparsed argument,
+ * but the lwt_parse_encap() caller will move to the next,
+ * so step back */
+ *argcp = argc + 1;
+ *argvp = argv - 1;
+
+ return 0;
+}
+
int lwt_parse_encap(struct rtattr *rta, size_t len, int *argcp, char ***argvp)
{
struct rtattr *nest;
@@ -397,6 +551,10 @@ int lwt_parse_encap(struct rtattr *rta, size_t len, int *argcp, char ***argvp)
case LWTUNNEL_ENCAP_IP6:
parse_encap_ip6(rta, len, &argc, &argv);
break;
+ case LWTUNNEL_ENCAP_BPF:
+ if (parse_encap_bpf(rta, len, &argc, &argv) < 0)
+ exit(-1);
+ break;
default:
fprintf(stderr, "Error: unsupported encap type\n");
break;
diff --git a/lib/bpf.c b/lib/bpf.c
index 2a8cd51..43ef63d 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -56,6 +56,9 @@ static const enum bpf_prog_type __bpf_types[] = {
BPF_PROG_TYPE_SCHED_CLS,
BPF_PROG_TYPE_SCHED_ACT,
BPF_PROG_TYPE_XDP,
+ BPF_PROG_TYPE_LWT_IN,
+ BPF_PROG_TYPE_LWT_OUT,
+ BPF_PROG_TYPE_LWT_XMIT,
};
static const struct bpf_prog_meta __bpf_prog_meta[] = {
@@ -76,6 +79,21 @@ static const struct bpf_prog_meta __bpf_prog_meta[] = {
.subdir = "xdp",
.section = ELF_SECTION_PROG,
},
+ [BPF_PROG_TYPE_LWT_IN] = {
+ .type = "lwt_in",
+ .subdir = "ip",
+ .section = ELF_SECTION_PROG,
+ },
+ [BPF_PROG_TYPE_LWT_OUT] = {
+ .type = "lwt_out",
+ .subdir = "ip",
+ .section = ELF_SECTION_PROG,
+ },
+ [BPF_PROG_TYPE_LWT_XMIT] = {
+ .type = "lwt_xmit",
+ .subdir = "ip",
+ .section = ELF_SECTION_PROG,
+ },
};
static const char *bpf_prog_to_subdir(enum bpf_prog_type type)
diff --git a/man/man8/ip-route.8.in b/man/man8/ip-route.8.in
index c0acaa0..8519153 100644
--- a/man/man8/ip-route.8.in
+++ b/man/man8/ip-route.8.in
@@ -174,7 +174,7 @@ throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]"
.ti -8
.IR ENCAP " := [ "
-.IR MPLS " | " IP " ]"
+.IR MPLS " | " IP | " BPF " ] "
.ti -8
.IR ENCAP_MPLS " := "
@@ -193,6 +193,19 @@ throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]"
.B ttl
.IR TTL " ]"
+
+.ti -8
+.IR ENCAP_BPF " := "
+.BR bpf " [ "
+.B in
+.IR PROG " ] ["
+.B out
+.IR PROG " ] ["
+.B xmit
+.IR PROG " ] ["
+.B headroom
+.IR SIZE " ]"
+
.SH DESCRIPTION
.B ip route
is used to manipulate entries in the kernel routing tables.
@@ -636,6 +649,9 @@ is a string specifying the supported encapsulation type. Namely:
.BI ip
- IP encapsulation (Geneve, GRE, VXLAN, ...)
.sp
+.BI bpf
+- Execution of BPF program
+.sp
.in -8
.I ENCAPHDR
@@ -664,6 +680,29 @@ is a set of encapsulation attributes specific to the
.in -2
.sp
+.B bpf
+.in +2
+.B in
+.I PROG
+- BPF program to execute for incoming packets
+.sp
+
+.B out
+.I PROG
+- BPF program to execute for outgoing packets
+.sp
+
+.B xmit
+.I PROG
+- BPF program to execute for transmitted packets
+.sp
+
+.B headroom
+.I SIZE
+- Size of header BPF program will attach (xmit)
+.in -2
+.sp
+
.in -8
.RE
--
1.9.3
^ permalink raw reply related
* [iproute2 v3 net-next 0/8] Add support for vrf helper
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
This series adds support to iproute2 to run a command against a specific
VRF. The user semantics are similar to 'ip netns'.
The 'ip vrf' subcommand supports 3 usages:
1. Run a command against a given vrf:
ip vrf exec NAME CMD
Uses the recently committed cgroup/sock BPF option. vrf directory
is added to cgroup2 mount. Individual vrfs are created under it. BPF
filter is attached to vrf/NAME cgroup2 to set sk_bound_dev_if to the
device index of the VRF. From there the current process (ip's pid) is
addded to the cgroups.proc file and the given command is exected. In
doing so all AF_INET/AF_INET6 (ipv4/ipv6) sockets are automatically
bound to the VRF domain.
The association is inherited parent to child allowing the command to
be a shell from which other commands are run relative to the VRF.
2. Show the VRF a process is bound to:
ip vrf id [PID]
This command essentially looks at /proc/pid/cgroup for a "::/vrf/"
entry. If pid arg is not given current process id is used.
3. Show process ids bound to a VRF
ip vrf pids NAME
This command dumps the file MNT/vrf/NAME/cgroup.procs since that file
shows the process ids in the particular vrf cgroup.
v3
- bpf_prog_{at,de}tach changes as requested by Daniel
- BPF macros added to bpf_util.h versus adding a new file as requested by Daniel
v2
- updated suject of patch 3 to avoid spam filters on vger
David Ahern (8):
lib bpf: Add support for BPF_PROG_ATTACH and BPF_PROG_DETACH
bpf: export bpf_prog_load
bpf: Add BPF_ macros
move cmd_exec to lib utils
Add filesystem APIs to lib
change name_is_vrf to return index
libnetlink: Add variant of rtnl_talk that does not display RTNETLINK
answers error
Introduce ip vrf command
include/bpf_util.h | 186 +++++++++++++++++++++++++++++++++
include/libnetlink.h | 3 +
include/utils.h | 4 +
ip/Makefile | 3 +-
ip/ip.c | 4 +-
ip/ip_common.h | 4 +-
ip/iplink_vrf.c | 29 ++++--
ip/ipnetns.c | 34 ------
ip/ipvrf.c | 289 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib/Makefile | 2 +-
lib/bpf.c | 61 +++++++----
lib/exec.c | 41 ++++++++
lib/fs.c | 143 +++++++++++++++++++++++++
lib/libnetlink.c | 20 +++-
man/man8/ip-vrf.8 | 88 ++++++++++++++++
15 files changed, 841 insertions(+), 70 deletions(-)
create mode 100644 ip/ipvrf.c
create mode 100644 lib/exec.c
create mode 100644 lib/fs.c
create mode 100644 man/man8/ip-vrf.8
--
2.1.4
^ permalink raw reply
* [iproute2 net-next 1/8] lib bpf: Add support for BPF_PROG_ATTACH and BPF_PROG_DETACH
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
include/bpf_util.h | 3 +++
lib/bpf.c | 21 +++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/include/bpf_util.h b/include/bpf_util.h
index 05baeecda57f..b038379684a8 100644
--- a/include/bpf_util.h
+++ b/include/bpf_util.h
@@ -75,6 +75,9 @@ int bpf_trace_pipe(void);
void bpf_print_ops(FILE *f, struct rtattr *bpf_ops, __u16 len);
+int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type);
+int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type);
+
#ifdef HAVE_ELF
int bpf_send_map_fds(const char *path, const char *obj);
int bpf_recv_map_fds(const char *path, int *fds, struct bpf_map_aux *aux,
diff --git a/lib/bpf.c b/lib/bpf.c
index 2a8cd51d4dae..5d6dcaa949de 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -850,6 +850,27 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
return ret;
}
+int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
+{
+ union bpf_attr attr = {};
+
+ attr.target_fd = target_fd;
+ attr.attach_bpf_fd = prog_fd;
+ attr.attach_type = type;
+
+ return bpf(BPF_PROG_ATTACH, &attr, sizeof(attr));
+}
+
+int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type)
+{
+ union bpf_attr attr = {};
+
+ attr.target_fd = target_fd;
+ attr.attach_type = type;
+
+ return bpf(BPF_PROG_DETACH, &attr, sizeof(attr));
+}
+
#ifdef HAVE_ELF
struct bpf_elf_prog {
enum bpf_prog_type type;
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 2/8] bpf: export bpf_prog_load
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
Code move only; no functional change intended.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
include/bpf_util.h | 4 ++++
lib/bpf.c | 40 ++++++++++++++++++++--------------------
2 files changed, 24 insertions(+), 20 deletions(-)
diff --git a/include/bpf_util.h b/include/bpf_util.h
index b038379684a8..726e34777755 100644
--- a/include/bpf_util.h
+++ b/include/bpf_util.h
@@ -75,6 +75,10 @@ int bpf_trace_pipe(void);
void bpf_print_ops(FILE *f, struct rtattr *bpf_ops, __u16 len);
+int bpf_prog_load(enum bpf_prog_type type, const struct bpf_insn *insns,
+ size_t size_insns, const char *license, char *log,
+ size_t size_log);
+
int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type);
int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type);
diff --git a/lib/bpf.c b/lib/bpf.c
index 5d6dcaa949de..bd939f53fb6e 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -871,6 +871,26 @@ int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type)
return bpf(BPF_PROG_DETACH, &attr, sizeof(attr));
}
+int bpf_prog_load(enum bpf_prog_type type, const struct bpf_insn *insns,
+ size_t size_insns, const char *license, char *log,
+ size_t size_log)
+{
+ union bpf_attr attr = {};
+
+ attr.prog_type = type;
+ attr.insns = bpf_ptr_to_u64(insns);
+ attr.insn_cnt = size_insns / sizeof(struct bpf_insn);
+ attr.license = bpf_ptr_to_u64(license);
+
+ if (size_log > 0) {
+ attr.log_buf = bpf_ptr_to_u64(log);
+ attr.log_size = size_log;
+ attr.log_level = 1;
+ }
+
+ return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
+}
+
#ifdef HAVE_ELF
struct bpf_elf_prog {
enum bpf_prog_type type;
@@ -988,26 +1008,6 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
}
-static int bpf_prog_load(enum bpf_prog_type type, const struct bpf_insn *insns,
- size_t size_insns, const char *license, char *log,
- size_t size_log)
-{
- union bpf_attr attr = {};
-
- attr.prog_type = type;
- attr.insns = bpf_ptr_to_u64(insns);
- attr.insn_cnt = size_insns / sizeof(struct bpf_insn);
- attr.license = bpf_ptr_to_u64(license);
-
- if (size_log > 0) {
- attr.log_buf = bpf_ptr_to_u64(log);
- attr.log_size = size_log;
- attr.log_level = 1;
- }
-
- return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
-}
-
static int bpf_obj_pin(int fd, const char *pathname)
{
union bpf_attr attr = {};
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 3/8] bpf: Add BPF_ macros
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
Based on version in kernel repo, samples/bpf/libbpf.h
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
include/bpf_util.h | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 179 insertions(+)
diff --git a/include/bpf_util.h b/include/bpf_util.h
index 726e34777755..5361dab1933d 100644
--- a/include/bpf_util.h
+++ b/include/bpf_util.h
@@ -65,6 +65,185 @@ struct bpf_cfg_in {
struct sock_filter *ops;
};
+/* ALU ops on registers, bpf_add|sub|...: dst_reg += src_reg */
+
+#define BPF_ALU64_REG(OP, DST, SRC) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU64 | BPF_OP(OP) | BPF_X, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = 0, \
+ .imm = 0 })
+
+#define BPF_ALU32_REG(OP, DST, SRC) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU | BPF_OP(OP) | BPF_X, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = 0, \
+ .imm = 0 })
+
+/* ALU ops on immediates, bpf_add|sub|...: dst_reg += imm32 */
+
+#define BPF_ALU64_IMM(OP, DST, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU64 | BPF_OP(OP) | BPF_K, \
+ .dst_reg = DST, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = IMM })
+
+#define BPF_ALU32_IMM(OP, DST, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU | BPF_OP(OP) | BPF_K, \
+ .dst_reg = DST, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = IMM })
+
+/* Short form of mov, dst_reg = src_reg */
+
+#define BPF_MOV64_REG(DST, SRC) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU64 | BPF_MOV | BPF_X, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = 0, \
+ .imm = 0 })
+
+#define BPF_MOV32_REG(DST, SRC) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU | BPF_MOV | BPF_X, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = 0, \
+ .imm = 0 })
+
+/* Short form of mov, dst_reg = imm32 */
+
+#define BPF_MOV64_IMM(DST, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU64 | BPF_MOV | BPF_K, \
+ .dst_reg = DST, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = IMM })
+
+#define BPF_MOV32_IMM(DST, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_ALU | BPF_MOV | BPF_K, \
+ .dst_reg = DST, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = IMM })
+
+/* BPF_LD_IMM64 macro encodes single 'load 64-bit immediate' insn */
+#define BPF_LD_IMM64(DST, IMM) \
+ BPF_LD_IMM64_RAW(DST, 0, IMM)
+
+#define BPF_LD_IMM64_RAW(DST, SRC, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_LD | BPF_DW | BPF_IMM, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = 0, \
+ .imm = (__u32) (IMM) }), \
+ ((struct bpf_insn) { \
+ .code = 0, /* zero is reserved opcode */ \
+ .dst_reg = 0, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = ((__u64) (IMM)) >> 32 })
+
+#ifndef BPF_PSEUDO_MAP_FD
+# define BPF_PSEUDO_MAP_FD 1
+#endif
+
+/* pseudo BPF_LD_IMM64 insn used to refer to process-local map_fd */
+#define BPF_LD_MAP_FD(DST, MAP_FD) \
+ BPF_LD_IMM64_RAW(DST, BPF_PSEUDO_MAP_FD, MAP_FD)
+
+
+/* Direct packet access, R0 = *(uint *) (skb->data + imm32) */
+
+#define BPF_LD_ABS(SIZE, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_LD | BPF_SIZE(SIZE) | BPF_ABS, \
+ .dst_reg = 0, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = IMM })
+
+/* Memory load, dst_reg = *(uint *) (src_reg + off16) */
+
+#define BPF_LDX_MEM(SIZE, DST, SRC, OFF) \
+ ((struct bpf_insn) { \
+ .code = BPF_LDX | BPF_SIZE(SIZE) | BPF_MEM, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = OFF, \
+ .imm = 0 })
+
+/* Memory store, *(uint *) (dst_reg + off16) = src_reg */
+
+#define BPF_STX_MEM(SIZE, DST, SRC, OFF) \
+ ((struct bpf_insn) { \
+ .code = BPF_STX | BPF_SIZE(SIZE) | BPF_MEM, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = OFF, \
+ .imm = 0 })
+
+/* Memory store, *(uint *) (dst_reg + off16) = imm32 */
+
+#define BPF_ST_MEM(SIZE, DST, OFF, IMM) \
+ ((struct bpf_insn) { \
+ .code = BPF_ST | BPF_SIZE(SIZE) | BPF_MEM, \
+ .dst_reg = DST, \
+ .src_reg = 0, \
+ .off = OFF, \
+ .imm = IMM })
+
+/* Conditional jumps against registers, if (dst_reg 'op' src_reg) goto pc + off16 */
+
+#define BPF_JMP_REG(OP, DST, SRC, OFF) \
+ ((struct bpf_insn) { \
+ .code = BPF_JMP | BPF_OP(OP) | BPF_X, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = OFF, \
+ .imm = 0 })
+
+/* Conditional jumps against immediates, if (dst_reg 'op' imm32) goto pc + off16 */
+
+#define BPF_JMP_IMM(OP, DST, IMM, OFF) \
+ ((struct bpf_insn) { \
+ .code = BPF_JMP | BPF_OP(OP) | BPF_K, \
+ .dst_reg = DST, \
+ .src_reg = 0, \
+ .off = OFF, \
+ .imm = IMM })
+
+/* Raw code statement block */
+
+#define BPF_RAW_INSN(CODE, DST, SRC, OFF, IMM) \
+ ((struct bpf_insn) { \
+ .code = CODE, \
+ .dst_reg = DST, \
+ .src_reg = SRC, \
+ .off = OFF, \
+ .imm = IMM })
+
+/* Program exit */
+
+#define BPF_EXIT_INSN() \
+ ((struct bpf_insn) { \
+ .code = BPF_JMP | BPF_EXIT, \
+ .dst_reg = 0, \
+ .src_reg = 0, \
+ .off = 0, \
+ .imm = 0 })
+
int bpf_parse_common(enum bpf_prog_type type, struct bpf_cfg_in *cfg,
const struct bpf_cfg_ops *ops, void *nl);
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 4/8] move cmd_exec to lib utils
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
Code move only; no functional change intended.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
include/utils.h | 2 ++
ip/ipnetns.c | 34 ----------------------------------
lib/Makefile | 2 +-
lib/exec.c | 40 +++++++++++++++++++++++++++++++++++++++++
4 files changed, 43 insertions(+), 35 deletions(-)
create mode 100644 lib/exec.c
diff --git a/include/utils.h b/include/utils.h
index 26c970daa5d0..ac4517a3bde1 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -256,4 +256,6 @@ char *int_to_str(int val, char *buf);
int get_guid(__u64 *guid, const char *arg);
int get_real_family(int rtm_type, int rtm_family);
+int cmd_exec(const char *cmd, char **argv, bool do_fork);
+
#endif /* __UTILS_H__ */
diff --git a/ip/ipnetns.c b/ip/ipnetns.c
index bd1e9013706c..db9a541769f1 100644
--- a/ip/ipnetns.c
+++ b/ip/ipnetns.c
@@ -357,40 +357,6 @@ static int netns_list(int argc, char **argv)
return 0;
}
-static int cmd_exec(const char *cmd, char **argv, bool do_fork)
-{
- fflush(stdout);
- if (do_fork) {
- int status;
- pid_t pid;
-
- pid = fork();
- if (pid < 0) {
- perror("fork");
- exit(1);
- }
-
- if (pid != 0) {
- /* Parent */
- if (waitpid(pid, &status, 0) < 0) {
- perror("waitpid");
- exit(1);
- }
-
- if (WIFEXITED(status)) {
- return WEXITSTATUS(status);
- }
-
- exit(1);
- }
- }
-
- if (execvp(cmd, argv) < 0)
- fprintf(stderr, "exec of \"%s\" failed: %s\n",
- cmd, strerror(errno));
- _exit(1);
-}
-
static int on_netns_exec(char *nsname, void *arg)
{
char **argv = arg;
diff --git a/lib/Makefile b/lib/Makefile
index 5b7ec169048a..749073261c49 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -8,7 +8,7 @@ CFLAGS += -fPIC
UTILOBJ = utils.o rt_names.o ll_types.o ll_proto.o ll_addr.o \
inet_proto.o namespace.o json_writer.o \
- names.o color.o bpf.o
+ names.o color.o bpf.o exec.o
NLOBJ=libgenl.o ll_map.o libnetlink.o
diff --git a/lib/exec.c b/lib/exec.c
new file mode 100644
index 000000000000..96edbc422e84
--- /dev/null
+++ b/lib/exec.c
@@ -0,0 +1,40 @@
+#include <sys/wait.h>
+#include <stdio.h>
+#include <errno.h>
+#include <unistd.h>
+
+#include "utils.h"
+
+int cmd_exec(const char *cmd, char **argv, bool do_fork)
+{
+ fflush(stdout);
+ if (do_fork) {
+ int status;
+ pid_t pid;
+
+ pid = fork();
+ if (pid < 0) {
+ perror("fork");
+ exit(1);
+ }
+
+ if (pid != 0) {
+ /* Parent */
+ if (waitpid(pid, &status, 0) < 0) {
+ perror("waitpid");
+ exit(1);
+ }
+
+ if (WIFEXITED(status)) {
+ return WEXITSTATUS(status);
+ }
+
+ exit(1);
+ }
+ }
+
+ if (execvp(cmd, argv) < 0)
+ fprintf(stderr, "exec of \"%s\" failed: %s\n",
+ cmd, strerror(errno));
+ _exit(1);
+}
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 5/8] Add filesystem APIs to lib
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
Add make_path to recursively call mkdir as needed to create a given
path with the given mode.
Add find_cgroup2_mount to lookup path where cgroup2 is mounted. If it
is not already mounted, cgroup2 is mounted under /var/run/cgroup2 for
use by iproute2.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
include/utils.h | 2 +
lib/Makefile | 2 +-
lib/fs.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 146 insertions(+), 1 deletion(-)
create mode 100644 lib/fs.c
diff --git a/include/utils.h b/include/utils.h
index ac4517a3bde1..dc1d6b9607dd 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -257,5 +257,7 @@ int get_guid(__u64 *guid, const char *arg);
int get_real_family(int rtm_type, int rtm_family);
int cmd_exec(const char *cmd, char **argv, bool do_fork);
+int make_path(const char *path, mode_t mode);
+char *find_cgroup2_mount(void);
#endif /* __UTILS_H__ */
diff --git a/lib/Makefile b/lib/Makefile
index 749073261c49..0c57662b4f8f 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -8,7 +8,7 @@ CFLAGS += -fPIC
UTILOBJ = utils.o rt_names.o ll_types.o ll_proto.o ll_addr.o \
inet_proto.o namespace.o json_writer.o \
- names.o color.o bpf.o exec.o
+ names.o color.o bpf.o exec.o fs.o
NLOBJ=libgenl.o ll_map.o libnetlink.o
diff --git a/lib/fs.c b/lib/fs.c
new file mode 100644
index 000000000000..39cc96dccca9
--- /dev/null
+++ b/lib/fs.c
@@ -0,0 +1,143 @@
+/*
+ * fs.c filesystem APIs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ * Authors: David Ahern <dsa@cumulusnetworks.com>
+ *
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <sys/mount.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <limits.h>
+
+#include "utils.h"
+
+#define CGROUP2_FS_NAME "cgroup2"
+
+/* if not already mounted cgroup2 is mounted here for iproute2's use */
+#define MNT_CGRP2_PATH "/var/run/cgroup2"
+
+/* return mount path of first occurrence of given fstype */
+static char *find_fs_mount(const char *fs_to_find)
+{
+ char path[4096];
+ char fstype[128]; /* max length of any filesystem name */
+ char *mnt = NULL;
+ FILE *fp;
+
+ fp = fopen("/proc/mounts", "r");
+ if (!fp) {
+ fprintf(stderr,
+ "Failed to open mounts file: %s\n", strerror(errno));
+ return NULL;
+ }
+
+ while (fscanf(fp, "%*s %4096s %127s %*s %*d %*d\n",
+ path, fstype) == 2) {
+ if (strcmp(fstype, fs_to_find) == 0) {
+ mnt = strdup(path);
+ break;
+ }
+ }
+
+ fclose(fp);
+
+ return mnt;
+}
+
+/* caller needs to free string returned */
+char *find_cgroup2_mount(void)
+{
+ char *mnt = find_fs_mount(CGROUP2_FS_NAME);
+
+ if (mnt)
+ return mnt;
+
+ mnt = strdup(MNT_CGRP2_PATH);
+ if (!mnt) {
+ fprintf(stderr, "Failed to allocate memory for cgroup2 path\n");
+ return NULL;
+
+ }
+
+ if (make_path(mnt, 0755)) {
+ fprintf(stderr, "Failed to setup vrf cgroup2 directory\n");
+ free(mnt);
+ return NULL;
+ }
+
+ if (mount("none", mnt, CGROUP2_FS_NAME, 0, NULL)) {
+ /* EBUSY means already mounted */
+ if (errno != EBUSY) {
+ fprintf(stderr,
+ "Failed to mount cgroup2. Are CGROUPS enabled in your kernel?\n");
+ free(mnt);
+ return NULL;
+ }
+ }
+ return mnt;
+}
+
+int make_path(const char *path, mode_t mode)
+{
+ char *dir, *delim;
+ struct stat sbuf;
+ int rc = -1;
+
+ delim = dir = strdup(path);
+ if (dir == NULL) {
+ fprintf(stderr, "strdup failed copying path");
+ return -1;
+ }
+
+ /* skip '/' -- it had better exist */
+ if (*delim == '/')
+ delim++;
+
+ while (1) {
+ delim = strchr(delim, '/');
+ if (delim)
+ *delim = '\0';
+
+ if (stat(dir, &sbuf) != 0) {
+ if (errno != ENOENT) {
+ fprintf(stderr,
+ "stat failed for %s: %s\n",
+ dir, strerror(errno));
+ goto out;
+ }
+
+ if (mkdir(dir, mode) != 0) {
+ fprintf(stderr,
+ "mkdir failed for %s: %s",
+ dir, strerror(errno));
+ goto out;
+ }
+ }
+
+ if (delim == NULL)
+ break;
+
+ *delim = '/';
+ delim++;
+ if (*delim == '\0')
+ break;
+ }
+ rc = 0;
+out:
+ free(dir);
+
+ return rc;
+}
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 6/8] change name_is_vrf to return index
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
index of 0 means name is not a valid vrf.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
ip/ip_common.h | 2 +-
ip/iplink_vrf.c | 15 +++++++++------
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/ip/ip_common.h b/ip/ip_common.h
index 0147f45a7a31..3162f1ca5b2c 100644
--- a/ip/ip_common.h
+++ b/ip/ip_common.h
@@ -91,7 +91,7 @@ struct link_util *get_link_kind(const char *kind);
void br_dump_bridge_id(const struct ifla_bridge_id *id, char *buf, size_t len);
__u32 ipvrf_get_table(const char *name);
-bool name_is_vrf(const char *name);
+int name_is_vrf(const char *name);
#ifndef INFINITY_LIFE_TIME
#define INFINITY_LIFE_TIME 0xFFFFFFFFU
diff --git a/ip/iplink_vrf.c b/ip/iplink_vrf.c
index a238b2906805..c101ed770f87 100644
--- a/ip/iplink_vrf.c
+++ b/ip/iplink_vrf.c
@@ -159,7 +159,7 @@ __u32 ipvrf_get_table(const char *name)
return tb_id;
}
-bool name_is_vrf(const char *name)
+int name_is_vrf(const char *name)
{
struct {
struct nlmsghdr n;
@@ -187,24 +187,27 @@ bool name_is_vrf(const char *name)
addattr_l(&req.n, sizeof(req), IFLA_IFNAME, name, strlen(name) + 1);
if (rtnl_talk(&rth, &req.n, &answer.n, sizeof(answer)) < 0)
- return false;
+ return 0;
ifi = NLMSG_DATA(&answer.n);
len = answer.n.nlmsg_len - NLMSG_LENGTH(sizeof(*ifi));
if (len < 0) {
fprintf(stderr, "BUG: Invalid response to link query.\n");
- return false;
+ return 0;
}
parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
if (!tb[IFLA_LINKINFO])
- return false;
+ return 0;
parse_rtattr_nested(li, IFLA_INFO_MAX, tb[IFLA_LINKINFO]);
if (!li[IFLA_INFO_KIND])
- return false;
+ return 0;
+
+ if (strcmp(RTA_DATA(li[IFLA_INFO_KIND]), "vrf"))
+ return 0;
- return strcmp(RTA_DATA(li[IFLA_INFO_KIND]), "vrf") == 0;
+ return ifi->ifi_index;
}
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 7/8] libnetlink: Add variant of rtnl_talk that does not display RTNETLINK answers error
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
iplink_vrf has 2 functions used to validate a user given device name is
a VRF device and to return the table id. If the user string is not a
device name ip commands with a vrf keyword show a confusing error
message: "RTNETLINK answers: No such device".
Add a variant of rtnl_talk that does not display the "RTNETLINK answers"
message and update iplink_vrf to use it.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
include/libnetlink.h | 3 +++
ip/iplink_vrf.c | 14 +++++++++++---
lib/libnetlink.c | 20 +++++++++++++++++---
3 files changed, 31 insertions(+), 6 deletions(-)
diff --git a/include/libnetlink.h b/include/libnetlink.h
index 751ebf186dd4..bd0267dfcc02 100644
--- a/include/libnetlink.h
+++ b/include/libnetlink.h
@@ -81,6 +81,9 @@ int rtnl_dump_filter_nc(struct rtnl_handle *rth,
int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
struct nlmsghdr *answer, size_t len)
__attribute__((warn_unused_result));
+int rtnl_talk_suppress_rtnl_errmsg(struct rtnl_handle *rtnl, struct nlmsghdr *n,
+ struct nlmsghdr *answer, size_t len)
+ __attribute__((warn_unused_result));
int rtnl_send(struct rtnl_handle *rth, const void *buf, int)
__attribute__((warn_unused_result));
int rtnl_send_check(struct rtnl_handle *rth, const void *buf, int)
diff --git a/ip/iplink_vrf.c b/ip/iplink_vrf.c
index c101ed770f87..917630e85337 100644
--- a/ip/iplink_vrf.c
+++ b/ip/iplink_vrf.c
@@ -13,6 +13,7 @@
#include <string.h>
#include <sys/socket.h>
#include <linux/if_link.h>
+#include <errno.h>
#include "rt_names.h"
#include "utils.h"
@@ -126,8 +127,14 @@ __u32 ipvrf_get_table(const char *name)
addattr_l(&req.n, sizeof(req), IFLA_IFNAME, name, strlen(name) + 1);
- if (rtnl_talk(&rth, &req.n, &answer.n, sizeof(answer)) < 0)
- return 0;
+ if (rtnl_talk_suppress_rtnl_errmsg(&rth, &req.n,
+ &answer.n, sizeof(answer)) < 0) {
+ /* special case "default" vrf to be the main table */
+ if (errno == ENODEV && !strcmp(name, "default"))
+ rtnl_rttable_a2n(&tb_id, "main");
+
+ return tb_id;
+ }
ifi = NLMSG_DATA(&answer.n);
len = answer.n.nlmsg_len - NLMSG_LENGTH(sizeof(*ifi));
@@ -186,7 +193,8 @@ int name_is_vrf(const char *name)
addattr_l(&req.n, sizeof(req), IFLA_IFNAME, name, strlen(name) + 1);
- if (rtnl_talk(&rth, &req.n, &answer.n, sizeof(answer)) < 0)
+ if (rtnl_talk_suppress_rtnl_errmsg(&rth, &req.n,
+ &answer.n, sizeof(answer)) < 0)
return 0;
ifi = NLMSG_DATA(&answer.n);
diff --git a/lib/libnetlink.c b/lib/libnetlink.c
index a5db168e50eb..9d7e89aebbd0 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
@@ -12,6 +12,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <stdbool.h>
#include <unistd.h>
#include <syslog.h>
#include <fcntl.h>
@@ -397,8 +398,9 @@ int rtnl_dump_filter_nc(struct rtnl_handle *rth,
return rtnl_dump_filter_l(rth, a);
}
-int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
- struct nlmsghdr *answer, size_t maxlen)
+static int __rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
+ struct nlmsghdr *answer, size_t maxlen,
+ bool show_rtnl_err)
{
int status;
unsigned int seq;
@@ -485,7 +487,7 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
return 0;
}
- if (rtnl->proto != NETLINK_SOCK_DIAG)
+ if (rtnl->proto != NETLINK_SOCK_DIAG && show_rtnl_err)
fprintf(stderr,
"RTNETLINK answers: %s\n",
strerror(-err->error));
@@ -517,6 +519,18 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
}
}
+int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
+ struct nlmsghdr *answer, size_t maxlen)
+{
+ return __rtnl_talk(rtnl, n, answer, maxlen, true);
+}
+
+int rtnl_talk_suppress_rtnl_errmsg(struct rtnl_handle *rtnl, struct nlmsghdr *n,
+ struct nlmsghdr *answer, size_t maxlen)
+{
+ return __rtnl_talk(rtnl, n, answer, maxlen, false);
+}
+
int rtnl_listen_all_nsid(struct rtnl_handle *rth)
{
unsigned int on = 1;
--
2.1.4
^ permalink raw reply related
* [iproute2 net-next 8/8] Introduce ip vrf command
From: David Ahern @ 2016-12-12 0:53 UTC (permalink / raw)
To: netdev, stephen; +Cc: David Ahern
In-Reply-To: <1481503995-24825-1-git-send-email-dsa@cumulusnetworks.com>
'ip vrf' follows the user semnatics established by 'ip netns'.
The 'ip vrf' subcommand supports 3 usages:
1. Run a command against a given vrf:
ip vrf exec NAME CMD
Uses the recently committed cgroup/sock BPF option. vrf directory
is added to cgroup2 mount. Individual vrfs are created under it. BPF
filter attached to vrf/NAME cgroup2 to set sk_bound_dev_if to the VRF
device index. From there the current process (ip's pid) is addded to
the cgroups.proc file and the given command is exected. In doing so
all AF_INET/AF_INET6 (ipv4/ipv6) sockets are automatically bound to
the VRF domain.
The association is inherited parent to child allowing the command to
be a shell from which other commands are run relative to the VRF.
2. Show the VRF a process is bound to:
ip vrf id
This command essentially looks at /proc/pid/cgroup for a "::/vrf/"
entry with the VRF name following.
3. Show process ids bound to a VRF
ip vrf pids NAME
This command dumps the file MNT/vrf/NAME/cgroup.procs since that file
shows the process ids in the particular vrf cgroup.
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
ip/Makefile | 3 +-
ip/ip.c | 4 +-
ip/ip_common.h | 2 +
ip/ipvrf.c | 289 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
man/man8/ip-vrf.8 | 88 +++++++++++++++++
5 files changed, 384 insertions(+), 2 deletions(-)
create mode 100644 ip/ipvrf.c
create mode 100644 man/man8/ip-vrf.8
diff --git a/ip/Makefile b/ip/Makefile
index c8e6c6172741..1928489e7f90 100644
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -7,7 +7,8 @@ IPOBJ=ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o ipnetns.o \
iplink_vxlan.o tcp_metrics.o iplink_ipoib.o ipnetconf.o link_ip6tnl.o \
link_iptnl.o link_gre6.o iplink_bond.o iplink_bond_slave.o iplink_hsr.o \
iplink_bridge.o iplink_bridge_slave.o ipfou.o iplink_ipvlan.o \
- iplink_geneve.o iplink_vrf.o iproute_lwtunnel.o ipmacsec.o ipila.o
+ iplink_geneve.o iplink_vrf.o iproute_lwtunnel.o ipmacsec.o ipila.o \
+ ipvrf.o
RTMONOBJ=rtmon.o
diff --git a/ip/ip.c b/ip/ip.c
index cb3adcb3f57d..07050b07592a 100644
--- a/ip/ip.c
+++ b/ip/ip.c
@@ -51,7 +51,8 @@ static void usage(void)
" ip [ -force ] -batch filename\n"
"where OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |\n"
" tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |\n"
-" netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila }\n"
+" netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |\n"
+" vrf }\n"
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
" -h[uman-readable] | -iec |\n"
" -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |\n"
@@ -99,6 +100,7 @@ static const struct cmd {
{ "mrule", do_multirule },
{ "netns", do_netns },
{ "netconf", do_ipnetconf },
+ { "vrf", do_ipvrf},
{ "help", do_help },
{ 0 }
};
diff --git a/ip/ip_common.h b/ip/ip_common.h
index 3162f1ca5b2c..28763e81e4a4 100644
--- a/ip/ip_common.h
+++ b/ip/ip_common.h
@@ -57,6 +57,8 @@ extern int do_ipila(int argc, char **argv);
int do_tcp_metrics(int argc, char **argv);
int do_ipnetconf(int argc, char **argv);
int do_iptoken(int argc, char **argv);
+int do_ipvrf(int argc, char **argv);
+
int iplink_get(unsigned int flags, char *name, __u32 filt_mask);
static inline int rtm_get_table(struct rtmsg *r, struct rtattr **tb)
diff --git a/ip/ipvrf.c b/ip/ipvrf.c
new file mode 100644
index 000000000000..d49af774438e
--- /dev/null
+++ b/ip/ipvrf.c
@@ -0,0 +1,289 @@
+/*
+ * ipvrf.c "ip vrf"
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ * Authors: David Ahern <dsa@cumulusnetworks.com>
+ *
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <sys/mount.h>
+#include <linux/bpf.h>
+#include <linux/if.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <limits.h>
+
+#include "rt_names.h"
+#include "utils.h"
+#include "ip_common.h"
+#include "bpf_util.h"
+
+#define CGRP_PROC_FILE "/cgroup.procs"
+
+static void usage(void)
+{
+ fprintf(stderr, "Usage: ip vrf exec [NAME] cmd ...\n");
+ fprintf(stderr, " ip vrf identify [PID]\n");
+ fprintf(stderr, " ip vrf pids [NAME]\n");
+
+ exit(-1);
+}
+
+static int ipvrf_identify(int argc, char **argv)
+{
+ char path[PATH_MAX];
+ char buf[4096];
+ char *vrf, *end;
+ int fd, rc = -1;
+ unsigned int pid;
+ ssize_t n;
+
+ if (argc < 1)
+ pid = getpid();
+ else if (argc > 1)
+ invarg("Extra arguments specified\n", argv[1]);
+ else if (get_unsigned(&pid, argv[0], 10))
+ invarg("Invalid pid\n", argv[0]);
+
+ snprintf(path, sizeof(path), "/proc/%d/cgroup", pid);
+ fd = open(path, O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr,
+ "Failed to open cgroups file: %s\n", strerror(errno));
+ return -1;
+ }
+
+ n = read(fd, buf, sizeof(buf) - 1);
+ if (n < 0) {
+ fprintf(stderr,
+ "Failed to read cgroups file: %s\n", strerror(errno));
+ goto out;
+ }
+ buf[n] = '\0';
+ vrf = strstr(buf, "::/vrf/");
+ if (vrf) {
+ vrf += 7; /* skip past "::/vrf/" */
+ end = strchr(vrf, '\n');
+ if (end)
+ *end = '\0';
+
+ printf("%s\n", vrf);
+ }
+
+ rc = 0;
+out:
+ close(fd);
+
+ return rc;
+}
+
+static int ipvrf_pids(int argc, char **argv)
+{
+ char path[PATH_MAX];
+ char buf[4096];
+ char *mnt, *vrf;
+ int fd, rc = -1;
+ ssize_t n;
+
+ if (argc != 1) {
+ fprintf(stderr, "Invalid arguments\n");
+ return -1;
+ }
+
+ vrf = argv[0];
+
+ mnt = find_cgroup2_mount();
+ if (!mnt)
+ return -1;
+
+ snprintf(path, sizeof(path), "%s/vrf/%s%s", mnt, vrf, CGRP_PROC_FILE);
+ free(mnt);
+ fd = open(path, O_RDONLY);
+ if (fd < 0)
+ return 0; /* no cgroup file, nothing to show */
+
+ while (1) {
+ n = read(fd, buf, sizeof(buf) - 1);
+ if (n < 0) {
+ fprintf(stderr,
+ "Failed to read cgroups file: %s\n", strerror(errno));
+ break;
+ } else if (n == 0) {
+ rc = 0;
+ break;
+ }
+ printf("%s", buf);
+ }
+
+ close(fd);
+
+ return rc;
+}
+
+/* load BPF program to set sk_bound_dev_if for sockets */
+static char bpf_log_buf[256*1024];
+
+static int prog_load(int idx)
+{
+ struct bpf_insn prog[] = {
+ BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
+ BPF_MOV64_IMM(BPF_REG_3, idx),
+ BPF_MOV64_IMM(BPF_REG_2, offsetof(struct bpf_sock, bound_dev_if)),
+ BPF_STX_MEM(BPF_W, BPF_REG_1, BPF_REG_3, offsetof(struct bpf_sock, bound_dev_if)),
+ BPF_MOV64_IMM(BPF_REG_0, 1), /* r0 = verdict */
+ BPF_EXIT_INSN(),
+ };
+
+ return bpf_prog_load(BPF_PROG_TYPE_CGROUP_SOCK, prog, sizeof(prog),
+ "GPL", bpf_log_buf, sizeof(bpf_log_buf));
+}
+
+static int vrf_configure_cgroup(const char *path, int ifindex)
+{
+ int rc = -1, cg_fd, prog_fd = -1;
+
+ cg_fd = open(path, O_DIRECTORY | O_RDONLY);
+ if (cg_fd < 0) {
+ fprintf(stderr, "Failed to open cgroup path: '%s'\n", strerror(errno));
+ goto out;
+ }
+
+ /*
+ * Load bpf program into kernel and attach to cgroup to affect
+ * socket creates
+ */
+ prog_fd = prog_load(ifindex);
+ if (prog_fd < 0) {
+ printf("Failed to load BPF prog: '%s'\n", strerror(errno));
+ goto out;
+ }
+
+ if (bpf_prog_attach_fd(prog_fd, cg_fd, BPF_CGROUP_INET_SOCK_CREATE)) {
+ fprintf(stderr, "Failed to attach prog to cgroup: '%s'\n",
+ strerror(errno));
+ fprintf(stderr, "Kernel compiled with CGROUP_BPF enabled?\n");
+ goto out;
+ }
+
+ rc = 0;
+out:
+ close(cg_fd);
+ close(prog_fd);
+
+ return rc;
+}
+
+static int vrf_switch(const char *name)
+{
+ char path[PATH_MAX], *mnt, pid[16];
+ int ifindex = name_is_vrf(name);
+ bool default_vrf = false;
+ int rc = -1, len, fd = -1;
+
+ if (!ifindex) {
+ if (strcmp(name, "default")) {
+ fprintf(stderr, "Invalid VRF name\n");
+ return -1;
+ }
+ default_vrf = true;
+ }
+
+ mnt = find_cgroup2_mount();
+ if (!mnt)
+ return -1;
+
+ /* path to cgroup; make sure buffer has room to cat "/cgroup.procs"
+ * to the end of the path
+ */
+ len = snprintf(path, sizeof(path) - sizeof(CGRP_PROC_FILE), "%s%s/%s",
+ mnt, default_vrf ? "" : "/vrf", name);
+ if (len > sizeof(path) - sizeof(CGRP_PROC_FILE)) {
+ fprintf(stderr, "Invalid path to cgroup2 mount\n");
+ goto out;
+ }
+
+ if (make_path(path, 0755)) {
+ fprintf(stderr, "Failed to setup vrf cgroup2 directory\n");
+ goto out;
+ }
+
+ if (!default_vrf && vrf_configure_cgroup(path, ifindex))
+ goto out;
+
+ /*
+ * write pid to cgroup.procs making process part of cgroup
+ */
+ strcat(path, CGRP_PROC_FILE);
+ fd = open(path, O_RDWR | O_APPEND);
+ if (fd < 0) {
+ fprintf(stderr, "Failed to open cgroups.procs file: %s.\n",
+ strerror(errno));
+ goto out;
+ }
+
+ snprintf(pid, sizeof(pid), "%d", getpid());
+ if (write(fd, pid, strlen(pid)) < 0) {
+ fprintf(stderr, "Failed to join cgroup\n");
+ goto out;
+ }
+
+ rc = 0;
+out:
+ free(mnt);
+ close(fd);
+
+ return rc;
+}
+
+static int ipvrf_exec(int argc, char **argv)
+{
+ if (argc < 1) {
+ fprintf(stderr, "No VRF name specified\n");
+ return -1;
+ }
+ if (argc < 2) {
+ fprintf(stderr, "No command specified\n");
+ return -1;
+ }
+
+ if (vrf_switch(argv[0]))
+ return -1;
+
+ return -cmd_exec(argv[1], argv + 1, !!batch_mode);
+}
+
+int do_ipvrf(int argc, char **argv)
+{
+ if (argc == 0) {
+ fprintf(stderr, "No command given. Try \"ip vrf help\".\n");
+ exit(-1);
+ }
+
+ if (matches(*argv, "identify") == 0)
+ return ipvrf_identify(argc-1, argv+1);
+
+ if (matches(*argv, "pids") == 0)
+ return ipvrf_pids(argc-1, argv+1);
+
+ if (matches(*argv, "exec") == 0)
+ return ipvrf_exec(argc-1, argv+1);
+
+ if (matches(*argv, "help") == 0)
+ usage();
+
+ fprintf(stderr, "Command \"%s\" is unknown, try \"ip vrf help\".\n",
+ *argv);
+
+ exit(-1);
+}
diff --git a/man/man8/ip-vrf.8 b/man/man8/ip-vrf.8
new file mode 100644
index 000000000000..57a7c7692ce8
--- /dev/null
+++ b/man/man8/ip-vrf.8
@@ -0,0 +1,88 @@
+.TH IP\-VRF 8 "7 Dec 2016" "iproute2" "Linux"
+.SH NAME
+ip-vrf \- run a command against a vrf
+.SH SYNOPSIS
+.sp
+.ad l
+.in +8
+.ti -8
+.B ip
+.B vrf
+.RI " { " COMMAND " | "
+.BR help " }"
+.sp
+
+.ti -8
+.BR "ip vrf identify"
+.RI "[ " PID " ]"
+
+.ti -8
+.BR "ip vrf pids"
+.I NAME
+
+.ti -8
+.BR "ip vrf exec "
+.RI "[ " NAME " ] " command ...
+
+.SH DESCRIPTION
+A VRF provides traffic isolation at layer 3 for routing, similar to how a
+VLAN is used to isolate traffic at layer 2. Fundamentally, a VRF is a separate
+routing table. Network devices are associated with a VRF by enslaving the
+device to the VRF. At that point network addresses assigned to the device are
+local to the VRF with host and connected routes moved to the table associated
+with the VRF.
+
+A process can specify a VRF using several APIs -- binding the socket to the
+VRF device using SO_BINDTODEVICE, setting the VRF association using
+IP_UNICAST_IF or IPV6_UNICAST_IF, or specifying the VRF for a specific message
+using IP_PKTINFO or IPV6_PKTINFO.
+
+By default a process is not bound to any VRF. An association can be set
+explicitly by making the program use one of the APIs mentioned above or
+implicitly using a helper to set SO_BINDTODEVICE for all IPv4 and IPv6
+sockets (AF_INET and AF_INET6) when the socket is created. This ip-vrf command
+is a helper to run a command against a specific VRF with the VRF association
+inherited parent to child.
+
+.TP
+.B ip vrf exec [ NAME ] cmd ... - Run cmd against the named VRF
+.sp
+This command allows applications that are VRF unaware to be run against
+a VRF other than the default VRF (main table). A command can be run against
+the default VRF by passing the "default" as the VRF name. This is useful if
+the current shell is associated with another VRF (e.g, Management VRF).
+
+.TP
+.B ip vrf identify [PID] - Report VRF association for process
+.sp
+This command shows the VRF association of the specified process. If PID is
+not specified then the id of the current process is used.
+
+.TP
+.B ip vrf pids NAME - Report processes associated with the named VRF
+.sp
+This command shows all process ids that are associated with the given
+VRF.
+
+.SH CAVEATS
+This command requires a kernel compiled with CGROUPS and CGROUP_BPF enabled.
+
+The VRF helper *only* affects network layer sockets.
+
+.SH EXAMPLES
+.PP
+ip vrf exec red ssh 10.100.1.254
+.RS
+Executes ssh to 10.100.1.254 against the VRF red table.
+.RE
+
+.SH SEE ALSO
+.br
+.BR ip (8),
+.BR ip-link (8),
+.BR ip-address (8),
+.BR ip-route (8),
+.BR ip-neighbor (8)
+
+.SH AUTHOR
+Original Manpage by David Ahern
--
2.1.4
^ permalink raw reply related
* [PATCH v2] ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output
From: Zheng Li @ 2016-12-12 1:56 UTC (permalink / raw)
To: linux-kernel, netdev, davem, kuznet, jmorris, yoshfuji, kaber; +Cc: james.z.li
From: zheng li <james.z.li@ericsson.com>
There is an inconsistent conditional judgement in __ip_append_data and
ip_finish_output functions, the variable length in __ip_append_data just
include the length of application's payload and udp header, don't include
the length of ip header, but in ip_finish_output use
(skb->len > ip_skb_dst_mtu(skb)) as judgement, and skb->len include the
length of ip header.
That causes some particular application's udp payload whose length is
between (MTU - IP Header) and MTU were fragmented by ip_fragment even
though the rst->dev support UFO feature.
Add the length of ip header to length in __ip_append_data to keep
consistent conditional judgement as ip_finish_output for ip fragment.
Signed-off-by: Zheng Li <james.z.li@ericsson.com>
---
net/ipv4/ip_output.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 877bdb0..12a0149 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -936,7 +936,7 @@ static int __ip_append_data(struct sock *sk,
csummode = CHECKSUM_PARTIAL;
cork->length += length;
- if (((length > mtu) || (skb && skb_is_gso(skb))) &&
+ if ((((length + fragheaderlen) > mtu) || (skb && skb_is_gso(skb))) &&
(sk->sk_protocol == IPPROTO_UDP) &&
(rt->dst.dev->features & NETIF_F_UFO) && !rt->dst.header_len &&
(sk->sk_type == SOCK_DGRAM) && !sk->sk_no_check_tx) {
--
2.7.4
^ permalink raw reply related
* Re: [PATCH 08/10] vsock/virtio: mark an internal function static
From: Jason Wang @ 2016-12-12 1:56 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: linux-kernel, Stefan Hajnoczi, David S. Miller, kvm,
virtualization, netdev
In-Reply-To: <20161208162458-mutt-send-email-mst@kernel.org>
On 2016年12月08日 22:25, Michael S. Tsirkin wrote:
> On Wed, Dec 07, 2016 at 12:21:22PM +0800, Jason Wang wrote:
>>
>> On 2016年12月06日 23:41, Michael S. Tsirkin wrote:
>>> virtio_transport_alloc_pkt is only used locally, make it static.
>>>
>>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>>> ---
>>> net/vmw_vsock/virtio_transport_common.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
>>> index a53b3a1..6120384 100644
>>> --- a/net/vmw_vsock/virtio_transport_common.c
>>> +++ b/net/vmw_vsock/virtio_transport_common.c
>>> @@ -32,7 +32,7 @@ static const struct virtio_transport *virtio_transport_get_ops(void)
>>> return container_of(t, struct virtio_transport, transport);
>>> }
>>> -struct virtio_vsock_pkt *
>>> +static struct virtio_vsock_pkt *
>>> virtio_transport_alloc_pkt(struct virtio_vsock_pkt_info *info,
>>> size_t len,
>>> u32 src_cid,
>> Git grep shows it was used by tracing.
> True but trace_virtio_transport_alloc_pkt is also local to
> virtio_transport_common.c
>
I see, so let's remove the EXPORT_SYMBOL_GPL() too?
^ permalink raw reply
* linux-next: manual merge of the tip tree with the net-next tree
From: Stephen Rothwell @ 2016-12-12 2:30 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, Peter Zijlstra,
David Miller, Networking
Cc: linux-next, linux-kernel, Nicolas Pitre, WingMan Kwok
Hi all,
Today's linux-next merge of the tip tree got a conflict in:
drivers/net/ethernet/ti/Kconfig
between commit:
6246168b4a38 ("net: ethernet: ti: netcp: add support of cpts")
from the net-next tree and commit:
d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
from the tip tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
--
Cheers,
Stephen Rothwell
diff --cc drivers/net/ethernet/ti/Kconfig
index dc217fd7a734,61b835a7e6ae..000000000000
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@@ -74,14 -74,13 +74,14 @@@ config TI_CPS
will be called cpsw.
config TI_CPTS
- bool "TI Common Platform Time Sync (CPTS) Support"
- depends on TI_CPSW
+ tristate "TI Common Platform Time Sync (CPTS) Support"
+ depends on TI_CPSW || TI_KEYSTONE_NETCP
- select PTP_1588_CLOCK
+ imply PTP_1588_CLOCK
---help---
This driver supports the Common Platform Time Sync unit of
- the CPSW Ethernet Switch. The unit can time stamp PTP UDP/IPv4
- and Layer 2 packets, and the driver offers a PTP Hardware Clock.
+ the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
+ The unit can time stamp PTP UDP/IPv4 and Layer 2 packets, and the
+ driver offers a PTP Hardware Clock.
config TI_KEYSTONE_NETCP
tristate "TI Keystone NETCP Core Support"
^ permalink raw reply
* Re: [PATCH] net: wan: Use dma_pool_zalloc
From: Souptick Joarder @ 2016-12-12 4:42 UTC (permalink / raw)
To: Krzysztof Hałasa, netdev; +Cc: Rameshwar Sahu
In-Reply-To: <m3wpf9l0fc.fsf@t19.piap.pl>
On Fri, Dec 9, 2016 at 6:33 PM, Krzysztof Hałasa <khalasa@piap.pl> wrote:
> Souptick Joarder <jrdr.linux@gmail.com> writes:
>
>> We should use dma_pool_zalloc instead of dma_pool_alloc/memset
>>
>> Signed-off-by: Souptick joarder <jrdr.linux@gmail.com>
>> ---
>> drivers/net/wan/ixp4xx_hss.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
>> index e7bbdb7..aaabf31 100644
>> --- a/drivers/net/wan/ixp4xx_hss.c
>> +++ b/drivers/net/wan/ixp4xx_hss.c
>> @@ -976,10 +976,9 @@ static int init_hdlc_queues(struct port *port)
>> return -ENOMEM;
>> }
>>
>> - if (!(port->desc_tab = dma_pool_alloc(dma_pool, GFP_KERNEL,
>> - &port->desc_tab_phys)))
>> + if (!(port->desc_tab = dma_pool_zalloc(dma_pool, GFP_KERNEL,
>> + &port->desc_tab_phys)))
>> return -ENOMEM;
>> - memset(port->desc_tab, 0, POOL_ALLOC_SIZE);
>> memset(port->rx_buff_tab, 0, sizeof(port->rx_buff_tab)); /* tables */
>> memset(port->tx_buff_tab, 0, sizeof(port->tx_buff_tab));
>
> This look fine, feel free to send it to the netdev mailing list for
> inclusion.
Including netdev mailing list based as requested.
>
> Acked-by: Krzysztof Halasa <khalasa@piap.pl>
> --
> Krzysztof Halasa
>
> Industrial Research Institute for Automation and Measurements PIAP
> Al. Jerozolimskie 202, 02-486 Warsaw, Poland
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox