I am trying to configure a SDN using 1 Ryu controller and 3 OpenvSwitch datapaths. Here is the code I run on my datapaths to let them talk to the controller:
ovs-vsctl set bridge br0 protocols=[OpenFlow13]
ovs-vsctl set-controller br0 tcp:192.168.100.1:6633
Then trying to get the topology of the network via HTTP/REST I run this on the controller:
ryu-manager --observe-links /path-to-apps/rest_topology.py
Running tcpdump
on anyone of the switches I read errors like this:
version unknown (0x04), type 0x03, length 8, xid 0x0000000 09:56:34.645491 IP 192.168.100.1.6633 > 192.168.100.2.53550: Flags [P.], seq 1:9, ack 8, win 235, options [nop,nop,TS val 2070367608 ecr 1308752524], lenght 8: OpenFlow
(I get this error for every ryu application I run, even "simple_switch_13.py")
I tried removing the line ovs-vsctl set bridge br0 protocols[OpenFlow13]
but it did not work: switches were not connecting to the controller at all.
Any suggestion? Thanks
Version unknown means that the tcpdump tool does not know which protocol "0x04" is. That is a well made packet, not an error! So if you want to know what 0x04 is try using Wireshark or a more complete software. It will turn out it's a OpenFlow protocol packet.