

def main(command, vif_raw, net_type):
    if (command not in ('online', 'offline')):
        return
    (vif_name, dom_id, vif_index) = vif_raw.split('-')
    vif = ('%s%s.%s' % (vif_name, this_vif, vif_index))
    bridge = novalib.execute_get_output('/usr/bin/ovs-vsctl', 'iface-to-br', vif)
    xsls = novalib.execute_get_output('/usr/bin/xenstore-ls', ('/local/domain/%s/vm-data/networking' % dom_id))
    macs = [line.split('=')[0].strip() for line in xsls.splitlines()]
    for mac in macs:
        xsread = novalib.execute_get_output('/usr/bin/xenstore-read', ('/local/domain/%s/vm-data/networking/%s' % (dom_id, mac)))
        data = json.loads(xsread)
        if (data['label'] == 'public'):
            this_vif = ('vif%s.0' % dom_id)
            phys_dev = 'eth0'
        else:
            this_vif = ('vif%s.1' % dom_id)
            phys_dev = 'eth1'
        if (vif == this_vif):
            vif_ofport = novalib.execute_get_output('/usr/bin/ovs-vsctl', 'get', 'Interface', vif, 'ofport')
            phys_ofport = novalib.execute_get_output('/usr/bin/ovs-vsctl', 'get', 'Interface', phys_dev, 'ofport')
            params = dict(VIF_NAME=vif, MAC=data['mac'], OF_PORT=vif_ofport, PHYS_PORT=phys_ofport)
            ovs = OvsFlow(bridge, params)
            if (command == 'offline'):
                ovs.clear_flows(vif_ofport)
            if (command == 'online'):
                if ((net_type in ('ipv4', 'all')) and ('ips' in data)):
                    for ip4 in data['ips']:
                        ovs.params.update({
                            'IPV4_ADDR': ip4['ip'],
                        })
                        apply_ovs_ipv4_flows(ovs, bridge, params)
                if ((net_type in ('ipv6', 'all')) and ('ip6s' in data)):
                    for ip6 in data['ip6s']:
                        mac_eui64 = netaddr.EUI(data['mac']).eui64()
                        link_local = str(mac_eui64.ipv6_link_local())
                        ovs.params.update({
                            'IPV6_LINK_LOCAL_ADDR': link_local,
                        })
                        ovs.params.update({
                            'IPV6_GLOBAL_ADDR': ip6['ip'],
                        })
                        apply_ovs_ipv6_flows(ovs, bridge, params)

dataset/ETHPy150Open BU-NU-CLOUD-SP16/Trusted-Platform-Module-nova/plugins/xenserver/networking/etc/xensource/scripts/ovs_configure_vif_flows.py main/VarMisuse@54/80 `dom_id`->`this_vif`