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")
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")
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])
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)
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)