# 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.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# ############################
# Traffic gen configuration
# ############################

# 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,
#                      rfc2544_continuous or burst
#                      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.
#    '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
#                      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.
#                      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 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
#    '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,
    },
    'vlan': {
        'enabled': False,
        'id': 0,
        '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.
TRAFFICGEN_DIR = os.path.join(ROOT_DIR, 'tools/pkt_gen')

# traffic generator to use in tests
#TRAFFICGEN = 'TestCenter'
TRAFFICGEN = 'Dummy'
#TRAFFICGEN = 'IxNet'
#TRAFFICGEN = 'Ixia'
#TRAFFICGEN = 'Xena'
#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'

# network address of IXIA chassis
TRAFFICGEN_IXIA_HOST = ''

TRAFFICGEN_IXIA_CARD = ''

TRAFFICGEN_IXIA_PORT1 = ''

TRAFFICGEN_IXIA_PORT2 = ''

TRAFFICGEN_IXNET_LIB_PATH = '/opt/ixnetwork/lib/IxTclNetwork'

# IxNetwork host IP address
TRAFFICGEN_IXNET_MACHINE = ''
TRAFFICGEN_IXNET_PORT = ''
TRAFFICGEN_IXNET_USER = ''
TRAFFICGEN_IXNET_CHASSIS = ''

# The result directory on $TRAFFICGEN_IXNET_MACHINE
TRAFFICGEN_IXNET_TESTER_RESULT_DIR = ''

# The result directory on DUT. This needs to map to the same directory
# 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

# Path to Python 2 executable
TRAFFICGEN_STC_PYTHON2_PATH = "/bin/python2.7"

# Path to the location of the TestCenter files
TRAFFICGEN_STC_TESTCENTER_PATH = os.path.join(ROOT_DIR, 'tools/pkt_gen/testcenter')

# 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 = ""

# The address of the Spirent License Server in your environment
TRAFFICGEN_STC_LICENSE_SERVER_ADDR = ""

# The address of the TestCenter chassis that holds the east port
TRAFFICGEN_STC_EAST_CHASSIS_ADDR = ""

# The slot number of the card that holds the east port
TRAFFICGEN_STC_EAST_SLOT_NUM = ""

# The port number on the card that holds the east port
TRAFFICGEN_STC_EAST_PORT_NUM = ""

# The address of the TestCenter chassis that holds the west port
TRAFFICGEN_STC_WEST_CHASSIS_ADDR = ""

# The slot number of the card that holds the west port
TRAFFICGEN_STC_WEST_SLOT_NUM = ""

# The port number on the card that holds the west port
TRAFFICGEN_STC_WEST_PORT_NUM = ""

# The friendly name to identify the Spirent Lab Server test session
TRAFFICGEN_STC_TEST_SESSION_NAME = "RFC2544 Tput"
# The directory to copy results to

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"
# The number of trials to execute during the test

TRAFFICGEN_STC_NUMBER_OF_TRIALS = "1"

# The duration of each trial executed during the test, in seconds
TRAFFICGEN_STC_TRIAL_DURATION_SEC = "60"

# The traffic pattern between endpoints, BACKBONE, MESH or PAIR
TRAFFICGEN_STC_TRAFFIC_PATTERN = "PAIR"

# The search mode used to find the throughput rate, COMBO, STEP or BINARY
TRAFFICGEN_STC_SEARCH_MODE = "BINARY"

# The learning mode used during the test, AUTO, L2_LEARNING, L3_LERNING, or NONE
TRAFFICGEN_STC_LEARNING_MODE = "AUTO"

# The minimum percent line rate that will be used during the test
TRAFFICGEN_STC_RATE_LOWER_LIMIT_PCT = "1.0"

# The maximum percent line rate that will be used during the test
TRAFFICGEN_STC_RATE_UPPER_LIMIT_PCT = "99.0"

# If SearchMode is BINARY, the percent line rate that will be used at the start of the test
TRAFFICGEN_STC_RATE_INITIAL_PCT = "99.0"

# When SearchMode is STEP, the percent increase in load per step
TRAFFICGEN_STC_RATE_STEP_PCT = "10.0"

# The minimum percentage of load adjustment between iterations
TRAFFICGEN_STC_RESOLUTION_PCT = "1.0"

# The frame size, in bytes
TRAFFICGEN_STC_FRAME_SIZE = "256"

# The maximum acceptable frame loss percent in any iteration
TRAFFICGEN_STC_ACCEPTABLE_FRAME_LOSS_PCT = "0.0"

# The address to assign to the first emulated device interface on the first east port
TRAFFICGEN_STC_EAST_INTF_ADDR = ""

# The gateway address to assign to the first emulated device interface on the first east port
TRAFFICGEN_STC_EAST_INTF_GATEWAY_ADDR = ""

# The address to assign to the first emulated device interface on the first west port
TRAFFICGEN_STC_WEST_INTF_ADDR = ""

# The gateway address to assign to the first emulated device interface on the first west port
TRAFFICGEN_STC_WEST_INTF_GATEWAY_ADDR = ""

# Print additional information to the terminal during the test
TRAFFICGEN_STC_VERBOSE = "True"

# Live Results Required?
TRAFFICGEN_STC_LIVE_RESULTS = "True"

# Live results file name
TRAFFICGEN_STC_LIVERESULTS_FILE = "stc-liveresults.dat"

# Spirent TestCenter Configuration -- END
#########################################

#############################
# Xena Configuration -- BEGIN

# Xena traffic generator connection info
TRAFFICGEN_XENA_IP = ''
TRAFFICGEN_XENA_PORT1 = ''
TRAFFICGEN_XENA_PORT2 = ''
TRAFFICGEN_XENA_USER = ''
TRAFFICGEN_XENA_PASSWORD = ''
TRAFFICGEN_XENA_MODULE1 = ''
TRAFFICGEN_XENA_MODULE2 = ''

# Xena Port IP info
TRAFFICGEN_XENA_PORT0_IP = '192.168.199.10'
TRAFFICGEN_XENA_PORT0_CIDR = 24
TRAFFICGEN_XENA_PORT0_GATEWAY = '192.168.199.1'
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
# 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
##############################################