ipv4: Adjust semantics of rt->rt_gateway.
authorDavid S. Miller <davem@davemloft.net>
Fri, 13 Jul 2012 12:03:45 +0000 (05:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Jul 2012 20:31:20 +0000 (13:31 -0700)
commitf8126f1d5136be1ca1a3536d43ad7a710b5620f8
tree8a92815052257c4ca29461f5b9ddaaeac288a7ed
parentf1ce3062c53809d862d8a04e7a0566c3cc4e0bda
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>
include/net/route.h
net/ipv4/arp.c
net/ipv4/inet_connection_sock.c
net/ipv4/ip_gre.c
net/ipv4/ip_output.c
net/ipv4/ipip.c
net/ipv4/netfilter/ipt_MASQUERADE.c
net/ipv4/route.c