@IWAMOTO Hello IWAMOTO, No, I do not get any kind of error from Ryu. I have also verified the structure of the Openflow messages sent to the switch using Wireshark and no anomalies were found. The packet was well structured.
@Darrell, Darrel, thank you for the info. I tried to use the del-flows using the "ovs-ofctl del-flows" command with the specific cookie and in fact, it did work. I'm lost here, because it does not seems to work if the communication is done via OpenFlow with a remote controller. On 24 April 2018 at 02:42, Darrell Ball <db...@vmware.com> wrote: > //You can verify that OVS supports deletion by cookie specification by > checking these tests: > > 932: ofproto.at:1746 ofproto - del flows based on cookie > 933: ofproto.at:1767 ofproto - del flows based on cookie mask > > // Run the tests using “make check” like this: > sudo make check TESTSUITEFLAGS='932-933' -C _gcc > > //Look at what is being tested here: > tests/ofproto.at > > Thanks Darrell > > > On 4/23/18, 4:17 PM, "ovs-dev-boun...@openvswitch.org on behalf of Carlos > Ferreira" <ovs-dev-boun...@openvswitch.org on behalf of > carlosmf...@gmail.com> wrote: > > Hello to all > > According to the OpenFlow 1.3.5 spec, page 44 specifies the following: > > > "Modify and delete commands can also be filtered by cookie value, if > the cookie_mask field contains > a value other than 0. This constraint is that the bits specified by > the cookie_mask in both > the cookie field of the flow mod and a flow entry’s cookie value must > be equal. In other words, > (flow entry.cookie&flow mod.cookie mask) == (flow mod.cookie&flow > mod.cookie mask)." > > > Now, using the Ryu python-based controller, I tried to delete a flow > by specifying the flow's cookie value, but the procedure was not > successful. > > The following code is a test-example which I used. > > from ryu.base.app_manager import RyuApp > from ryu.controller.dpset import EventDP > from ryu.controller.handler import MAIN_DISPATCHER > from ryu.controller.handler import set_ev_cls > from ryu.ofproto import ofproto_v1_3 > from ryu.ofproto import ether, inet > > class MPLS_Testing(RyuApp): > OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION] > > @set_ev_cls(EventDP, MAIN_DISPATCHER) > def switch_connect_event(self, ev): > ofp_parser = ev.dp.ofproto_parser > ofp = ev.dp.ofproto > datapath_obj = ev.dp > if ev.enter: > datapath_obj.send_msg( # Removes all flows registered in this > switch. > ofp_parser.OFPFlowMod( > datapath=datapath_obj, > table_id=ofp.OFPTT_ALL, > command=ofp.OFPFC_DELETE, > out_port=ofp.OFPP_ANY, > out_group=ofp.OFPG_ANY, > ) > ) > add_label_flow = ofp_parser.OFPFlowMod( > datapath=datapath_obj, > cookie=1, > table_id=0, > command=ofp.OFPFC_ADD, > match=ofp_parser.OFPMatch( > in_port=1 > ), > instructions=[ > ofp_parser.OFPInstructionActions( > ofp.OFPIT_APPLY_ACTIONS, > [ > ofp_parser.OFPActionPushMpls(), > ofp_parser.OFPActionSetField(mpls_label=16), > ] > ), > ofp_parser.OFPInstructionGotoTable(table_id=1), > ] > ) > datapath_obj.send_msg(add_label_flow) > > add_label_flow2 = ofp_parser.OFPFlowMod( > datapath=datapath_obj, > cookie=2, > table_id=1, > command=ofp.OFPFC_ADD, > match=ofp_parser.OFPMatch( > in_port=1 > ), > instructions=[ > ofp_parser.OFPInstructionActions( > ofp.OFPIT_APPLY_ACTIONS, > [ > ofp_parser.OFPActionPushMpls(), > ofp_parser.OFPActionSetField(mpls_label=12), > ] > ), > ofp_parser.OFPInstructionGotoTable(table_id=2), > ] > ) > datapath_obj.send_msg(add_label_flow2) > > # Deletes flow with cookie equal to 2. > datapath_obj.send_msg( > ofp_parser.OFPFlowMod( > cookie=2, > cookie_mask=0xFFFFFFFFFFFFFFFF, > datapath=datapath_obj, > command=ofp.OFPFC_DELETE, > out_port=ofp.OFPP_ANY, > out_group=ofp.OFPG_ANY, > ) > ) > > Can anyone tell me if OpenVSwitch 2.9 supports cookie match when > deleting a flow from the tables? OpenFlow 1.3.5 spec clearly states > that a Delete command could also filter flows using the cookie value, > when the cookie_mask is different than zero. Currently, I'm kinda lost > here. > > Thank you! > > -- > > Carlos Miguel Ferreira > Researcher at Telecommunications Institute > Aveiro - Portugal > Work E-mail - c...@av.it.pt > Skype & GTalk -> carlosmf...@gmail.com > LinkedIn -> > https://urldefense.proofpoint.com/v2/url?u=http-3A__www.linkedin.com_in_carlosmferreira&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=ND4lqlTir-Ukyp2WkESK_WJ7j0b1dAUdptpdObaFU7Y&s=saz4uZw1U4C3pxnJSK9cRxTNXucuBUokJFvgmL3P3Wg&e= > _______________________________________________ > dev mailing list > d...@openvswitch.org > > https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=ND4lqlTir-Ukyp2WkESK_WJ7j0b1dAUdptpdObaFU7Y&s=A8DVOVYZJhWrS-4plyLgmB6DmiB0nWaYxbqdlekjUOU&e= > > -- Carlos Miguel Ferreira Researcher at Telecommunications Institute Aveiro - Portugal Work E-mail - c...@av.it.pt Skype & GTalk -> carlosmf...@gmail.com LinkedIn -> http://www.linkedin.com/in/carlosmferreira _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss