X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=conf%2F03_traffic.conf;h=23f562b0e27e480745b2b46b73e1a91359c2cdf6;hb=94ebcf4df013c7b6a7003ac22c4799fbefb185e6;hp=baded6275b23e1c1bd6b2419d7f69f96ff00a0f2;hpb=b757c8ba94b9d8664808a39d7517a11651cc0188;p=vswitchperf.git diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index baded627..23f562b0 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -1,4 +1,4 @@ -# Copyright 2015-2017 Intel Corporation. +# Copyright 2015-2018 Intel Corporation., Tieto # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -23,8 +23,8 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # Detailed description of TRAFFIC dictionary items follows: # # 'traffic_type' - One of the supported traffic types. -# E.g. rfc2544_throughput, rfc2544_back2back -# or rfc2544_continuous +# E.g. rfc2544_throughput, rfc2544_back2back, +# rfc2544_continuous or burst # Data type: str # Default value: "rfc2544_throughput". # 'bidir' - Specifies if generated traffic will be full-duplex (True) @@ -36,6 +36,12 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # continuous stream tests. # Data type: int # Default value: 100. +# 'burst_size' - Defines a number of frames in the single burst, which is sent +# by burst traffic type. Burst size is applied for each direction, +# i.e. the total number of tx frames will be 2*burst_size in case of +# bidirectional traffic. +# Data type: int +# Default value: 100. # 'multistream' - Defines number of flows simulated by traffic generator. # Value 0 disables multistream feature # Data type: int @@ -58,7 +64,6 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # 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 @@ -71,6 +76,18 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # "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. @@ -88,6 +105,10 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # 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 @@ -96,13 +117,17 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # NOTE: It can be modified by vsperf in some scenarios. # Data type: str # Default value: "90.90.90.90". -# 'proto' - Specifies deflaut protocol type. +# 'proto' - Specifies 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 @@ -127,26 +152,101 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # congestion (DEI header field). # Data type: int (NOTE: must fit to 1 bit) # Default value: 0 +# 'capture' - A dictionary with traffic capture configuration. +# NOTE: It is supported only by T-Rex traffic generator. +# 'enabled' - Specifies if traffic should be captured +# Data type: bool +# Default value: False +# 'tx_ports' - A list of ports, where frames transmitted towards DUT will +# be captured. Ports have numbers 0 and 1. TX packet capture +# is disabled if list of ports is empty. +# Data type: list +# Default value: [0] +# 'rx_ports' - A list of ports, where frames received from DUT will +# be captured. Ports have numbers 0 and 1. RX packet capture +# is disabled if list of ports is empty. +# Data type: list +# Default value: [1] +# 'count' - A number of frames to be captured. The same count value +# is applied to both TX and RX captures. +# Data type: int +# Default value: 1 +# 'filter' - An expression used to filter TX and RX packets. It uses the same +# syntax as pcap library. See pcap-filter man page for additional +# details. +# Data type: str +# Default value: '' +# 'scapy' - A dictionary with definition of a frame content for both traffic +# directions. The frame content is defined by a SCAPY notation. +# NOTE: It is supported only by the T-Rex traffic generator. +# Following keywords can be used to refer to the related parts of +# the TRAFFIC dictionary: +# Ether_src - refers to TRAFFIC['l2']['srcmac'] +# Ether_dst - refers to TRAFFIC['l2']['dstmac'] +# IP_proto - refers to TRAFFIC['l3']['proto'] +# IP_PROTO - refers to upper case version of TRAFFIC['l3']['proto'] +# IP_src - refers to TRAFFIC['l3']['srcip'] +# IP_dst - refers to TRAFFIC['l3']['dstip'] +# IP_PROTO_sport - refers to TRAFFIC['l4']['srcport'] +# IP_PROTO_dport - refers to TRAFFIC['l4']['dstport'] +# Dot1Q_prio - refers to TRAFFIC['vlan']['priority'] +# Dot1Q_id - refers to TRAFFIC['vlan']['cfi'] +# Dot1Q_vlan - refers to TRAFFIC['vlan']['id'] +# '0' - A string with the frame definition for the 1st direction. +# Data type: str +# Default value: 'Ether(src={Ether_src}, dst={Ether_dst})/' +# 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/' +# 'IP(proto={IP_proto}, src={IP_src}, dst={IP_dst})/' +# '{IP_PROTO}(sport={IP_PROTO_sport}, dport={IP_PROTO_dport})' +# '1' - A string with the frame definition for the 2nd direction. +# Data type: str +# Default value: 'Ether(src={Ether_dst}, dst={Ether_src})/' +# 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/' +# 'IP(proto={IP_proto}, src={IP_dst}, dst={IP_src})/' +# '{IP_PROTO}(sport={IP_PROTO_dport}, dport={IP_PROTO_sport})', +# 'latency_histogram' +# - A dictionary with definition of a latency histogram provision in results. +# 'enabled' - Specifies if the histogram provisioning is enabled or not. +# 'type' - Defines how histogram is provided. Currenty only 'Default' is defined. +# 'Default' - Default histogram as provided by the Traffic-generator. +# 'imix' - A dictionary for IMIX Specification. +# 'enabled' - Specifies if IMIX is enabled or NOT. +# 'type' - The specification type - denotes how IMIX is specified. +# Currently only 'genome' type is defined. +# Other types (ex: table-of-proportions) can be added in future. +# 'genome' - The Genome Encoding of Pkt-Sizes and Ratio for IMIX. +# The ratio is inferred from the number of particular geneome characters. +# Genome encoding is described in RFC 6985. This specification is closest +# to the method described in section 6.2 of RFC 6985. +# Ex: 'aaaaaaaddddg' denotes ratio of 7:4:1 of packets sizes 64:512:1518. +# Note: Exact-sequence is not maintained, only the ratio of packets +# is ensured. +# Data type: str +# Default Value: 'aaaaaaaddddg' TRAFFIC = { 'traffic_type' : 'rfc2544_throughput', 'frame_rate' : 100, + 'burst_size' : 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, }, @@ -156,6 +256,33 @@ TRAFFIC = { 'priority': 0, 'cfi': 0, }, + 'capture': { + 'enabled': False, + 'tx_ports' : [0], + 'rx_ports' : [1], + 'count': 1, + 'filter': '', + }, + 'scapy': { + 'enabled': False, + '0' : 'Ether(src={Ether_src}, dst={Ether_dst})/' + 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/' + 'IP(proto={IP_proto}, src={IP_src}, dst={IP_dst})/' + '{IP_PROTO}(sport={IP_PROTO_sport}, dport={IP_PROTO_dport})', + '1' : 'Ether(src={Ether_dst}, dst={Ether_src})/' + 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/' + 'IP(proto={IP_proto}, src={IP_dst}, dst={IP_src})/' + '{IP_PROTO}(sport={IP_PROTO_dport}, dport={IP_PROTO_sport})', + }, + 'latency_histogram': { + 'enabled': False, + 'type': 'Default', + }, + 'imix': { + 'enabled': False, + 'type': 'genome', + 'genome': 'aaaaaaaddddg', + }, } #path to traffic generators directory. @@ -168,6 +295,7 @@ TRAFFICGEN = 'Dummy' #TRAFFICGEN = 'Ixia' #TRAFFICGEN = 'Xena' #TRAFFICGEN = 'Moongen' +#TRAFFICGEN = 'Trex' # List of packet sizes to send. # Expand like this: (64, 128, 256, 512, 1024) @@ -376,6 +504,14 @@ 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 @@ -397,4 +533,53 @@ TRAFFICGEN_MOONGEN_PORTS = '' 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 +# Enable below options to force T-rex api to attempt to use speed specified on server +# side when pushing traffic. For 40G use 40000. For 25G use 25000. +TRAFFICGEN_TREX_FORCE_PORT_SPEED = False +TRAFFICGEN_TREX_PORT_SPEED = 10000 # 10G +TRAFFICGEN_TREX_LIVE_RESULTS = True +TRAFFICGEN_TREX_LC_FILE = "trex-liveresults-counts.dat" +TRAFFICGEN_TREX_LE_FILE = "trex-liveresults-errors.dat" + + +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 +##############################################