linux_dsm_epyc7002/net
David Ahern 4832c30d54 net: ipv6: put host and anycast routes on device with address
One nagging difference between ipv4 and ipv6 is host routes for ipv6
addresses are installed using the loopback device or VRF / L3 Master
device. e.g.,

    2001:db8:1::/120 dev veth0 proto kernel metric 256 pref medium
    local 2001:db8:1::1 dev lo table local proto kernel metric 0 pref medium

Using the loopback device is convenient -- necessary for local tx, but
has some nasty side effects, most notably setting the 'lo' device down
causes all host routes for all local IPv6 address to be removed from the
FIB and completely breaks IPv6 networking across all interfaces.

This patch puts FIB entries for IPv6 routes against the device. This
simplifies the routes in the FIB, for example by making dst->dev and
rt6i_idev->dev the same (a future patch can look at removing the device
reference taken for rt6i_idev for FIB entries).

When copies are made on FIB lookups, the cloned route has dst->dev
set to loopback (or the L3 master device). This is needed for the
local Tx of packets to local addresses.

With fib entries allocated against the real network device, the addrconf
code that reinserts host routes on admin up of 'lo' is no longer needed.

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-21 10:40:17 -07:00
..
6lowpan
9p
802
8021q
appletalk
atm net: atm: make atmdev_ops const 2017-08-09 22:43:50 -07:00
ax25
batman-adv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-09 16:28:45 -07:00
bluetooth Bluetooth: kfree tmp rather than an alias to it 2017-08-11 21:19:46 +02:00
bpf
bridge rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
caif
can rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
ceph libceph: make RECOVERY_DELETES feature create a new interval 2017-08-01 16:46:45 +02:00
core Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next 2017-08-21 09:29:47 -07:00
dcb rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
dccp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
decnet rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
dns_resolver
dsa dsa: remove unused net_device arg from handlers 2017-08-21 10:39:11 -07:00
ethernet
hsr
ieee802154
ife
ipv4 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next 2017-08-21 09:29:47 -07:00
ipv6 net: ipv6: put host and anycast routes on device with address 2017-08-21 10:40:17 -07:00
ipx
irda
iucv
kcm strparser: Generalize strparser 2017-08-01 15:26:19 -07:00
key Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
l2tp Revert "l2tp: constify inet6_protocol structures" 2017-08-01 10:03:17 -07:00
l3mdev
lapb
llc
mac80211 mac80211: add api to start ba session timer expired flow 2017-08-09 09:49:42 +03:00
mac802154
mpls rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
ncsi
netfilter net: ipv6: add second dif to inet6 socket lookups 2017-08-07 11:39:22 -07:00
netlabel
netlink
netrom
nfc
openvswitch openvswitch: Remove unnecessary newlines from OVS_NLERR uses 2017-08-11 14:52:47 -07:00
packet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-10 12:11:16 -07:00
phonet rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
psample
qrtr rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
rds Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-09 16:28:45 -07:00
rfkill
rose
rxrpc rxrpc: Move the packet.h include file into net/rxrpc/ 2017-07-21 11:00:20 +01:00
sched net: sched: cls_flower: fix ndo_setup_tc type for stats call 2017-08-16 14:29:41 -07:00
sctp sctp: fix some indents in sm_make_chunk.c 2017-08-11 10:02:44 -07:00
smc net/smc: synchronize buffer usage with device 2017-07-29 11:22:58 -07:00
strparser net: early init support for strparser 2017-08-16 11:27:52 -07:00
sunrpc NFS client bugfixes for 4.13 2017-07-21 16:26:01 -07:00
switchdev net: switchdev: Remove bridge bypass support from switchdev 2017-08-07 14:48:48 -07:00
tipc tipc: avoid inheriting msg_non_seq flag when message is returned 2017-08-14 11:20:36 -07:00
tls
unix net/unix: drop obsolete fd-recursion limits 2017-07-17 08:57:59 -07:00
vmw_vsock
wimax
wireless
x25 X25: constify null_x25_address 2017-08-03 09:13:51 -07:00
xfrm Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next 2017-08-21 09:29:47 -07:00
compat.c
Kconfig
Makefile
socket.c net: fixes for skb_send_sock 2017-08-16 11:27:52 -07:00
sysctl_net.c