aboutsummaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
authorVirendra Kakade <virendra.kakade@ni.com>2022-03-30 13:01:31 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2022-04-01 09:23:24 -0700
commit00e18de91c1e22b0b452869aaa87f7bcf10efe09 (patch)
tree4216c89d69ac3d1c9646918e3948b452be6c8318 /host
parente4c73e85913b0a635b1eb0ef4e6813e8385aa887 (diff)
downloaduhd-00e18de91c1e22b0b452869aaa87f7bcf10efe09.tar.gz
uhd-00e18de91c1e22b0b452869aaa87f7bcf10efe09.tar.bz2
uhd-00e18de91c1e22b0b452869aaa87f7bcf10efe09.zip
docs: add 100GigE documentation
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com> Co-authored-by: Wade Fife <wade.fife@ettus.com>
Diffstat (limited to 'host')
-rw-r--r--host/docs/dpdk.dox13
-rw-r--r--host/docs/transport.dox31
-rw-r--r--host/docs/usrp_x4xx.dox4
3 files changed, 39 insertions, 9 deletions
diff --git a/host/docs/dpdk.dox b/host/docs/dpdk.dox
index 539a6ce18..0b86c78ba 100644
--- a/host/docs/dpdk.dox
+++ b/host/docs/dpdk.dox
@@ -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
diff --git a/host/docs/transport.dox b/host/docs/transport.dox
index fdb42c610..57fad87ff 100644
--- a/host/docs/transport.dox
+++ b/host/docs/transport.dox
@@ -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
diff --git a/host/docs/usrp_x4xx.dox b/host/docs/usrp_x4xx.dox
index b932ea0c6..500b66311 100644
--- a/host/docs/usrp_x4xx.dox
+++ b/host/docs/usrp_x4xx.dox
@@ -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