Zodiak FX sends wrong packets

  • 3 Replies


  • Newbie
  • *
  • 4
    • View Profile
Zodiak FX sends wrong packets
« on: April 15, 2019, 07:22:41 PM »

After many tests I understood why the Zodiac FX switches often disconnect from the RYU controller (and also ONOS). For some reason, the Zodiak sends Openflow messages where within the IP field Total len contains a length that is different from the actual length. In particular it happens that the field Total len = 576 Byte while the true length of the packet is 156 Byte. When this happens, the kernel where the controller is located drops the packets and it never reachs the controller generating a loto of re-transmissions. I'm doing other tests and if you want I can send you the TCPDUMP traces where you can see this error clearly.

Best regards,



  • Moderator
  • Sr. Member
  • *****
  • 373
    • View Profile
    • Northbound Networks
Re: Zodiak FX sends wrong packets
« Reply #1 on: April 22, 2019, 02:45:45 PM »
Hi Sebastian,

Do you have a particular test that I can run to help recreate this issue?




  • Newbie
  • *
  • 4
    • View Profile
Re: Zodiak FX sends wrong packets
« Reply #2 on: August 12, 2019, 07:44:36 AM »
Interesting, as I too am having issues with the controller connection when using Zodiac and Ryu's
simple_switch{_13,}.py Actually, I'm not convinced this is an issue with Zodiac at this point.
According to Wireshark, the packet_out message sent from Ryu is malformed on OF13. I tried the
same experiment with OF10 and do not see complaints from Wireshark, but the behavior is very

To reproduce this, I simply started a ping between a RPI and the VM where Ryu is running. Ports 1 and 2
of Zodiac FX is in between.

Then, I started ryu-manager:
   ryu-manager --verbose ./.env/lib/python3.6/site-packages/ryu/app/simple_switch.py
   ryu-manager --verbose ./.env/lib/python3.6/site-packages/ryu/app/simple_switch_13.py

Then, I captured packets in vm using command:
      IFACE=enpXXX ; sudo tcpdump -e -v -n -i $IFACE -w cap.cap

Since I'm using "Failstate: Safe" the flows do get installed from from this point on, ryu-manager script sees no
new messages but stays 'connected'. Which is a pain. Zodiac considers open-flow disconnected and makes
no attempt in reconnecting until I manually stop ryu-manager.

Hope this helps! Thanks.


ryu-manager 4.32

Zodiac_FX# show status
Device Status
 CPU UID: 1395994880-1347049802-842019378-925970482
 Firmware Version: 0.86
 CPU Temp: 35 C
 Uptime: 00:16:21

Zodiac_FX(config)# show config
 Name: Zodiac_FX
 MAC Address: 70:B3:D5:6C:D0:66
 IP Address:
 OpenFlow Controller:
 OpenFlow Port: 6653
 Openflow Status: Enabled
 Failstate: Safe
 Force OpenFlow version: Disabled
 EtherType Filtering: Enabled
 Port Stats Interval: 1

« Last Edit: August 12, 2019, 07:50:21 AM by flaviof »



  • Newbie
  • *
  • 4
    • View Profile
Re: Zodiak FX sends wrong packets
« Reply #3 on: August 12, 2019, 12:47:13 PM »
ryu-manager 4.32

Small update: On my quest for happiness, I tried to use python 2 to see
if that would make a difference. It did not: Ryu continues to get disconnected
while talking to ZodiacFX on both OF1.0 and OF1.3.

On a happier note, I tried POX [1] and that worked fine! I do see the controller
connected continuously when POX is used instead of Ryu. Using the same VM and ZodiacFX.

[1]: https://noxrepo.github.io/pox-doc/html/#installing-pox

Zodiac_FX(openflow)# show status

 Status: Connected
 Version: 1.0 (0x01)
 No tables: 1
 No flows: 13
 Total Lookups: 395
 Total Matches: 375
« Last Edit: August 12, 2019, 12:49:31 PM by flaviof »