diff --git a/net/icmpv6/icmpv6_autoconfig.c b/net/icmpv6/icmpv6_autoconfig.c index 16cfce0d79c..43bc5ca3b9d 100644 --- a/net/icmpv6/icmpv6_autoconfig.c +++ b/net/icmpv6/icmpv6_autoconfig.c @@ -340,17 +340,21 @@ int icmpv6_autoconfig(FAR struct net_driver_s *dev) * method must be employed. */ - ret = icmpv6_neighbor(dev, lladdr); - if (ret >= 0) + if (dev->d_lltype == NET_LL_ETHERNET || + dev->d_lltype == NET_LL_IEEE80211) { - /* Hmmm... someone else responded to our Neighbor Solicitation. We - * have no back-up plan in place. Just bail. - */ + ret = icmpv6_neighbor(dev, lladdr); + if (ret >= 0) + { + /* Hmmm... someone else responded to our Neighbor Solicitation. We + * have no back-up plan in place. Just bail. + */ - nerr("ERROR: IP conflict\n"); + nerr("ERROR: IP conflict\n"); - net_unlock(); - return -EEXIST; + net_unlock(); + return -EEXIST; + } } #endif