ipv4: Cache dst in tunnels

Avoid doing a route lookup on every packet being tunneled.

In ip_tunnel.c cache the route returned from ip_route_output if
the tunnel is "connected" so that all the rouitng parameters are
taken from tunnel parms for a packet. Specifically, not NBMA tunnel
and tos is from tunnel parms (not inner packet).

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Tom Herbert
2014-01-02 11:48:26 -08:00
committed by David S. Miller
parent f916ec9608
commit 7d442fab0a
2 changed files with 92 additions and 24 deletions
+3
View File
@@ -54,6 +54,9 @@ struct ip_tunnel {
int hlen; /* Precalculated header length */
int mlink;
struct dst_entry __rcu *dst_cache;
spinlock_t dst_lock;
struct ip_tunnel_parm parms;
/* for SIT */