X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FConstants.py;h=71673aff86b2884fa08061894ce9b2dfcb260d68;hp=b89f50c4dfc31bbee63dfe334fb65da6913ea368;hb=0e0cf38fcd1ff704293c9dd2c7a05f8682e11de9;hpb=da799981f5373b09398319df12e77e2efc75caa6 diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index b89f50c4df..71673aff86 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -40,11 +40,17 @@ class Constants(object): # VPP service unit name VPP_UNIT = 'vpp' - # QEMU version to install - QEMU_INSTALL_VERSION = 'qemu-2.11.2' + # 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' # TRex install version TREX_INSTALL_VERSION = '2.35' @@ -55,6 +61,9 @@ class Constants(object): # Kubernetes templates location RESOURCES_TPL_K8S = 'resources/templates/kubernetes' + # KernelVM templates location + RESOURCES_TPL_VM = 'resources/templates/vm' + # Honeycomb directory location at topology nodes: REMOTE_HC_DIR = '/opt/honeycomb' @@ -75,3 +84,64 @@ class Constants(object): # Core dump directory CORE_DUMP_DIR = '/tmp' + + # 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, + } + + # 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.\\''', + }