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-processes
parameter in theblx.conf
file specifies the number of packet engines for BLX. -
INT - Number of dedicated Linux host NIC ports for BLX. The
interface
parameter in theblx.conf
file specifies the Linux host NIC ports dedicated to BLX. -
P - Number of
nsdrvd
driver processes for BLX. Thensdrvd
parameter in theblx.conf
file specifies the number ofnsdrvd
driver processes.
Example: BLX with the following configuration must have at least 10 cores:
- WP = 3 packet engines
- INT = 2 dedicated interfaces
-
P = 3
nsdrvd
processes
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.
nsdrvd
driver
Enable You must use the Linux host CLI to enable the nsdrvd
driver.
-
Open the
blx.conf
file 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
nsdrvd
parameter and set the value to 1, 2, or 3.blx-system-config { ... nsdrvd: <number of process> ... } <!--NeedCopy-->
- Save the
blx.conf
file. -
Restart BLX.
systemctl restart blx <!--NeedCopy-->
After BLX restarts, nsdrvd
driver is enabled on the BLX.
nsdrvd
driver
Disable You must use the Linux host CLI to disable the nsdrvd
driver.
-
To disable the
nsdrvd
driver, comment thensdrvd
parameter in theblx.conf
file.blx-system-config { ... # nsdrvd: 2 ... } <!--NeedCopy-->
-
Restart BLX.
systemctl restart blx <!--NeedCopy-->
After BLX restarts, the nsdrvd
driver is disabled on the BLX.