aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_policy.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-12 03:25:15 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-12 03:25:15 -0400
commitec18d9a2691d69cd14b48f9b919fddcef28b7f5c (patch)
tree4d10135edfe25d4ff56e39330b0f7797b2034b8a /net/ipv6/xfrm6_policy.c
parent3a5ad2ee5e2c5030d8a303d06f9148a2f893a369 (diff)
ipv6: Add redirect support to all protocol icmp error handlers.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/xfrm6_policy.c')
-rw-r--r--net/ipv6/xfrm6_policy.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
index bb02038b822b..f5a9cb8257b9 100644
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -215,6 +215,14 @@ static void xfrm6_update_pmtu(struct dst_entry *dst, u32 mtu)
215 path->ops->update_pmtu(path, mtu); 215 path->ops->update_pmtu(path, mtu);
216} 216}
217 217
218static void xfrm6_redirect(struct dst_entry *dst, struct sk_buff *skb)
219{
220 struct xfrm_dst *xdst = (struct xfrm_dst *)dst;
221 struct dst_entry *path = xdst->route;
222
223 path->ops->redirect(path, skb);
224}
225
218static void xfrm6_dst_destroy(struct dst_entry *dst) 226static void xfrm6_dst_destroy(struct dst_entry *dst)
219{ 227{
220 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; 228 struct xfrm_dst *xdst = (struct xfrm_dst *)dst;
@@ -261,6 +269,7 @@ static struct dst_ops xfrm6_dst_ops = {
261 .protocol = cpu_to_be16(ETH_P_IPV6), 269 .protocol = cpu_to_be16(ETH_P_IPV6),
262 .gc = xfrm6_garbage_collect, 270 .gc = xfrm6_garbage_collect,
263 .update_pmtu = xfrm6_update_pmtu, 271 .update_pmtu = xfrm6_update_pmtu,
272 .redirect = xfrm6_redirect,
264 .cow_metrics = dst_cow_metrics_generic, 273 .cow_metrics = dst_cow_metrics_generic,
265 .destroy = xfrm6_dst_destroy, 274 .destroy = xfrm6_dst_destroy,
266 .ifdown = xfrm6_dst_ifdown, 275 .ifdown = xfrm6_dst_ifdown,