X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=conf%2F03_traffic.conf;h=3c7bd2f5915770bb63689259cea8a8abda345023;hb=ad0f9d7c68be48e33348fc46ec187ca83b30340b;hp=01e3e5cf943f5f583b37003fc7d7d514d73441e6;hpb=4bd09fc0c95f89f3041e6a5a66613eb7cd7eaff8;p=vswitchperf.git diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index 01e3e5cf..3c7bd2f5 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -1,4 +1,4 @@ -# Copyright 2015 Intel Corporation. +# Copyright 2015-2017 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,6 +19,168 @@ # log file for all traffic generator related commands LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' +# TRAFFIC dictionary defines traffic parameters used by all traffic generators. +# Detailed description of TRAFFIC dictionary items follows: +# +# 'traffic_type' - One of the supported traffic types. +# E.g. rfc2544_throughput, rfc2544_back2back +# or rfc2544_continuous +# Data type: str +# Default value: "rfc2544_throughput". +# 'bidir' - Specifies if generated traffic will be full-duplex (True) +# or half-duplex (False) +# Data type: str +# Supported values: "True", "False" +# Default value: "False". +# 'frame_rate' - Defines desired percentage of frame rate used during +# continuous stream tests. +# Data type: int +# Default value: 100. +# 'multistream' - Defines number of flows simulated by traffic generator. +# Value 0 disables multistream feature +# Data type: int +# Supported values: 0-65536 for 'L4' stream type +# unlimited for 'L2' and 'L3' stream types +# Default value: 0. +# 'stream_type' - Stream type is an extension of the "multistream" feature. +# If multistream is disabled, then stream type will be +# ignored. Stream type defines ISO OSI network layer used +# for simulation of multiple streams. +# Data type: str +# Supported values: +# "L2" - iteration of destination MAC address +# "L3" - iteration of destination IP address +# "L4" - iteration of destination port +# of selected transport protocol +# Default value: "L4". +# 'pre_installed_flows' +# - Pre-installed flows is an extension of the "multistream" +# feature. If enabled, it will implicitly insert a flow +# for each stream. If multistream is disabled, then +# pre-installed flows will be ignored. +# Note: It is supported only for p2p deployment scenario. +# Data type: str +# Supported values: +# "Yes" - flows will be inserted into OVS +# "No" - flows won't be inserted into OVS +# Default value: "No". +# 'flow_type' - Defines flows complexity. +# Data type: str +# Supported values: +# "port" - flow is defined by ingress ports +# "IP" - flow is defined by ingress ports +# and src and dst IP addresses +# Default value: "port" +# 'flow_control' - Controls flow control support by traffic generator. +# Supported values: +# False - flow control is disabled +# True - flow control is enabled +# Default value: False +# Note: Currently it is supported by IxNet only +# 'learning_frames' - Controls learning frames support by traffic generator. +# Supported values: +# False - learning freames are disabled +# True - learning freames are enabled +# Default value: True +# Note: Currently it is supported by IxNet only +# 'l2' - A dictionary with l2 network layer details. Supported +# values are: +# 'srcmac' - Specifies source MAC address filled by traffic generator. +# NOTE: It can be modified by vsperf in some scenarios. +# Data type: str +# Default value: "00:00:00:00:00:00". +# 'dstmac' - Specifies destination MAC address filled by traffic generator. +# NOTE: It can be modified by vsperf in some scenarios. +# Data type: str +# Default value: "00:00:00:00:00:00". +# 'framesize' - Specifies default frame size. This value should not be +# changed directly. It will be overridden during testcase +# execution by values specified by list TRAFFICGEN_PKT_SIZES. +# Data type: int +# Default value: 64 +# 'l3' - A dictionary with l3 network layer details. Supported +# values are: +# 'enabled' - Specifies if l3 layer should be enabled or disabled. +# Data type: bool +# Default value: True +# NOTE: Supported only by IxNet trafficgen class +# 'srcip' - Specifies source MAC address filled by traffic generator. +# NOTE: It can be modified by vsperf in some scenarios. +# Data type: str +# Default value: "1.1.1.1". +# 'dstip' - Specifies destination MAC address filled by traffic generator. +# NOTE: It can be modified by vsperf in some scenarios. +# Data type: str +# Default value: "90.90.90.90". +# 'proto' - Specifies deflaut protocol type. +# Please check particular traffic generator implementation +# for supported protocol types. +# Data type: str +# Default value: "udp". +# 'l4' - A dictionary with l4 network layer details. Supported +# values are: +# 'enabled' - Specifies if l4 layer should be enabled or disabled. +# Data type: bool +# Default value: True +# NOTE: Supported only by IxNet trafficgen class +# 'srcport' - Specifies source port of selected transport protocol. +# NOTE: It can be modified by vsperf in some scenarios. +# Data type: int +# Default value: 3000 +# 'dstport' - Specifies destination port of selected transport protocol. +# NOTE: It can be modified by vsperf in some scenarios. +# Data type: int +# Default value: 3001 +# 'vlan' - A dictionary with vlan encapsulation details. Supported +# values are: +# 'enabled' - Specifies if vlan encapsulation should be enabled or +# disabled. +# Data type: bool +# Default value: False +# 'id' - Specifies vlan id. +# Data type: int (NOTE: must fit to 12 bits) +# Default value: 0 +# 'priority' - Specifies a vlan priority (PCP header field). +# Data type: int (NOTE: must fit to 3 bits) +# Default value: 0 +# 'cfi' - Specifies if frames can or cannot be dropped during +# congestion (DEI header field). +# Data type: int (NOTE: must fit to 1 bit) +# Default value: 0 +TRAFFIC = { + 'traffic_type' : 'rfc2544_throughput', + 'frame_rate' : 100, + 'bidir' : 'True', # will be passed as string in title format to tgen + 'multistream' : 0, + 'stream_type' : 'L4', + 'pre_installed_flows' : 'No', # used by vswitch implementation + 'flow_type' : 'port', # used by vswitch implementation + 'flow_control' : False, # supported only by IxNet + 'learning_frames' : True, # supported only by IxNet + 'l2': { + 'framesize': 64, + 'srcmac': '00:00:00:00:00:00', + 'dstmac': '00:00:00:00:00:00', + }, + 'l3': { + 'enabled': True, + 'proto': 'udp', + 'srcip': '1.1.1.1', + 'dstip': '90.90.90.90', + }, + 'l4': { + 'enabled': True, + 'srcport': 3000, + 'dstport': 3001, + }, + 'vlan': { + 'enabled': False, + 'id': 0, + 'priority': 0, + 'cfi': 0, + }, +} + #path to traffic generators directory. TRAFFICGEN_DIR = os.path.join(ROOT_DIR, 'tools/pkt_gen') @@ -28,12 +190,45 @@ TRAFFICGEN = 'Dummy' #TRAFFICGEN = 'IxNet' #TRAFFICGEN = 'Ixia' #TRAFFICGEN = 'Xena' -#TRAFFICGEN = 'MoonGen' +#TRAFFICGEN = 'Moongen' +#TRAFFICGEN = 'Trex' # List of packet sizes to send. # Expand like this: (64, 128, 256, 512, 1024) TRAFFICGEN_PKT_SIZES = (64,) +TRAFFICGEN_DURATION = 30 + +TRAFFICGEN_RFC2544_TESTS = 1 +TRAFFICGEN_RFC2889_TRIALS = 1 +TRAFFICGEN_LOSSRATE = 0.0 + +############################## +# DUMMY Configuration -- BEGIN + +# By default, dummy traffic generator asks for "measured" values. +# Following dictionary allows to preconfigure these values and +# to avoid user interaction. It can be useful for automated +# integration tests. +# Example of values for continuous traffic type: +# TRAFFICGEN_DUMMY_RESULTS{'frames rx': 500000, +# 'frames tx': 500000, +# 'rx rate %': 100, +# 'tx rate %': 100, +# 'frameloss %': 0, +# 'min latency': 1, +# 'max latency': 15, +# 'avg latency': 2.5, +# } +# +TRAFFICGEN_DUMMY_RESULTS = {} + +# DUMMY Configuration -- END +############################ + +############################# +# IXIA Configuration -- BEGIN + # path to 'ixos' install path TRAFFICGEN_IXIA_ROOT_DIR = '/opt/ixos' @@ -61,8 +256,16 @@ TRAFFICGEN_IXNET_TESTER_RESULT_DIR = '' # as the previous one TRAFFICGEN_IXNET_DUT_RESULT_DIR = '' +# directory with 3rd party scripts generated by IXIA tools +TRAFFICGEN_IXIA_3RD_PARTY = os.path.join(ROOT_DIR, '3rd_party/ixia') + +# default TCL script, which will be used for IXNETWORK configuration TRAFFICGEN_IXNET_TCL_SCRIPT = 'ixnetrfc2544.tcl' +# IXIA Configuration -- END +########################### + + ########################################### # Spirent TestCenter Configuration -- BEGIN @@ -75,6 +278,12 @@ TRAFFICGEN_STC_TESTCENTER_PATH = os.path.join(ROOT_DIR, 'tools/pkt_gen/testcente # Name of the TestCenter RFC2544 Tput helper python script TRAFFICGEN_STC_RFC2544_TPUT_TEST_FILE_NAME = "testcenter-rfc2544-throughput.py" +# Name of the Testcenter RFC2899 Tput Helper Python Scripts +TRAFFICGEN_STC_RFC2889_TEST_FILE_NAME = "testcenter-rfc2889-rest.py" + +# 2889 Port Locations +TRAFFICGEN_STC_RFC2889_LOCATION = "" + # The address of the Spirent Lab Server to use TRAFFICGEN_STC_LAB_SERVER_ADDR = "" @@ -103,7 +312,7 @@ TRAFFICGEN_STC_WEST_PORT_NUM = "" TRAFFICGEN_STC_TEST_SESSION_NAME = "RFC2544 Tput" # The directory to copy results to -TRAFFICGEN_STC_RESULTS_DIR = "./Results" +TRAFFICGEN_STC_RESULTS_DIR = os.path.join(ROOT_DIR, "Results") # The prefix for the CSV results file TRAFFICGEN_STC_CSV_RESULTS_FILE_PREFIX = "RFC2544_tput" @@ -162,6 +371,9 @@ TRAFFICGEN_STC_VERBOSE = "True" # Spirent TestCenter Configuration -- END ######################################### +############################# +# Xena Configuration -- BEGIN + # Xena traffic generator connection info TRAFFICGEN_XENA_IP = '' TRAFFICGEN_XENA_PORT1 = '' @@ -179,13 +391,82 @@ TRAFFICGEN_XENA_PORT1_IP = '192.168.199.11' TRAFFICGEN_XENA_PORT1_CIDR = 24 TRAFFICGEN_XENA_PORT1_GATEWAY = '192.168.199.1' +# Xena RFC 2544 options +# Please reference xena documentation before making changes to these settings +TRAFFICGEN_XENA_2544_TPUT_INIT_VALUE = '10.0' +TRAFFICGEN_XENA_2544_TPUT_MIN_VALUE = '0.1' +TRAFFICGEN_XENA_2544_TPUT_MAX_VALUE = '100.0' +TRAFFICGEN_XENA_2544_TPUT_VALUE_RESOLUTION = '0.5' +TRAFFICGEN_XENA_2544_TPUT_USEPASS_THRESHHOLD = 'false' +TRAFFICGEN_XENA_2544_TPUT_PASS_THRESHHOLD = '0.0' + +# Xena RFC 2544 final verification options +TRAFFICGEN_XENA_RFC2544_VERIFY = False +TRAFFICGEN_XENA_RFC2544_VERIFY_DURATION = 120 # in seconds +# Number of verify attempts before giving up... +TRAFFICGEN_XENA_RFC2544_MAXIMUM_VERIFY_ATTEMPTS = 10 +# Logic for restarting binary search, see documentation for details +TRAFFICGEN_XENA_RFC2544_BINARY_RESTART_SMART_SEARCH = True + +# Xena Continuous traffic options +# Please reference xena documentation before making changes to these settings +TRAFFICGEN_XENA_CONT_PORT_LEARNING_ENABLED = True +TRAFFICGEN_XENA_CONT_PORT_LEARNING_DURATION = 3 + +# Xena Configuration -- END +########################### + ################################################### # MoonGen Configuration and Connection Info-- BEGIN +# Ex: TRAFFICGEN_MOONGEN_HOST_IP_ADDR = "192.10.1.1" TRAFFICGEN_MOONGEN_HOST_IP_ADDR = '' TRAFFICGEN_MOONGEN_USER = '' TRAFFICGEN_MOONGEN_BASE_DIR = '' TRAFFICGEN_MOONGEN_PORTS = '' +# Ex. 10 Gbps: TRAFFICGEN_MOONGEN_LINE_SPEED_GBPS = '10' +# Today only 10 Gbps is supported +TRAFFICGEN_MOONGEN_LINE_SPEED_GBPS = '' # MoonGen Configuration and Connection Info-- END -################################################### +################################################# + +################################################ +# Trex Configuration and Connection Info-- BEGIN + +# Example: TRAFFICGEN_TREX_HOST_IP_ADDR = "192.10.1.1" +# Example: TRAFFICGEN_TREX_USER = 'root' +# Example: TRAFFICGEN_TREX_BASE_DIR = '/traffic_gen/trex/' +# Example: TRAFFICGEN_TREX_PORT1 = '00:00:00:00:00:00' +TRAFFICGEN_TREX_HOST_IP_ADDR = '' +TRAFFICGEN_TREX_USER = '' +TRAFFICGEN_TREX_BASE_DIR = '' +TRAFFICGEN_TREX_PORT1 = '' +TRAFFICGEN_TREX_PORT2 = '' +# RFC2544 Throughput execution will end after threshold below is reached. +# It defines maximal difference between frame rate of successful (i.e. defined +# frameloss reached) and unsuccessful (i.e. frameloss exceeded) iterations. +TRAFFICGEN_TREX_RFC2544_TPUT_THRESHOLD = 0.05 +# Latency statistics are collected by separate stream created for each interface. +# Parameter below defines frequency of packets used for latency measurement in PPS. +# Value 0 will disable latency specific streams. +TRAFFICGEN_TREX_LATENCY_PPS = 1000 +# Enablement of learning packets before sending test traffic +TRAFFICGEN_TREX_LEARNING_MODE = True +TRAFFICGEN_TREX_LEARNING_DURATION = 5 +# FOR SR-IOV or multistream layer 2 tests to work with T-Rex enable Promiscuous mode +TRAFFICGEN_TREX_PROMISCUOUS = False +PATHS['trafficgen'] = { + 'Trex': { + 'type' : 'src', + 'src': { + 'path': os.path.join(ROOT_DIR, 'src/trex/trex/scripts/automation/trex_control_plane/stl') + } + } +} +# TRex validation option for RFC2544 +TRAFFICGEN_TREX_VERIFICATION_MODE = False +TRAFFICGEN_TREX_VERIFICATION_DURATION = 60 +TRAFFICGEN_TREX_MAXIMUM_VERIFICATION_TRIALS = 10 +# TREX Configuration and Connection Info-- END +##############################################