Intel Ethernet Controller I225-LM Support?
-
This post is deleted! -
My 2.5GbE device arrived today, and while the port does seem to negotiate the line rate correctly when both forced and autodetected, the original problem remains and no inbound packets from the device attached to the i225-LM port are making it through.
Just for grins I tried disabling CRC stripping with hw.igc.disable_crc_stripping=1, and while I still don't see any in packets making it through, the error in counter is no longer incrementing for every packet received as it had before.
dev.igc.0.mac_stats.tso_txd: 0 dev.igc.0.mac_stats.tx_frames_1024_1522: 0 dev.igc.0.mac_stats.tx_frames_512_1023: 0 dev.igc.0.mac_stats.tx_frames_256_511: 0 dev.igc.0.mac_stats.tx_frames_128_255: 0 dev.igc.0.mac_stats.tx_frames_65_127: 0 dev.igc.0.mac_stats.tx_frames_64: 8 dev.igc.0.mac_stats.mcast_pkts_txd: 0 dev.igc.0.mac_stats.bcast_pkts_txd: 8 dev.igc.0.mac_stats.good_pkts_txd: 8 dev.igc.0.mac_stats.total_pkts_txd: 8 dev.igc.0.mac_stats.good_octets_txd: 512 dev.igc.0.mac_stats.good_octets_recvd: 0 dev.igc.0.mac_stats.rx_frames_1024_1522: 0 dev.igc.0.mac_stats.rx_frames_512_1023: 0 dev.igc.0.mac_stats.rx_frames_256_511: 0 dev.igc.0.mac_stats.rx_frames_128_255: 0 dev.igc.0.mac_stats.rx_frames_65_127: 0 dev.igc.0.mac_stats.rx_frames_64: 0 dev.igc.0.mac_stats.mcast_pkts_recvd: 0 dev.igc.0.mac_stats.bcast_pkts_recvd: 0 dev.igc.0.mac_stats.good_pkts_recvd: 0 dev.igc.0.mac_stats.total_pkts_recvd: 0 dev.igc.0.mac_stats.xoff_txd: 0 dev.igc.0.mac_stats.xoff_recvd: 0 dev.igc.0.mac_stats.xon_txd: 0 dev.igc.0.mac_stats.xon_recvd: 0 dev.igc.0.mac_stats.alignment_errs: 0 dev.igc.0.mac_stats.crc_errs: 0 dev.igc.0.mac_stats.recv_errs: 0 dev.igc.0.mac_stats.recv_jabber: 0 dev.igc.0.mac_stats.recv_oversize: 0 dev.igc.0.mac_stats.recv_fragmented: 0 dev.igc.0.mac_stats.recv_undersize: 0 dev.igc.0.mac_stats.recv_no_buff: 0 dev.igc.0.mac_stats.missed_packets: 0 dev.igc.0.mac_stats.defer_count: 0 dev.igc.0.mac_stats.sequence_errors: 0 dev.igc.0.mac_stats.symbol_errors: 0 dev.igc.0.mac_stats.collision_count: 0 dev.igc.0.mac_stats.late_coll: 0 dev.igc.0.mac_stats.multiple_coll: 0 dev.igc.0.mac_stats.single_coll: 0 dev.igc.0.mac_stats.excess_coll: 0
@lra that is a good idea, but I don't have a spare system to give this a try on at the moment. I will be building a TrueNAS SCALE box in the next month or so and can give it a try then. In the mean-time I'll probably try picking up another NIC to test.
-
Hmm, there it's showing 0 packets received at all not just bad packets as it was before.
Was it actually connected when that was taken? -
@stephenw10 said in Intel Ethernet Controller I225-LM Support?:
Hmm, there it's showing 0 packets received at all not just bad packets as it was before.
Was it actually connected when that was taken?Yes, the port was actually connected to a test device and had received a few ARP replies from the test device when this was taken, but the system had been recently restarted resetting the counters and had only been online a few minutes at that point.
As another experiment, I modified the interface settings to use the second physical interface on the dual I225-LM card and it was exhibiting the same issues, but I let it sit overnight, and it does appear to have accumulated errors after all:
dev.igc.1.mac_stats.tso_txd: 0 dev.igc.1.mac_stats.tx_frames_1024_1522: 0 dev.igc.1.mac_stats.tx_frames_512_1023: 0 dev.igc.1.mac_stats.tx_frames_256_511: 0 dev.igc.1.mac_stats.tx_frames_128_255: 0 dev.igc.1.mac_stats.tx_frames_65_127: 0 dev.igc.1.mac_stats.tx_frames_64: 17 dev.igc.1.mac_stats.mcast_pkts_txd: 0 dev.igc.1.mac_stats.bcast_pkts_txd: 17 dev.igc.1.mac_stats.good_pkts_txd: 17 dev.igc.1.mac_stats.total_pkts_txd: 2860 dev.igc.1.mac_stats.good_octets_txd: 1088 dev.igc.1.mac_stats.good_octets_recvd: 32321 dev.igc.1.mac_stats.rx_frames_1024_1522: 0 dev.igc.1.mac_stats.rx_frames_512_1023: 28 dev.igc.1.mac_stats.rx_frames_256_511: 0 dev.igc.1.mac_stats.rx_frames_128_255: 37 dev.igc.1.mac_stats.rx_frames_65_127: 34 dev.igc.1.mac_stats.rx_frames_64: 26 dev.igc.1.mac_stats.mcast_pkts_recvd: 100 dev.igc.1.mac_stats.bcast_pkts_recvd: 3 dev.igc.1.mac_stats.good_pkts_recvd: 125 dev.igc.1.mac_stats.total_pkts_recvd: 2967 dev.igc.1.mac_stats.xoff_txd: 2843 dev.igc.1.mac_stats.xoff_recvd: 0 dev.igc.1.mac_stats.xon_txd: 0 dev.igc.1.mac_stats.xon_recvd: 0 dev.igc.1.mac_stats.alignment_errs: 0 dev.igc.1.mac_stats.crc_errs: 0 dev.igc.1.mac_stats.recv_errs: 0 dev.igc.1.mac_stats.recv_jabber: 0 dev.igc.1.mac_stats.recv_oversize: 0 dev.igc.1.mac_stats.recv_fragmented: 0 dev.igc.1.mac_stats.recv_undersize: 0 dev.igc.1.mac_stats.recv_no_buff: 0 dev.igc.1.mac_stats.missed_packets: 2842 dev.igc.1.mac_stats.defer_count: 0 dev.igc.1.mac_stats.sequence_errors: 0 dev.igc.1.mac_stats.symbol_errors: 0 dev.igc.1.mac_stats.collision_count: 0 dev.igc.1.mac_stats.late_coll: 0 dev.igc.1.mac_stats.multiple_coll: 0 dev.igc.1.mac_stats.single_coll: 0 dev.igc.1.mac_stats.excess_coll: 0
I decided to go a different route and picked up an X710-T2L and will be returning the QNAP QXG-2G2T-I225 as my return window will have closed by the time I have a chance to test this card on a Linux box to see if the issues persist. That said, I will still have the I225-LM card installed and available for testing through early next week so if you would like me to do any additional testing beforehand, please let me know.
-
I'm not sure what else we can do there. It's just rejecting almost all the traffic it sees at some low level. It 'feels' like a hardware off loading issue to me. It all reports as disabled but maybe on that particular chip some register is set/not set that the driver doesn't see? No easy way to tell.
-
@stephenw10 Not sure if it's 100% relevant but I am using two of the single-port versions of the QNAP 2.5Gbe card, and could not get the DNS resolver to work at all. After disabling hardward crc offloading, the issue was resolved, so there's definitely something wonky with this driver/card combo.
-
@jerseymike said in Intel Ethernet Controller I225-LM Support?:
@stephenw10 Not sure if it's 100% relevant but I am using two of the single-port versions of the QNAP 2.5Gbe card, and could not get the DNS resolver to work at all. After disabling hardward crc offloading, the issue was resolved, so there's definitely something wonky with this driver/card combo.
This seems to align with @slk2k 's findings in the thread here, however, it seems to have no effect with the dual port QNAP QXG-2G2T-I225 card I have been testing with. I had initially tried disabling TX and RX CRC offloading from the UI, but later did so directly with ifconfig and both yielded the same results (no inbound packets are making it through).
-
Hmm, have either of you tried FreeBSD directly?
That should be no different but....
-
Now that the system has been in place for a long weekend, I checked the stats and nothing is unusual - no missed packets. Things looks reasonably well (other than a crap-ton of interrupts, but that's because all the HW offloading is turned off).
/root: sysctl -a dev.igc.0 dev.igc.0.interrupts.rx_desc_min_thresh: 0 dev.igc.0.interrupts.asserts: 59793578 dev.igc.0.mac_stats.tso_txd: 0 dev.igc.0.mac_stats.tx_frames_1024_1522: 29552898 dev.igc.0.mac_stats.tx_frames_512_1023: 337783 dev.igc.0.mac_stats.tx_frames_256_511: 2041523 dev.igc.0.mac_stats.tx_frames_128_255: 867472 dev.igc.0.mac_stats.tx_frames_65_127: 11716942 dev.igc.0.mac_stats.tx_frames_64: 9123432 dev.igc.0.mac_stats.mcast_pkts_txd: 67 dev.igc.0.mac_stats.bcast_pkts_txd: 268 dev.igc.0.mac_stats.good_pkts_txd: 53640050 dev.igc.0.mac_stats.total_pkts_txd: 53640050 dev.igc.0.mac_stats.good_octets_txd: 47517179206 dev.igc.0.mac_stats.good_octets_recvd: 94980575076 dev.igc.0.mac_stats.rx_frames_1024_1522: 61648203 dev.igc.0.mac_stats.rx_frames_512_1023: 760161 dev.igc.0.mac_stats.rx_frames_256_511: 1040034 dev.igc.0.mac_stats.rx_frames_128_255: 1551643 dev.igc.0.mac_stats.rx_frames_65_127: 6856810 dev.igc.0.mac_stats.rx_frames_64: 15037895 dev.igc.0.mac_stats.mcast_pkts_recvd: 128920 dev.igc.0.mac_stats.bcast_pkts_recvd: 623916 dev.igc.0.mac_stats.good_pkts_recvd: 86894746 dev.igc.0.mac_stats.total_pkts_recvd: 86894746 dev.igc.0.mac_stats.xoff_txd: 0 dev.igc.0.mac_stats.xoff_recvd: 0 dev.igc.0.mac_stats.xon_txd: 0 dev.igc.0.mac_stats.xon_recvd: 0 dev.igc.0.mac_stats.alignment_errs: 0 dev.igc.0.mac_stats.crc_errs: 0 dev.igc.0.mac_stats.recv_errs: 0 dev.igc.0.mac_stats.recv_jabber: 0 dev.igc.0.mac_stats.recv_oversize: 0 dev.igc.0.mac_stats.recv_fragmented: 0 dev.igc.0.mac_stats.recv_undersize: 0 dev.igc.0.mac_stats.recv_no_buff: 0 dev.igc.0.mac_stats.missed_packets: 0 dev.igc.0.mac_stats.defer_count: 0 dev.igc.0.mac_stats.sequence_errors: 0 dev.igc.0.mac_stats.symbol_errors: 0 dev.igc.0.mac_stats.collision_count: 0 dev.igc.0.mac_stats.late_coll: 0 dev.igc.0.mac_stats.multiple_coll: 0 dev.igc.0.mac_stats.single_coll: 0 dev.igc.0.mac_stats.excess_coll: 0 dev.igc.0.queue_rx_3.rx_irq: 0 dev.igc.0.queue_rx_3.rxd_tail: 287 dev.igc.0.queue_rx_3.rxd_head: 288 dev.igc.0.queue_rx_2.rx_irq: 0 dev.igc.0.queue_rx_2.rxd_tail: 374 dev.igc.0.queue_rx_2.rxd_head: 375 dev.igc.0.queue_rx_1.rx_irq: 0 dev.igc.0.queue_rx_1.rxd_tail: 165 dev.igc.0.queue_rx_1.rxd_head: 166 dev.igc.0.queue_rx_0.rx_irq: 0 dev.igc.0.queue_rx_0.rxd_tail: 363 dev.igc.0.queue_rx_0.rxd_head: 364 dev.igc.0.queue_tx_3.tx_irq: 0 dev.igc.0.queue_tx_3.txd_tail: 647 dev.igc.0.queue_tx_3.txd_head: 647 dev.igc.0.queue_tx_2.tx_irq: 0 dev.igc.0.queue_tx_2.txd_tail: 789 dev.igc.0.queue_tx_2.txd_head: 789 dev.igc.0.queue_tx_1.tx_irq: 0 dev.igc.0.queue_tx_1.txd_tail: 754 dev.igc.0.queue_tx_1.txd_head: 754 dev.igc.0.queue_tx_0.tx_irq: 0 dev.igc.0.queue_tx_0.txd_tail: 294 dev.igc.0.queue_tx_0.txd_head: 294 dev.igc.0.fc_low_water: 32752 dev.igc.0.fc_high_water: 32768 dev.igc.0.rx_control: 71335966 dev.igc.0.device_control: 404489793 dev.igc.0.watchdog_timeouts: 0 dev.igc.0.rx_overruns: 0 dev.igc.0.link_irq: 2 dev.igc.0.dropped: 0 dev.igc.0.eee_control: 1 dev.igc.0.itr: 488 dev.igc.0.tx_abs_int_delay: 66 dev.igc.0.rx_abs_int_delay: 66 dev.igc.0.tx_int_delay: 66 dev.igc.0.rx_int_delay: 0 dev.igc.0.rs_dump: 0
But my thruput seems off. My previous modem and connection I would get a higher thruput on the speedtest (like 940M down, 42M up). Now I can't test higher than 860M down, 36M up). Might have more to do with the modem as much as the NIC ports. I get the same directly connected to the modem.
-
@stephenw10 said in Intel Ethernet Controller I225-LM Support?:
Hmm, have either of you tried FreeBSD directly?
That should be no different but....
I have not, but a fair comparison would include both vanilla FreeBSD 12.2 with the igc driver added and a Linux kernel 5.10+ based distro with a variety of I225-LM and I225-V hardware. I just don't have the physical hardware to test this out in my homelab.
-
I would test with any FreeBSD version that has the driver just to know if it works at all there. That looks like only Main right now: https://github.com/freebsd/freebsd-src/tree/main/sys/dev/igc
So I'd test a snapshot.Steve
-
Wow I'm glad i found this post. I have 2 of the QNAP I225-LM cards installed with pfsense 2.5.2 and the DNS resolver wasn't working on a fresh install. I was absolutely tearing my hair out trying to figure out why it wasn't working (blaming my AT&T fiber gateway that I'm forced to use...).
ipv6 also wasn't working using DHCPv6 prefix delegation. The WAN interface I225-LM could get an address but none of the clients on my LAN interface I225-LM network could.
Using two integrated I-211 and I-219 gigabit controllers on the motherboard yields no such issues. Let me know if there is anything specific that anyone wants me to test while I still have the 2 troublesome I225-LM cards.
Edit: I reinstalled 2.5.2 and disabled hardware offloading and now everything is working great.
-
I am not sure if it matters, but both @bk150 and @slk2k are using CE 2.5.2 and I am using Plus 21.05. @jerseymike what were you running when you did your test with the single port QNAP I225-LM cards?
-
@setarcos I'm running CE 2.5.2
-
@bk150 said in Intel Ethernet Controller I225-LM Support?:
I reinstalled 2.5.2 and disabled hardware offloading and now everything is working great.
Hardware Checksum Offloading? Using the GUI checkbox?
-
@stephenw10 Correct. I did a fresh install of 2.5.2 and DNS resolution was not working. I then (slowly) navigated to the GUI in System > Advanced > Networking and disabled hardware checksum offloading.
It prompted me to reboot and after the reboot, DNS was working as expected and the GUI was no longer slow.
Edit: IPv6 is also working completely as expected.
-
I have the single port version of the QNAP Intel i225-LM running on bare metal 2.5.2 CE. Reading this thread, it seems that Intel i225-LM is supported. Any known reason or thoughts why the igc drivers are not loaded and interface is not recognized on my install? Model of card is QXG-2G1T-I225.
Thank you.
none2@pci0:4:0:0: class=0x020000 card=0xc0011baa chip=0x15f28086 rev=0x03 hdr=0x00 vendor = 'Intel Corporation' device = 'Intel(R) Ethernet Controller I225-LM' class = network subclass = ethernet
-
Looks identical to the one shown here: https://forum.netgate.com/post/993924
Check the boot log for errors when the driver tries to attach.Steve
-
@stephenw10 Found something pretty interesting...
May be a red herring. I do have an onboard intel NIC that was loading fine as em0. I have since disabled it. Error persists whether the onboard nic is enabled or disabled in the bios.
igc0: <Intel(R) PRO/1000 PCI-Express Network Driver> mem 0xe1b00000-0xe1bfffff,0xe1c00000-0xe1c03fff irq 16 at device 0.0 on pci3 igc0: Setup of Shared code failed, error -2 igc0: IFDI_ATTACH_PRE failed 6 device_attach: igc0 attach returned 6
-
@silvercharge There seems to be some type incompatibility between a quad port Broadcom card and the I225-LM installed. When the Broadcom's link state is down, then the igc0 driver can load successfully.