

def remove_router_port(self, router_port, local_network_id):
    parser = self.get_datapath().ofproto_parser
    ofproto = self.get_datapath().ofproto
    tunnel_key = router_port.get_tunnel_key()
    if (netaddr.IPAddress(router_port.get_ip()).version == 4):
        ip = router_port.get_ip()
        ArpResponder(self.get_datapath(), local_network_id, ip).remove()
    match = parser.OFPMatch()
    match.set_metadata(local_network_id)
    self.mod_flow(datapath=self.get_datapath(), table_id=const.L3_LOOKUP_TABLE, command=ofproto.OFPFC_DELETE, priority=const.PRIORITY_MEDIUM, out_port=ofproto.OFPP_ANY, out_group=ofproto.OFPG_ANY, match=match)
    match = parser.OFPMatch()
    cookie = tunnel_key
    self.mod_flow(datapath=self.get_datapath(), cookie=cookie, cookie_mask=cookie, table_id=const.L3_LOOKUP_TABLE, command=ofproto.OFPFC_DELETE, priority=const.PRIORITY_MEDIUM, out_port=ofproto.OFPP_ANY, out_group=ofproto.OFPG_ANY, match=match)
    if (netaddr.IPAddress(router_port.get_ip()).version == 4):
        match = parser.OFPMatch(eth_type=ether.ETH_TYPE_IP, metadata=local_network_id, ipv4_dst=router_port.get_ip())
    else:
        match = parser.OFPMatch(eth_type=ether.ETH_TYPE_IPV6, metadata=local_network_id, ipv6_dst=router_port.get_ip())
    self.mod_flow(datapath=self.get_datapath(), table_id=const.L3_PROACTIVE_LOOKUP_TABLE, command=ofproto.OFPFC_DELETE, priority=const.PRIORITY_HIGH, out_port=ofproto.OFPP_ANY, out_group=ofproto.OFPG_ANY, match=match)

dataset/ETHPy150Open openstack/dragonflow/dragonflow/controller/l3_proactive_app.py L3ProactiveApp.remove_router_port/original