Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Ia9832e5e65dbcf2d4f99c52fd0570d456262ab9a
"""Constants used in CSIT.
"""Constants used in CSIT.
-Here, "constant" means a value that keeps its value since initialization.
-However, the value does not need to be hardcoded here,
-some values are affected by environment variables.
-
-TODO: Review env and constant names, make them matching if possible.
+"Constant" means a value that keeps its value since initialization. The value
+does not need to be hard coded here, but can be read from environment variables.
empty string is returned.
Several environment variable names are examined, as CSIT currently supports
empty string is returned.
Several environment variable names are examined, as CSIT currently supports
- a mix of naming convensions.
- Here "several" means there are hardcoded prefixes to try,
+ a mix of naming conventions.
+ Here "several" means there are hard coded prefixes to try,
and env_var_names itself can be single name, or a list or a tuple of names.
:param env_var_names: Base names of environment variable to attempt to read.
and env_var_names itself can be single name, or a list or a tuple of names.
:param env_var_names: Base names of environment variable to attempt to read.
# TRex install directory
TREX_INSTALL_DIR = u"/opt/trex-core-2.61"
# TRex install directory
TREX_INSTALL_DIR = u"/opt/trex-core-2.61"
+ # TRex limit memory
+ TREX_LIMIT_MEMORY = get_int_from_env(u"TREX_LIMIT_MEMORY ", 8192)
+
+ # TRex number of cores
+ TREX_CORE_COUNT = get_int_from_env(u"TREX_CORE_COUNT", 7)
+
+ # TRex extra commandline arguments
+ TREX_EXTRA_CMDLINE = get_str_from_env(u"TREX_EXTRA_CMDLINE", u"")
+
# Sysctl kernel.core_pattern
KERNEL_CORE_PATTERN = u"/tmp/%p-%u-%g-%s-%t-%h-%e.core"
# Sysctl kernel.core_pattern
KERNEL_CORE_PATTERN = u"/tmp/%p-%u-%g-%s-%t-%h-%e.core"
self._node,
f"sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
f"- version: 2\n"
self._node,
f"sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
f"- version: 2\n"
+ f" limit_memory: {Constants.TREX_LIMIT_MEMORY}\n"
f" interfaces: [\"{if1_pci}\",\"{if2_pci}\"]\n"
f" port_info:\n"
f" - dest_mac: [{dst_mac0}]\n"
f" interfaces: [\"{if1_pci}\",\"{if2_pci}\"]\n"
f" port_info:\n"
f" - dest_mac: [{dst_mac0}]\n"
self._node,
f"sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
f"- version: 2\n"
self._node,
f"sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
f"- version: 2\n"
+ f" limit_memory: {Constants.TREX_LIMIT_MEMORY}\n"
f" interfaces: [\"{if1_pci}\",\"{if2_pci}\"]\n"
f" port_info:\n"
f" - ip: [{if1_addr}]\n"
f" interfaces: [\"{if1_pci}\",\"{if2_pci}\"]\n"
f" port_info:\n"
f" - ip: [{if1_addr}]\n"
# Start TRex.
cmd = f"sh -c \"cd {Constants.TREX_INSTALL_DIR}/scripts/ && " \
# Start TRex.
cmd = f"sh -c \"cd {Constants.TREX_INSTALL_DIR}/scripts/ && " \
- f"nohup ./t-rex-64 " \
- f"--hdrh{u' --astf' if osi_layer == u'L7' else u''} " \
- f"--prefix $(hostname) -i -c 7 > /tmp/trex.log 2>&1 &\" > " \
- f"/dev/null"
+ f"nohup ./t-rex-64 -i -c {Constants.TREX_CORE_COUNT} --hdrh " \
+ f"{u' --astf' if osi_layer == u'L7' else u''} " \
+ f"--prefix $(hostname) {Constants.TREX_EXTRA_CMDLINE} " \
+ f"> /tmp/trex.log 2>&1 &\" > /dev/null"
try:
exec_cmd_no_error(self._node, cmd, sudo=True)
except RuntimeError:
try:
exec_cmd_no_error(self._node, cmd, sudo=True)
except RuntimeError: