示例#1
0
def dut2_unconfig(config=''):

    st.log(
        'On DUT2 unconfigure loopback and remove IPv4 and IPv6 addresses on it'
    )
    ip_obj.delete_ip_interface(data.dut2_server, data.dut2_loopback[0],
                               data.dut2_loopback_ipv6[0],
                               data.dut2_loopback_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut2_server, data.dut2_loopback[0],
                               data.dut2_loopback_ip[0],
                               data.dut2_loopback_ip_subnet, 'ipv4')
    ip_obj.configure_loopback(data.dut2_server,
                              config='no',
                              loopback_name=data.dut2_loopback[0])

    st.log(
        'On DUT2 unconfigure portchannel and remove IPv4 and IPv6 addresses on it'
    )
    ip_obj.delete_ip_interface(data.dut2_server, data.portchannel,
                               data.dut2_dut1_ipv6[2],
                               data.dut2_dut1_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut2_server, data.portchannel,
                               data.dut2_dut1_ip[2], data.dut2_dut1_ip_subnet,
                               'ipv4')
    pc_obj.add_del_portchannel_member(
        data.dut2_server, data.portchannel,
        [data.d2_d1_ports[2], data.d2_d1_ports[3]], 'del')
    pc_obj.delete_portchannel(data.dut2_server, data.portchannel)

    st.log('On DUT2 unconfigure vlan and remove IPv4 and IPv6 addresses on it')
    ip_obj.delete_ip_interface(data.dut2_server,
                               'Vlan' + data.dut1_dut2_vlan[0],
                               data.dut2_dut1_ipv6[1],
                               data.dut2_dut1_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut2_server,
                               'Vlan' + data.dut1_dut2_vlan[0],
                               data.dut2_dut1_ip[1], data.dut2_dut1_ip_subnet,
                               'ipv4')
    vlan_obj.delete_vlan_member(data.dut2_server, data.dut1_dut2_vlan[0],
                                data.d2_d1_ports[1], True)
    vlan_obj.delete_vlan(data.dut2_server, data.dut1_dut2_vlan[0])

    st.log('On DUT2 remove IPv4 and IPv6 addresses on physical interface')
    ip_obj.delete_ip_interface(data.dut2_server, data.d2_d1_ports[0],
                               data.dut2_dut1_ipv6[0],
                               data.dut2_dut1_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut2_server, data.d2_d1_ports[0],
                               data.dut2_dut1_ip[0], data.dut2_dut1_ip_subnet,
                               'ipv4')

    st.log('On DUT2 remove IPv4 and IPv6 addresses on management interface')
    ip_obj.delete_ip_interface(data.dut2_server, data.mgmt_intf,
                               data.dut2_mgmt_ipv6[0],
                               data.dut2_mgmt_ipv6_subnet, 'ipv6')

    return True
示例#2
0
def dut1_unconfig(config=''):

    st.banner('Unconfigure IPv4 and IPv6 addresses on the loopback interfaces')
    ip_obj.delete_ip_interface(data.dut1_client, data.dut1_loopback[0],
                               data.dut1_loopback_ipv6[0],
                               data.dut1_loopback_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut1_client, data.dut1_loopback[0],
                               data.dut1_loopback_ip[0],
                               data.dut1_loopback_ip_subnet, 'ipv4')
    ip_obj.configure_loopback(data.dut1_client,
                              config='no',
                              loopback_name=data.dut1_loopback[0])

    st.banner('Unconfigure IPv4 and IPv6 addresses on portchannel of DUT1')
    ip_obj.delete_ip_interface(data.dut1_client, data.portchannel,
                               data.dut1_dut2_ipv6[2],
                               data.dut1_dut2_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut1_client, data.portchannel,
                               data.dut1_dut2_ip[2], data.dut1_dut2_ip_subnet,
                               'ipv4')
    pc_obj.add_del_portchannel_member(
        data.dut1_client, data.portchannel,
        [data.d1_d2_ports[2], data.d1_d2_ports[3]], 'del')
    pc_obj.delete_portchannel(data.dut1_client, data.portchannel)

    st.log('On DUT1 unconfigure vlan and IPv4 and IPv6 addresses on it')
    ip_obj.delete_ip_interface(data.dut1_client,
                               'Vlan' + data.dut1_dut2_vlan[0],
                               data.dut1_dut2_ipv6[1],
                               data.dut1_dut2_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut1_client,
                               'Vlan' + data.dut1_dut2_vlan[0],
                               data.dut1_dut2_ip[1], data.dut1_dut2_ip_subnet,
                               'ipv4')
    vlan_obj.delete_vlan_member(data.dut1_client, data.dut1_dut2_vlan[0],
                                data.d1_d2_ports[1], True)
    vlan_obj.create_vlan(data.dut1_client, data.dut1_dut2_vlan[0])

    st.banner(
        'Unconfigure IPv4 and IPv6 addresses on physical interface of DUT1')
    ip_obj.delete_ip_interface(data.dut1_client, data.d1_d2_ports[0],
                               data.dut1_dut2_ipv6[0],
                               data.dut1_dut2_ipv6_subnet, 'ipv6')
    ip_obj.delete_ip_interface(data.dut1_client, data.d1_d2_ports[0],
                               data.dut1_dut2_ip[0], data.dut1_dut2_ip_subnet,
                               'ipv4')

    st.log('Unconfigure IPv6 address on management interface of DUT1')
    ip_obj.delete_ip_interface(data.dut1_client, data.mgmt_intf,
                               data.dut1_mgmt_ipv6[0],
                               data.dut1_mgmt_ipv6_subnet, 'ipv6')

    return True
def test_ft_verify_static_portchannel_enable_disable_with_MTU_Value():
    '''
    Author: Venkatesh Terli <*****@*****.**>
    Scenario - 3.1.4 Verify that mtu value is configured and enable/disable the portchannel.
    '''
    st.log(
        'Scenario - 3.1.4 Verify that mtu value is configured and enable/disable the portchannel.'
    )
    portchannelobj.add_del_portchannel_member(vars.D1,
                                              static_data.portchannel_name,
                                              static_data.members_dut1, 'del')
    intfobj.interface_properties_set(
        vars.D1, static_data.members_dut1 + [static_data.portchannel_name],
        'mtu', '4096')
    portchannelobj.add_del_portchannel_member(vars.D1,
                                              static_data.portchannel_name,
                                              static_data.members_dut1)
    portchannelobj.add_del_portchannel_member(vars.D1,
                                              static_data.portchannel_name,
                                              static_data.members_dut1, 'del')
    intfobj.interface_properties_set(
        vars.D1, static_data.members_dut1 + [static_data.portchannel_name],
        'mtu', static_data.mtu_default)
    portchannelobj.add_del_portchannel_member(vars.D1,
                                              static_data.portchannel_name,
                                              static_data.members_dut1)
    intfobj.interface_operation(vars.D1,
                                static_data.portchannel_name,
                                operation="shutdown")
    if not intfobj.interface_operation(
            vars.D1, static_data.portchannel_name, operation="startup"):
        st.report_fail('portchannel_state_fail', static_data.portchannel_name,
                       vars.D1, 'down')
    st.report_pass('Enable_disable_portchannel_with_mtu',
                   static_data.portchannel_name)
def test_ft_ipv6_link_local_nh_change():
    report_flag = 0
    st.log("Clearing all interface counters")
    utils.exec_all(True, [[intf_obj.clear_interface_counters, vars.D1], [intf_obj.clear_interface_counters, vars.D2]])
    st.log("clearing TG stats")
    tgapi.traffic_action_control(tg_handler, actions=['clear_stats'])
    st.log("Remove the vlan participation to bring down the Vlan routing intf")
    vlan_obj.delete_vlan_member(vars.D1, data.vlan_li[0], vars.D1D2P2, tagging_mode=True)
    vlan_obj.add_vlan_member(vars.D1, data.vlan_li[0], vars.D1D2P2, tagging_mode=True)
    if not ip_obj.get_link_local_addresses(vars.D1, data.vlan_in_1):
        st.error("ipv6 link local addr is not auto generated after remove and re add of vlan routing intf")
        report_flag = 1
    pc_obj.add_del_portchannel_member(vars.D1, data.prt_chnl, [vars.D1D2P3, vars.D1D2P4], flag="del", skip_verify=True)
    pc_obj.add_del_portchannel_member(vars.D1, data.prt_chnl, [vars.D1D2P3, vars.D1D2P4], flag="add", skip_verify=True)
    if not ip_obj.get_link_local_addresses(vars.D1, data.prt_chnl):
        st.error("ipv6 link local addr is not auto generated for {} after remove and re add of members".format(data.prt_chnl))
        report_flag = 1
    if not ip_obj.ping(vars.D1, d2_prt_link_local[0], family='ipv6', interface = vars.D1D2P1):
        st.log("Ipv6 Ping over Link Local address via the Port based routing interface is failed.")
        report_flag = 1
    if not ip_obj.ping(vars.D1, d2_prt_link_local[0], family='ipv6', interface = data.vlan_in_1):
        st.log("Ipv6 Ping over Link Local address via the Vlan  based routing interface is failed.")
        report_flag =1
    if not ip_obj.ping(vars.D1, d2_prt_link_local[0], family='ipv6', interface = data.prt_chnl):
        st.log("Ipv6 Ping over Link Local address via the Port Channel based routing interface is failed.")
        report_flag =1
    utils.exec_all(True, [[get_mac, vars.D1] ,[get_mac, vars.D2]])
    st.log("Checking the IPv6 traffic forwarding over ECMP next hops after remove and re adding of next hop interfaces")
    tg1.tg_traffic_control(action='run', handle=tg_str_data[1]["tg1_ipv6_data_str_id_1"])
    st.wait(data.pkts_tx_time)
    tg1.tg_traffic_control(action='stop', handle=tg_str_data[1]["tg1_ipv6_data_str_id_1"])
    ecmp_cntrs = verify_traffic_hash(vars.D1, [vars.D1D2P1, vars.D1D2P2, vars.D1D2P3, vars.D1D2P4], data.pkts_per_port)
    st.log("Counter stats on next hop interfaces - {}".format(ecmp_cntrs))
    traffic_details = {
        '1': {
            'tx_ports': [vars.T1D1P1],
            'tx_obj': [tg1],
            'exp_ratio': [1],
            'rx_ports': [vars.T1D2P1],
            'rx_obj': [tg2],
        }
    }
    filter_result = tgapi.validate_tgen_traffic(traffic_details=traffic_details, mode='aggregate', comp_type='packet_count')
    if not filter_result:
        st.log("After flap in next hop interfaces, traffic loss observed for ipv6 traffic forwarded via ipv6 link local next hop")
        report_flag = 1
    if report_flag:
        st.report_fail("ip6_traffic_over_link_local_nh_fail")
    st.report_pass("test_case_passed")
def test_ft_verify_static_portchannel_add_member_to_other_portchannel():
    '''
    Author: Venkatesh Terli <*****@*****.**>
    Scenario - 3.2.5 A member port already part of a port-channel shouldn't be allowed to add it to another port-channel.
    '''
    st.log(
        "Scenario - 3.2.5 A member port already part of a port-channel shouldn't be allowed to add it to another port-channel."
    )
    if not portchannelobj.create_portchannel(
            vars.D1, static_data.portchannel_name2, static=True):
        st.report_fail('portchannel_create_failed',
                       static_data.portchannel_name2, vars.D1)
    portchannelobj.add_del_portchannel_member(vars.D1,
                                              static_data.portchannel_name2,
                                              static_data.members_dut1[0],
                                              skip_verify=False,
                                              skip_err_check=True)
    portchannelobj.delete_portchannel(vars.D1, static_data.portchannel_name2)
    st.report_pass('add_member_ports_to_other_portchannel')
示例#6
0
def test_ft_bgp_unnumbered_pc_mem_add_rem():
    # ################ Author Details ################
    # Name: Kiran Vedula
    # Email: [email protected]
    # ################################################
    utils_obj.banner_log('FtOtSoRtBgpUnFn003,FtOtSoRtBgpUnFn008')
    result = 0
    if not utils.poll_wait(bgp_obj.verify_bgp_summary,
                           data.wait_timer,
                           vars.D1,
                           family='ipv6',
                           shell=bgp_cli_type,
                           neighbor=data.portchannel_name,
                           state='Established'):
        st.log("Failed to form BGP unnumbered peering using IPv6 link local")
        result += 1
    ip_obj.config_interface_ip6_link_local(vars.D1, data.portchannel_name,
                                           'disable')
    pc_obj.add_del_portchannel_member(vars.D1, data.portchannel_name,
                                      [vars.D1D2P3, vars.D1D2P4], 'del')
    st.wait(data.wait)
    pc_obj.add_del_portchannel_member(vars.D1, data.portchannel_name,
                                      [vars.D1D2P3, vars.D1D2P4], 'add')
    ip_obj.config_interface_ip6_link_local(vars.D1, data.portchannel_name,
                                           'enable')
    st.wait(data.wait)
    if not utils.poll_wait(bgp_obj.verify_bgp_summary,
                           data.wait_timer,
                           vars.D1,
                           family='ipv6',
                           shell=bgp_cli_type,
                           neighbor=data.portchannel_name,
                           state='Established'):
        st.log("Failed to form BGP unnumbered peering using IPv6 link local")
        result += 1
    if result == 0:
        st.report_pass("test_case_passed")
    else:
        st.log(
            "BGP unnumbered neighborship failed after PC member del and re-add"
        )
        st.report_fail("test_case_failed")
def test_ft_verify_static_portchannel_is_up_or_not_with_one_active_member():
    '''
    Author: Venkatesh Terli <*****@*****.**>
    Scenario - 3.1.8 Verify that the status of the Port Channel is Up as long as at least one of its member ports is in Link Up state
    '''
    st.log(
        'Scenario - 3.1.8: Verify that the status of the Port Channel is Up as long as at least one of its member ports is in Link Up state.'
    )
    portchannelobj.delete_portchannel_member(vars.D1,
                                             static_data.portchannel_name,
                                             static_data.members_dut1[1:])
    if not portchannelobj.poll_for_portchannel_status(
            vars.D1, static_data.portchannel_name, 'up', iteration=10):
        portchannelobj.add_del_portchannel_member(vars.D1,
                                                  static_data.portchannel_name,
                                                  static_data.members_dut1[1:])
        st.report_fail('portchannel_state_fail', static_data.portchannel_name,
                       vars.D1, 'down')
    st.report_pass('portchannel_state_with_atlease_one_link',
                   static_data.portchannel_name)
def test_ft_verify_static_portchannel_is_up_with_active_members_when_no_lag_in_partner(
):
    '''
    Author: Venkatesh Terli <*****@*****.**>
    Scenario - 3.1.7 Verify that the static LAG in main DUT is UP with lag configured with active members when LAG is not created at partner DUT.
    '''
    st.log(
        'Scenario - 3.1.7 Verifying that the static LAG in main DUT is UP with lag configured with active members when LAG is not created at partner DUT'
    )
    portchannelobj.add_del_portchannel_member(vars.D2,
                                              static_data.portchannel_name,
                                              static_data.members_dut2, 'del')
    delete_vlan_member(vars.D2,
                       static_data.vid,
                       static_data.portchannel_name,
                       tagging_mode=True)
    portchannelobj.delete_portchannel(vars.D2, static_data.portchannel_name)
    if not portchannelobj.poll_for_portchannel_status(
            vars.D1, static_data.portchannel_name, 'up', iteration=10):
        st.report_fail('portchannel_state_fail', static_data.portchannel_name,
                       vars.D1, 'down')
    st.report_pass('portchannel_state_with_partner_dut',
                   static_data.portchannel_name)
def portchannel_func_hooks(request):
    yield
    if st.get_func_name(
            request
    ) == 'test_ft_verify_static_portchannel_is_up_or_not_with_one_active_member':
        portchannelobj.add_del_portchannel_member(vars.D1,
                                                  static_data.portchannel_name,
                                                  static_data.members_dut1[1:])
    if st.get_func_name(
            request
    ) == 'test_ft_verify_static_portchannel_is_up_with_active_members_when_no_lag_in_partner':
        portchannelobj.create_portchannel(vars.D2,
                                          static_data.portchannel_name,
                                          static=True)
        portchannelobj.add_del_portchannel_member(vars.D2,
                                                  static_data.portchannel_name,
                                                  static_data.members_dut2)
        add_vlan_member(vars.D2,
                        static_data.vid,
                        static_data.portchannel_name,
                        tagging_mode=True)
    if st.get_func_name(
            request
    ) == 'test_ft_verify_fallback_is_configure_or_not_on_static_portchannel':
        if portchannelobj.get_portchannel(vars.D1,
                                          static_data.portchannel_name2):
            portchannelobj.delete_portchannel(vars.D1,
                                              static_data.portchannel_name2)
    if st.get_func_name(
            request
    ) == 'test_ft_verify_static_portchannel_del_from_ip_assigned_vlan':
        st.wait(2)
        ipobj.config_ip_addr_interface(vars.D1,
                                       'Vlan{}'.format(static_data.vid),
                                       static_data.ip41,
                                       static_data.ip_mask,
                                       config='remove')
        portchannelobj.add_del_portchannel_member(vars.D1,
                                                  static_data.portchannel_name,
                                                  static_data.members_dut1)
    if st.get_func_name(request) == 'test_ft_del_ip_assigned_portchannel':
        if not portchannelobj.get_portchannel(vars.D1,
                                              static_data.portchannel_name):
            portchannelobj.create_portchannel(vars.D1,
                                              static_data.portchannel_name,
                                              static=True)
        ipobj.delete_ip_interface(vars.D1,
                                  static_data.portchannel_name,
                                  static_data.ip41,
                                  static_data.ip_mask,
                                  skip_error=True)
        portchannelobj.add_del_portchannel_member(vars.D1,
                                                  static_data.portchannel_name,
                                                  static_data.members_dut1)
        exceptions = exec_all(True,
                              [[
                                  add_vlan_member, vars.D1, static_data.vid,
                                  static_data.portchannel_name, True
                              ],
                               [
                                   add_vlan_member, vars.D2, static_data.vid,
                                   static_data.portchannel_name, True
                               ]])[1]
        ensure_no_exception(exceptions)
    if st.get_func_name(
            request
    ) == 'test_ft_verify_static_portchannel_l3_hash_sip_dip_l4port':
        arpobj.delete_static_arp(vars.D2,
                                 static_data.ip42,
                                 interface=vars.D2T1P1,
                                 mac=static_data.remote_mac2)
        ipobj.clear_ip_configuration([vars.D1, vars.D2],
                                     family='ipv4',
                                     thread=True)
        exceptions = exec_all(
            True, [[
                add_vlan_member, vars.D1, static_data.vid,
                [static_data.portchannel_name, vars.D1T1P1], True
            ],
                   [
                       add_vlan_member, vars.D2, static_data.vid,
                       [static_data.portchannel_name, vars.D2T1P1], True
                   ]])[1]
        ensure_no_exception(exceptions)
    if st.get_func_name(
            request
    ) == 'test_ft_verify_static_portchannel_vlan_routing_l3_traffic':
        arpobj.delete_static_arp(vars.D2,
                                 static_data.ip42,
                                 interface=vars.D2T1P1,
                                 mac=static_data.remote_mac2)
        ipobj.clear_ip_configuration([vars.D1, vars.D2],
                                     family='ipv4',
                                     thread=True)
        exceptions = exec_all(True, [[
            add_vlan_member, vars.D1, static_data.vid, vars.D1T1P1, True
        ], [add_vlan_member, vars.D2, static_data.vid, vars.D2T1P1, True]])[1]
        ensure_no_exception(exceptions)
 def f4():
     pc_obj.add_del_portchannel_member(data.d4, data.d4_d1_pc_1, data.d4_d1_intf_1, 'del')
     pc_obj.add_del_portchannel_member(data.d4, data.d4_d1_pc_1, data.d4_d1_intf_2, 'del')
     pc_obj.delete_portchannel(data.d4, data.d4_d1_pc_1)
 def f3():
     pc_obj.add_del_portchannel_member(data.d3, data.d3_d2_pc_1, data.d3_d2_intf_1, 'del')
     pc_obj.add_del_portchannel_member(data.d3, data.d3_d2_pc_1, data.d3_d2_intf_2, 'del')
     pc_obj.delete_portchannel(data.d3, data.d3_d2_pc_1)
 def f2():
     pc_obj.add_del_portchannel_member(data.d2, data.d2_d3_pc_1, data.d2_d3_intf_1, 'del')
     pc_obj.add_del_portchannel_member(data.d2, data.d2_d3_pc_1, data.d2_d3_intf_2, 'del')
     pc_obj.delete_portchannel(data.d2, data.d2_d3_pc_1)
 def f1():
     pc_obj.add_del_portchannel_member(data.d1, data.d1_d4_pc_1, data.d1_d4_intf_1, 'del')
     pc_obj.add_del_portchannel_member(data.d1, data.d1_d4_pc_1, data.d1_d4_intf_2, 'del')
     pc_obj.delete_portchannel(data.d1, data.d1_d4_pc_1)
def dut2_unconfig():

    result = 0
    st.log('On Configure IP addresses on DUT2 - TG interfaces')
    result = ip_obj.delete_ip_interface(data.dut2, data.dut2_tg_ports[0],
                                        data.dut2_tg_ipv6[0],
                                        data.tg_ipv6_subnet, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut2, data.dut2_tg_ports[0],
                                        data.dut2_tg_ip[0], data.tg_ip_subnet,
                                        'ipv4')
    result = arp_obj.config_static_ndp(data.dut2,
                                       data.tg_dut2_ipv6[0],
                                       '00:00:33:33:33:02',
                                       data.dut2_tg_ports[0],
                                       operation="del")
    result = arp_obj.delete_static_arp(data.dut2, data.tg_dut2_ip[0],
                                       '00:00:33:33:33:01')

    st.log(
        'On DUT2 unconfigure OSPF router ID, ospf networks and add all the ospf interfaces'
    )
    result = ospf_obj.config_interface_ip_ospf_network_type(
        data.dut2, data.d2_d1_ports[0], 'point-to-point', 'default', 'no')
    result = ospf_obj.config_interface_ip_ospf_network_type(
        data.dut2, 'Vlan' + data.dut1_dut2_vlan[0], 'point-to-point',
        'default', 'no')
    result = ospf_obj.config_interface_ip_ospf_network_type(
        data.dut2, data.portchannel, 'point-to-point', 'default', 'no')
    result = ospf_obj.config_ospf_network(
        data.dut2, data.dut2_loopback_ip[0] + '/' + data.ip_loopback_prefix, 0,
        'default', '', 'no')
    result = ospf_obj.config_ospf_router_id(data.dut2,
                                            data.dut2_ospf_router_id,
                                            'default', '', 'no')

    st.log(
        'On DUT2 unconfigure loopback and remove IPv4 and IPv6 addresses on it'
    )
    result = ip_obj.delete_ip_interface(data.dut2_server,
                                        data.dut2_loopback[0],
                                        data.dut2_loopback_ipv6[0],
                                        data.dut2_loopback_ipv6_subnet, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut2_server,
                                        data.dut2_loopback[0],
                                        data.dut2_loopback_ip[0],
                                        data.dut2_loopback_ip_subnet, 'ipv4')
    result = ip_obj.configure_loopback(data.dut2_server,
                                       config='no',
                                       loopback_name=data.dut2_loopback[0])

    st.log(
        'On DUT2 unconfigure portchannel and remove IPv4 and IPv6 addresses on it'
    )
    result = ip_obj.delete_ip_interface(data.dut2_server, data.portchannel,
                                        data.dut2_dut1_ipv6[2],
                                        data.dut2_dut1_ipv6_subnet, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut2_server, data.portchannel,
                                        data.dut2_dut1_ip[2],
                                        data.dut2_dut1_ip_subnet, 'ipv4')
    result = pc_obj.add_del_portchannel_member(
        data.dut2_server, data.portchannel,
        [data.d2_d1_ports[2], data.d2_d1_ports[3]], 'del')
    result = pc_obj.delete_portchannel(data.dut2_server, data.portchannel)

    st.log('On DUT2 unconfigure vlan and remove IPv4 and IPv6 addresses on it')
    result = ip_obj.delete_ip_interface(data.dut2,
                                        'Vlan' + data.dut1_dut2_vlan[0],
                                        data.dut2_dut1_ipv6[1],
                                        data.dut2_dut1_ipv6_subnet, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut2,
                                        'Vlan' + data.dut1_dut2_vlan[0],
                                        data.dut2_dut1_ip[1],
                                        data.dut2_dut1_ip_subnet, 'ipv4')
    result = vlan_obj.delete_vlan_member(data.dut2, data.dut1_dut2_vlan[0],
                                         data.d2_d1_ports[1], True)
    result = vlan_obj.delete_vlan(data.dut2, data.dut1_dut2_vlan[0])

    st.log('On DUT2 remove IPv4 and IPv6 addresses on physical interface')
    result = ip_obj.delete_ip_interface(data.dut2, data.d2_d1_ports[0],
                                        data.dut2_dut1_ipv6[0],
                                        data.dut2_dut1_ipv6_subnet, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut2, data.d2_d1_ports[0],
                                        data.dut2_dut1_ip[0],
                                        data.dut2_dut1_ip_subnet, 'ipv4')

    return result
def dut1_unconfig():

    result = 0
    st.log('On DUT1 unconfigure IP addresses on DUT - TG interfaces')
    ip_obj.delete_ip_interface(data.dut1, data.dut1_tg_ports[0],
                               data.dut1_tg_ipv6[0], data.tg_ipv6_subnet,
                               'ipv6')
    ip_obj.delete_ip_interface(data.dut1, data.dut1_tg_ports[0],
                               data.dut1_tg_ip[0], data.tg_ip_subnet, 'ipv4')

    st.log(
        'On DUT1 Unonfigure OSPF router ID, ospf network and add all the ospf interfaces'
    )
    result = ospf_obj.config_interface_ip_ospf_network_type(
        data.dut1, data.d1_d2_ports[0], 'point-to-point', data.dut1_vrf[0],
        'no')
    result = ospf_obj.config_interface_ip_ospf_network_type(
        data.dut1, 'Vlan' + data.dut1_dut2_vlan[0], 'point-to-point',
        data.dut1_vrf[0], 'no')
    result = ospf_obj.config_interface_ip_ospf_network_type(
        data.dut1, data.portchannel, 'point-to-point', data.dut1_vrf[0], 'no')
    result = ospf_obj.config_ospf_network(
        data.dut1, data.dut1_loopback_ip[0] + '/' + data.ip_loopback_prefix, 0,
        data.dut1_vrf[0], '', 'no')
    result = ospf_obj.config_ospf_network(
        data.dut1, data.dut1_loopback_ip[1] + '/' + data.ip_loopback_prefix, 0,
        data.dut1_vrf[0], '', 'no')
    result = ospf_obj.config_ospf_network(
        data.dut1, data.dut1_loopback_ip[2] + '/' + data.ip_loopback_prefix, 0,
        data.dut1_vrf[0], '', 'no')
    result = ospf_obj.config_ospf_router_id(data.dut1,
                                            data.dut1_ospf_router_id,
                                            data.dut1_vrf[0], '', 'no')

    st.banner('Unconfigure IPv4 and IPv6 addresses on the loopback interfaces')
    result = ip_obj.delete_ip_interface(data.dut1, data.dut1_loopback[0],
                                        data.dut1_loopback_ipv6[0],
                                        data.ipv6_loopback_prefix, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut1, data.dut1_loopback[0],
                                        data.dut1_loopback_ip[0],
                                        data.ip_loopback_prefix, 'ipv4')
    result = ip_obj.delete_ip_interface(data.dut1, data.dut1_loopback[1],
                                        data.dut1_loopback_ipv6[1],
                                        data.ipv6_loopback_prefix, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut1, data.dut1_loopback[1],
                                        data.dut1_loopback_ip[1],
                                        data.ip_loopback_prefix, 'ipv4')
    result = ip_obj.delete_ip_interface(data.dut1, data.dut1_loopback[2],
                                        data.dut1_loopback_ipv6[2],
                                        data.ipv6_loopback_prefix, 'ipv6')
    result = ip_obj.delete_ip_interface(data.dut1, data.dut1_loopback[2],
                                        data.dut1_loopback_ip[2],
                                        data.ip_loopback_prefix, 'ipv4')

    st.log(
        'On DUT1 unbind all the loopbacks, physical, vlan and portchannel interfaces to the VRF'
    )
    result = vrf_obj.bind_vrf_interface(
        dut=data.dut1,
        vrf_name=data.dut1_vrf[0],
        intf_name=[
            data.dut1_loopback[0], data.dut1_loopback[1],
            data.dut1_loopback[2], data.d1_d2_ports[0],
            'Vlan' + data.dut1_dut2_vlan[0], data.portchannel
        ],
        config='no')

    st.log('On DUT1 unconfigure vlan')
    result = vlan_obj.delete_vlan_member(data.dut1_client,
                                         data.dut1_dut2_vlan[0],
                                         data.d1_d2_ports[1], True)
    result = vlan_obj.create_vlan(data.dut1_client, data.dut1_dut2_vlan[0])

    st.banner('Unconfigure portchannel on DUT1')
    result = pc_obj.add_del_portchannel_member(
        data.dut1_client, data.portchannel,
        [data.d1_d2_ports[2], data.d1_d2_ports[3]], 'del')
    result = pc_obj.delete_portchannel(data.dut1_client, data.portchannel)

    st.log('On DUT1 unconfigure vrfs and loopbacks')
    result = ip_obj.configure_loopback(data.dut1,
                                       config='no',
                                       loopback_name=[
                                           data.dut1_loopback[0],
                                           data.dut1_loopback[1],
                                           data.dut1_loopback[2]
                                       ])
    result = vrf_obj.config_vrf(dut=data.dut3_client,
                                vrf_name=data.dut1_vrf[0],
                                config='no')

    return result