X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FConstants.py;h=877fc250120a3759a9ce37ffabadd284b6d597ba;hp=b89f50c4dfc31bbee63dfe334fb65da6913ea368;hb=46efda9bd3a32cfe9944cb421ae3e2a3978bf9fc;hpb=da799981f5373b09398319df12e77e2efc75caa6 diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index b89f50c4df..877fc25012 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -34,26 +34,47 @@ class Constants(object): # vat templates location RESOURCES_TPL_VAT = 'resources/templates/vat' + # Kubernetes templates location + RESOURCES_TPL_K8S = 'resources/templates/kubernetes' + + # KernelVM templates location + RESOURCES_TPL_VM = 'resources/templates/vm' + + # Container templates location + RESOURCES_TPL_CONTAINER = 'resources/templates/container' + # OpenVPP VAT binary name VAT_BIN_NAME = 'vpp_api_test' # VPP service unit name VPP_UNIT = 'vpp' - # QEMU version to install - QEMU_INSTALL_VERSION = 'qemu-2.11.2' + # Number of system CPU cores. + CPU_CNT_SYSTEM = 1 + + # Number of vswitch main thread CPU cores. + CPU_CNT_MAIN = 1 + + # QEMU binary path + QEMU_BIN_PATH = '/usr/bin' - # QEMU install directory - QEMU_INSTALL_DIR = '/opt/qemu-2.11.2' + # QEMU VM kernel image path + QEMU_VM_KERNEL = '/opt/boot/vmlinuz' + + # QEMU VM nested image path + QEMU_VM_IMAGE = '/var/lib/vm/vhost-nested.img' + + # QEMU VM DPDK path + QEMU_VM_DPDK = '/opt/dpdk-19.02' + + # Docker container SUT image + DOCKER_SUT_IMAGE_UBUNTU = 'snergster/csit-sut:latest' # TRex install version - TREX_INSTALL_VERSION = '2.35' + TREX_INSTALL_VERSION = '2.54' # TRex install directory - TREX_INSTALL_DIR = '/opt/trex-core-2.35' - - # Kubernetes templates location - RESOURCES_TPL_K8S = 'resources/templates/kubernetes' + TREX_INSTALL_DIR = '/opt/trex-core-2.54' # Honeycomb directory location at topology nodes: REMOTE_HC_DIR = '/opt/honeycomb' @@ -75,3 +96,71 @@ class Constants(object): # Core dump directory CORE_DUMP_DIR = '/tmp' + + # Equivalent to ~0 used in vpp code + BITWISE_NON_ZERO = 0xffffffff + + # Maximum number of API calls per PapiExecutor execution + PAPI_MAX_API_BULK = 250 + + # Mapping from NIC name to its bps limit. + # TODO: Implement logic to lower limits to TG NIC or software. Or PCI. + NIC_NAME_TO_LIMIT = { + # TODO: Explain why ~40Gbps NICs are using ~25Gbps limit. + "Cisco-VIC-1227": 10000000000, + "Cisco-VIC-1385": 24500000000, + "Intel-X520-DA2": 10000000000, + "Intel-X553": 10000000000, + "Intel-X710": 10000000000, + "Intel-XL710": 24500000000, + "Intel-XXV710": 24500000000, + "virtual": 100000000, + } + + # Suite file names use somewhat more rich (less readable) codes for NICs. + NIC_NAME_TO_CODE = { + "Cisco-VIC-1227": "10ge2p1vic1227", + "Cisco-VIC-1385": "40ge2p1vic1385", + "Intel-X520-DA2": "10ge2p1x520", + "Intel-X553": "10ge2p1x553", + "Intel-X710": "10ge2p1x710", + "Intel-XL710": "40ge2p1xl710", + "Intel-XXV710": "25ge2p1xxv710", + } + + # TODO CSIT-1481: Crypto HW should be read from topology file instead. + NIC_NAME_TO_CRYPTO_HW = { + "Intel-X553": "HW_C3xxx", + "Intel-X710": "HW_DH895xcc", + "Intel-XL710": "HW_DH895xcc", + } + + PERF_TYPE_TO_KEYWORD = { + "mrr": "Traffic should pass with maximum rate", + "ndrpdr": "Find NDR and PDR intervals using optimized search", + "soak": "Find critical load using PLRsearch", + } + + PERF_TYPE_TO_SUITE_DOC_VER = { + "mrr" : '''fication:* In MaxReceivedRate tests TG sends traffic\\ +| ... | at line rate and reports total received packets over trial period.\\''', + # TODO: Figure out how to include the full "*[Ver] TG verification:*" + # while keeping this readable and without breaking line length limit. + "ndrpdr": '''fication:* TG finds and reports throughput NDR (Non Drop\\ +| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\\ +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\\ +| ... | of packets transmitted. NDR and PDR are discovered for different\\ +| ... | Ethernet L2 frame sizes using MLRsearch library.\\''', + "soak": '''fication:* TG sends traffic at dynamically computed\\ +| ... | rate as PLRsearch algorithm gathers data and improves its estimate\\ +| ... | of a rate at which a prescribed small fraction of packets\\ +| ... | would be lost. After set time, the serarch stops\\ +| ... | and the algorithm reports its current estimate.\\''', + } + + PERF_TYPE_TO_TEMPLATE_DOC_VER = { + "mrr": '''Measure MaxReceivedRate for ${frame_size}B frames\\ +| | ... | using burst trials throughput test.\\''', + "ndrpdr": '''Measure NDR and PDR values using MLRsearch algorithm.\\''', + "soak": '''Estimate critical rate using PLRsearch algorithm.\\''', + }