def METHOD_NAME(test, params, env):
    """
    Test start vm with duplicate target dev name - negative
    """
    libvirt_version.is_libvirt_feature_supported(params)
    vm_name = params.get('main_vm')
    vm = env.get_vm(vm_name)
    status_error = 'yes' == params.get('status_error', 'no')
    error_msg = params.get('error_msg', '')
    iface_type_a = params.get('iface_type_a')
    iface_type_b = params.get('iface_type_b')
    iface_name = 'test_iface_' + utils_misc.generate_random_string(3)
    host_iface_name = params.get("host_iface_name")
    if not host_iface_name:
        host_iface_name = utils_net.get_net_if(state="UP")[0]
    vmxml = vm_xml.VMXML.new_from_inactive_dumpxml(vm_name)
    bkxml = vmxml.copy()
    try:
        test_args = {'host_iface_name': host_iface_name,
                     'vmxml': vmxml}
        vmxml.del_device('interface', by_tag=True)
        add_iface(iface_type_a, iface_name, **test_args)
        add_iface(iface_type_b, iface_name, **test_args)
        LOG.debug(f'VMXML after adding interfaces with duplicate target dev:'
                  f'\n{vmxml}')
        link_before_start = show_ip_link(iface_name)
        if iface_type_a in ['network', 'direct']:
            if link_before_start != '':
                test.error('There should not be any ip link on host.')
        vm_start_test = virsh.start(vm_name, debug=True)
        libvirt.check_exit_status(vm_start_test, status_error)
        libvirt.check_result(vm_start_test, error_msg)
        link_after_start = show_ip_link(iface_name)
        if link_after_start != link_before_start:
            test.fail(f'IP link info changed after vm started.\n'
                      f'Before vm started :{link_before_start}\n'
                      f'After vm started: {link_after_start}')
    finally:
        bkxml.sync()
        cleanup_iface(iface_type_a, iface_name)