Intel Ethernet Controller I225-LM Support?
-
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.
-
Hmm, curious. So it works with the Broadcom NIC still installed but simply not linked?
But, yes, that's some low level failure preventing the driver attaching.
Steve
-
@stephenw10 Agree. Although I have all offloading is disabled in 2.5.2 CEA, a quick search show similar complaints over the years (e.g. intel & broadcom incompatibly).
-
Yeah, no amount of offload disabling is doing to help if the driver doesn't attach.
-
Anyone able to test this in a 2.6 snapshot?
It looks like 2.5.2 missed this fix for UDP checksum offloading.
That is in 2.6.Steve
-
@stephenw10 I'll throw the 2.6 snapshot on a flash drive and test it right now.
Edit: It looks like everything works with the I225-LM NICs on the 2020806 build. Upon fresh installation, DNS and IPv6 were working without making any changes. I navigated to System > Advanced > Networking and verified that the disable hardware checksum offloading option was not checked.
I'm about to head out of town soon so let me know if you want anything specific checked. Otherwise I can dig further early next week.
-
-
TSO and LRO should be disabled by default anyway.
@bk150 said in Intel Ethernet Controller I225-LM Support?:
verified that the disable hardware checksum offloading option was not checked.
So that's all the offloading option at their defaults should work in 2.6.
Steve