Hello All,
We are recently working on a very interesting but confusing problem of trema-edge.
We could not figure out solution to this problem, but we hope someone here may
have seen this problem before or have some idea of why it happens.
The platforms we are working on are:
1) OpenWRT switch box with CPqD Software Switch (OF v1.3). The OpenFlow ports
are one Ethernet port and the WiFi interface.
2) Trema-edge running on Ubuntu 12.04 LTS, which is running on VirtualBox on Mac
OS X. The network interface of Ubuntu is bridged to Ethernet port of Mac.
Now our problem is this:
We run multi_learning_switch example in trema-edge, and in SOME cases
switch-controller connection will break at the time after controller receives SOME
number of packet_in messages. The problem exists for certain switch box but not
for others with exactly the same platform and the same software.
We probed the problem using tcpdump and 'debug' logging level. It seems that
when some packet_in messgae is received and ACKed by the controller, the
controller sent out a tcp FIN message, breaking the connection. The log of
trema-edge shows that the recv() function in src/lib/messenger.c:on_recv()
returned 0 at the time of the problem, suggesting that connection is already
closed. However we are not sure why because, by tcpdump trace, obviously it is
the controller that initiated the disconnection, not the other end.
I am attaching one of our tcpdump trace here if it could provide any helpful
information. Ignoring all previous messages, simply search for my note "Problem
is here" at line 197; you'll see the controller initiated a tcp FIN here as a
response to the packet_in message above at line 178.
We appreciate any help or information!
Thanks and best,
Muxi Yan