Merge tag 'pm+acpi-4.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[deliverable/linux.git] / net / ipv6 / ndisc.c
index 84afb9a7727848038b51ee7a60eebb28d555f693..c245895a3d416b3eed0ab537b61950b618b2944c 100644 (file)
@@ -883,6 +883,7 @@ static void ndisc_recv_na(struct sk_buff *skb)
                                    offsetof(struct nd_msg, opt));
        struct ndisc_options ndopts;
        struct net_device *dev = skb->dev;
+       struct inet6_dev *idev = __in6_dev_get(dev);
        struct inet6_ifaddr *ifp;
        struct neighbour *neigh;
 
@@ -902,6 +903,14 @@ static void ndisc_recv_na(struct sk_buff *skb)
                return;
        }
 
+       /* For some 802.11 wireless deployments (and possibly other networks),
+        * there will be a NA proxy and unsolicitd packets are attacks
+        * and thus should not be accepted.
+        */
+       if (!msg->icmph.icmp6_solicited && idev &&
+           idev->cnf.drop_unsolicited_na)
+               return;
+
        if (!ndisc_parse_options(msg->opt, ndoptlen, &ndopts)) {
                ND_PRINTK(2, warn, "NS: invalid ND option\n");
                return;
This page took 0.036337 seconds and 5 git commands to generate.