Ryu flow entryの追加・消去

提供:TuntunkunMediaWiki

移動: 案内, 検索

フローエントリの消去

以下にフローエントリを消去するサンプルコードを示す。L2のアドレスの行き先、または送信元のアドレスが因数で指定されたMACアドレスであった場合にフローエントリを消去する簡単なものです。

"""
 MACアドレスのパッチパネル操作(消去)
"""
def remove_mac_patch(datapath, port_a, port_b, mac_addr, priority=0):
        ofproto     = datapath.ofproto
        parser      = datapath.ofproto_parser
 
        match_a = parser.OFPMatch(in_port=port_a, eth_dst=mac_addr)
        match_b = parser.OFPMatch(in_port=port_b, eth_src=mac_addr)
 
        inst_a = []
        inst_b = []
 
        mod_a = parser.OFPFlowMod(datapath=datapath, priority=priority, match=match_a, instructions=inst_a,
                command=ofproto.OFPFC_DELETE, out_port=ofproto.OFPP_ANY, out_group=ofproto.OFPG_ANY)
        mod_b = parser.OFPFlowMod(datapath=datapath, priority=priority, match=match_b, instructions=inst_b,
                command=ofproto.OFPFC_DELETE, out_port=ofproto.OFPP_ANY, out_group=ofproto.OFPG_ANY)
 
        datapath.send_msg(mod_a)
        datapath.send_msg(mod_b)

参考文献

https://github.com/FlowForwarding/LINC-Switch/blob/master/scripts/ryu/remove_flows_v1_3.py

個人用ツール
名前空間
変種
操作
案内
ツールボックス