aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/ipip.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-13 08:03:45 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-20 16:31:20 -0400
commitf8126f1d5136be1ca1a3536d43ad7a710b5620f8 (patch)
tree8a92815052257c4ca29461f5b9ddaaeac288a7ed /net/ipv4/ipip.c
parentf1ce3062c53809d862d8a04e7a0566c3cc4e0bda (diff)
ipv4: Adjust semantics of rt->rt_gateway.
In order to allow prefixed routes, we have to adjust how rt_gateway is set and interpreted. The new interpretation is: 1) rt_gateway == 0, destination is on-link, nexthop is iph->daddr 2) rt_gateway != 0, destination requires a nexthop gateway Abstract the fetching of the proper nexthop value using a new inline helper, rt_nexthop(), as suggested by Joe Perches. Signed-off-by: David S. Miller <davem@davemloft.net> Tested-by: Vijay Subramanian <subramanian.vijay@gmail.com>
Diffstat (limited to 'net/ipv4/ipip.c')
-rw-r--r--net/ipv4/ipip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 2c2c35bace76..99af1f0cc658 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -487,7 +487,7 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
487 dev->stats.tx_fifo_errors++; 487 dev->stats.tx_fifo_errors++;
488 goto tx_error; 488 goto tx_error;
489 } 489 }
490 dst = rt->rt_gateway; 490 dst = rt_nexthop(rt, old_iph->daddr);
491 } 491 }
492 492
493 rt = ip_route_output_ports(dev_net(dev), &fl4, NULL, 493 rt = ip_route_output_ports(dev_net(dev), &fl4, NULL,