• Erik Kline's avatar
    net: ipv6: Add a sysctl to make optimistic addresses useful candidates · 7ac0130a
    Erik Kline authored
    Add a sysctl that causes an interface's optimistic addresses
    to be considered equivalent to other non-deprecated addresses
    for source address selection purposes.  Preferred addresses
    will still take precedence over optimistic addresses, subject
    to other ranking in the source address selection algorithm.
    
    This is useful where different interfaces are connected to
    different networks from different ISPs (e.g., a cell network
    and a home wifi network).
    
    The current behaviour complies with RFC 3484/6724, and it
    makes sense if the host has only one interface, or has
    multiple interfaces on the same network (same or cooperating
    administrative domain(s), but not in the multiple distinct
    networks case.
    
    For example, if a mobile device has an IPv6 address on an LTE
    network and then connects to IPv6-enabled wifi, while the wifi
    IPv6 address is undergoing DAD, IPv6 connections will try use
    the wifi default route with the LTE IPv6 address, and will get
    stuck until they time out.
    
    Also, because optimistic nodes can receive frames, issue
    an RTM_NEWADDR as soon as DAD starts (with the IFA_F_OPTIMSTIC
    flag appropriately set).  A second RTM_NEWADDR is sent if DAD
    completes (the address flags have changed), otherwise an
    RTM_DELADDR is sent.
    
    Also: add an entry in ip-sysctl.txt for optimistic_dad.
    
    [backport of net-next 7fd2561e4ebdd070ebba6d3326c4c5b13942323f]
    Signed-off-by: default avatarErik Kline <ek@google.com>
    Acked-by: default avatarLorenzo Colitti <lorenzo@google.com>
    Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Bug: 17769720
    Bug: 18180674
    Change-Id: I440a9b8c788db6767d191bbebfd2dff481aa9e0d
    7ac0130a
Name
Last commit
Last update
..
ABI Loading commit data...
DocBook Loading commit data...
EDID Loading commit data...
PCI Loading commit data...
RCU Loading commit data...
accounting Loading commit data...
acpi Loading commit data...
aoe Loading commit data...
arm Loading commit data...
auxdisplay Loading commit data...
backlight Loading commit data...
blackfin Loading commit data...
block Loading commit data...
blockdev Loading commit data...
cdrom Loading commit data...
cgroups Loading commit data...
connector Loading commit data...
console Loading commit data...
cpu-freq Loading commit data...
cpuidle Loading commit data...
cris Loading commit data...
crypto Loading commit data...
development-process Loading commit data...
device-mapper Loading commit data...
devicetree Loading commit data...
driver-model Loading commit data...
dvb Loading commit data...
early-userspace Loading commit data...
fault-injection Loading commit data...
fb Loading commit data...
filesystems Loading commit data...
firmware_class Loading commit data...
frv Loading commit data...
hid Loading commit data...
hwmon Loading commit data...
i2c Loading commit data...
i2o Loading commit data...
ia64 Loading commit data...
ide Loading commit data...
infiniband Loading commit data...
input Loading commit data...
ioctl Loading commit data...
isdn Loading commit data...
ja_JP Loading commit data...
kbuild Loading commit data...
kdump Loading commit data...
ko_KR Loading commit data...
laptops Loading commit data...
leds Loading commit data...
m68k Loading commit data...
make Loading commit data...
mips Loading commit data...
misc-devices Loading commit data...
mmc Loading commit data...
mn10300 Loading commit data...
mtd Loading commit data...
namespaces Loading commit data...
netlabel Loading commit data...
networking Loading commit data...
nfc Loading commit data...
parisc Loading commit data...
pcmcia Loading commit data...
power Loading commit data...
powerpc Loading commit data...
pps Loading commit data...
prctl Loading commit data...
pti Loading commit data...
ptp Loading commit data...
rapidio Loading commit data...
s390 Loading commit data...
scheduler Loading commit data...
scsi Loading commit data...
security Loading commit data...
serial Loading commit data...
sh Loading commit data...
sound Loading commit data...
sparc Loading commit data...
spi Loading commit data...
sysctl Loading commit data...
target Loading commit data...
telephony Loading commit data...
thermal Loading commit data...
timers Loading commit data...
trace Loading commit data...
usb Loading commit data...
vDSO Loading commit data...
video4linux Loading commit data...
virtual Loading commit data...
vm Loading commit data...
w1 Loading commit data...
watchdog Loading commit data...
wimax Loading commit data...
x86 Loading commit data...
zh_CN Loading commit data...
.gitignore Loading commit data...
00-INDEX Loading commit data...
BUG-HUNTING Loading commit data...
Changes Loading commit data...
CodingStyle Loading commit data...
DMA-API-HOWTO.txt Loading commit data...
DMA-API.txt Loading commit data...
DMA-ISA-LPC.txt Loading commit data...
DMA-attributes.txt Loading commit data...
HOWTO Loading commit data...
IPMI.txt Loading commit data...
IRQ-affinity.txt Loading commit data...
IRQ-domain.txt Loading commit data...
IRQ.txt Loading commit data...
Intel-IOMMU.txt Loading commit data...
Makefile Loading commit data...
ManagementStyle Loading commit data...
SAK.txt Loading commit data...
SM501.txt Loading commit data...
SecurityBugs Loading commit data...
SubmitChecklist Loading commit data...
SubmittingDrivers Loading commit data...
SubmittingPatches Loading commit data...
VGA-softcursor.txt Loading commit data...
android.txt Loading commit data...
applying-patches.txt Loading commit data...
atomic_ops.txt Loading commit data...
bad_memory.txt Loading commit data...
basic_profiling.txt Loading commit data...
binfmt_misc.txt Loading commit data...
braille-console.txt Loading commit data...
bt8xxgpio.txt Loading commit data...
btmrvl.txt Loading commit data...
bus-virt-phys-mapping.txt Loading commit data...
cachetlb.txt Loading commit data...
circular-buffers.txt Loading commit data...
clk.txt Loading commit data...
coccinelle.txt Loading commit data...
cpu-hotplug.txt Loading commit data...
cpu-load.txt Loading commit data...
cputopology.txt Loading commit data...
crc32.txt Loading commit data...
csdio.txt Loading commit data...
dcdbas.txt Loading commit data...
debugging-modules.txt Loading commit data...
debugging-via-ohci1394.txt Loading commit data...
dell_rbu.txt Loading commit data...
devices.txt Loading commit data...
digsig.txt Loading commit data...
dma-buf-sharing.txt Loading commit data...
dmaengine.txt Loading commit data...
dontdiff Loading commit data...
dynamic-debug-howto.txt Loading commit data...
edac.txt Loading commit data...
eisa.txt Loading commit data...
email-clients.txt Loading commit data...
feature-removal-schedule.txt Loading commit data...
flexible-arrays.txt Loading commit data...
futex-requeue-pi.txt Loading commit data...
gcov.txt Loading commit data...
genlock.txt Loading commit data...
gpio.txt Loading commit data...
highuid.txt Loading commit data...
hw_random.txt Loading commit data...
hwspinlock.txt Loading commit data...
init.txt Loading commit data...
initrd.txt Loading commit data...
intel_txt.txt Loading commit data...
io-mapping.txt Loading commit data...
io_ordering.txt Loading commit data...
iostats.txt Loading commit data...
irqflags-tracing.txt Loading commit data...
isapnp.txt Loading commit data...
java.txt Loading commit data...
kernel-doc-nano-HOWTO.txt Loading commit data...
kernel-docs.txt Loading commit data...
kernel-parameters.txt Loading commit data...
kmemcheck.txt Loading commit data...
kmemleak.txt Loading commit data...
kobject.txt Loading commit data...
kprobes.txt Loading commit data...
kref.txt Loading commit data...
ldm.txt Loading commit data...
local_ops.txt Loading commit data...
lockdep-design.txt Loading commit data...
lockstat.txt Loading commit data...
lockup-watchdogs.txt Loading commit data...
logo.gif Loading commit data...
logo.txt Loading commit data...
magic-number.txt Loading commit data...
mca.txt Loading commit data...
md.txt Loading commit data...
media-framework.txt Loading commit data...
memory-barriers.txt Loading commit data...
memory-hotplug.txt Loading commit data...
memory.txt Loading commit data...
mono.txt Loading commit data...
mutex-design.txt Loading commit data...
nommu-mmap.txt Loading commit data...
numastat.txt Loading commit data...
oops-tracing.txt Loading commit data...
padata.txt Loading commit data...
parport-lowlevel.txt Loading commit data...
parport.txt Loading commit data...
pi-futex.txt Loading commit data...
pinctrl.txt Loading commit data...
pnp.txt Loading commit data...
preempt-locking.txt Loading commit data...
printk-formats.txt Loading commit data...
prio_tree.txt Loading commit data...
ramoops.txt Loading commit data...
rbtree.txt Loading commit data...
remoteproc.txt Loading commit data...
rfkill.txt Loading commit data...
robust-futex-ABI.txt Loading commit data...
robust-futexes.txt Loading commit data...
rpmsg.txt Loading commit data...
rt-mutex-design.txt Loading commit data...
rt-mutex.txt Loading commit data...
rtc.txt Loading commit data...
serial-console.txt Loading commit data...
sgi-ioc4.txt Loading commit data...
sgi-visws.txt Loading commit data...
sparse.txt Loading commit data...
spinlocks.txt Loading commit data...
stable_api_nonsense.txt Loading commit data...
stable_kernel_rules.txt Loading commit data...
static-keys.txt Loading commit data...
svga.txt Loading commit data...
sync.txt Loading commit data...
sysfs-rules.txt Loading commit data...
sysrq.txt Loading commit data...
unaligned-memory-access.txt Loading commit data...
unicode.txt Loading commit data...
unshare.txt Loading commit data...
vgaarbiter.txt Loading commit data...
video-output.txt Loading commit data...
volatile-considered-harmful.txt Loading commit data...
workqueue.txt Loading commit data...
xz.txt Loading commit data...
zorro.txt Loading commit data...