diff mbox

[RFC,net-next,06/22] ipv4: redirect dst output to lwtunnel output

Message ID ec85c9cef76c5106822f3647eacca7b31e71abab.1436537414.git.tgraf@suug.ch
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Thomas Graf July 10, 2015, 2:19 p.m. UTC
From: Roopa Prabhu <roopa@cumulusnetworks.com>

For input routes with tunnel encap state this patch redirects
dst output functions to lwtunnel_output which later resolves to
the corresponding lwtunnel output function.

This has been tested to work with mpls ip tunnels.

Open items: Support for tunnel mtu, pmtu, fragmentation can be
added by hooking into the corresponding (ipv4, ipv6) dst ops.
We may do this differently when lwtstate moves to dst or dst_metadata
as per upstream discussions.

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
---
 net/ipv4/route.c | 2 ++
 1 file changed, 2 insertions(+)
diff mbox

Patch

diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index bfc0a18..d3964fa 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -1634,6 +1634,8 @@  static int __mkroute_input(struct sk_buff *skb,
 	rth->dst.output = ip_output;
 
 	rt_set_nexthop(rth, daddr, res, fnhe, res->fi, res->type, itag);
+	if (lwtunnel_output_redirect(rth->rt_lwtstate))
+		rth->dst.output = lwtunnel_output;
 	skb_dst_set(skb, &rth->dst);
 out:
 	err = 0;