diff options
author | Jiri Benc <jbenc@redhat.com> | 2015-08-20 14:56:25 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-21 01:42:36 +0300 |
commit | 61adedf3e3f1d3f032c5a6a299978d91eff6d555 (patch) | |
tree | b0d915083b64f9196bf90135a501779762149a9e /include/net/dst.h | |
parent | 7c383fb2254c44e096427470da6a36380169b548 (diff) | |
download | linux-61adedf3e3f1d3f032c5a6a299978d91eff6d555.tar.xz |
route: move lwtunnel state to dst_entry
Currently, the lwtunnel state resides in per-protocol data. This is
a problem if we encapsulate ipv6 traffic in an ipv4 tunnel (or vice versa).
The xmit function of the tunnel does not know whether the packet has been
routed to it by ipv4 or ipv6, yet it needs the lwtstate data. Moving the
lwtstate data to dst_entry makes such inter-protocol tunneling possible.
As a bonus, this brings a nice diffstat.
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dst.h')
-rw-r--r-- | include/net/dst.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 2578811cef51..0a9a723f6c19 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -44,6 +44,7 @@ struct dst_entry { #else void *__pad1; #endif + struct lwtunnel_state *lwtstate; int (*input)(struct sk_buff *); int (*output)(struct sock *sk, struct sk_buff *skb); @@ -89,7 +90,7 @@ struct dst_entry { * (L1_CACHE_SIZE would be too much) */ #ifdef CONFIG_64BIT - long __pad_to_align_refcnt[2]; + long __pad_to_align_refcnt[1]; #endif /* * __refcnt wants to be on a different cache line from |