X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=nfvbench%2Fcfg.default.yaml;h=e1c05c31d78fc2453d7fd643a1876e89e355a86b;hb=refs%2Fchanges%2F57%2F50057%2F12;hp=8de983fb9c856e98716b7791825739c224f5f938;hpb=70e642c54ffbf50e860e87de3bdcb8fa65d8bac4;p=nfvbench.git diff --git a/nfvbench/cfg.default.yaml b/nfvbench/cfg.default.yaml old mode 100644 new mode 100755 index 8de983f..e1c05c3 --- a/nfvbench/cfg.default.yaml +++ b/nfvbench/cfg.default.yaml @@ -18,22 +18,24 @@ # Fields that can be over-ridden at the command line are marked with the corresponding # option, e.g. "--interval" +# The OpenStack openrc file to use (must be a valid full pathname). If running +# in a container, this path must be valid in the container. +# +# The only case where this field can be empty is when measuring a system that does not run +# OpenStack or when OpenStack APIs are not accessible or OpenStack APis use is not +# desirable. In that case the EXT service chain must be used. +openrc_file: -# Name of the image to use for launching the loopback VMs. This name must be -# the exact same name used in OpenStack (as shown from 'nova image-list') -# Can be overridden by --image or -i -image_name: 'nfvbenchvm' # Forwarder to use in nfvbenchvm image. Available options: ['vpp', 'testpmd'] vm_forwarder: testpmd -# NFVbench can automatically upload a VM image if the image named by -# image_name is missing, for that you need to specify a file location where -# the image can be retrieved -# -# To upload the image as a file, download it to preferred location -# and prepend it with file:// like in this example: -# file:// -# NFVbench (the image must have the same name as defined in image_name above). +# By default (empty) NFVBench will try to locate a VM image file +# from the package root directory named "nfvbench-.qcow2" and +# upload that file. The image name will be "nfvbench-" +# This can be overridden by specifying here a pathname of a file +# that follows the same naming convention. +# In most cases, this field should be left empty as the packaging should +# include the proper VM image file vm_image_file: # Name of the flavor to use for the loopback VMs @@ -48,7 +50,7 @@ flavor: # Number of vCPUs for the flavor vcpus: 2 # Memory for the flavor in MB - ram: 8192 + ram: 4096 # Size of local disk in GB disk: 0 # metadata are supported and can be added if needed, optional @@ -115,7 +117,7 @@ service_chain_count: 1 # value was configured. Must be even. # Every flow has packets with different IPs in headers # Can be overriden by --flow-count -flow_count: 2 +flow_count: 10000 # Used by PVVP chain to spawn VMs on different compute nodes # Can be overriden by --inter-node @@ -154,6 +156,15 @@ traffic_generator: # `gateway_ip_addrs_step`: step for generating router gateway sequences. default is 0.0.0.1 # `udp_src_port`: the source port for sending UDP traffic, default is picked by TRex (53) # `udp_dst_port`: the destination port for sending UDP traffic, default is picked by TRex (53) + # `mac_addrs_left` & `mac_addrs_right`: Lists of MAC addresses corresponding to the number of chains + # specified for `service_chain_count`. + # - If both lists are empty the far end MAC of the traffic generator will be used for left and right + # - The MAC addresses will only be used when `service_chain` is EXT and `no_arp` is true. + # - The length of each list must match the number of chains being used. + # - The index of each list must correspond to the chain index to ensure proper pairing. + # - Below is an example of using two chains: + # - mac_addrs_left: ['00:00:00:00:01:00', '00:00:00:00:02:00'] + # - mac_addrs_right: ['00:00:00:00:01:01', '00:00:00:00:02:01'] ip_addrs: ['10.0.0.0/8', '20.0.0.0/8'] ip_addrs_step: 0.0.0.1 tg_gateway_ip_addrs: ['1.1.0.100', '2.2.0.100'] @@ -162,6 +173,8 @@ traffic_generator: gateway_ip_addrs_step: 0.0.0.1 udp_src_port: udp_dst_port: + mac_addrs_left: + mac_addrs_right: # Traffic Generator Profiles # In case you have multiple testbeds or traffic generators, @@ -172,6 +185,10 @@ traffic_generator: # `tool`: Traffic generator tool to be used (currently supported is `TRex`). # `ip`: IP address of the traffic generator. # `cores`: Specify the number of cores for TRex traffic generator. ONLY applies to trex-local. + # `software_mode`: Advice TRex to use software mode which provides the best compability. But + # note that TRex will not use any hardware acceleration technology under + # software mode, therefore the performance of TRex will be significantly + # lower. ONLY applies to trex-local. # `interfaces`: Configuration of traffic generator interfaces. # `interfaces.port`: The port of the traffic generator to be used (leave as 0 and 1 resp.) # `interfaces.switch_port`: Leave empty (reserved for advanced use cases) @@ -183,6 +200,7 @@ traffic_generator: tool: TRex ip: 127.0.0.1 cores: 3 + software_mode: false interfaces: - port: 0 switch_port: @@ -195,8 +213,8 @@ traffic_generator: # ----------------------------------------------------------------------------- # These variables are not likely to be changed -# The openrc file -openrc_file: +# Number of seconds to wait for VMs to pass traffic in both directions +check_traffic_time_sec: 200 # General retry count generic_retry_count: 100 @@ -207,39 +225,68 @@ generic_poll_sec: 2 # name of the loop VM loop_vm_name: 'nfvbench-loop-vm' -# Default names, subnets and CIDRs for internal networks used by the script. +# Default names, subnets and CIDRs for PVP/PVVP networks # If a network with given name already exists it will be reused. +# - PVP only uses left and right +# - PVVP uses left, middle and right +# - for EXT chains, this structure is not relevant - refer to external_networks # Otherwise a new internal network will be created with that name, subnet and CIDR. +# +# segmentation_id can be set to enforce a specific VLAN id - by default (empty) the VLAN id +# will be assigned by Neutron. +# Must be unique for each network +# physical_network can be set to pick a specific phsyical network - by default (empty) the +# default physical network will be picked +# In the case of SR-IOV, both physical_network and segmentation ID must be provided +# For example to setup PVP using 2 different SR-IOV ports, you must put the appropriate physnet +# names under left.physical_network and right.physical_network. +# Example of override configuration to force PVP to run on 2 SRIOV ports (phys_sriov0 and phys_sriov1) +# using VLAN ID 2000 and 2001: +# internal_networks: +# left: +# segmentation_id: 2000 +# physical_network: phys_sriov0 +# right: +# segmentation_id: 2001 +# physical_network: phys_sriov1 + internal_networks: - # Required only when segmentation_id specified - physical_network: left: name: 'nfvbench-net0' subnet: 'nfvbench-subnet0' cidr: '192.168.1.0/24' network_type: 'vlan' segmentation_id: + physical_network: right: name: 'nfvbench-net1' subnet: 'nfvbench-subnet1' cidr: '192.168.2.0/24' network_type: 'vlan' segmentation_id: + physical_network: middle: name: 'nfvbench-net2' subnet: 'nfvbench-subnet2' cidr: '192.168.3.0/24' network_type: 'vlan' segmentation_id: + physical_network: + +# In the scenario of PVVP + SRIOV, there is choice of how the traffic will be +# handled in the middle network. The default (false) will use vswitch, while +# SRIOV can be used by toggling below setting. +use_sriov_middle_net: false # EXT chain only. Names of edge networks which will be used to send traffic via traffic generator. external_networks: left: 'nfvbench-net0' right: 'nfvbench-net1' -# Use 'true' to enable VLAN tagging of packets coming from traffic generator -# Leave empty if VLAN tagging is enabled on switch or if you want to hook directly to a NIC -# Else by default is set to true (which is the nominal use case with TOR and trunk mode to Trex) +# Use 'true' to enable VLAN tagging of packets generated and sent by the traffic generator +# Leave empty you do not want the traffic generator to insert the VLAN tag. This is +# needed for example if VLAN tagging is enabled on switch (trunk mode) or if you want to hook directly to a NIC +# By default is set to true (which is the nominal use case with TOR and trunk mode to Trex) vlan_tagging: true # Specify only when you want to override VLAN IDs used for tagging with own values (exactly 2). @@ -307,7 +354,7 @@ duration_sec: 60 # Can be overridden by --interval interval_sec: 10 -# NDR / PDR configuration ZZ +# NDR / PDR configuration measurement: # Drop rates represent the ratio of dropped packet to the total number of packets sent. # Values provided here are percentages. A value of 0.01 means that at most 0.01% of all @@ -317,8 +364,13 @@ measurement: NDR: 0.001 # Partial Drop Rate in percentage; NDR should always be less than PDR PDR: 0.1 - # The accuracy of NDR and PDR load percentiles; The actual load percentile that match NDR - # or PDR should be within `load_epsilon` difference than the one calculated. + # The accuracy of NDR and PDR as a percnetage of line rate; The exact NDR + # or PDR should be within `load_epsilon` line rate % from the one calculated. + # For example, with a value 0.1, and a line rate of 10Gbps, the accuracy + # of NDR and PDR will be within 0.1% Of 10Gbps or 10Mbps. + # The lower the value the more iterations and the longer it will take to find the NDR/PDR. + # In practice, due to the precision of the traffic generator it is not recommended to + # set it to lower than 0.1 load_epsilon: 0.1 # Location where to store results in a JSON format. Must be container specific path. @@ -336,6 +388,41 @@ std_json: # Can be overriden by --debug debug: false +# Set to a valid path name if logging to file is to be enabled +# Defaults to disabled +log_file: + +# When enabled, all results and/or logs will be sent to a fluentd servers at the requested IPs and ports +# A list of one or more fluentd servers identified by their IPs and port numbers should be given. +# For each recipient it is possible to enable both sending logs and performance +# results, or enable either logs or performance results. For enabling logs or results logging_tag or +# result_tag should be set. + +fluentd: + # by default (logging_tag is empty) nfvbench log messages are not sent to fluentd + # to enable logging to fluents, specify a valid fluentd tag name to be used for the + # log records + - logging_tag: + + # by default (result_tag is empty) nfvbench results are not sent to fluentd + # to enable sending nfvbench results to fluentd, specify a valid fluentd tag name + # to be used for the results records, which is different than logging_tag + result_tag: + + # IP address of the server, defaults to loopback + ip: 127.0.0.1 + + # port # to use, by default, use the default fluentd forward port + port: 24224 + + # by default (logging_tag is empty) nfvbench log messages are not sent to fluentd + # to enable logging to fluents, specify a valid fluentd tag name to be used for the + # log records + # Module and class name of factory which will be used to provide classes dynamically for other components. factory_module: 'nfvbench.factory' factory_class: 'BasicFactory' + +# Custom label added for every perf record generated during this run. +# Can be overriden by --user-label +user_label: