I have news. It seems that the error that was logged, was related to an error message being received by ryu, as a result of an OFPGroupMod message previously sent by the controller.
I have logged this in debug mode: EventOFPErrorMsg received. version=0x4, msg_type=0x1, msg_len=0x1c, xid=0xb6ba2dd6 `-- msg_type: OFPT_ERROR(1) OFPErrorMsg(type=0x1, code=0x1, data=b'\x04\x0f\x00\x10\xb6\xba\x2d\xd6\x00\x02\x00\x00\xff\xff\xff\xfc') |-- type: OFPET_BAD_REQUEST(1) |-- code: OFPBRC_BAD_TYPE(1) `-- data: version=0x4, msg_type=0xf, msg_len=0x10, xid=0xb6ba2dd6 `-- msg_type: OFPT_GROUP_MOD(15) EVENT ofp_event->ofctl_service EventOFPBarrierReply unknown error xid 3065654742 The ErrorMsg xid (in hex) is equal to the unknown error logged right after. I have confirmed this by dissecting the OpenFlow packet using Wireshark. This error msg came from a Zodiac FX OF Switch. My application sent this OFPGroupMod message: datapath.send_msg( # Removes all groups registered in this switch. ofp_parser.OFPGroupMod( datapath=datapath, command=ofp.OFPGC_DELETE, group_id=ofp.OFPG_ALL, ) ) I honestly do not understand why the switch is answering with an error... Carlos Ferreira On 19 October 2017 at 10:29, Carlos Ferreira <carlosmf...@gmail.com> wrote: > Hi again, Fujimoto > > No, I did not run Ryu with sudo. It was a clean virtualenv python > installation, where I installed Ryu and its dependencies. > > I don't know what to do anymore :/ > I will try to see if I missed anything. > > Once again, thank you for the assistance. > > On 19 October 2017 at 02:01, Fujimoto Satoshi > <satoshi.fujimo...@gmail.com> wrote: >> Hi, Carlos >> >> Thanks for your information! >> I tried running your application, however it worked well in my environment. >> I didn't get any "unknown barrier xid" message. >> >> By any chance, do you run your application with "sudo"? >> You patched and reinstalled Ryu in virtualenv (I confirmed from your log >> file), >> however if you run the application with "sudo", >> the Ryu in system global environment will be used, it is not patched. >> >> Please confirm that you don't run your application with "sudo". >> If you ran with "sudo", >> * Please try to run without "sudo", or >> * Please reinstall Ryu in system global environment after patching >> >> Thanks, >> Fujimoto >> >> >> On 2017年10月18日 18:28, Carlos Ferreira wrote: >> >> It did not work. >> I have attached two files. The reinstallation log so that you can >> check if I executed the commands correctly, and a reproducible example >> (ArchSDN_test.py). >> Beware, my application is two complex for me to put it in an e-mail >> (several modules and files). Because of that, the ArchSDN_test.py only >> contains the code which is executed when a Switch connects. From my >> side, I'm able to see the issue at the console. >> >> Once again, thank you for your support. >> Carlos Ferreira >> >> On 18 October 2017 at 01:47, Fujimoto Satoshi >> <satoshi.fujimo...@gmail.com> wrote: >> >> Hi, Carlos >> >> Please confirm that you've reinstalled Ryu after applying the patch. >> $ pip uninstall Ryu >> $ pip install -r tools/pip-requires >> $ python setup.py install >> >> After reinstallation, it should work fine. >> If this does not work, could you send me your application? >> >> >> Thanks, >> Fujimoto >> >> >> On 2017年10月18日 09:22, Carlos Ferreira wrote: >> >> Hello again, Fujimoto, >> >> I have tried your patch in a clean Python3 virtualenv, and the issue >> still remains. Although my code properly setups the OF Switch, the log >> still shows the "unknown barrier xid" message. >> >> Is it supposed to be like this? >> >> Thank you for your support! >> Carlos Ferreira >> >> >> >> On 17 October 2017 at 02:36, Fujimoto Satoshi >> <satoshi.fujimo...@gmail.com> wrote: >> >> Hi, Carlos >> >> I've submitted a patch which enables to send a single OFPBarrierRequest: >> [PATCH] app/ofctl: Enable to send single BarrierRequest >> https://sourceforge.net/p/ryu/mailman/message/36079164/ >> >> With this, you can make a waiting point as follows: >> >> for ofp_port in ports: >> if 0 <= ofp_port.port_no < ofp.OFPP_MAX: >> datapath.send_msg( >> ofp_parser.OFPPortMod( >> datapath=datapath, >> port_no=ofp_port.port_no, >> hw_addr=ofp_port.hw_addr, >> config=ofp.OFPPC_PORT_DOWN, >> mask=ofp.OFPPC_PORT_DOWN, >> advertise=0 >> ) >> ) >> api.send_msg(myRyuApp, ofp_parser.OFPBarrierRequest(datapath), >> reply_cls=ofp_parser.OFPBarrierReply) >> >> Could you try with this patch? >> >> Thanks, >> Fujimoto >> >> >> >> On 2017年10月16日 19:10, Carlos Ferreira wrote: >> >> Thank you for your support Fujimoto >> >> I wanted to send an OFPBarrierRequest because my intention was to have >> a point where my Python code waits. >> >> For example, I wanted to send messages to the switch to disable all >> ports, and in the end, I send the BarrierRequest to ensure that all >> ports are down before continuing. >> >> This is my current code: >> >> # Stage 1 -> Disable all switching ports >> for ofp_port in ports: >> if 0 <= ofp_port.port_no < ofp.OFPP_MAX: >> datapath.send_msg( >> ofp_parser.OFPPortMod( >> datapath=datapath, >> port_no=ofp_port.port_no, >> hw_addr=ofp_port.hw_addr, >> config=ofp.OFPPC_PORT_DOWN, >> mask=ofp.OFPPC_PORT_DOWN, >> advertise=0 >> ) >> ) >> ctrl_send_msg(ofp_parser.OFPBarrierRequest(datapath), >> reply_cls=ofp_parser.OFPBarrierReply) >> >> >> Am I doing this right? >> >> Carlos Ferreira >> >> >> On 16 October 2017 at 03:19, Fujimoto Satoshi >> <satoshi.fujimo...@gmail.com> wrote: >> >> Hi, Carlos >> >> I think you've called api.send_msg() correctly, >> however, when you call api.send_msg(), the controller sends an >> OFPBarrierRequest in this function: >> >> https://github.com/osrg/ryu/blob/master/ryu/app/ofctl/service.py#L141-L142 >> >> After this, the controller will receive an OFPBarrierReply and inspect it >> in >> this function: >> https://github.com/osrg/ryu/blob/master/ryu/app/ofctl/service.py#L145 >> >> This function will be called when it received OFPBarrierReplies. >> >> So, >> >> api.send_msg(myRyuApp, >> >> ofp_parser.OFPBarrierRequest(datapath),reply_cls=ofp_parser.OFPBarrierReply) >> >> this will sends two OFPBarrierRequests, and the controller will receive >> two >> replies. >> Then, the controller will mistake which packet should be inspected, and >> error occurs. >> >> In the other words, I think you don't need to make and send an >> OFPBarrierRequest by yourself, >> because api.send_msg() will take care of the consistency of message order >> by >> using OFPBarrierRequests. >> Or, is there a reason why you have to manage it? >> >> Thanks, >> Fujimoto >> >> >> On 2017年10月14日 02:15, Carlos Ferreira wrote: >> >> Update: >> >> I noticed that the call to api.send_msg with a Barrier Message wasn't >> blocking at all. >> It was blocking in the next call for an OFPFlowMod. >> >> But I still receive the "unknown barrier xid 103043043" at the logs. >> What is going on? Is my application really waiting for the Barrier >> Message Reply before advancing? >> >> Carlos >> >> On 13 October 2017 at 17:12, Carlos Ferreira <carlosmf...@gmail.com> >> wrote: >> >> Hello >> >> I'm trying to use the Ryu synchrounous API to send and wait for the >> execution of a Barrier message. >> >> I'm using the same implementation presented in: >> >> >> http://ryu.readthedocs.io/en/latest/app/ofctl.html#ryu.app.ofctl.api.send_msg >> >> For some reason unknown to me, calling >> >> "api.send_msg(myRyuApp, ofp_parser.OFPBarrierRequest(datapath), >> reply_cls=ofp_parser.OFPBarrierReply)" >> >> will lock and not return, while at the console, a "unknown barrier xid >> 103043043" will be printed. >> >> Am I calling api.send_msg correctly? >> >> Thank you for the assistance >> Carlos Ferreira >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Ryu-devel mailing list >> Ryu-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Ryu-devel mailing list >> Ryu-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> >> >> >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> >> >> >> _______________________________________________ >> Ryu-devel mailing list >> Ryu-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> >> > > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel