diff options
author | David Ahern <dsahern@gmail.com> | 2018-02-13 20:32:04 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-02-14 14:43:32 -0500 |
commit | 9942895b5ee4b0db53f32fbcb4a51360607aac1b (patch) | |
tree | 81b8c17ab70dd6b085f61fdeb154998b1b6c70c0 /net/ipv4/route.c | |
parent | 64da58528bdbdba171cf6c6ffaf39c2ee75e3a10 (diff) |
net: Move ipv4 set_lwt_redirect helper to lwtunnel
IPv4 uses set_lwt_redirect to set the lwtunnel redirect functions as
needed. Move it to lwtunnel.h as lwtunnel_set_redirect and change
IPv6 to also use it.
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index b0ef4cc3e875..6ce623e3e2ab 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1645,19 +1645,6 @@ static void ip_del_fnhe(struct fib_nh *nh, __be32 daddr) spin_unlock_bh(&fnhe_lock); } -static void set_lwt_redirect(struct rtable *rth) -{ - if (lwtunnel_output_redirect(rth->dst.lwtstate)) { - rth->dst.lwtstate->orig_output = rth->dst.output; - rth->dst.output = lwtunnel_output; - } - - if (lwtunnel_input_redirect(rth->dst.lwtstate)) { - rth->dst.lwtstate->orig_input = rth->dst.input; - rth->dst.input = lwtunnel_input; - } -} - /* called in rcu_read_lock() section */ static int __mkroute_input(struct sk_buff *skb, const struct fib_result *res, @@ -1748,7 +1735,7 @@ rt_cache: rt_set_nexthop(rth, daddr, res, fnhe, res->fi, res->type, itag, do_cache); - set_lwt_redirect(rth); + lwtunnel_set_redirect(&rth->dst); skb_dst_set(skb, &rth->dst); out: err = 0; @@ -2267,7 +2254,7 @@ add: } rt_set_nexthop(rth, fl4->daddr, res, fnhe, fi, type, 0, do_cache); - set_lwt_redirect(rth); + lwtunnel_set_redirect(&rth->dst); return rth; } |