# Copyright 2015 Intel Corporation.
#
# 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'

#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'

# List of packet sizes to send.
# Expand like this: (64, 128, 256, 512, 1024)
TRAFFICGEN_PKT_SIZES = (64,)

# 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'

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

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

# 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'

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