NBASE-T Support for Intel X550
-
Which part? The fact it won't auto-negotiate? That's an upstream issue but we can open a ticket to track it.
-
@stephenw10 said in NBASE-T Support for Intel X550:
Which part? The fact it won't auto-negotiate?
Yes, it would be nice to solve all issues. I understand perfectly well that this is outside the area of responsibility of Netgate. But… Netgate have more chances to get it fixed in cooperation with maintainers.
BTW… Thanks to another thread and your suggestions…
dev.ix.1.advertise_speed: Control advertised link speed using these flags: 0x1 - advertise 100M 0x2 - advertise 1G 0x4 - advertise 10G 0x8 - advertise 10M 0x10 - advertise 2.5G 0x20 - advertise 5G 100M and 10M are only supported on certain adapters.
I found that default dev.ix.1.advertise_speed: 7
When I select default mode for the interface and set sysctl dev.ix.1.advertise_speed=16 via system tunables tab and then reboot the firewall than it connects on 2.5G speed. -
Ah, so it could simply be a matter of setting a different set of default advertisement flags?
-
@stephenw10
Isn't the same as manual selection of desired speed in GUI?
BTW if I set 2, then it comes with 1000BaseT link, but no data moving as I've been selected in GUI… -
I don't think so, not in ixgbe. As far as I know those NICs support a real fixed speed if you set it. It's igc that does not and setting a speed only sets a single advertisement speed.
-
@stephenw10
Ok, but, I've been checked this right now. Gui selection for 2500, sets
dev.ix.0.advertise_speed: 16
5000:
dev.ix.0.advertise_speed: 32
1000:
dev.ix.0.advertise_speed: 3
autoselect:
dev.ix.0.advertise_speed: 7
10G:
dev.ix.1.advertise_speed: 7 -
Right, those are all multiple advertised values rather than a single available value which is what igc does.
It appears it needs to include the 2.5 and/or 5G bits when set to autoselect and is not.
-
@stephenw10
I think it is commitSetting 63 as value is not possible, because in fact it reports that card is not supporting 10M, but if I set 37 and select "default" it sets media to the 100M and at least it is working, getting an IP address also!
If i select 100M in GUI then it sets the sysctl value to 1, but no IP then. If I change sysctl value to 37 it gets the IP.
36, 32 causes no link on the port, but it is accepted by sysctl.
Setting it to 2 in sysctl the link is active but no IP then. Looks like there are some values are hardly encoded in the other part of code and maybe not on the pf side. I will try the Ubuntu again to see if I can change the port speed to different values. -
It looks like Ubuntu have similar problems and even worse.
Link negotiation "Ignore" — this mode just means that some other manager or driver itself somehow auto-selecting the link speed, that puts the maximum speed for the link, like 2.5Gbps and 10Gbps.
Selecting 'auto' means 1Gbps in Ubuntu, at least on my cards.
Manual selecting is some kind of lottery that depends on a switch, for example if I select 1Gbps speed on 10G capable switch, it stays on 10Gbps, just ignoring the setting.
On other switch that is capable for 2.5Gbps and fully compliant with NBASE-T, I select 1Gbps, and it changes the link speed, but then no IP received from DHCP, like it happening on the pfSense side.I have found one x550 user report that in the Windows you need manualy select the link speed for X550 when the other side is 226 intel card.
I hope those findings will help someone to make things a bit better.
At least it would be good to use dev.ix.1.advertise_speed: 37 as default value, so you will have a working connection, but this need to be tested.
-
Yes it would need to be extensively tested. Because it looks like that was deliberately not set as a default in order to prevent negotiation issues with some other hardware. So if we set that as a default it could break links for anyone with that hardware.
-
@stephenw10
Yes, sure…
The fastest way is just to add the explanation to the Netgate pfSense documentation?
I think it can be helpful when installing on the hardware when the ix550 is on the LAN side and connected to some 2.5/5Gbps switch that have no link, because of this setting missing or non-compatible by default. -
I agree, let me see what I can do here....
-
https://redmine.pfsense.org/issues/14647
-
@stephenw10 I can confirm that setting
sysctl dev.ix.X.advertise_speed=N
Where X is the interface number (e.g. for ix0, X=0 in the command above) and N is the sum of the advertised speeds, works.
In hex and decimal:
Control advertised link speed using these flags: 0x1 - 1 - advertise 100M 0x2 - 2 - advertise 1G 0x4 - 4 - advertise 10G 0x8 - 8 - advertise 10M 0x10 - 16 - advertise 2.5G 0x20 - 32 - advertise 5G 100M and 10M are only supported on certain adapters.
My default value was 7, (in decimal, so it was 1+2+4, 100M/1G/10G) so to add advertisement of 2.5G and 5G on ix0, I ran:
sysctl dev.ix.0.advertise_speed=55
Since 7 + 16 + 32 = 55.
Now I see:
I also had to add dev.ix.0.advertise_speed as a system tunable, with value 55, to make it persist between reboots
-
@indigo88
Thank you.I can confirm that setting 55 works fine on my cards also. Actually it's 1+2+4+16+32
8 (10M) not supported AFAIK on those cards. -
@w0w Right, the default of 7 is the result of 1 + 2 + 4 (100M/1G/10G)
It’s nice that we have the option, even if it’s a bit esoteric. Also nice that the GUI displays the link speed properly once it’s enabled
-
-
-
I just slotted an X550-T2 into my pfSense box on 2.7.0 and just wanted to chime in that it appears to be advertising NBASE-T speeds despite me not having added the system tunable. When I go to Interfaces > LAN, in the dropdown box for Speed and Duplex, along with autoselect, I have 10G, 5000, 2500, 1000BASE-T and 100BASE-TX all available for selection as media supported by this interface. I have yet to verify that it will link at anything above 1G, but will do so once I have something to try.
For what it's worth, it's a relatively new (2022 date of MFG) card and dmesg states:
ix0: Option ROM V1-b1313-p0 eTrack 0x80000760 PHY FW V523I'm not sure what that corresponds to firmware-wise, but maybe it can be used for comparison. If there's anything you can think of that I can run from the shell for more detail, feel free to let me know.
-
@DeviceMangler
The current actual issue and mentioned system tunable is not related to what you see in the speed and duplex dropdown list. Issue is related to autonegotiation, all three X550-T2 I have, shows those NBASE-T speeds in drop-down list as well. The problem is that it does not negotiate on the correct speed, when using NBASE-T switch, and you should select it manually. When system tunable is added, the card automagically connects on the maximum NBASE-T speed. There is no new revisions of X550-T2 and never to be released AFAIK. -
@w0w
Ah, all right. I assumed that the dropdown box wouldn't have the entries for the other speeds without the system tunable. Thought it may be firmware-related.Guess I'll go ahead and add the tunable, then.
Thanks!
-
I am new to pfsense and plan build a router and install pfsense in the next few months. Hardware is atom c3758 with the dual 10gb ports. The c3000 soc has the intel x553 lan controller. Does anyone know if the modifications described here will allow for nbase-t on those ports like on the x550 cards?