def Setup(tc): # # Set up global variables # tc.feature = 'lif-flow-erspan-flowmon' tc.udp_count = NUMBER_OF_UDP_ERSPAN_PACKETS_PER_SESSION >> 1 tc.icmp_count = NUMBER_OF_ICMP_ERSPAN_PACKETS_PER_SESSION >> 1 tc.tcp_close_val = None tc.classic_mode = False tc.ignore = False tc.error = False # # Establish Workloads # result = eutils.establishWorkloads(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Check to see if Naples-hosted node is present # result = eutils.establishNaplesWorkload(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Ignore non-applicable test-options in Sanity mode # - [peer = local] is not supported until ps_2263 is fixed # - [collector = local] is not supported until ps_2790 is fixed # - Multi-collector testing is not enabled in freebsd # environment until tcpdump capture on secondary-IP is resolved # if (tc.args.ps_2263 != 'fixed' and tc.iterators.peer == 'local') or\ (tc.args.ps_2790 != 'fixed' and tc.iterators.collector == 'local') or\ (api.GetNodeOs(tc.naples.node_name) == 'freebsd' and\ tc.iterators.ccount > 1): tc.ignore = True return api.types.status.SUCCESS if api.IsBareMetalWorkloadType(tc.naples.node_name): tc.classic_mode = True tc.udp_count = 1 tc.icmp_count = 1 # # Figure out (Collector) Workloads that are remote to Naples node and # identify remote Naples-peer, if applicable # result = eutils.establishRemoteWorkloads(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Figure out Workloads that are local to Naples node and identify # local Naples-peer, if applicable # result = eutils.establishLocalWorkloads(tc) if result != api.types.status.SUCCESS: tc.error = True return result if tc.classic_mode == True: result = eutils.establishCollectorWorkloadInClassicMode( tc, '10.255.0.2') if result != api.types.status.SUCCESS: tc.error = True return result # # Allocate Secondary-IPs for collectors as needed in order to test up to # Eight collectors # result = eutils.establishCollectorSecondaryIPs(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Generate feature specific Collector list # eutils.generateFeatureCollectorList(tc) eutils.debugWorkLoadTraces(tc) # # Retrieve relevant Table-Id's # eutils.retrieveTableIds(tc) # # Set up runtime validation knobs # - dupcheck: To circumvent duplicate-pkts checks in case of LIF-ERSPAN # where multiple workloads map to the same LIF # tc.dupcheck = 'enable' if tc.iterators.peer == 'local' or tc.iterators.iftype != 'uplink': tc.dupcheck = 'disable' # # Preserve current TCP-Close configs and shrink it to 1-second # if tc.classic_mode == False: tc.tcp_close_val = get_timeout_val('tcp-close') update_timeout('tcp-close', "1s") return api.types.status.SUCCESS
def Setup(tc): # # Set up global variables # tc.feature = 'endpoint-span' tc.protocol = 'all' tc.udp_count = 1 tc.icmp_count = 1 tc.tcp_close_val = None tc.classic_mode = False tc.ignore = False tc.error = False # # Establish Workloads # result = eutils.establishWorkloads(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Check to see if Naples-hosted node is present # result = eutils.establishNaplesWorkload(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Ignore non-applicable test-options in Sanity mode # - Multi-collector testing is not enabled in freebsd # environment until tcpdump capture on secondary-IP is resolved # - Multi-collector testing is limited to 2 in esx # environment until secondary-IP works in esx mode # if (api.GetNodeOs(tc.naples.node_name) == 'freebsd' and\ tc.iterators.ccount > 1) or\ (api.GetNodeOs(tc.naples.node_name) == 'esx' and\ tc.iterators.ccount > 2): tc.ignore = True return api.types.status.SUCCESS if api.IsBareMetalWorkloadType(tc.naples.node_name): tc.classic_mode = True # # Figure out (Collector) Workloads that are remote to Naples node and # identify remote Naples-peer, if applicable # result = eutils.establishRemoteWorkloads(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Figure out Workloads that are local to Naples node and identify # local Naples-peer, if applicable # result = eutils.establishLocalWorkloads(tc) if result != api.types.status.SUCCESS: tc.error = True return result ''' # endpoint span is not supported in classic mode if tc.classic_mode == True: result = eutils.establishCollectorWorkloadInClassicMode(tc, '10.255.0.2') if result != api.types.status.SUCCESS: tc.error = True return result ''' # # Allocate Secondary-IPs for collectors as needed in order to test up to # Eight collectors # result = eutils.establishCollectorSecondaryIPs(tc) if result != api.types.status.SUCCESS: tc.error = True return result # # Generate feature specific Collector list # eutils.generateFeatureCollectorList(tc) eutils.debugWorkLoadTraces(tc) # # Retrieve relevant Table-Id's # eutils.retrieveTableIds(tc) # # Set up runtime validation knobs # - dupcheck: To circumvent duplicate-pkts checks in case of LIF-ERSPAN # where multiple workloads map to the same LIF # tc.dupcheck = 'enable' if tc.iterators.peer == 'local': tc.dupcheck = 'disable' # # Preserve current TCP-Close configs and shrink it to 1-second # if tc.classic_mode == False: tc.tcp_close_val = get_timeout_val('tcp-close') update_timeout('tcp-close', "1s") #Query will get the reference of objects on store nw_filter = "meta.name=" + tc.naples.workload_name + ";" tc.store_endpoint_objects = netagent_cfg_api.QueryConfigs(kind='Endpoint', filter=nw_filter) if len(tc.store_endpoint_objects) == 0: api.Logger.error("No Endpoint objects in store") tc.ignore = True return api.types.status.FAILURE #api.Logger.info("Len of endpoint_objects {}".format(len(tc.store_endpoint_objects))) #cfg_api.PrintConfigsObjects(tc.store_endpoint_objects) #api.Logger.info("Naples selected for test node: {} WL: {}".format(tc.naples.node_name, tc.naples.workload_name)) return api.types.status.SUCCESS