Static Configuration

Software Architecture

product_line_custom
Intel® PAC
Napatech SmartNIC
category
Overview Document

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
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 = NT200A02_4X25              # NT40A01_4X1 - NT20E3_2_PTP - NT40E3_4_PTP - NT50B01_2X25 - NT80E3_2_PTP - NT80E3_2_PTP_8X10 - NT100E3_1_PTP - NT200A01 - NT200A01_2X100 - NT200A01_8X10 - NT200A01_2X40 - NT200A01_2X25 - NT200A02_2X25 - NT200A02_2X100 - NT200A02_2X40 - NT200A02_4X25 - NT200A02_8X10 - NT4E - NT20E - NT4E_STD - NT20E2 - NT40E2_1 - NT40E2_4 - NT4E2_PTP - NT20E2_PTP - INTEL_A10_4X10 - INTEL_A10_1X40
BondingType = Separate                   # Separate*
BusId = 0000:82:00.0                     # NNNN:NN:NN.N
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 .. 15
HostBufferPollInterval = default         # default* - 10 - 50 - 100 - 250 - 500 - 1000 - 10000 - 25000 - 50000 - 100000
HostBufferRefreshIntervalRx = default    # default* - 1 - 5 - 10 - 50 - 100 - 250 - 500
HostBufferRefreshIntervalTx = default    # default* - 1 - 5 - 10 - 50 - 100 - 250 - 500
HostBufferSegmentAlignmentRx = default   # 
HostBufferSegmentSizeRx = default        # default* - 1 - 2 - 4 - 1M - 2M - 4M
HostBufferSegmentSizeTx = default        # default* - 1 - 2 - 4 - 1M - 2M - 4M
HostBufferSegmentTimeOut = default       # default* - 10 - 50 - 100 - 250 - 500 - 1000 - 10000 - 25000 - 50000 - 100000
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                # Even* - Proportional
PacketDescriptor = NT                    # PCAP - NT*
PortDisableMask = 0                      # See ini-file help for information about possible values
Profile = None                           # None* - Capture
PtpDhcp = ENABLE                         # DISABLE - ENABLE*
PtpMasterModeAllowed = DISABLE           # DISABLE* - ENABLE
PtpProfile = Default                     # Default* - Telecom - Power - Enterprise - G.8275.1
PtpUserDescription = Napatech adapter    # String
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
TimeSyncHardReset = ENABLE               # DISABLE - ENABLE*
TimeSyncNTTSInSyncLimit = 5000           # 1 .. 4294967295
TimeSyncOSInSyncLimit = 50000            # 1 .. 4294967295
TimeSyncPPSInSyncLimit = 5000            # 1 .. 4294967295
TimeSyncPTPInSyncLimit = 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
Note: An NT200A02 running at 2 × 100 Gbit/s has the value NT200A02_2X100 for AdapterType, an NT200A02 running at 2 × 40 Gbit/s has the value NT200A02_2X40, an NT200A02 running at 4 × 25/10 Gbit/s has the value NT200A02_4X25, an NT200A02 running at 2 × 25/10 Gbit/s has the value NT200A02_2X25, and an NT200A02 running at 8 × 10 Gbit/s has the value NT200A02_8X10.
Note: An NT200A01 running at 2 × 100 Gbit/s has the value NT200A01_2X100 for AdapterType, an NT200A01 running at 2 × 40 Gbit/s has the value NT200A01_2X40, an NT200A01 running at 2 × 25/10 Gbit/s has the value NT200A01_2X25, and an NT200A01 running at 8 × 10 Gbit/s has the value NT200A01_8X10.
Note: An NT80E3-2-PTP running at 2 × 40 Gbit/s has the value NT80E3_2_PTP for AdapterType, and an NT80E3-2-PTP running at 8 × 10 Gbit/s has the value NT80E3_2_PTP_8X10.
Note: An NT40A01 with socket load balancing and running at 4 × 10/1 Gbit/s has the value NT40E3_4_PTP for AdapterType, and an NT40A01 running at 4 × 1 Gbit/s has the value NT40A01_4X1.
Note: An Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA running at 1 × 40 Gbit/s has the value INTEL_A10_1X40 for AdapterType, and an Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA running at 4 × 10 Gbit/s has the value INTEL_A10_4X10.
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