Hi Fujita, Thanks for fixing the issue.
The fix is working fine, I have verified it in my setup. Receiving a FIN/ACK in response to FIN sent from Openflow Client. Regards, Guru Chaitanya Perakam -----Original Message----- From: FUJITA Tomonori [mailto:[email protected]] Sent: Tuesday, July 28, 2015 7:34 PM To: Guru Chaitanya Perakam Cc: [email protected] Subject: Re: [Ryu-devel] Ryu manager doesn't send FIN/ACK in response to FIN On Mon, 27 Jul 2015 07:15:37 +0000 Guru Chaitanya Perakam <[email protected]> wrote: > Hi, > > Issue: > ===== > When an Openflow client closes the connection with Ryu Manager by sending a > FIN, only ACK is sent in response. > > FIN/ACK is not received by Openflow client. The TCP connection on Ryu Manager > is moved to CLOSE-WAIT state. > > This causes our switch (Openflow client) to wait in FIN-WAIT-2 state and then > sends a Reset to Ryu Manager after some timeout. > Again when the switch uses the same source port for reconnection, the > connection fails. > > PFA packet dissections text file "ryn-find-issue.txt" with this mail. Thanks for the detailed report! The following patch fixes the issue? diff --git a/ryu/controller/controller.py b/ryu/controller/controller.py index 225c21f..577c6da 100644 --- a/ryu/controller/controller.py +++ b/ryu/controller/controller.py @@ -165,6 +165,7 @@ class Datapath(ofproto_protocol.ProtocolDesc): ret = self.socket.recv(required_len) if len(ret) == 0: self.is_active = False + self.socket.close() break buf += ret while len(buf) >= required_len: ------------------------------------------------------------------------------ _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
