Committed by
Pavlin Radoslavov
ONOS-1153: Ignore Router Solicitation, Router Advertisement and DAD in HostLocationProvider
Change-Id: I533919fc0b04b87ca54ff0933ca87d38b664e2ef
Showing
1 changed file
with
10 additions
and
2 deletions
... | @@ -37,6 +37,8 @@ import org.onlab.packet.IpAddress; | ... | @@ -37,6 +37,8 @@ import org.onlab.packet.IpAddress; |
37 | import org.onlab.packet.VlanId; | 37 | import org.onlab.packet.VlanId; |
38 | import org.onlab.packet.ndp.NeighborAdvertisement; | 38 | import org.onlab.packet.ndp.NeighborAdvertisement; |
39 | import org.onlab.packet.ndp.NeighborSolicitation; | 39 | import org.onlab.packet.ndp.NeighborSolicitation; |
40 | +import org.onlab.packet.ndp.RouterAdvertisement; | ||
41 | +import org.onlab.packet.ndp.RouterSolicitation; | ||
40 | import org.onosproject.cfg.ComponentConfigService; | 42 | import org.onosproject.cfg.ComponentConfigService; |
41 | import org.onosproject.core.ApplicationId; | 43 | import org.onosproject.core.ApplicationId; |
42 | import org.onosproject.core.CoreService; | 44 | import org.onosproject.core.CoreService; |
... | @@ -281,17 +283,23 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid | ... | @@ -281,17 +283,23 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid |
281 | 283 | ||
282 | IPacket iPkt = ipv6; | 284 | IPacket iPkt = ipv6; |
283 | while (iPkt != null) { | 285 | while (iPkt != null) { |
286 | + // Ignore Router Solicitation and Advertisement | ||
287 | + if (iPkt instanceof RouterAdvertisement || | ||
288 | + iPkt instanceof RouterSolicitation) { | ||
289 | + return; | ||
290 | + } | ||
284 | if (iPkt instanceof NeighborAdvertisement || | 291 | if (iPkt instanceof NeighborAdvertisement || |
285 | iPkt instanceof NeighborSolicitation) { | 292 | iPkt instanceof NeighborSolicitation) { |
286 | IpAddress sourceAddress = | 293 | IpAddress sourceAddress = |
287 | IpAddress.valueOf(IpAddress.Version.INET6, | 294 | IpAddress.valueOf(IpAddress.Version.INET6, |
288 | ipv6.getSourceAddress()); | 295 | ipv6.getSourceAddress()); |
289 | // Ignore DAD packets, in which source address is zero | 296 | // Ignore DAD packets, in which source address is zero |
290 | - if (!sourceAddress.isZero()) { | 297 | + if (sourceAddress.isZero()) { |
298 | + return; | ||
299 | + } | ||
291 | ip = sourceAddress; | 300 | ip = sourceAddress; |
292 | break; | 301 | break; |
293 | } | 302 | } |
294 | - } | ||
295 | iPkt = iPkt.getPayload(); | 303 | iPkt = iPkt.getPayload(); |
296 | } | 304 | } |
297 | HostDescription hdescr = (ip == null) ? | 305 | HostDescription hdescr = (ip == null) ? | ... | ... |
-
Please register or login to post a comment