Static Configuration

Software Architecture

Platform
Intel® PAC
Napatech SmartNIC
Content Type
Overview Document
Capture Software Version
Link™ Capture Software 12.11

ntservice.ini file

The static configuration is defined in the ntservice.ini file and is activated during start-up of ntservice. An example of the ntservice.ini file can be seen in Example. The parameters include:

  • Definition of the SmartNICs
  • Definition of the time synchronization
  • NUMA node configuration
  • Definition of the number of host buffers and the NUMA (non-uniform memory access – CPU memory sharing) nodes they belong to
  • Definition of the default packet descriptors used
  • Definition of the time stamp format used

The parameters are grouped according to their use.

Note: Not all parameters and not all listed options are available for all SmartNICs. For a list of the individual parameters including explanations and default values, see DN-0449.

ntservice.ini.txt file

The ntservice.ini.txt file explains the different parameters in the ntservice.ini file and lists which SmartNICs support which values.

System level parameters

A number of the parameters that can be set in the ntservice.ini file are at the system level. They appear under the heading [System].

Note: The system settings must be supported by all SmartNICs in the system.

Logging parameters

A number of the parameters that can be set in the ntservice.ini file are used for logging. They appear under the heading [Logging].

SmartNIC-related parameters

A number of the parameters that can be set in the ntservice.ini file are SmartNIC-related. Some of these are specific to a single SmartNIC. They appear under a heading with the name of the SmartNIC, for instance [Adapter0]. Some are common for a SmartNIC of a specific type. They appear under a heading with the name of the SmartNIC type, for instance [NT20E3_2_PTP].

Note: If no SmartNICs are specified in the ntservice.ini file, ntservice autodetects all SmartNICs and enables them with default parameters. However, if just one SmartNIC is specified, no other SmartNICs are autodetected.

Example

This is a typical example of an ntservice.ini configuration file.

[System]
HostBufferRefreshIntervalAll = default   # default* - 1 - 5 - 10 - 50 - 100 - 250 - 500. 'default' is 100 usec
LinkPropagationPortPairs =               # [portA, portB], ...
NtplFileName =                           # String
NumWorkerThreads = 16                    # 1 .. 100
SdramFillLevelWarning = 0                # X1, X2, X3, X4
TimeSyncOsTimeReference = None           # None* - adapter-0 - adapter-1 - adapter-2 - adapter-3 - adapter-4 - adapter-5 - adapter-6 - adapter-7
TimestampFormat = NATIVE_UNIX            # NATIVE - NATIVE_NDIS - NATIVE_UNIX* - UNIX_NS - PCAP - PCAP_NS
TimestampMethod = EOF                    # SOF - EOF*
 
[Logging]
LogBufferWrap = wrap                     # wrap* - nowrap
LogFileName = /tmp/Log3G_%s.log          # String
LogMask = 7                              # See ini-file help for information about possible values
LogToFile = false                        # true/false
LogToSystem = true                       # true/false
 
[Adapter0]
AdapterType = NT400D11_2X100             # NT40A01_4X1 - NT20E3_2_PTP - NT40E3_4_PTP - NT50B01_2X10_25 - NT50B01_2X25 - NT50B01_2X1_10 - NT100A01_4X1_10 - NT100A01_4X10_25 - NT40A11_4X1_10 - NT80E3_2_PTP - NT80E3_2_PTP_8X10 - NT100E3_1_PTP - NT200A01 - NT200A01_2X100 - NT200A01_8X10 - NT200A01_2X40 - NT200A01_2X10_25 - NT200A01_2X25 - NT200A02_2X10_25 - NT200A02_2X25 - NT200A02_2X100 - NT200A02_2X40 - NT200A02_4X10_25 - NT200A02_4X25 - NT200A02_8X10 - NT200A02_2X1_10 - NT4E - NT20E - NT4E_STD - NT20E2 - NT40E2_1 - NT40E2_4 - NT4E2_PTP - NT20E2_PTP - INTEL_A10_4X10 - INTEL_A10_1X40 - NT400D11_2X100 - NT400D11_2X40 - NT400D11_8X10_25
BondingType = Separate                   # Separate*
CancelTxOnCloseMask = 0                  # See ini-file help for information about possible values
DeduplicationWindow = 100                # 10 .. 2000000
DisableFec = 0                           # 1 - 0* - true - false*
DisableTxRemoteFault = 0                 # 1 - 0* - true - false*
DiscardSize = 16                         # 16 .. 63
HighFrequencySampling = DISABLE          # DISABLE* - ENABLE
HostBufferHandlerAffinity = -2           # -2 .. 7
HostBufferPollInterval = default         # default* - 10 - 50 - 100 - 250 - 500 - 1000 - 10000 - 25000 - 50000 - 100000. 'default' is adapter dependant, often 1000 usec
HostBufferRefreshIntervalRx = default    # default* - 1 - 5 - 10 - 50 - 100 - 250 - 500. By 'default' the HostBufferRefreshIntervalAll is used
HostBufferRefreshIntervalTx = default    # default* - 1 - 5 - 10 - 50 - 100 - 250 - 500. By 'default' the HostBufferRefreshIntervalAll is used
HostBufferSegmentAlignmentRx = default   # default* - none - 0 - 512 - 1024 - 2048 - 4096. 'default' is none except for adapters not supporting dynamic HostBufferSegmentSizeRx
HostBufferSegmentSizeRx = default        # default* - dynamic - 0 - 1 - 2 - 4 - 64K - 128K - 256K - 512K - 1M - 2M - 4M. 'default' use dynamic segment size if supported, otherwise a fixed size is applied
HostBufferSegmentSizeTx = default        # default* - 1 - 2 - 4 - 1M - 2M - 4M. 'default' is 1M
HostBufferSegmentTimeOut = default       # default* - 10 - 50 - 100 - 250 - 500 - 1000 - 10000 - 25000 - 50000 - 100000. Value given in usec. 'default' is 100 usec (inline products) or based on measured line speed
HostBuffersRx = [4,16,-1]                # [x1, x2, x3], ...
HostBuffersTx = [4,16,-1]                # [x1, x2, x3], ...
IfgMode = NS                             # NS* - BYTE
KmTcamConfig = [2,4,0],[4,1,0]           # [cnt, len, dualLookup], ...
MaxFrameSize = 9018                      # 1518 .. 10000
NumaNode = -1                            # -1 .. 16
OnBoardMemorySplit = Even                # Dynamic - Even* - Proportional
PacketDescriptor = NT                    # PCAP - NT* - Ext9
PacketPcapFcsInclude = false             # true/false
PortDisableMask = 0                      # See ini-file help for information about possible values
Profile = None                           # None* - Capture
TimeSyncConnectorExt1 = PpsIn            # None - NttsIn* - PpsIn - NttsOut - PpsOut - RepeatInt1 - RepeatInt2
TimeSyncConnectorInt1 = None             # None* - NttsIn - PpsIn - NttsOut - PpsOut - RepeatExt1 - RepeatInt2
TimeSyncConnectorInt2 = None             # None* - NttsIn - PpsIn - NttsOut - PpsOut - RepeatExt1 - RepeatInt1
TimeSyncOSInSyncLimit = 50000            # 1 .. 4294967295
TimeSyncPpsInSyncLimit = 5000            # 1 .. 4294967295
TimeSyncReferencePriority = Ext1, FreeRun # FreeRun* - PTP - Int1 - Int2 - Ext1 - OSTime
TimeSyncTimeOffset = 0                   # 0 .. 1000000
TimestampInjectAlways = false            # true/false, ...
TimestampInjectDynamicOffset = TSI_DYN_SOF # TSI_DYN_SOF* - TSI_DYN_EOF - TSI_DYN_L3 - TSI_DYN_L4
TimestampInjectStaticOffset = 0          # -16384 .. 16383, ...
TxTiming = RELATIVE                      # ABSOLUTE - RELATIVE*
VXLANAltDestinationPorts = 4789,4789     # X1, X2
This table shows AdapterType values of SmartNICs in the ntservice.ini file.
Hardware Port Speed AdapterType value
NT400D11 2 × 100 Gbit/s NT400D11_2X100
2 × 40 Gbit/s NT400D11_2X40
8 × 25/10 Gbit/s NT400D11_8X10_25
NT200A02 2 × 100 Gbit/s NT200A02_2X100
2 × 40 Gbit/s NT200A02_2X40
4 × 25/10 Gbit/s NT200A02_4X10_25 or NT200A02_4X25 (for legacy purpose)
2 × 25/10 Gbit/s NT200A02_2X10_25 or NT200A02_2X25 (for legacy purposes)
8 × 10 Gbit/s NT200A02_8X10
2 × 10/1 Gbit/s NT200A02_2X1_10
NT100A01 4 × 25/10 Gbit/s NT100A01_4X10_25
4 × 10/1 Gbit/s NT100A01_4X1_10
NT50B01 2 × 25/10 Gbit/s NT50B01_2X10_25
2 × 10/1 Gbit/s NT50B01_2X1_10
NT40A11 4 × 10/1 Gbit/s NT40A11_4X1_10
NT40A01 4 × 10/1 Gbit/s NT40E3_4_PTP (for socket load balancing)
4 × 1 Gbit/s NT40A01_4X1
Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA 4 × 10 Gbit/s INTEL_A10_4X10
The following table shows the value ranges of the SDRAMSplit parameter.
Parameters Min Max
Buffer 12.5 93.75
Flowtable 6.25 87.5
Note: The ntservice module will not start if the ntservice.ini file contains unsupported parameters or parameter values.
Note: The Profile parameter is allowed in an ntservice.ini file but the values have no significance.
Note: The values NttsIn and NttsOut for TimeSyncConnectorExt1 are included for backwards compatibility. They are not fully supported.

Intel® Turbo Boost

For processors supporting Intel® Turbo Boost Technology, the availability and frequency upside of the Intel® Turbo Boost state depends upon several factors including, but not limited to, the following:
  • Type of workload
  • Number of active cores
  • Estimated current consumption
  • Estimated power consumption
  • Processor temperature

The operation depends on the headroom available in one or more cores. The amount of time the system spends in Turbo Boost mode depends on workload, environment, platform design, and overall system configuration. The maximum frequency for processor function cannot be specified. The maximum frequency is automatic and dependent on the working conditions. Due to varying power characteristics, some parts with Turbo Boost may not achieve maximum turbo frequencies when running heavy workloads and using multiple cores concurrently. The less total power the CPU is using, the higher it can set the clocks in Turbo Boost mode. The more cores that are idle, the better the performance with Turbo Boost on one single core will be.

Note: These parameters in the ntservice.ini file can affect CPU utilization:
  • HostBufferHandlerAffinity
  • HostBufferPollInterval
  • HostBufferSegmentTimeOut