Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Torxed
Novice
212 Views

Possible to force "carrier up" for i40e (Intel X710 card)?

I have a very niche problem/need. And that is to force the carrier manually to "up" or "on" for the NIC based on Intel X710 using the i40e driver.

After looking around in the driver, it doesn't seam to be any way to do this currently. So I went down the road of manually modifying the driver a little bit to call: 

netif_carrier_on(vsi->netdev);

In the latest driver, I thought I'd place it in the ethtool section (i40e_ethtool.c) in order to achieve this across the NIC's (it's a two PCIe cards with two NIC's on each, so four NIC's in total).

I tried creating a new flag `force-carrier` but I'm on the edge of my C/Kernel abilities here. And I'm wondering if anyone could nudge me in the right direction or help me make this call work. Currently I'm getting "bit name not found" which is a reference to the Linux Kernel net/ethtool/bitset.c#L410-418 source:

# ethtool --set-priv-flags enp0sfu0 force-carrier on
netlink error: bit name not found (offset 52)
netlink error: Operation not supported

Here's a diff of what I currently got:

diff.png

And copy paste friendly code that would be:

/* Line 315 */
I40E_PRIV_FLAG("force-carrier",
	       I40E_FLAG_FORCE_CARRIER, 0),

/* Line 6554 */
if (changed_flags & I40E_FLAG_FORCE_CARRIER) {
	/* Force the carrier on
	 * But do not awaken the TX queues, as a forced carrier
	 * does not imply that there's an actual carrier to send on.
	 */
	i40e_print_link_message(vsi, true);
	netif_carrier_on(vsi->netdev);
}

And in the src/i40e.h header file:

#define I40E_FLAG_FORCE_CARRIER			BIT(29)

 

The use case is that I have only a single multi-mode LC connector plugged in to the NIC, and it's a TX cable coming in to the Intel cards RX slot in the SFP. There's test data coming in that I would like to be able to pick up with tcpdump without having a TX connector plugged in from the Intel Card. 

The link is reported as NO-CARRIER as there's no way to do LLDP or other link detection actions as it's unidirectional. Which makes sense, but this causes the kernel to drop anything that comes it's way it seams like. I would if manually possible override this (including MTU's and other things) and force the carrier state to be up so that the kernel will allow for packet inspection on only incoming data. If it's this simple that is, there's probably more steps beyond this that I'll have to tackle that I just haven't discovered yet (such as, does the SFP support this even? But the commercial products use "normal" SFP's too with just one link unplugged).

 

There's commercially available products that allow for this, but I'm trying my best to create a "simple" open source alternative to these as there just doesn't seam to be any. It would be very limited of course but a start would be nice.

Any ideas, tips or help would be greatly appreciated.

0 Kudos
8 Replies
CrisselleF_C_Intel
Moderator
185 Views

Hello Torxed,


Thank you for posting in Intel Ethernet Communities. 


Please provide the following information that would help in checking your query.


1.) Is the X710 embedded on your motherboard? If yes, kindly provide the motherboard information. Otherwise, please share the PBA of the adapter and model of the SFP module used. You may refer to the link below on where to find the PBA number. It consist of 6-3 digit number located at the last part of the serial number. Please be reminded to only send the 6-3 digit number and not the whole Serial number to avoid exposing sensitive information.

https://www.intel.com/content/www/us/en/support/articles/000007022/network-and-i-o/ethernet-products...

2.) What is the exact Operating System used? 

3.) Where was the driver downloaded from? 

4.) How many adapters are affected? 


Looking forward to hear from you.


Should there be no reply, we will follow up after 3 business days.


Best regards,

Crisselle C

Intel® Customer Support


Torxed
Novice
182 Views

I'll try to address your questions as detailed as possible.

1.) It's a PCIe extension card. The model is X710-DA2 (https://ark.intel.com/content/www/us/en/ark/products/83964/intel-ethernet-converged-network-adapter-...) and the full article number should be X710DA2BLK. As to the SFP, it's a generic model that I had laying around, model E10GSFPSR (https://ark.intel.com/content/www/us/en/ark/products/50680/intel-ethernet-sfp-sr-optics.html).

2.) Arch Linux 2021.02.01. With a Kernel version of 5.10.11. I'm willing to change if that makes life easier for you when helping, but it's a very bare minimum installation with just one modification, which is 

3.) The driver in question is this one: https://downloadcenter.intel.com/download/24411/Intel-Network-Adapter-Driver-for-PCIe-40-Gigabit-Eth... specifically version 2.14.13. I'm willing to upgrade or downgrade however.

4.) All of them essentially. I have two PCIe cards, each with two ports so that totals to four SFP's that I would want to achieve this on.

 

I'm willing to change adapters and SFP's so the question isn't necessarily tied to one specific model or hardware. But I presume this is to narrow down the search field and makes it easier to help.

Torxed
Novice
181 Views

Forgot to mention the one change to the OS bare installation, which is kernel boot parameter:

module.sig_enforce=0

To allow for building the Intel driver a bit quicker and test it out. 
This shouldn't be a blocker but only facilitate easier testing and debugging. 

CrisselleF_C_Intel
Moderator
166 Views

Hello Torxed,


Thank you for the reply. 


Please allow us to further check on this request. We will get back to you as soon as possible but no later than 2-3 business days.


Hoping for your kind patience.


Best regards,

Crisselle C

Intel® Customer Support


CrisselleF_C_Intel
Moderator
155 Views

Hello Torxed,


Good day!


Before checking this request with our engineers, we hope you don't mind providing additional information below that would help with the investigation.

1.) Have you tried using an Intel branded optical module? Will you be able to provide photos of your current SFP modules for us to check the part number? 

2.) Can you share the 6-3 PBA number of the adapter? This will allow us to check if its an Original Equipment Manufacturer or Retail version of an Intel Ethernet adapter.

3.) Please provide more information regarding your setup like switch and motherboard used.

4.) Is the issue encountered on first integration or this worked fine before? If no is there any changes prior to the issue?


Hoping to hear from you soon.


We will follow up 3 business days in case we don't receive a reply.


Best regards,

Crisselle C

Intel® Customer Support


Torxed
Novice
143 Views

Hi again, no worries.

 

1.) I will not be able unfortunately due to circumstances.

2.) Depends, the link you provided on finding it is not applicable. There is no such sticker on the card, perhaps the guide is a bit outdated? If that's the case, I do have a QR code with a unique serial number that ends on 586444. Other than that, the only information on any sticker is "CNA X710-D42" and "X710D42BLK" which I guess is of no use to you?

3.) There is no switch involved, on the other end of the system is another identical setup. I fail to see how the motherboard is relevant and I can't disclose all details. But it's again a generic ATX motherboard with an i7 processor, three or more PCIe lanes and that's about it.

4.) Did not work fine before. This is a one-off case, not something you'd typically try in normal day to day operations which is why I need some guidance

 

Hope this satisfies your queries and looking forward to hearing from you.

CrisselleF_C_Intel
Moderator
135 Views

Hello Torxed,


Appreciate your swift response. 


Please allow us to investigate this with our engineers. We will get back to you as soon as possible but no later than 2-3 business days.


Hoping for your kind patience.


Best regards,

Crisselle C

Intel® Customer Support


CrisselleF_C_Intel
Moderator
57 Views

Hello Torxed,


Thank you for the patience on this matter.


After further checking with our engineers, it would be best if you can submit a request to Sourceforge support. A team specializes these drivers would be able to check and help you with your request.

https://sourceforge.net/projects/e1000/support


Please also be informed that we will be closing this request on our end. Should you have a new question or additional assistance needed in the future, kindly submit a new question as this thread will no longer be monitored.


May you have a great day!


Best regards,

Crisselle C

Intel® Customer Support