aboutsummaryrefslogtreecommitdiffstats
path: root/net/xfrm
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-07-18 03:40:17 -0400
committerDavid S. Miller <davem@davemloft.net>2011-07-18 03:40:17 -0400
commitd3aaeb38c40e5a6c08dd31a1b64da65c4352be36 (patch)
tree1c17b41d11edc7a7b3477a294cba440f2a14796c /net/xfrm
parent69cce1d1404968f78b177a0314f5822d5afdbbfb (diff)
net: Add ->neigh_lookup() operation to dst_ops
In the future dst entries will be neigh-less. In that environment we need to have an easy transition point for current users of dst->neighbour outside of the packet output fast path. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm')
-rw-r--r--net/xfrm/xfrm_policy.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 7803eb6af414..94fdcc7f1030 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -2385,6 +2385,11 @@ static unsigned int xfrm_default_mtu(const struct dst_entry *dst)
2385 return dst_mtu(dst->path); 2385 return dst_mtu(dst->path);
2386} 2386}
2387 2387
2388static struct neighbour *xfrm_neigh_lookup(const struct dst_entry *dst, const void *daddr)
2389{
2390 return dst_neigh_lookup(dst->path, daddr);
2391}
2392
2388int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo) 2393int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
2389{ 2394{
2390 struct net *net; 2395 struct net *net;
@@ -2410,6 +2415,8 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
2410 dst_ops->negative_advice = xfrm_negative_advice; 2415 dst_ops->negative_advice = xfrm_negative_advice;
2411 if (likely(dst_ops->link_failure == NULL)) 2416 if (likely(dst_ops->link_failure == NULL))
2412 dst_ops->link_failure = xfrm_link_failure; 2417 dst_ops->link_failure = xfrm_link_failure;
2418 if (likely(dst_ops->neigh_lookup == NULL))
2419 dst_ops->neigh_lookup = xfrm_neigh_lookup;
2413 if (likely(afinfo->garbage_collect == NULL)) 2420 if (likely(afinfo->garbage_collect == NULL))
2414 afinfo->garbage_collect = __xfrm_garbage_collect; 2421 afinfo->garbage_collect = __xfrm_garbage_collect;
2415 xfrm_policy_afinfo[afinfo->family] = afinfo; 2422 xfrm_policy_afinfo[afinfo->family] = afinfo;