[dpdk-users] 82599ES can't transimit data in single fiber (one port's tx to another port's rx)

wuxikai986 wuxikai986 at 163.com
Mon Nov 12 15:34:39 CET 2018


tips:
  dpdk:17.02
  intel nic 82599 dual port



Purpose:
Regularly,we use optical module that kind of using two pairs of fiber, one for tx, and one for rx. But in some case, we need to use only one fiber,and the transmit in only one direction, that is from one optical`s tx to the other`s rx. 
Here is my problem , when I remove one fiber, the network adapter turn to the status down,and i think it is because of the Negotiation failed。
So,I look up the 82599 DataSheet, and find this:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.7.4.6 Forcing Link Up
Forcing link up can be accomplished by software by setting the AUTOC.FLU bit to 1b,
which forces the MAC to the appropriate MAC link speed as defined by the AUTOC.LMS
field and the appropriate protocol as defined by the AUTOC.10G_PMA_PMD_PARALLEL,
AUTOC2.10G_PMA_PMD_Serial and AUTOC.1G_PMA_PMD bits. The Force-Link-Up mode
enables loopback operation (when HLREG0.LPBK is set to 1b) by setting the link_up
indication regardless of the XGXS/PCS_1G/KR_locked status. Link indication in register
LINKS should be ignored when in this mode.
-------------------------------------------------------------------------------------------------------------------------------------------------

 

That means,in my case,i should set the AUTOC.FLU(AutoNegotiation Force Link UP)register to bit 1, and set  AUTOC.1G_PMA_PMD in speed 1000M,
Or, set AUTOC.10G_PMA_PMD_PARALLEL, AUTOC2.10G_PMA_PMD_Serial in speed 10G.

 

Problem: 
1)With the 1000M speed, i set the AUTOC.FLU=1, AUTOC.LMS=000(1 GbE link , no backplane auto-negotiation), and AUTOC.1G_PMA_PMD = 0(SFI PMA/PMD); and it works ok(I use one for tx, and one for rx);
2)But with the 10G speed,i try set these registers,but it does not work.
I set these register by result of the AutoNegotiation, in my case , the 10G negotiation result is :
10G:
3231539204 - AUTOC , that means , the LMS = 011 (10 GbE serial link), the 10G_PMA_PMD_PARALLEL = 00(XAUI PMA/PMD) 
655360     - AUTOC2, that means, the AUTOC2.10G_PMA_PMD_Serial = 10(SFI)
So, in my case, I set the AUTOC.FLU=1, AUTOC.LMS=011, the 10G_PMA_PMD_PARALLEL = 00, the AUTOC2.10G_PMA_PMD_Serial = 10, it works failed.
also, i set the AUTOC.FLU=1, AUTOC.LMS=011 (10GbE, without AutoNegotiation, but this is the parallel link0), the 10G_PMA_PMD_PARALLEL = 00, the AUTOC2.10G_PMA_PMD_Serial = 10, it works failed.

And other values combination of these register i tryed , and it works failed too, So, maybe someone can help me with this problem?


More information about the users mailing list