ipv4: Cache source address in nexthop entries.
authorDavid S. Miller <davem@davemloft.net>
Tue, 8 Mar 2011 04:54:48 +0000 (20:54 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Mar 2011 04:54:48 +0000 (20:54 -0800)
commit1fc050a13473348f5c439de2bb41c8e92dba5588
treeb2cecf15f5de87997fb44b4a1025b48d473cd038
parent6118e35a7126c1062b1a0f6737b84b4fe4d5c8d4
ipv4: Cache source address in nexthop entries.

When doing output route lookups, we have to select the source address
if the user has not specified an explicit one.

First, if the route has an explicit preferred source address
specified, then we use that.

Otherwise we search the route's outgoing interface for a suitable
address.

This search can be precomputed and cached at route insertion time.

The only missing part is that we have to refresh this precomputed
value any time addresses are added or removed from the interface, and
this is accomplished by fib_update_nh_saddrs().

Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
net/ipv4/fib_frontend.c
net/ipv4/fib_semantics.c