docs: add 100GigE documentation

Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
This commit is contained in:
Virendra Kakade 2022-03-30 13:01:31 -05:00 committed by Aaron Rossetto
parent e4c73e8591
commit 00e18de91c
3 changed files with 39 additions and 9 deletions

View file

@ -142,6 +142,9 @@ options:
dpdk_driver=/usr/local/lib/x86_64-linux-gnu/dpdk/pmds-21.0/
;dpdk_corelist is the -l flag for the DPDK EAL. See more at the link
; https://doc.dpdk.org/guides-21.11/linux_gsg/build_sample_apps.html#running-a-sample-application
;Note if you use multiple SFP ports in a streaming application simultaneously,
;you can specify multiple cores in the core list (e.g. 0, 1, 2) and then assign
;them each to the separate SFP port/NIC.
dpdk_corelist=0,1
;dpdk_num_mbufs is the total number of packet buffers allocated
;to each direction's packet buffer pool
@ -161,9 +164,11 @@ case, and octets must be separated by colons. Here is an example:
[dpdk_mac=3c:fd:fe:a2:a9:09]
;dpdk_lcore selects the lcore that this NIC's driver will run on
;Multiple NICs may occupy one lcore, but the I/O thread will completely
;consume that lcore's CPU. Also, 0 is reserved for the master thread (i.e.
;the initial UHD thread that calls init() for DPDK). Attempting to
;use it as an I/O thread will only result in hanging.
;consume that lcore's CPU. When using dual SFP configuration, using a
;different dpdk_lcore value for each SFP connection is recommended and
;will result in better streaming performance. Also, 0 is reserved for
;the master thread (i.e.the initial UHD thread that calls init() for DPDK).
;Attempting to use it as an I/O thread will only result in hanging.
;Note also that by default, the lcore ID will be the same as the CPU ID.
dpdk_lcore = 1
;dpdk_ipv4 specifies the IPv4 address, and both the address and
@ -176,6 +181,8 @@ case, and octets must be separated by colons. Here is an example:
dpdk_num_desc=4096
[dpdk_mac=3c:fd:fe:a2:a9:0a]
;Using a separate dpdk_lcore value for each SFP connection/MAC entry
;can possibly result in improved streaming performance. E.g. dpdk_lcore = 2.
dpdk_lcore = 1
dpdk_ipv4 = 192.168.20.1/24

View file

@ -32,21 +32,21 @@ the device arguments for the transport associated with the stream.
- `send_frame_size`
- Default value (X3x0):
1472 (if link rate is GigE) or
4000 (if link rate is 10GigE)
8000 (if link rate is 10GigE)
- Default value (MPMD):
1472 (if link rate is GigE);
8000 (if link rate is 10GigE);
8000 (if link rate is 10GigE or 100GigE);
TX MTU (other link rates)
- <b>Note:</b> Value will be capped at the link's send MTU
- `recv_frame_size`
- Default value (X3x0 and MPMD):
1472 (if link rate is GigE);
8000 (if link rate is 10GigE);
8000 (if link rate is 10GigE or 100GigE);
RX MTU (other link rates)
- <b>Note:</b> Value will be capped at the link's receive MTU
- `send_buff_size`
- Default value (X3x0 and MPMD):
20 ms of data at the link rate (2.5 MB for 1GigE, 25 MB for 10GigE)
20 ms of data at the link rate (2.5 MB for 1GigE, 25 MB for 10GigE, 250 MB for 100GigE)
- `recv_buff_size`
- Default value (X3x0 and MPMD):
20 ms of data at the link rate
@ -156,6 +156,29 @@ One can query the maximums and current settings with the following command:
ethtool -g <interface>
Tx pause frame support must be enabled when using 100GigE with X410 to ensure proper streaming performance.
To enable Tx pause frames run the following command on the device in a Linux prompt.
ethtool -A <interface> tx on
If you are using both SFP ports, you will need to run the above command separately on both of them.
One can query the the current enable status of TX pause frames by running the following command on the X410 device in a Linux prompt.
ethtool -a <interface>
The above changes will be volatile and will need to be re-applied every time the device boots or the SFP ports are reconfigured,
e.g. after a fpga image load.
Automatic enable of TX pause frames will be possible in the future when systemd v2.4.6 or higher is used on the device.
This will be done by using the `TxFlowControl` parameter in the `.network` files(s) used for configuring the SFP port(s) being used.
E.g. When using sfp0 port, add a line `TxFlowControl=1` as shown below to the `/data/network/sfp0.network` file.
```
[Link]
TxFlowControl=1
```
\subsection transport_udp_windows Windows specific notes
<b>UDP send fast-path:</b> It is important to change the default UDP

View file

@ -5,7 +5,7 @@
\section x4xx_feature_list Comparative Features List
- Hardware Capabilities:
- Dual QSFP28 Ports (can be used with 10 GigE)
- Dual QSFP28 Ports (can be used with 10 GigE or 100 GigE)
- External PPS input & output
- External 10 MHz input
- Internal GPSDO for timing, location, and time/frequency reference
@ -827,7 +827,7 @@ For a list of which arguments can be passed into make(), see Section
-----------------------|---------------------------------------------------------------------------------|---------------------
addr | IPv4 address of primary SFP+ port to connect to. | addr=192.168.30.2
second_addr | IPv4 address of secondary SFP+ port to connect to. | second_addr=192.168.40.2
mgmt_addr | IPv4 address or hostname to which to connect the RPC client. Defaults to `addr'.| mgmt_addr=ni-sulfur-311FE00
mgmt_addr | IPv4 address or hostname to which to connect the RPC client. Defaults to `addr'.| mgmt_addr=ni-x4xx-311FE00
find_all | When using broadcast, find all devices, even if unreachable via CHDR. | find_all=1
master_clock_rate | Master Clock Rate in Hz. | master_clock_rate=250e6
serialize_init | Force serial initialization of motherboards (default is parallel) | serialize_init=1