From c21c6e63a113a6917f8221b8b748d0873458f1e3 Mon Sep 17 00:00:00 2001 From: Luca Prete Date: Thu, 22 Sep 2016 14:52:21 -0700 Subject: [PATCH] Fixes for VPLS app - fix intent installion on re-activation - don't send ARP requests to inport - send ARP requests to interfaces instead of connect point Change-Id: I8f9185d174160adb605b8b44e7d7ebddb49bd027 --- .../org/onosproject/vpls/IntentInstaller.java | 26 +++++++++---------- .../main/java/org/onosproject/vpls/Vpls.java | 4 +-- .../vpls/VplsNeighbourHandler.java | 2 +- .../java/org/onosproject/vpls/VplsTest.java | 12 +++++---- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/IntentInstaller.java b/apps/vpls/src/main/java/org/onosproject/vpls/IntentInstaller.java index d1d1d1aa51..79ed71351c 100644 --- a/apps/vpls/src/main/java/org/onosproject/vpls/IntentInstaller.java +++ b/apps/vpls/src/main/java/org/onosproject/vpls/IntentInstaller.java @@ -16,7 +16,6 @@ package org.onosproject.vpls; import com.google.common.collect.SetMultimap; - import org.apache.commons.lang3.tuple.Pair; import org.onlab.packet.MacAddress; import org.onlab.packet.VlanId; @@ -101,22 +100,21 @@ public class IntentInstaller { .collect(Collectors.toSet()); Key brcKey = buildKey(PREFIX_BROADCAST, src, vlanId); - if (intentService.getIntent(brcKey) == null && dsts.size() > 0) { - intents.add(buildBrcIntent(brcKey, src, dsts, vlanId)); + if (dsts.isEmpty()) { + return; } - if (mac != null && countMacInCPoints(cPoints) > 1 && - dsts.size() > 0) { + intents.add(buildBrcIntent(brcKey, src, dsts, vlanId)); + + if (mac != null && countMacInCPoints(cPoints) > 1) { Key uniKey = buildKey(PREFIX_UNICAST, src, vlanId); - if (intentService.getIntent(uniKey) == null) { - MultiPointToSinglePointIntent uniIntent = - buildUniIntent(uniKey, - dsts, - src, - vlanId, - mac); - intents.add(uniIntent); - } + MultiPointToSinglePointIntent uniIntent = + buildUniIntent(uniKey, + dsts, + src, + vlanId, + mac); + intents.add(uniIntent); } }); }); diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/Vpls.java b/apps/vpls/src/main/java/org/onosproject/vpls/Vpls.java index 298615bf86..2951d13e3d 100644 --- a/apps/vpls/src/main/java/org/onosproject/vpls/Vpls.java +++ b/apps/vpls/src/main/java/org/onosproject/vpls/Vpls.java @@ -100,13 +100,13 @@ public class Vpls { setupConnectivity(); - log.debug("Activated"); + log.info("Activated"); } @Deactivate public void deactivate() { intentSynchronizer.removeIntentsByAppId(appId); - log.debug("Deactivated"); + log.info("Deactivated"); } protected void setupConnectivity() { diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/VplsNeighbourHandler.java b/apps/vpls/src/main/java/org/onosproject/vpls/VplsNeighbourHandler.java index dad993b419..69b8e34bd7 100644 --- a/apps/vpls/src/main/java/org/onosproject/vpls/VplsNeighbourHandler.java +++ b/apps/vpls/src/main/java/org/onosproject/vpls/VplsNeighbourHandler.java @@ -126,7 +126,7 @@ public class VplsNeighbourHandler { case REQUEST: interfaceService.getInterfacesByVlan(context.vlan()) .stream() - .map(Interface::connectPoint) + .filter(intf -> !context.inPort().equals(intf.connectPoint())) .forEach(context::forward); break; case REPLY: diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java index ffc9c09d48..8f0556c6c7 100644 --- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java +++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java @@ -17,11 +17,13 @@ package org.onosproject.vpls; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -574,15 +576,15 @@ public class VplsTest { */ private class TestIntentService extends IntentServiceAdapter { - private Set intents; + private Map intents; public TestIntentService() { - intents = Sets.newHashSet(); + intents = Maps.newHashMap(); } @Override public void submit(Intent intent) { - intents.add(intent); + intents.put(intent.key(), intent); } @Override @@ -592,12 +594,12 @@ public class VplsTest { @Override public Iterable getIntents() { - return intents; + return intents.values(); } @Override public Intent getIntent(Key intentKey) { - for (Intent intent : intents) { + for (Intent intent : intents.values()) { if (intent.key().equals(intentKey)) { return intent; }