# `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,
# 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
# 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).
# 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
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.
# 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'