From b46f69023caa58f9ba8df74451d590158481da96 Mon Sep 17 00:00:00 2001 From: Srinivasan Ramasubramanian <srini@bigswitch.com> Date: Mon, 10 Sep 2012 19:08:25 -0700 Subject: [PATCH] If an attachment point port from packet-in does not replace already known attachment point, put it in oldAP list only if it was picked up from oldAP list. Otherwise, ignore the attachment point. --- .../floodlightcontroller/devicemanager/internal/Device.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java index be2ef2672..a5e855738 100755 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java @@ -329,6 +329,7 @@ entity.getLastSeenTimestamp().getTime()); ITopologyService topology = deviceManager.topology; List<AttachmentPoint> oldAPList; List<AttachmentPoint> apList; + boolean oldAPFlag = false; if (!deviceManager.isValidAttachmentPoint(sw, port)) return false; AttachmentPoint newAP = new AttachmentPoint(sw, port, lastSeen); @@ -346,6 +347,7 @@ entity.getLastSeenTimestamp().getTime()); newAP = oldAPList.remove(index); newAP.setLastSeen(lastSeen); this.oldAPs = oldAPList; + oldAPFlag = true; log.debug("DEVICE_MOVE: OldAPs changed for device: {}", oldAPList); } @@ -404,7 +406,8 @@ entity.getLastSeenTimestamp().getTime()); // possible duplicates. oldAPList = new ArrayList<AttachmentPoint>(); if (oldAPs != null) oldAPList.addAll(oldAPs); - oldAPList.add(newAP); + // Add ot oldAPList only if it was picked up from the oldAPList + if (oldAPFlag) oldAPList.add(newAP); log.debug("DEVICE_MOVED: New attachment point {} does not" + " replace already existing one {}.", newAP, oldAP); this.oldAPs = oldAPList; -- GitLab