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
