50. NTB Sample Application

The ntb sample application shows how to use ntb rawdev driver. This sample provides interactive mode to do packet based processing between two systems.

This sample supports 4 types of packet forwarding mode.

  • file-trans: transmit files between two systems. The sample will be polling to receive files from the peer and save the file as ntb_recv_file[N], [N] represents the number of received file.
  • rxonly: NTB receives packets but doesn’t transmit them.
  • txonly: NTB generates and transmits packets without receiving any.
  • iofwd: iofwd between NTB device and ethdev.

50.1. Compiling the Application

To compile the sample application see Compiling the Sample Applications.

The application is located in the ntb sub-directory.

50.2. Running the Application

The application requires an available core for each port, plus one. The only available options are the standard ones for the EAL:

./build/ntb_fwd -c 0xf -n 6 -- -i

Refer to the DPDK Getting Started Guide for general information on running applications and the Environment Abstraction Layer (EAL) options.

50.3. Command-line Options

The application supports the following command-line options.

  • --buf-size=N

    Set the data size of the mbufs used to N bytes, where N < 65536. The default value is 2048.

  • --fwd-mode=mode

    Set the packet forwarding mode as file-trans, txonly, rxonly or iofwd.

  • --nb-desc=N

    Set number of descriptors of queue as N, namely queue size, where 64 <= N <= 1024. The default value is 1024.

  • --txfreet=N

    Set the transmit free threshold of TX rings to N, where 0 <= N <= the value of --nb-desc. The default value is 256.

  • --burst=N

    Set the number of packets per burst to N, where 1 <= N <= 32. The default value is 32.

  • --qp=N

    Set the number of queues as N, where qp > 0. The default value is 1.

50.4. Using the application

The application is console-driven using the cmdline DPDK interface:

ntb>

From this interface the available commands and descriptions of what they do as follows:

  • send [filepath]: Send file to the peer host. Need to be in file-trans forwarding mode first.
  • start: Start transmission.
  • stop: Stop transmission.
  • show/clear port stats: Show/Clear port stats and throughput.
  • set fwd file-trans/rxonly/txonly/iofwd: Set packet forwarding mode.
  • quit: Exit program.