02 Nov, 2017
1 commit
-
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.By default all files without license information are under the default
license of the kernel, which is GPL version 2.Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if
Reviewed-by: Philippe Ombredanne
Reviewed-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
01 Jul, 2017
1 commit
-
refcount_t type and corresponding API should be
used instead of atomic_t when the variable is used as
a reference counter. This allows to avoid accidental
refcounter overflows that might lead to use-after-free
situations.Signed-off-by: Elena Reshetova
Signed-off-by: Hans Liljestrand
Signed-off-by: Kees Cook
Signed-off-by: David Windsor
Signed-off-by: David S. Miller
29 Mar, 2017
1 commit
-
This patch adds support for NETDEV_RESEND_IGMP event similar
to how it works for IPv4.Signed-off-by: Vladislav Yasevich
Signed-off-by: David S. Miller
08 Feb, 2017
1 commit
-
Add confirm_neigh method to dst_ops and use it from IPv4 and IPv6
to lookup and confirm the neighbour. Its usage via the new helper
dst_confirm_neigh() should be restricted to MSG_PROBE users for
performance reasons.For XFRM prefer the last tunnel address, if present. With help
from Steffen Klassert.Signed-off-by: Julian Anastasov
Acked-by: Steffen Klassert
Signed-off-by: David S. Miller
04 Dec, 2016
1 commit
-
Implemented RFC7527 Enhanced DAD.
IPv6 duplicate address detection can fail if there is some temporary
loopback of Ethernet frames. RFC7527 solves this by including a random
nonce in the NS messages used for DAD, and if an NS is received with the
same nonce it is assumed to be a looped back DAD probe and is ignored.
RFC7527 is enabled by default. Can be disabled by setting both of
conf/{all,interface}/enhanced_dad to zero.Signed-off-by: Erik Nordmark
Signed-off-by: Bob Gilligan
Reviewed-by: Hannes Frederic Sowa
Signed-off-by: David S. Miller
16 Jun, 2016
5 commits
-
This patch introduce different 6lowpan handling for receive and transmit
NS/NA messages for the ipv6 neighbour discovery. The first use-case is
for supporting 802.15.4 short addresses inside the option fields and
handling for RFC6775 6CO option field as userspace option.Cc: David S. Miller
Cc: Alexey Kuznetsov
Cc: James Morris
Cc: Hideaki YOSHIFUJI
Cc: Patrick McHardy
Reviewed-by: Stefan Schmidt
Acked-by: YOSHIFUJI Hideaki
Signed-off-by: Alexander Aring
Signed-off-by: David S. Miller -
This patch exports some neighbour discovery functions which can be used
by 6lowpan neighbour discovery ops functionality then.Cc: David S. Miller
Cc: Alexey Kuznetsov
Cc: James Morris
Cc: Hideaki YOSHIFUJI
Cc: Patrick McHardy
Acked-by: YOSHIFUJI Hideaki
Reviewed-by: Stefan Schmidt
Signed-off-by: Alexander Aring
Signed-off-by: David S. Miller -
This patch introduces neighbour discovery ops callback structure. The
idea is to separate the handling for 6LoWPAN into the 6lowpan module.These callback offers 6lowpan different handling, such as 802.15.4 short
address handling or RFC6775 (Neighbor Discovery Optimization for IPv6
over 6LoWPANs).Cc: David S. Miller
Cc: Alexey Kuznetsov
Cc: James Morris
Cc: Hideaki YOSHIFUJI
Cc: Patrick McHardy
Acked-by: YOSHIFUJI Hideaki
Signed-off-by: Alexander Aring
Signed-off-by: David S. Miller -
This patch adds __ndisc_opt_addr_data as low-level function for
ndisc_opt_addr_data which doesn't depend on net_device parameter.Cc: David S. Miller
Cc: Alexey Kuznetsov
Cc: James Morris
Cc: Hideaki YOSHIFUJI
Cc: Patrick McHardy
Acked-by: YOSHIFUJI Hideaki
Reviewed-by: Stefan Schmidt
Signed-off-by: Alexander Aring
Signed-off-by: David S. Miller -
This patch adds __ndisc_opt_addr_space as low-level function for
ndisc_opt_addr_space which doesn't depend on net_device parameter.Cc: David S. Miller
Cc: Alexey Kuznetsov
Cc: James Morris
Cc: Hideaki YOSHIFUJI
Cc: Patrick McHardy
Acked-by: YOSHIFUJI Hideaki
Reviewed-by: Stefan Schmidt
Signed-off-by: Alexander Aring
Signed-off-by: David S. Miller
02 Dec, 2015
1 commit
-
This reverts commit ab450605b35caa768ca33e86db9403229bf42be4.
In IPv6, we cannot inherit the dst of the original dst. ndisc packets
are IPv6 packets and may take another route than the original packet.This patch breaks the following scenario: a packet comes from eth0 and
is forwarded through vxlan1. The encapsulated packet triggers an NS
which cannot be sent because of the wrong route.CC: Jiri Benc
CC: Thomas Graf
Signed-off-by: Nicolas Dichtel
Signed-off-by: David S. Miller
25 Sep, 2015
1 commit
-
Since commit 12fd84f4383b1 ("ipv6: Remove unused neigh argument for
icmp6_dst_alloc() and its callers."), the neigh parameter of ndisc_send_na
and ndisc_send_ns is unused.CC: YOSHIFUJI Hideaki
Signed-off-by: Jiri Benc
Signed-off-by: David S. Miller
21 Aug, 2015
1 commit
-
If output device wants to see the dst, inherit the dst of the original skb
in the ndisc request.This is an IPv6 counterpart of commit 0accfc268f4d ("arp: Inherit metadata
dst when creating ARP requests").Signed-off-by: Jiri Benc
Acked-by: Thomas Graf
Signed-off-by: David S. Miller
04 Mar, 2015
1 commit
-
While looking at the mpls code I found myself writing yet another
version of neigh_lookup_noref. We currently have __ipv4_lookup_noref
and __ipv6_lookup_noref.So to make my work a little easier and to make it a smidge easier to
verify/maintain the mpls code in the future I stopped and wrote
___neigh_lookup_noref. Then I rewote __ipv4_lookup_noref and
__ipv6_lookup_noref in terms of this new function. I tested my new
version by verifying that the same code is generated in
ip_finish_output2 and ip6_finish_output2 where these functions are
inlined.To get to ___neigh_lookup_noref I added a new neighbour cache table
function key_eq. So that the static size of the key would be
available.I also added __neigh_lookup_noref for people who want to to lookup
a neighbour table entry quickly but don't know which neibhgour table
they are going to look up.Signed-off-by: "Eric W. Biederman"
Signed-off-by: David S. Miller
22 Sep, 2013
1 commit
-
There are a mix of function prototypes with and without extern
in the kernel sources. Standardize on not using extern for
function prototypes.Function prototypes don't need to be written with extern.
extern is assumed by the compiler. Its use is as unnecessary as
using auto to declare automatic/local variables in a block.Signed-off-by: Joe Perches
Signed-off-by: David S. Miller
12 Sep, 2013
1 commit
-
When loading the ipv6 module, ndisc_init() is called before
ip6_route_init(). As the former registers a handler calling
fib6_run_gc(), this opens a window to run the garbage collector
before necessary data structures are initialized. If a network
device is initialized in this window, adding MAC address to it
triggers a NETDEV_CHANGEADDR event, leading to a crash in
fib6_clean_all().Take the event handler registration out of ndisc_init() into a
separate function ndisc_late_init() and move it after
ip6_route_init().Signed-off-by: Michal Kubecek
Signed-off-by: David S. Miller
01 Sep, 2013
1 commit
-
This patch adds the IPv6 version of "arp_reduce", ndisc_send_na()
will be needed.Cc: David S. Miller
Cc: David Stevens
Signed-off-by: Cong Wang
Signed-off-by: David S. Miller
01 Aug, 2013
1 commit
-
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller
20 Jun, 2013
1 commit
-
This typedef is unnecessary and should just be removed.
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller
22 Jan, 2013
1 commit
-
This also makes ndisc_opt_addr_data() and ndisc_fill_addr_option()
use ndisc_opt_addr_space().Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller
18 Jan, 2013
2 commits
-
This function, which looks up neighbour entry for an IPv6 address
without touching refcnt, will be used for patches to remove
dependency on rt->n (neighbour entry in rt6_info).Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller -
We can refer to nd_tbl directly.
Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller
15 Dec, 2012
1 commit
-
In function ndisc_redirect_rcv(), the skb->data points to the transport
header, but function icmpv6_notify() need the skb->data points to the
inner IP packet. So before using icmpv6_notify() to propagate redirect,
change skb->data to point the inner IP packet that triggered the sending
of the Redirect, and introduce struct rd_msg to make it easy.Signed-off-by: Duan Jiong
Signed-off-by: David S. Miller
13 Dec, 2012
1 commit
-
These symbols were exported for bonding device by commit 305d552a
("bonding: send IPv6 neighbor advertisement on failover").It bacame obsolete by commit 7c899432 ("bonding, ipv4, ipv6, vlan: Handle
NETDEV_BONDING_FAILOVER like NETDEV_NOTIFY_PEERS") and removed by
commit 4f5762ec ("bonding: Remove obsolete source file 'bond_ipv6.c'").Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller
10 Aug, 2012
1 commit
-
Eric noticed, that when there will be devices with equal indices, some
hash functions that use them will become less effective as they could.
Fix this in advance by mixing the net_device address into the hash value
instead of the device index.This is true for arp and ndisc hash fns. The netlabel, can and llc ones
are also ifindex-based, but that three are init_net-only, thus will not
be affected.Many thanks to David and Eric for the hash32_ptr implementation!
Signed-off-by: Pavel Emelyanov
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
12 Jul, 2012
1 commit
-
This is going to be used internally by the rt6 redirect code.
Signed-off-by: David S. Miller
13 Apr, 2012
1 commit
-
As specified in RFC6106, DNSSL option contains one or more domain names
of DNS suffixes. 8-bit identifier of the DNSSL option type as assigned
by the IANA is 31. This option should also be treated as userland.Signed-off-by: Alexey I. Froloff
Signed-off-by: David S. Miller
28 Jan, 2012
1 commit
-
Instead, compute it as-needed inside of that function using
dst_neigh_lookup().Signed-off-by: David S. Miller
29 Dec, 2011
2 commits
-
Also, create and use an rt6_bind_neighbour() in net/ipv6/route.c to
consolidate some common logic.Signed-off-by: David S. Miller
-
In order to perform a proper universal hash on a vector of integers,
we have to use different universal hashes on each vector element.Which means we need 4 different hash randoms for ipv6.
Signed-off-by: David S. Miller
04 Dec, 2011
1 commit
-
It's only used in net/ipv6/route.c and the NULL device check is
superfluous for all of the existing call sites.Just expand the __ndisc_lookup_errno() call at each location.
Signed-off-by: David S. Miller
25 Apr, 2011
1 commit
-
These header files are never installed to user consumption, so any
__KERNEL__ cpp checks are superfluous.Projects should also not copy these files into their userland utility
sources and try to use them there. If they insist on doing so, the
onus is on them to sanitize the headers as needed.Signed-off-by: David S. Miller
23 Apr, 2011
1 commit
-
Add const qualifiers to structs iphdr, ipv6hdr and in6_addr pointers
where possible, to make code intention more obvious.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
03 Dec, 2010
1 commit
-
These macros have been defined for several years since v2.6.12-rc2(tracing by git),
but never be used. So remove them.Signed-off-by: Shan Wei
Signed-off-by: David S. Miller
03 Jun, 2010
1 commit
-
cleanup patch.
Use new __packed annotation in net/ and include/
(except netfilter)Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
24 Sep, 2009
1 commit
-
It's unused.
It isn't needed -- read or write flag is already passed and sysctl
shouldn't care about the rest.It _was_ used in two places at arch/frv for some reason.
Signed-off-by: Alexey Dobriyan
Cc: David Howells
Cc: "Eric W. Biederman"
Cc: Al Viro
Cc: Ralf Baechle
Cc: Martin Schwidefsky
Cc: Ingo Molnar
Cc: "David S. Miller"
Cc: James Morris
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 Jan, 2009
1 commit
-
Thanks to excellent diagnosis by Eduard Guzovsky.
The core problem is that on a network with lots of active
multicast traffic, the neighbour cache can fill up. If
we try to allocate a new route and thus neighbour cache
entry, the bog-standard GC attempt the neighbour layer does
in ineffective because route entries hold a reference
to the existing neighbour entries and GC can only liberate
entries with no references.IPV4 already has a way to handle this, by doing a route cache
GC in such situations (when neigh attach returns -ENOBUFS).So simply mimick this on the ipv6 side.
Tested-by: Eduard Guzovsky
Signed-off-by: David S. Miller
06 Nov, 2008
1 commit
-
This patch adds better IPv6 failover support for bonding devices,
especially when in active-backup mode and there are only IPv6 addresses
configured, as reported by Alex Sidorenko.- Creates a new file, net/drivers/bonding/bond_ipv6.c, for the
IPv6-specific routines. Both regular bonds and VLANs over bonds
are supported.- Adds a new tunable, num_unsol_na, to limit the number of unsolicited
IPv6 Neighbor Advertisements that are sent on a failover event.
Default is 1.- Creates two new IPv6 neighbor discovery functions:
ndisc_build_skb()
ndisc_send_skb()These were required to support VLANs since we have to be able to
add the VLAN id to the skb since ndisc_send_na() and friends
shouldn't be asked to do this. These two routines are basically
__ndisc_send() split into two pieces, in a slightly different order.- Updates Documentation/networking/bonding.txt and bumps the rev of bond
support to 3.4.0.On failover, this new code will generate one packet:
- An unsolicited IPv6 Neighbor Advertisement, which helps the switch
learn that the address has moved to the new slave.Testing has shown that sending just the NA results in pretty good
behavior when in active-back mode, I saw no lost ping packets for example.Signed-off-by: Brian Haley
Signed-off-by: Jay Vosburgh
Signed-off-by: Jeff Garzik
17 Oct, 2008
1 commit
-
name and nlen parameters passed to ->strategy hook are unused, remove
them. In general ->strategy hook should know what it's doing, and don't
do something tricky for which, say, pointer to original userspace array
may be needed (name).Signed-off-by: Alexey Dobriyan
Acked-by: David S. Miller [ networking bits ]
Cc: Ralf Baechle
Cc: David Howells
Cc: Matt Mackall
Cc: "Eric W. Biederman"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
20 May, 2008
1 commit
-
Noticed from Al Viro via David Miller
.Signed-off-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller