The fast path configuration wizard

The configuration wizard simplifies the fast path configuration through simplified menus. It allows interactively selecting network ports, CPU cores, cryptographic hardware accelerators, etc.

Interactively configure the fast path

# fast-path.sh config -i

Fast path configuration
=======================

1 - Select fast path ports and polling cores
2 - Select a hardware crypto accelerator
3 - Advanced configuration
4 - Advanced plugin configuration
5 - Display configuration

S - Save configuration and exit
Q - Quit

Enter selection [S]:

The option “1 - Select fast path ports and polling cores” allows assigning physical ports to the fast path.

Fast path port selection
========================

Core/port mapping mode is auto

== ============ == ========== ============== ======================================
#  PCI or Name  Id Interface  Selected cores NIC full name
== ============ == ========== ============== ======================================
1  0000:01:00.0 0  mgmt0                     Intel Corporation 82575EB Gigabit Netw
2  0000:01:00.1 0  eth0                      Intel Corporation 82575EB Gigabit Netw
3  0000:03:00.0 0  eth1       auto           Intel Corporation 82599ES 10-Gigabit S
4  0000:03:00.1 0  eth2       auto           Intel Corporation 82599ES 10-Gigabit S
5  0000:06:00.0 0  eth3       auto           Intel Corporation 82599ES 10-Gigabit S
6  0000:06:00.1 0  eth4       auto           Intel Corporation 82599ES 10-Gigabit S
== ============ == ========== ============== ======================================

A - Add a virtual device
C - Switch to manual core/port mapping mode
M - Set the fast path core mask (current: auto)
E - Manually configure FP_PORTS (current: all -mgmt0 -eth0)

B - Back

Enter selection [B]:

Dump the fast path user configuration

# fast-path.sh config --dump --strip-comments
Configuring Fast Path...

: ${FP_MEMORY:=+512}
: ${FP_PORTS:='all -mgmt0 -eth0'}

The output may be empty if all parameters are set to their default values.

Dump the fast path fully-evaluated configuration

# fast-path.sh config --dump --strip-comments --full
Configuring Fast Path...

FP_MASK=1-23
FP_MEMORY=509,621
HUGEPAGES_DIR=/mnt/huge
VM_MEMORY=0
RESERVE_FP_HUGEPAGES=off
FP_PORTS='0000:03:00.0 0000:03:00.1 0000:06:00.0 0000:06:00.1'
FP_VDEVS=''
EAL_ADDONS=''
NB_MEM_CHANNELS=3
CRYPTO_TYPE=software
EAL_OPTIONS=''
CORE_PORT_MAPPING=auto
NB_MBUF=32768,49152
LINUX2FP_MASK=auto
FPNSDK_OPTIONS=''
EXPERT_FPCONF=off
DEBUG_FPCONF=off

This shows the effective configuration, which depends on:

  • the user configuration

  • the system (number of CPUs, NICs, …)

Most automatic parameters are evaluated to their value (ex: amount of memory, fast path cores mask, …). It corresponds to the configuration passed to the fast path.

This is useful to understand for instance how much memory or how many mbufs are reserved for the fast path.

Check the configuration validity:

# fast-path.sh config --check
Configuring Fast Path...

Check configuration
===================

WARNING - FP_MEMORY user value 500 (176 on this socket) is lower than auto value (240) for socket 0
WARNING - FP_MEMORY user value 500 (323 on this socket) is lower than auto value (438) for socket 1
Configuration check done.

This mode displays warnings if the user configuration seems to be invalid.

Display the selected fast path ports and their polling cores

# fast-path.sh config --display
Configuring Fast Path...

Fast path configuration info
============================

  Selected ethernet card
  ----------------------

  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) PCI card mounted on eth1 with cores 2,4,6,8,10,12,14,16,18,20,22
  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) PCI card mounted on eth3 with cores 2,4,6,8,10,12,14,16,18,20,22
  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) PCI card mounted on eth4 with cores 2,4,6,8,10,12,14,16,18,20,22
  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) PCI card mounted on eth5 with cores 2,4,6,8,10,12,14,16,18,20,22

Display system information

# fast-path.sh config --machinedisplay
Configuring Fast Path...

General information
-------------------

  Processor name: Intel(R) Xeon(R) CPU           X5680  @ 3.33GHz
  Sockets 2, Cores 12, Hyperthreads 24
  Multi channel memory architecture: 3 channels

socket 0
--------

CPU information
  Core   0 = [  0- 12]  Core   1 = [  2- 14]  Core   2 = [ 16-  4]
  Core   8 = [ 18-  6]  Core   9 = [  8- 20]  Core  10 = [ 10- 22]

Ethernet PCI information:
  Id           Interface  NIC full name
  ============ ========== ======================================================
  0000:03:00.0 eth1       Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network
  0000:03:00.1 eth3       Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network
  0000:06:00.0 eth4       Mellanox
  0000:06:00.0 eth5       Mellanox
  0000:0a:00.0 eth6       Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network
  0000:0a:00.1 eth7       Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network

Available crypto:
  Intel Multi-Buffer
  Cavium Networks Device 0011 (on bus 0000:0b:00.0)

socket 1
--------

CPU information
  Core   0 = [  1- 13]  Core   1 = [  3- 15]  Core   2 = [ 17-  5]
  Core   8 = [ 19-  7]  Core   9 = [  9- 21]  Core  10 = [ 11- 23]

Available crypto:
  Intel Multi-Buffer

Update an old configuration

# fast-path.sh config --update

or

# fast-path.sh config --update --file /path/to/myfile

The wizard parses the configuration and update it, removing deprecated options and adding comments. This may be useful when upgrading your version of 6WINDGate.

Unsupported options in the wizard

The following options cannot be configured in the wizard:

  • FP_OPTIONS

  • specific FPNSDK_OPTIONS, especially those related to the mapping of cores to crypto devices

  • EAL_OPTIONS

  • MAINLOOP_DELAY_US

These options should be updated manually in the fast-path.env configuration file.

See also

For details about what can be set in EAL_OPTIONS and FPNSDK_OPTIONS, refer to: