Minor modification to previous version; make sure that the code doesn’t 
contradict the comment.

Signed-off-by: Victor J. Orlikowski <[email protected]>

diff --git a/ryu/topology/event.py b/ryu/topology/event.py
index c54152b..e7b682c 100644
--- a/ryu/topology/event.py
+++ b/ryu/topology/event.py
@@ -41,6 +41,11 @@ class EventSwitchLeave(EventSwitchBase):
        super(EventSwitchLeave, self).__init__(switch)


+class EventSwitchReconnected(EventSwitchBase):
+    def __init__(self, switch):
+        super(EventSwitchReconnected, self).__init__(switch)
+
+
class EventPortBase(event.EventBase):
    def __init__(self, port):
        super(EventPortBase, self).__init__()
diff --git a/ryu/topology/switches.py b/ryu/topology/switches.py
index 5fe5d26..b6636e3 100644
--- a/ryu/topology/switches.py
+++ b/ryu/topology/switches.py
@@ -609,9 +609,10 @@ class Switches(app_manager.RyuApp):
             switch = self._get_switch(dp.id)
             LOG.debug('register %s', switch)
 
-            # Do not send event while dp has multiple connections.
             if not dp_multiple_conns:
                 self.send_event_to_observers(event.EventSwitchEnter(switch))
+            else:
+                
self.send_event_to_observers(event.EventSwitchReconnected(switch))
 
             if not self.link_discovery:
                 return
@@ -668,15 +669,17 @@ class Switches(app_manager.RyuApp):
             switch = self._get_switch(dp.id)
             self._unregister(dp)
             LOG.debug('unregister %s', switch)
-            self.send_event_to_observers(event.EventSwitchLeave(switch))
+            if switch:
+                self.send_event_to_observers(event.EventSwitchLeave(switch))
 
             if not self.link_discovery:
                 return
 
-            for port in switch.ports:
-                if not port.is_reserved():
-                    self.ports.del_port(port)
-                    self._link_down(port)
+            if switch:
+                for port in switch.ports:
+                    if not port.is_reserved():
+                        self.ports.del_port(port)
+                        self._link_down(port)
             self.lldp_event.set()
 
     @set_ev_cls(ofp_event.EventOFPPortStatus, MAIN_DISPATCHER)

Best,
Victor
--
Victor J. Orlikowski <> vjo@[cs.]duke.edu

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to