faucetsdn / ryu

Ryu component-based software defined networking framework
https://ryu-sdn.org
Apache License 2.0
1.52k stars 1.16k forks source link

gui_topology.py throws version error when using OF 1.5 #158

Open zhangineer2 opened 3 years ago

zhangineer2 commented 3 years ago

I am running mininet version 2.13.3. Receiving error AssertionError: No OpenFlow version is available

ryu-manager /ryu/ryu/app/simple_switch_15.py /ryu/ryu/app/gui_topology/gui_topology.py --observe-links

loading app /ryu/ryu/app/simple_switch_15.py loading app //ryu/ryu/app/gui_topology/gui_topology.py loading app ryu.controller.ofp_handler loading app ryu.app.ofctl_rest loading app ryu.app.rest_topology loading app ryu.app.ws_topology loading app ryu.controller.ofp_handler creating context wsgi instantiating app None of DPSet creating context dpset instantiating app None of Switches creating context switches instantiating app /home/ryu/ryu/app/simple_switch_15.py of SimpleSwitch15 Traceback (most recent call last): File "/.venv/bin/ryu-manager", line 8, in sys.exit(main()) File "/.venv/lib/python3.8/site-packages/ryu/cmd/manager.py", line 101, in main services.extend(app_mgr.instantiate_apps(*contexts)) File "/.venv/lib/python3.8/site-packages/ryu/base/app_manager.py", line 509, in instantiate_apps self._instantiate(app_name, cls, args, **kwargs) File "/.venv/lib/python3.8/site-packages/ryu/base/app_manager.py", line 491, in _instantiate ofproto_protocol.set_app_supported_versions(cls.OFP_VERSIONS) File "/.venv/lib/python3.8/site-packages/ryu/ofproto/ofproto_protocol.py", line 46, in set_app_supported_versions assert _supported_versions, 'No OpenFlow version is available' AssertionError: No OpenFlow version is available

I have confirmed that my mininet switch supports OF1.5, as shown below

mininet> sh ovs-ofctl dump-flows -O Openflow15 s1 cookie=0x0, duration=3.955s, table=0, n_packets=0, n_bytes=0, idle_age=3, priority=1,in_port="s1-eth16",dl_dst=aa:00:00:00:00:06 actions=output:"s1-eth1" cookie=0x0, duration=3.923s, table=0, n_packets=0, n_bytes=0, idle_age=3, priority=1,in_port="s1-eth1",dl_dst=aa:00:00:00:00:01 actions=output:"s1-eth16" cookie=0x0, duration=9.084s, table=0, n_packets=59, n_bytes=4910, idle_age=3, priority=0 actions=CONTROLLER:65535

If i launch only the simply_switch_15.py file, everything works fine. So it's the gui file that doesnt work for some reason.

Any ideas ?

I also tested with OF 1.4, which also works fine.

Thanks