Do not use PacketProcessingListener in learning-switch 75/102675/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Oct 2022 17:39:27 +0000 (19:39 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Oct 2022 17:40:57 +0000 (19:40 +0200)
We have only a single notification here, do not rely on generated
Listener interface.

Change-Id: Ic6371a321ed8eff781f57a3b7c79f71d3359b326
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchHandlerSimpleImpl.java
samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchManagerSimpleImpl.java
samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/multi/LearningSwitchManagerMultiImpl.java
samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/multi/PacketInDispatcherImpl.java

index 3b8b4b09b0e369dc0d183d81107f514c3ad0cedf..2ba8d1eea9d0711cc5f40dd49177b440c0c89d67 100644 (file)
@@ -18,6 +18,7 @@ import java.util.concurrent.atomic.AtomicLong;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.infrautils.utils.concurrent.LoggingFutures;
+import org.opendaylight.mdsal.binding.api.NotificationService.Listener;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
@@ -33,7 +34,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.No
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput;
@@ -48,7 +48,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Simple Learning Switch implementation which does mac learning for one switch.
  */
-public class LearningSwitchHandlerSimpleImpl implements LearningSwitchHandler, PacketProcessingListener {
+public class LearningSwitchHandlerSimpleImpl implements LearningSwitchHandler, Listener<PacketReceived> {
 
     private static final Logger LOG = LoggerFactory.getLogger(LearningSwitchHandlerSimpleImpl.class);
     private static final byte[] ETH_TYPE_IPV4 = new byte[] { 0x08, 0x00 };
@@ -116,7 +116,7 @@ public class LearningSwitchHandlerSimpleImpl implements LearningSwitchHandler, P
     }
 
     @Override
-    public void onPacketReceived(PacketReceived notification) {
+    public void onNotification(PacketReceived notification) {
         if (!isLearning) {
             // ignoring packets - this should not happen
             return;
index 7b18a1ab366d1e1c1984bd905bc2fd383b0097ef..d624643a45057ae9007f80c7202960bf5e37e88f 100644 (file)
@@ -17,6 +17,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -68,7 +69,7 @@ public class LearningSwitchManagerSimpleImpl
      */
     @Override
     public void setDataBroker(DataBroker broker) {
-        this.data = broker;
+        data = broker;
     }
 
     /**
@@ -81,7 +82,7 @@ public class LearningSwitchManagerSimpleImpl
 
         LearningSwitchHandlerSimpleImpl learningSwitchHandler = new LearningSwitchHandlerSimpleImpl(dataStoreAccessor,
                 packetProcessingService, this);
-        packetInRegistration = notificationService.registerNotificationListener(learningSwitchHandler);
+        packetInRegistration = notificationService.registerListener(PacketReceived.class, learningSwitchHandler);
 
         WakeupOnNode wakeupListener = new WakeupOnNode();
         wakeupListener.setLearningSwitchHandler(learningSwitchHandler);
index 3b489b727f2a080062f99a30e5932698f00555f9..9a8a03d874952acb2c33cbada789846b1eb23b10 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -74,7 +75,7 @@ public class LearningSwitchManagerMultiImpl implements DataTreeChangeListenerReg
      */
     @Override
     public void setDataBroker(DataBroker broker) {
-        this.data = broker;
+        data = broker;
     }
 
     /**
@@ -88,7 +89,7 @@ public class LearningSwitchManagerMultiImpl implements DataTreeChangeListenerReg
         PacketInDispatcherImpl packetInDispatcher = new PacketInDispatcherImpl();
         MultipleLearningSwitchHandlerFacadeImpl learningSwitchHandler = new MultipleLearningSwitchHandlerFacadeImpl(
                 dataStoreAccessor, packetProcessingService, packetInDispatcher);
-        packetInRegistration = notificationService.registerNotificationListener(packetInDispatcher);
+        packetInRegistration = notificationService.registerListener(PacketReceived.class, packetInDispatcher);
 
         WakeupOnNode wakeupListener = new WakeupOnNode();
         wakeupListener.setLearningSwitchHandler(learningSwitchHandler);
index 9ec521f355aec76f707b74e5df58f491d3179141..6e86e83f5898e33e589d42bc37707ea8895857f3 100644 (file)
@@ -9,24 +9,16 @@ package org.opendaylight.openflowplugin.learningswitch.multi;
 
 import java.util.HashMap;
 import java.util.Map;
+import org.opendaylight.mdsal.binding.api.NotificationService.Listener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-public class PacketInDispatcherImpl implements PacketProcessingListener {
-
-    private final Map<InstanceIdentifier<Node>, PacketProcessingListener> handlerMapping;
-
-    /**
-     * default constructor.
-     */
-    public PacketInDispatcherImpl() {
-        handlerMapping = new HashMap<>();
-    }
+public class PacketInDispatcherImpl implements Listener<PacketReceived> {
+    private final Map<InstanceIdentifier<Node>, Listener<PacketReceived>> handlerMapping = new HashMap<>();
 
     @Override
-    public void onPacketReceived(PacketReceived notification) {
+    public void onNotification(PacketReceived notification) {
         // find corresponding handler
         /*
          * Notification contains reference to ingress port
@@ -41,17 +33,17 @@ public class PacketInDispatcherImpl implements PacketProcessingListener {
         /**
          * We lookup up the the packet-in listener for this node.
          */
-        PacketProcessingListener nodeHandler = handlerMapping.get(nodeOfPacket);
+        Listener<PacketReceived> nodeHandler = handlerMapping.get(nodeOfPacket);
 
         /**
          * If we have packet-processing listener, we delegate notification.
          */
         if (nodeHandler != null) {
-            nodeHandler.onPacketReceived(notification);
+            nodeHandler.onNotification(notification);
         }
     }
 
-    public Map<InstanceIdentifier<Node>, PacketProcessingListener> getHandlerMapping() {
+    public Map<InstanceIdentifier<Node>, Listener<PacketReceived>> getHandlerMapping() {
         return handlerMapping;
     }
 }