Configure nsdrvd driver for NetScaler BLX in dedicated mode without DPDK support
NetScaler BLX bypasses the network stack of the Linux kernel, but there is an overhead in transferring packets between Linux kernel memory and user space memory. This overhead affects the overall performance of packet processing.
We recommend using the DPDK compatible NICs for high packet processing performance. For the list of DPDK-compatible NICs supported by BLX, see Hardware requirements of Linux host.
If you do not have DPDK compatible NICs, you can use the nsdrvd driver to improve the performance of packet processing without DPDK support.
The nsdrvd driver owns all the interaction with the Linux kernel for packet reception and transmission. It also distributes the traffic to PEs. You can configure the nsdrvd driver using the nsdrvd parameter in the blx.conf file. The following table explains the possible values of the nsdrvd parameter.
| Possible value | Description |
|---|---|
nsdrvd: 1 |
One driver process is created for each dedicated port. Rx and Tx occur sequentially. |
nsdrvd: 2 |
One Rx process and one Tx thread are created for each dedicated port. |
nsdrvd: 3 |
One Rx process and 2 Tx threads are created for each dedicated port. |
To use the nsdrvd driver, the Linux host must have at least n number of cores based on the following calculation.
n >= WP + (INT*P) + 1
Where:
-
WP - Number of worker processes (packet engines) for BLX. The
worker-processesparameter in theblx.conffile specifies the number of packet engines for BLX. -
INT - Number of dedicated Linux host NIC ports for BLX. The
interfaceparameter in theblx.conffile specifies the Linux host NIC ports dedicated to BLX. -
P - Number of
nsdrvddriver processes for BLX. Thensdrvdparameter in theblx.conffile specifies the number ofnsdrvddriver processes.
Example: BLX with the following configuration must have at least 10 cores:
- WP = 3 packet engines
- INT = 2 dedicated interfaces
-
P = 3
nsdrvdprocesses
n = WP + (INT*P) + 1 = (3+2*3+1) = 10
Prerequisites
- Ensure that BLX is configured in dedicated mode. For configuration procedure, see Configure BLX in dedicated mode.
- Ensure that the dedicated NIC ports are not listed in the DPDK-compatible NICs supported by BLX. For more information, See Hardware requirements of Linux host.
Enable nsdrvd driver
You must use the Linux host CLI to enable the nsdrvd driver.
-
Open the
blx.conffile by running the following command:Note:
You can use any text editor to edit the blx.conf file.
nano /etc/blx/blx.conf <!--NeedCopy--> -
Uncomment the
nsdrvdparameter and set the value to 1, 2, or 3.blx-system-config { ... nsdrvd: <number of process> ... } <!--NeedCopy--> - Save the
blx.conffile. -
Restart BLX.
systemctl restart blx <!--NeedCopy-->
After BLX restarts, nsdrvd driver is enabled on the BLX.
Disable nsdrvd driver
You must use the Linux host CLI to disable the nsdrvd driver.
-
To disable the
nsdrvddriver, comment thensdrvdparameter in theblx.conffile.blx-system-config { ... # nsdrvd: 2 ... } <!--NeedCopy--> -
Restart BLX.
systemctl restart blx <!--NeedCopy-->
After BLX restarts, the nsdrvd driver is disabled on the BLX.