]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/ipv6/ip6_tunnel.c
ipv6: Add redirect support to all protocol icmp error handlers.
[mirror_ubuntu-artful-kernel.git] / net / ipv6 / ip6_tunnel.c
index 6af3fcfdcbbdaff85f669c28617775cba4e7a6b7..0b5b60ec6f4ad4d155c73eeb37a3aa15e9ef91bd 100644 (file)
@@ -550,6 +550,9 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
                rel_type = ICMP_DEST_UNREACH;
                rel_code = ICMP_FRAG_NEEDED;
                break;
+       case NDISC_REDIRECT:
+               rel_type = ICMP_REDIRECT;
+               rel_code = ICMP_REDIR_HOST;
        default:
                return 0;
        }
@@ -608,6 +611,10 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 
                skb_dst(skb2)->ops->update_pmtu(skb_dst(skb2), rel_info);
        }
+       if (rel_type == ICMP_REDIRECT) {
+               if (skb_dst(skb2)->ops->redirect)
+                       skb_dst(skb2)->ops->redirect(skb_dst(skb2), skb2);
+       }
 
        icmp_send(skb2, rel_type, rel_code, htonl(rel_info));