From 6a07d2d622eaa06953f3353e39c080984076e8de Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Fri, 9 Oct 2015 18:32:44 -0700 Subject: Updated master to commit id 6ee8aa3e67ce89908a8c93aa9445c6f71a18f986 Change-Id: I94b055ee2f298daf71e2ec794fd0f2495bd8081f --- .../provider/lldp/impl/LLDPLinkProvider.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'framework/src/onos/providers/lldp') diff --git a/framework/src/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LLDPLinkProvider.java b/framework/src/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LLDPLinkProvider.java index 386d838f..a840f856 100644 --- a/framework/src/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LLDPLinkProvider.java +++ b/framework/src/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LLDPLinkProvider.java @@ -67,6 +67,8 @@ import java.util.concurrent.ScheduledExecutorService; import static com.google.common.base.Strings.isNullOrEmpty; import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; import static java.util.concurrent.TimeUnit.SECONDS; +import static org.onlab.packet.Ethernet.TYPE_BSN; +import static org.onlab.packet.Ethernet.TYPE_LLDP; import static org.onlab.util.Tools.get; import static org.onlab.util.Tools.groupedThreads; import static org.onosproject.net.Link.Type.DIRECT; @@ -326,10 +328,10 @@ public class LLDPLinkProvider extends AbstractProvider implements LinkProvider { */ private void requestIntercepts() { TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); - selector.matchEthType(Ethernet.TYPE_LLDP); + selector.matchEthType(TYPE_LLDP); packetService.requestPackets(selector.build(), PacketPriority.CONTROL, appId); - selector.matchEthType(Ethernet.TYPE_BSN); + selector.matchEthType(TYPE_BSN); if (useBDDP) { packetService.requestPackets(selector.build(), PacketPriority.CONTROL, appId); } else { @@ -342,9 +344,9 @@ public class LLDPLinkProvider extends AbstractProvider implements LinkProvider { */ private void withdrawIntercepts() { TrafficSelector.Builder selector = DefaultTrafficSelector.builder(); - selector.matchEthType(Ethernet.TYPE_LLDP); + selector.matchEthType(TYPE_LLDP); packetService.cancelPackets(selector.build(), PacketPriority.CONTROL, appId); - selector.matchEthType(Ethernet.TYPE_BSN); + selector.matchEthType(TYPE_BSN); packetService.cancelPackets(selector.build(), PacketPriority.CONTROL, appId); } @@ -394,7 +396,7 @@ public class LLDPLinkProvider extends AbstractProvider implements LinkProvider { synchronized (discoverers) { ld = discoverers.get(deviceId); if (ld == null) { - if (rules.isSuppressed(device)) { + if (rules != null && rules.isSuppressed(device)) { log.debug("LinkDiscovery from {} disabled by configuration", device.id()); return; } @@ -474,9 +476,15 @@ public class LLDPLinkProvider extends AbstractProvider implements LinkProvider { private class InternalPacketProcessor implements PacketProcessor { @Override public void process(PacketContext context) { - if (context == null) { + if (context == null || context.isHandled()) { return; } + + Ethernet eth = context.inPacket().parsed(); + if (eth == null || (eth.getEtherType() != TYPE_LLDP && eth.getEtherType() != TYPE_BSN)) { + return; + } + LinkDiscovery ld = discoverers.get(context.inPacket().receivedFrom().deviceId()); if (ld == null) { return; -- cgit 1.2.3-korg