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 the blx.conf file specifies the number of packet engines for BLX.
  • INT - Number of dedicated Linux host NIC ports for BLX. The interface parameter in the blx.conf file specifies the Linux host NIC ports dedicated to BLX.
  • P - Number of nsdrvd driver processes for BLX. The nsdrvd parameter in the blx.conf file specifies the number of nsdrvd 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

Enable nsdrvd driver

You must use the Linux host CLI to enable the nsdrvd driver.

  1. 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-->
    
  2. Uncomment the nsdrvd parameter and set the value to 1, 2, or 3.

    blx-system-config
    {
            ...
            nsdrvd: <number of process>
            ...
    }
    <!--NeedCopy-->
    
  3. Save the blx.conf file.
  4. 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.

  1. To disable the nsdrvd driver, comment the nsdrvd parameter in the blx.conf file.

    blx-system-config
    {
            ...
            # nsdrvd: 2
            ...
    }
    <!--NeedCopy-->
    
  2. Restart BLX.

    systemctl restart blx
    <!--NeedCopy-->
    

After BLX restarts, the nsdrvd driver is disabled on the BLX.

Configure nsdrvd driver for NetScaler BLX in dedicated mode without DPDK support