//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= _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss