The NUMA configuration is directly controlled by the ntservice.ini file and through NTPL. In the ntservice.ini file it is possible to specify the number of host buffers per SmartNIC and assign them to specific NUMA nodes. Through NTPL it is possible to set up which streams are to be used on which NUMA nodes.
NUMA node configuration
The physical NUMA node for a SmartNIC, which depends on the slot where the SmartNIC is mounted, must be specified in the NumaNode parameter in the ntservice.ini file. If the NUMA node number is known, it can be entered directly. Otherwise the value -1 can be entered, and the driver will attempt to determine the physical NUMA node. If this fails, a warning message is created in the driver log, and NUMA node 0 is assumed. This can be the case for older HW not supporting NUMA nodes, in which case NUMA node 0 is the only correct value, or it can be the case for older Linux kernels, in which case NUMA node 0 might not be the correct value. In the last case the correct value must be entered manually.
When you assign NUMA nodes to host buffers using the HostBuffersRx and HostBuffersRx parameters in the ntservice.ini file, the value -1 can be used to indicate that the host buffers are to be allocated on the NUMA node resulting from the NumaNode parameter.
If the NUMA field in the NT_NetTxOpen function is set to -1, the driver will attempt to find a TX host buffer allocated on the NUMA node resulting from the NumaNode parameter. The value -2 corresponds to "don't care" and can result in any available TX host buffer.