天天看點

RYU中域的通配 wildcard

實驗中需要有比對域是通配的,比如IP通配某一部分掩碼,官方文檔上對于這一部分寫的不是很清楚,摸索之後發現寫法如下:

以一個tuple的形式将掩碼和比對項寫在一起即可

match = parser.OFPMatch(
                    eth_type=flow_info[],
                    ipv4_src=("10.0.0.0","255.255.255.252"), ipv4_dst=flow_info[])
self.add_flow(datapath, , match, actions,idle_timeout=, hard_timeout=)
self.logger.info("**********entry is added*************")
           

相應的,删除一個帶有指定域通配的流表的做法如下:

ofp = datapath.ofproto
ofp_parser = datapath.ofproto_parser
cookie = cookie_mask = 
table_id = 
idle_timeout = 
hard_timeout = 
priority = 
buffer_id = ofp.OFP_NO_BUFFER
match = ofp_parser.OFPMatch(eth_type=flow_info[],
            ipv4_src=("10.0.0.0","255.255.255.252"),   
            ipv4_dst="10.0.0.4")
self.add_flow(datapath, , match, actions,idle_timeout=, 
              hard_timeout=)
req = ofp_parser.OFPFlowMod(datapath, cookie, cookie_mask,
                            table_id, ofp.OFPFC_DELETE,
                            idle_timeout, hard_timeout,
                            priority, buffer_id,
                            dst_port, ofp.OFPG_ANY,
                            ofp.OFPFF_SEND_FLOW_REM,
                            match)
datapath.send_msg(req)
self.logger.info("**********entry is deleted*************")