xfrm: Move dst->path into struct xfrm_dst
authorDavid Miller <davem@davemloft.net>
Tue, 28 Nov 2017 20:40:46 +0000 (15:40 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 30 Nov 2017 14:54:26 +0000 (09:54 -0500)
commit0f6c480f23f49b53644b383c5554e579498347f3
tree7e1c0f3c4791d546b3a673cd72cc8ec34c3cbc23
parent3a2232e92e87166a8a5113e918b8c7b7bdce4d83
xfrm: Move dst->path into struct xfrm_dst

The first member of an IPSEC route bundle chain sets it's dst->path to
the underlying ipv4/ipv6 route that carries the bundle.

Stated another way, if one were to follow the xfrm_dst->child chain of
the bundle, the final non-NULL pointer would be the path and point to
either an ipv4 or an ipv6 route.

This is largely used to make sure that PMTU events propagate down to
the correct ipv4 or ipv6 route.

When we don't have the top of an IPSEC bundle 'dst->path == dst'.

Move it down into xfrm_dst and key off of dst->xfrm.

Signed-off-by: David S. Miller <davem@davemloft.net>
Reviewed-by: Eric Dumazet <edumazet@google.com>
include/net/dst.h
include/net/xfrm.h
net/bridge/br_nf_core.c
net/core/dst.c
net/ipv4/route.c
net/ipv6/ip6_output.c
net/ipv6/route.c
net/xfrm/xfrm_device.c
net/xfrm/xfrm_policy.c