NFVBENCH-163: Add gratuitous ARP in case of L3 router mode
[nfvbench.git] / nfvbench / cfg.default.yaml
index ac31d05..28f84f4 100644 (file)
@@ -60,7 +60,7 @@ flavor:
   # Size of local disk in GB
   disk: 0
   # metadata are supported and can be added if needed, optional
-  # note that if your openstack does not have NUMA optimization
+  # note that if your OpenStack does not have NUMA optimization
   # (cpu pinning and huge pages)
   # you must comment out extra_specs completely otherwise
   # loopback VM creation will fail
@@ -79,7 +79,7 @@ flavor:
 # When multiqueue is used the recommended setting is to set it to same value as the
 # number of vCPU used - up to a max of 8 queues.
 # Setting to a lower value than vCPU should also work. For example if using 4 vCPU and
-# vif_multiqueue_size is set to 2, openstack will create 4 queues per interface but the
+# vif_multiqueue_size is set to 2, OpenStack will create 4 queues per interface but the
 # test VM will only use the first 2 queues.
 vif_multiqueue_size: 1
 
@@ -95,7 +95,7 @@ num_mbufs: 16384
 availability_zone:
 # To force placement on a given hypervisor, set the name here
 # (if multiple names are provided, the first will be used)
-# Leave empty to let openstack pick the hypervisor
+# Leave empty to let OpenStack pick the hypervisor
 compute_nodes:
 # If openrc is not admin set a valid value for hypervisor hostname
 # Example of value: hypervisor_hostname: "server1"
@@ -128,10 +128,16 @@ flow_count: 10000
 sriov: false
 
 # Perform port to port loopback (direct or through switch)
-# Should be used with EXT service chain and no ARP (no_arp: true)
-# When enabled, the vlans property must contain the same VLAN id for all chains.
-# Can be overriden by --l2-loopback
+# e.g. for unitary testing of the switch or the bench itself.
+# When selected, this mode forces EXT service chain and no ARP mode
+# Destination MAC for each port is set to the other (peer) port MAC.
+# VLAN tagging is defined by 'vlans' & 'vlan_tagging' properties.
+# Can be overriden by --l2-loopback (including vlan tagging spec).
 l2_loopback: false
+# No assumption is made about the loop implementation.
+# Multiple L2 vlan tagged service chains are allowed,
+# the vlan ID lists' size must be at least service_chain_count.
+# If not vlan tagging, the service chain count is forced to 1.
 
 # Resources created by NFVbench will not be removed
 # Can be overriden by --no-cleanup
@@ -351,14 +357,15 @@ cores_used:
 intf_speed_used:
 intf_speed_detected:
 
-# Add cache size in packet generation for TRex field engine (FE).
+# A cache size value is passed to the TRex field engine (FE) at packet generation.
+# Can be overridden by --cache-size
 # More information for TRex performance:
 # https://trex-tgn.cisco.com/trex/doc/trex_stateless.html#_tutorial_field_engine_significantly_improve_performance
 # If cache_size = 0 (or empty): no cache will be used by TRex (default)
 # If cache_size < 0: cache_size will be set to flow count value
 cache_size: 0
 # The cache size is actually limited by the number of 64B mbufs configured in the trex platform configuration (see Trex manual 6.2.2. Memory section configuration)
-# Note that the resulting value is finally clipped to 10000, whatever the requested size is (by design limitation).
+# Note that the resulting value is finally capped to 10000, whatever the requested size is (by design limitation).
 
 # Trex will use 1 x 64B mbuf per pre-built cached packet, assuming 1 pre-built cached packet per flow, it means for very large number of flows, the number of configured mbuf_64 will need to be set accordingly.
 mbuf_64:
@@ -389,7 +396,7 @@ generic_poll_sec: 2
 # name of the loop VM
 loop_vm_name: 'nfvbench-loop-vm'
 
-# Default names, subnets and CIDRs for PVP/PVVP networks (openstack only)
+# Default names, subnets and CIDRs for PVP/PVVP networks (OpenStack only)
 #
 # If a network with given name already exists it will be reused.
 # - PVP only uses left and right
@@ -672,19 +679,21 @@ mpls: false
 # is not supported). Use the vtep_vlan option to enable vlan tagging for the VxLAN overlay network.
 vlan_tagging: true
 
-# Used only in the case of EXT chain and no openstack or not admin access to specify the VLAN IDs to use.
-# This property is ignored when OpenStakc is used or in the case of l2-loopback.
+# Used only in the case of EXT chain and no OpenStack or not admin access to specify the VLAN IDs to use.
+# This property is ignored when OpenStack is used or when 'vlan_tagging' is disabled.
 # If OpenStack is used leave the list empty, VLAN IDs are retrieved from OpenStack networks using Neutron API.
 # If networks are shared across all chains (service_chain_shared_net=true), the list should have exactly 2 values
 # If networks are not shared across chains (service_chain_shared_net=false), the list should have
 # 2 list of vlan IDs
-# In the special case of l2-loopback the list should have the same VLAN id for all chains
 # Examples:
 #   [1998, 1999] left network uses vlan 1998 right network uses vlan 1999
 #   [[1,2],[3,4]] chain 0 left vlan 1, right vlan 2 - chain 1 left vlan 3 right vlan 4
-#   [1010, 1010] same VLAN id with l2-loopback enabled
-#
+#   [1010, 1010] same vlan ID on both sides, for a typical l2-loopback test (*)
+# The vlan lists may be oversized, compared to the actual service chain count
+# (lowest indexes are used) but an exception is raised if they are too short.
 vlans: []
+# (*) actually there is no restriction, left/right IDs may differ
+#     for some exotic purpose - see also the l2_loopback parameter.
 
 # ARP is used to discover the MAC address of VNFs that run L3 routing.
 # Used only with EXT chain.
@@ -724,11 +733,19 @@ traffic:
 # Can be overriden by --no-traffic
 no_traffic: false
 
-# Use an L3 router in the packet path. This option if set will create or reuse an openstack neutron
+# Use an L3 router in the packet path. This option if set will create or reuse an OpenStack neutron
 # router (PVP, PVVP) or reuse an existing L3 router (EXT) to route traffic to the destination VM.
 # Can be overriden by --l3-router
 l3_router: false
 
+# If l3_router is true and depending on ARP stale time SUT configuration
+# Gratuitous ARP (GARP) from TG port to the router is needed to keep traffic up
+# Default value: 1 packet per second
+# This value needs to be defined inferior to SUT ARP stale time to avoid GARP packets drop
+# in case of high load traffic
+periodic_gratuitous_arp: false
+gratuitous_arp_pps: 1
+
 # Test configuration
 
 # The rate pps for traffic going in reverse direction in case of unidirectional flow. Default to 1.
@@ -795,6 +812,26 @@ debug: false
 # Defaults to disabled
 log_file:
 
+# One can specify a user ID for changing ownership of output log/json files
+#   - empty: depends on file existency
+#     . yes? replacement, owner is unchanged
+#     . no ? creation with root as user
+#   - 0: this is the root user ID
+#   - other: will corresponds (or not) to an existing user/group in the host
+#            (the current user ID can be obtained with the command 'id -u')
+# Can be overriden by --user-id
+# Consider also that the default value below is overridable by a USER_ID env variable,
+# if nfvbench is run into a container, this information can be passed at its creation.
+# The overall precedence rule is: 'default_config (this) < env < config < command_line'
+user_id:
+
+# Similarly, the group ID is defined
+# Can be overriden by --group-id
+# Default may be set through env GROUP_ID
+# Caveat: user and group with a same name may have different numerical IDs
+#         (the current group ID can be obtained with the command 'id -g')
+group_id:
+
 # 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
@@ -845,6 +882,7 @@ user_label:
 # (the command-line parameter value is expressed as a json object string)
 user_info:
 
+
 # THESE FIELDS SHOULD BE USED VERY RARELY OR ON PURPOSE
 
 # Skip vswitch configuration and retrieving of stats
@@ -868,10 +906,16 @@ no_flow_stats: false
 no_latency_stats: false
 
 # Disable latency measurements (no streams)
-# Can be overriden by --no-latency-stream
+# Can be overriden by --no-latency-streams
 # Should be left to the default value (false)
 no_latency_streams: false
 
+# Skip "end to end" connectivity check on traffic setup
+# Can be overriden by --no-e2e-check
+# Should be left to the default value (false)
+# This flag is usable for traffic generation only
+no_e2e_check: false
+
 # General purpose register (debugging flags)
 # Can be overriden by --debug-mask
 # Designed for development needs