예제 #1
0
def erspan_post_config():
    """
    Author: Lakshminarayana D ([email protected])
    Using this post config at module level. So, applicable for all test cases which includes in this module.
    :return: None
    """

    # Unconfig ip address on DUT-1
    for port, ip_addr, in zip(data.port_list_d1, data.ip_list_d1):
        ip.delete_ip_interface(vars.D1, port, ip_addr, data.subnet_mask)

    # Unconfig ip address on DUT-2
    for port, ip_addr in zip(data.port_list_d2, data.ip_list_d2):
        ip.delete_ip_interface(vars.D2, port, ip_addr, data.subnet_mask)

    # Unconfig static route
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D2P1, data.subnet_mask))
    ip.delete_static_route(vars.D1, data.ip_D2D1P1, network)
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D1P1, data.subnet_mask))
    ip.delete_static_route(vars.D2, data.ip_D1D2P1, network)

    # Unconfig mirror session
    mirror.delete_session(vars.D1, data.session_name)

    # Unconfig acl rule
    acl_dscp.config_classifier_table(dut=vars.D1, enable="del", class_name=data.acl_rule)

    # Unconfig acl table
    acl_dscp.config_service_policy_table(dut=vars.D1, policy_kind='unbind', interface_name=vars.D1T1P1, stage='in',
                                         service_policy_name=data.acl_table_name, policy_type=data.type)
    acl_dscp.config_service_policy_table(dut=vars.D1, policy_kind='unbind', interface_name=vars.D1T1P2, stage='in',
                                         service_policy_name=data.acl_table_name, policy_type=data.type)
    acl_dscp.config_policy_table(dut=vars.D1, enable='del', policy_name=data.acl_table_name)

    acl.delete_acl_table(vars.D1, acl_table_name="L3_IPV6_INGRESS", acl_type="L3V6")
예제 #2
0
def mirror_action_config():
    mirror_args = {
        "session_name": data.session_name,
        "gre_type": data.gre_type,
        "dscp": data.dscp,
        "ttl": data.ttl,
        "queue": data.queue,
        "src_ip": data.source_ip,
        "dst_ip": data.destination_ip
    }
    retval = mirror.create_session_table(vars.D1, **mirror_args)
    if not retval:
        st.log("Failed to create mirror session using json file.")
        st.report_fail("operation_failed")
        acl_dscp.config_policy_table(vars.D1,
                                     enable='create',
                                     policy_name=data.acl_table_name,
                                     policy_type=data.type)
        acl_dscp.config_service_policy_table(
            vars.D1,
            policy_kind='bind',
            policy_type=data.type,
            stage='in',
            interface_name=vars.D1T1P1,
            service_policy_name=data.acl_table_name)
    if not sconf_obj.verify_running_config(vars.D1, "MIRROR_SESSION",
                                           "Mirror_Ses", "dst_ip", "15.1.1.2"):
        st.log("Failed to show mirror session details in running config.")
        st.report_fail("operation_failed")
예제 #3
0
def erspan_pre_config():
    """
    Author: Lakshminarayana D ([email protected])
    Using this pre config at module level. So, applicable for all test cases which includes in this module.
    :return: None
    """

    # IP address configuration on DUT-1
    for port, ip_addr, in zip(data.port_list_d1, data.ip_list_d1):
        ip.config_ip_addr_interface(vars.D1, port, ip_addr, data.subnet_mask)

    # IP address configuration on DUT-2
    for port, ip_addr in zip(data.port_list_d2, data.ip_list_d2):
        ip.config_ip_addr_interface(vars.D2, port, ip_addr, data.subnet_mask)

    # Create static route
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D2P1, data.subnet_mask))
    ip.create_static_route(vars.D1, data.ip_D2D1P1, network)
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D1P1, data.subnet_mask))
    ip.create_static_route(vars.D2, data.ip_D1D2P1, network)

    # creation and verification of Monitor session
    mirror.create_session(vars.D1, session_name=data.session_name, src_ip=data.ip_D1T1P1,
                          dst_ip=data.ip_T1D2P1, gre_type=data.gre_type, dscp=data.dscp,
                          ttl=data.ttl, queue=data.queue)

    # creation and verification of ACL Policy
    acl_dscp.config_policy_table(vars.D1, enable='create', policy_name=data.acl_table_name, policy_type=data.type)
    acl_dscp.config_service_policy_table(vars.D1, policy_kind="bind", interface_name=vars.D1T1P1, stage='in',
                                         service_policy_name=data.acl_table_name, policy_type=data.type)
    acl_dscp.config_service_policy_table(vars.D1, policy_kind="bind", interface_name=vars.D1T1P2, stage='in',
                                         policy_type=data.type, service_policy_name=data.acl_table_name)
    acl.create_acl_table(vars.D1, name="L3_IPV6_INGRESS", stage=data.stage, type="L3V6",
                         description="L3_IPV6_INGRESS", ports=[vars.D1T1P1])
예제 #4
0
def erspan_post_config():
    """
    Author: Anil Kumar Kacharla<*****@*****.**>
    Using this post config at module level. So, applicable for all test cases which includes in this module.
    :return: None
    """

    # Unconfig ip address on DUT-1
    for port, ip_addr, in zip(data.port_list_d1, data.ip_list_d1):
        ip.delete_ip_interface(data.dut1, port, ip_addr, data.subnet_mask)

    # Unconfig ip address on DUT-2
    for port, ip_addr in zip(data.port_list_d2, data.ip_list_d2):
        ip.delete_ip_interface(data.dut2, port, ip_addr, data.subnet_mask)

    # Unconfig static route
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D2P1,
                                                    data.subnet_mask))
    ip.delete_static_route(data.dut1, data.ip_D2D1P1, network)
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D1P1,
                                                    data.subnet_mask))
    ip.delete_static_route(data.dut2, data.ip_D1D2P1, network)

    # Unconfig acl classifier
    acl_dscp.config_flow_update_table(data.dut1,
                                      policy_name=data.acl_table_name,
                                      flow='del',
                                      policy_type=data.type,
                                      class_name=data.acl_rule)
    acl_dscp.config_classifier_table(dut=data.dut1,
                                     enable="del",
                                     class_name=data.acl_rule)

    # Unconfig acl policy
    acl_dscp.config_service_policy_table(
        dut=data.dut1,
        policy_kind='unbind',
        interface_name=vars.D1T1P1,
        stage='in',
        service_policy_name=data.acl_table_name,
        policy_type=data.type)
    acl_dscp.config_policy_table(dut=data.dut1,
                                 enable='del',
                                 policy_name=data.acl_table_name)

    # Unconfig mirror session
    mirror.delete_session(data.dut1, data.session_name)
예제 #5
0
def erspan_pre_config():
    """
    Author: Anil Kumar Kacharla<*****@*****.**>
    Using this pre config at module level. So, applicable for all test cases which includes in this module.
    :return: None
    """

    # IP address configuration on DUT-1
    for port, ip_addr, in zip(data.port_list_d1, data.ip_list_d1):
        ip.config_ip_addr_interface(data.dut1, port, ip_addr, data.subnet_mask)

    # IP address configuration on DUT-2
    for port, ip_addr in zip(data.port_list_d2, data.ip_list_d2):
        ip.config_ip_addr_interface(data.dut2, port, ip_addr, data.subnet_mask)

    # Create static route
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D2P1,
                                                    data.subnet_mask))
    ip.create_static_route(data.dut1, data.ip_D2D1P1, network)
    _, network = ip.get_network_addr("{}/{}".format(data.ip_T1D1P1,
                                                    data.subnet_mask))
    ip.create_static_route(data.dut2, data.ip_D1D2P1, network)

    # creation and verification of Monitor session
    mirror.create_session(data.dut1,
                          session_name=data.session_name,
                          src_ip=data.ip_D1T1P1,
                          dst_ip=data.ip_T1D2P1,
                          gre_type=data.gre_type,
                          dscp=data.dscp,
                          ttl=data.ttl,
                          queue=data.queue)

    # creation and verification of ACL policy
    acl_dscp.config_policy_table(vars.D1,
                                 enable='create',
                                 policy_name=data.acl_table_name,
                                 policy_type=data.type)
    acl_dscp.config_service_policy_table(
        vars.D1,
        policy_kind="bind",
        interface_name=vars.D1T1P1,
        stage='in',
        service_policy_name=data.acl_table_name,
        policy_type=data.type)
    # creation and verification of ACL classifier
    acl_dscp.config_classifier_table(vars.D1,
                                     enable='create',
                                     match_type="fields",
                                     class_name=data.acl_rule)
    acl_dscp.config_classifier_table(data.dut1,
                                     enable='yes',
                                     class_criteria=['--src-ip'],
                                     class_name=data.acl_rule,
                                     criteria_value=[data.src_ip_mask],
                                     match_type="fields")
    acl_dscp.config_flow_update_table(data.dut1,
                                      policy_name=data.acl_table_name,
                                      flow='add',
                                      class_name=data.acl_rule,
                                      priority_value=data.priority,
                                      description=data.description,
                                      policy_type=data.type)
    acl_dscp.config_flow_update_table(data.dut1,
                                      policy_name=data.acl_table_name,
                                      flow='update',
                                      policy_type=data.type,
                                      class_name=data.acl_rule,
                                      priority_option='--mirror-session',
                                      priority_value=data.mirror_action)