mirror of
https://github.com/saymrwulf/uhd.git
synced 2026-05-16 21:10:10 +00:00
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:
parent
e4c73e8591
commit
00e18de91c
3 changed files with 39 additions and 9 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue