NFVBENCH-27 Search vm image under project folder
[nfvbench.git] / nfvbench / cfg.default.yaml
index 795ed5d..f36cbea 100644 (file)
 # option, e.g. "--interval"
 
 
-# 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://<location of the image>
-# 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-<version>.qcow2" and
+# upload that file. The image name will be "nfvbench-<version>"
+# 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
@@ -115,7 +110,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
@@ -152,12 +147,16 @@ traffic_generator:
     # `tg_gateway_ip_addrs__step`: step for generating traffic generator gateway sequences. default is 0.0.0.1
     # `gateway_ip_addrs`: base IPs of router gateways on both networks, quantity depends on chain count
     # `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)
     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']
     tg_gateway_ip_addrs_step: 0.0.0.1
     gateway_ip_addrs: ['1.1.0.2', '2.2.0.2']
     gateway_ip_addrs_step: 0.0.0.1
+    udp_src_port:
+    udp_dst_port:
 
     # Traffic Generator Profiles
     # In case you have multiple testbeds or traffic generators,
@@ -194,6 +193,9 @@ traffic_generator:
 # 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
 
@@ -203,39 +205,63 @@ 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:
 
 # 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).
@@ -303,7 +329,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
@@ -313,8 +339,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.
@@ -332,6 +363,24 @@ 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 logs will be sent to a fluentd server at the requested IP and port
+# The fluentd "tag" and "label" fields for every message will be set to "nfvbench"
+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:
+
+    # 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
+
 # Module and class name of factory which will be used to provide classes dynamically for other components.
 factory_module: 'nfvbench.factory'
-factory_class: 'BasicFactory'
\ No newline at end of file
+factory_class: 'BasicFactory'