Hi,
Sorry for jumping in.
You don't need to try to reconnect by yourself.
Ryu always tries to reconnect automatically when the connection was lost.
And when the connection is re-established, Ryu notifies EventOFPHello
and EventOFPSwitchFeatures, as same as the first connection.
So, you should wait until the re-establishment, and use the new datapath
notified by the event for sending the message.
Thanks,
Fujimoto
On 2017年12月05日 17:18, shahid javed wrote:
Hi Iwase
*
*
Many thanks for the clarification, can you please guide me on how I
can reconnect and and get a new data path instance. I tried deleting
the old instance and getting a new one using the following code:
datapath = api.get_datapath(self, datapath.id <http://datapath.id>)
self.logger.info <http://self.logger.info>('datapath=%s', datapath)
But I only get None as the output of the above code
Beat Regards
Fayaz
On Tuesday, December 5, 2017, Iwase Yusuke <iwase.yusu...@gmail.com
<mailto:iwase.yusu...@gmail.com>> wrote:
Hi,
> " Datapath in process of terminating; send() to 10.0.0.100
discarded "
This message shows Ryu could not send a message because the
connection to your
switch was already disconnected and "send_loop" thread was closed.
Please confirm that the connection between controller-switch kept
established.
If keeping the connection is difficult, I guess you need to wait
for the
connection re-establishment before sending stats requests.
Example:
Your App Datapath Your SW
| | disconnected |
| |--------X-------|
| send_msg() | |
|------------------>| |
| |(*) | (*) output message you
reported
| | reconnect |
| SwitchFeatures ev |================|
|<------------------| |
| | |
Restart
stats loop here
Please note when reconnecting to your switch, a new Datapath
instance will be
created, so the stored Datapath instance needs to be replaced by
the new one.
Thanks,
Iwase
On 2017年12月05日 00:27, shahid javed wrote:
Hi All,
I am trying to get switch status updates under a link high
load, I have the following method which sends request to
switches to reply with their stats. The issue I am having is
when a packet gets dropped due to high load I am not able to
resend the packet. I tried the --verbose to get the debug log
and I get the following:
" Datapath in process of terminating; send() to 10.0.0.100
discarded "
def send_stats_requests(self):
for switchAddress in range(100,106):
# I have stored all datapath objects in a
dictionary with key as address of switch
state = self.dp.get(switchAddress,9)[1]
if state == 0:
datapath = self.dp.get(switchAddress)[0]
ofp = datapath.ofproto
ofp_parser = datapath.ofproto_parser
req = ofp_parser.OFPDescStatsRequest(datapath,0)
datapath.send_msg(req)
elif state == 1:
print str(switchAddress) + ' Status Recieved'
self._timer = Timer(6, self.send_stats_requests)
self._timer.start()
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
<mailto:Ryu-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/ryu-devel
<https://lists.sourceforge.net/lists/listinfo/ryu-devel>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel