Re-submitting this patch, with a minor change.
Originally, I named this event EventDPReset.

I re-named it EventDPReconnected for clarity, but should have re-named some of 
the bookkeeping variables to match.
This version of the patch makes that change.

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

diff --git a/ryu/controller/dpset.py b/ryu/controller/dpset.py
index 4eca046..2682777 100644
--- a/ryu/controller/dpset.py
+++ b/ryu/controller/dpset.py
@@ -53,6 +53,11 @@ class EventDP(EventDPBase):
         self.ports = []  # port list when enter or leave
 
 
+class EventDPReconnected(EventDPBase):
+    def __init__(self, dp):
+        super(EventDPReconnected, self).__init__(dp)
+
+
 class EventPortBase(EventDPBase):
     def __init__(self, dp, port):
         super(EventPortBase, self).__init__(dp)
@@ -113,12 +118,14 @@ class DPSet(app_manager.RyuApp):
         # - forget the older connection as it likely will disappear soon
         # - do not send EventDP leave/enter events
         # - keep the PortState for the dpid
+        send_dp_reconnected = False
         if dp.id in self.dps:
             self.logger.warning('DPSET: Multiple connections from %s',
                                 dpid_to_str(dp.id))
             self.logger.debug('DPSET: Forgetting datapath %s', self.dps[dp.id])
             (self.dps[dp.id]).close()
             self.logger.debug('DPSET: New datapath %s', dp)
+            send_dp_reconnected = True
         self.dps[dp.id] = dp
         if dp.id not in self.port_state:
             self.port_state[dp.id] = PortState()
@@ -129,6 +136,9 @@ class DPSet(app_manager.RyuApp):
                     self._port_added(dp, port)
                     ev.ports.append(port)
             self.send_event_to_observers(ev)
+        if send_dp_reconnected:
+            ev = EventDPReconnected(dp)
+            self.send_event_to_observers(ev)
 
     def _unregister(self, dp):
         # see the comment in _register().


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


------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to