SFP+ to Ethernet Transceiver Adapter Compatibility Issues With NI High Speed Serial modules

Updated Sep 11, 2020

Reported In

Hardware

  • PXIe-6592
  • PXIe-6591

Software

  • LabVIEW

Driver

  • LabVIEW Instrument Design Libraries for High-Speed Serial Instruments 19.0

Issue Details

I purchased a random SFP+ to 10GbE transceiver adapter to establish a communication link between NI PXIe-6592R High-Speed Serial (HSS) module and PC ethernet port (1GbE Intel NIC). However, I am not able to get my link working.
  • When I use the NI LabVIEW streaming project for 1Gb Ethernet (NI 6592R), there are no ethernet indication LEDs switching ON after I run the transmit or receive Host VIs (no error and the bitfile is deployed correctly).
  • When the NI LabVIEW streaming project for 10Gb Ethernet (NI 6592R) is used, the ethernet LEDs switch ON and the UDP link works at lower rates, but the UDP packets are lost at higher transmission rates.
What are the possible reasons for this failure?
 

Solution

There are various SFP+ to Ethernet Transceiver Adapters available in the market with slight differences in their PHY layer. A PHY layer is responsible for translating the signal between host and destination ethernet ports. Because of such slight differences on both ends, not every adapter can work out-of-the-box.
Also, to establish a communication link between ethernet devices running different bitrates, e.g., PXIe-6592R running 10GbE streaming project and the other (PC) ethernet port is 1GbE, auto-negotiation is necessary. The FPGA IP of NI provided streaming projects does not contain auto-negotiation already implemented. Also, some adapter modules support auto-negotiation out-of-the-box, while others need manual configuration to enable it, and many are not capable to perform auto-negotiation at all.

Here are the few troubleshooting steps which can be performed in such a scenario:
  1. Use an SFP+ direct attach cable (DAC). The direct attach cable does not convert the signals to any different protocol, but cross-connect them (i.e. Tx and Rx lines are crossed). This can quickly verify if the device and code are working correctly.
  2. Check the specification of the SFP+ to Ethernet Transceiver Adapter. NI recommends getting a generic-type adapter. Few important pieces of information to look at:
    1. Are you trying to connect between two devices running on different bitrate, e.g., 10GbE with 1GbE? If so, is auto-negotiation supported by the adapter and your code?
    2. Does the adapter need any additional configuration to establish the compatibility, e.g., bit inversions, serial ID interface, etc.? This may require additional development on top of the shipped streaming projects and also a deeper understanding of the protocol.
    3. The PC ethernet ports (Intel NIC) can have many different configurations or settings. Attempt to disable all unnecessary settings as the adapter may not support them and can lead to link failure. It is important to understand that the FPGA IP of the NI-provided streaming project implements only the basic/minimum functionality.
Lack of correct auto-negotiation can also be a possible reason for UDP packet loss between source and destination using different bitrates. Using a router in between the host and destination device can improve the situation.

Additional Information

If you need to achieve a lower bitrate (e.g., 10M/100M/1G) or want to have the auto-negotiate capability, this community example stands out as the tested option with information available about the adapter used to verify the functionality. The example projects support the 1000BASE-X and the SGMII standards on the SFP connectors, with 10M/100M/1000M speeds in the case of SGMII.