Intel Ethernet Controller I225-LM Support?
-
@stephenw10 What I see is unstable connection with the NIC actually goes to down status after a short period with high inbound traffic (while outbound traffic is working fine). However, it's tested with TrueNAS 12.0-U6.1.
Since the igc driver is contributed to FreeBSD from netgate, I report the issue here.With the same setup on pfsense 2.6.0-DEVELOPMENT snapshot and the i225-v b3 port as lan port, it does not show the issue.
Debian 11 does not have the same issue.
-
The development was sponsored by Netgate but issue still need to be reported upstream to FreeBSD. I have no idea how TrueNAS might be different to what we're running but it could be significantly.
Steve
-
I'm seeing mixed results online. Is the I225 working in 2.5.2 or is 2.6 basically a requirement?
I have the 2 port QNAP card coming tonight, and I'm not sure if I need to reinstall it or just plop it in and go.
I'd prefer to stay away from 2.6 for reliability sake, if this card is not "working", would an x550-t2 work? I saw posts that there's no 2.5g option in the UI with this card (only x710?)
-
@n1ck31 The QNAP cards work in 2.5.2 with UDP Checksum offloading disabled and they work in 2.6 snapshots without any modifications.
-
@bk150 I also saw some posts that people were claiming after a little while, the connection just drops or the ping goes crazy high?
I'm assuming that's due to that one setting being ticked?
I'm trying to decide if I put this new card in now or wait for a stable 2.6 release...
-
@n1ck31 I've seen mixed info on if UDP checksum offloading even does anything worthwhile. I'm no software engineer but in my limited knowledge, assuming your CPU can keep up with doing everything in software, you really shouldn't notice any difference. I've been running 2.5.2 with checksum offloading turned off for around 4 months now with multiple VLANs, a Wireguard tunnel, and am hosting a handful of gaming servers. I've seen absolutely no issues.
FWIW OPNSense has that setting off by default and PfSense has it on by default so who knows.
-
@bk150 Just tried on My Dell XE2, the same issue as someone had mentioned in this thread, not being detected correctly by pfSense. It sees the card is there but has an error -2 when trying to load the driver/attach.
Tested both 2.5.2 and 2.6, integrated intel NIC disabled.
-
Hmm, you probably need this:
https://github.com/freebsd/freebsd-src/commit/561cd74b1704ab76a3286733fb43da53b6892ea4#diff-6bb19804656a668f9aa22575da6a622a983af20b269eb5b35dbfda026c2499b9
That's not in pfSense, yet.Though we'd need to see exactly how it fails at boot to know for sure. It's odd that card works at all for others if that's the case. Maybe there are different revisions?
Steve
-
@stephenw10 Hey Steve, if it helps it's a QNAP QXG-2G2T-I225 Rev: 1.1
I am going to RMA it as I noticed it got so hot to touch within 15 mins so maybe there's something wrong with this specific card. I'll try again when B&H sends out the new one.
Are you able to recommend me a card that will just work plug and play with no "tinkering" for 2.5G/10G support?
-
If you need 2.5G or 10G I think your only option is the X550-T2 or maybe the X710-T2.
I haven't tested either personally.
Steve
-
@xiazuojie Did something happen?
Wan side I have an i225-LM 1 port card 2.6.0-DEVELOPMENT I use speedtest to drop the connection completely shuts down and 100% packet loss
Due to 2Gb / s internet connection it would be good for the card the ONT supports 2.5Gbe connection -
What card exactly? What does
pciconf -lvv igc0
show?And it just stops passing all traffic when you load it?
What do you do to recover?
Steve
-
@pci0:3: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
QNAP QXG-2G1T-I225 is the card. If I start a download or a speedtest, it starts to lose packet on the wan interface after that, it drops the interface, but after a few seconds, the download starts again and drops it again.
-
What throughput does it reach before it starts to fail?
Can you try setting a Limiter, is there a limit you can set that prevents it failing?
I know at least one dev has got that NIC but I don't think they've done any significant testing with it yet.
Steve
-
@stephenw10 the speed was variable! was when 400Mb / s, 1910Mb / s so changing the speed is no problem with uploading!
-
Do you have a throughput graph that shows approximately what you're seeing?
-
@stephenw10 no graph, but I watched it when I start the download at a higher speed it's like unplugging the cable from the network card the blinking will also stop on the network card for a few seconds.
-
Hmm, nothing is logged at that time? That sounds like the watchdog reseting it but I'd expect to see that in the system log.
-
@stephenw10 I'm a bit new in the whole system, due to the 2Gb / s internet, such a system has been built, which looks like this with ont-2.5Gb / s port> pfsense 2.5Gb / s WAN> 10Gb / s Lan> 10Gb / s Switch and from here goes a Nas that is 10Gb / s connected. I would get a little more detailed help so we can follow up on what might be wrong. It worked with another network card but it was only 1Gb / s there.
-
Start hammering the connection so you are seeing the issue and the Link LEDs go off/on. Then check the system log.
Beyond that you can check the mac stats in the sysctl output for errors:[22.01-DEVELOPMENT][admin@6100.stevew.lan]/root: sysctl dev.igc.0 dev.igc.0.wake: 0 dev.igc.0.interrupts.rx_desc_min_thresh: 0 dev.igc.0.interrupts.asserts: 2 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: 0 dev.igc.0.mac_stats.mcast_pkts_txd: 0 dev.igc.0.mac_stats.bcast_pkts_txd: 0 dev.igc.0.mac_stats.good_pkts_txd: 0 dev.igc.0.mac_stats.total_pkts_txd: 0 dev.igc.0.mac_stats.good_octets_txd: 0 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 dev.igc.0.queue_rx_3.rx_irq: 0 dev.igc.0.queue_rx_3.rxd_tail: 128 dev.igc.0.queue_rx_3.rxd_head: 0 dev.igc.0.queue_rx_2.rx_irq: 0 dev.igc.0.queue_rx_2.rxd_tail: 128 dev.igc.0.queue_rx_2.rxd_head: 0 dev.igc.0.queue_rx_1.rx_irq: 0 dev.igc.0.queue_rx_1.rxd_tail: 128 dev.igc.0.queue_rx_1.rxd_head: 0 dev.igc.0.queue_rx_0.rx_irq: 0 dev.igc.0.queue_rx_0.rxd_tail: 128 dev.igc.0.queue_rx_0.rxd_head: 0 dev.igc.0.queue_tx_3.tx_irq: 0 dev.igc.0.queue_tx_3.txd_tail: 0 dev.igc.0.queue_tx_3.txd_head: 0 dev.igc.0.queue_tx_2.tx_irq: 0 dev.igc.0.queue_tx_2.txd_tail: 0 dev.igc.0.queue_tx_2.txd_head: 0 dev.igc.0.queue_tx_1.tx_irq: 0 dev.igc.0.queue_tx_1.txd_tail: 0 dev.igc.0.queue_tx_1.txd_head: 0 dev.igc.0.queue_tx_0.tx_irq: 0 dev.igc.0.queue_tx_0.txd_tail: 0 dev.igc.0.queue_tx_0.txd_head: 0 dev.igc.0.fc_low_water: 32752 dev.igc.0.fc_high_water: 32768 dev.igc.0.rx_control: 71598086 dev.igc.0.device_control: 1209796161 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 dev.igc.0.reg_dump: General Registers CTRL 481c0641 STATUS 40780680 CTRL_EXIT 10000040 Interrupt Registers ICR 00000000 RX Registers RCTL 04448006 RDLEN 00004000 RDH 00000000 RDT 00000080 RXDCTL 02040808 RDBAL 061c8000 RDBAH 00000000 TX Registers TCTL a50400fa TDBAL 0618a000 TDBAH 00000000 TDLEN 00004000 TDH 00000000 TDT 00000000 TXDCTL 0201011f TDFH 00000000 TDFT 00000000 TDFHS 00000000 TDFPC 00000000 dev.igc.0.fc: 3 dev.igc.0.debug: -1 dev.igc.0.nvm: -1 dev.igc.0.iflib.rxq3.rxq_fl0.buf_size: 2048 dev.igc.0.iflib.rxq3.rxq_fl0.credits: 128 dev.igc.0.iflib.rxq3.rxq_fl0.cidx: 0 dev.igc.0.iflib.rxq3.rxq_fl0.pidx: 128 dev.igc.0.iflib.rxq3.cpu: 3 dev.igc.0.iflib.rxq2.rxq_fl0.buf_size: 2048 dev.igc.0.iflib.rxq2.rxq_fl0.credits: 128 dev.igc.0.iflib.rxq2.rxq_fl0.cidx: 0 dev.igc.0.iflib.rxq2.rxq_fl0.pidx: 128 dev.igc.0.iflib.rxq2.cpu: 2 dev.igc.0.iflib.rxq1.rxq_fl0.buf_size: 2048 dev.igc.0.iflib.rxq1.rxq_fl0.credits: 128 dev.igc.0.iflib.rxq1.rxq_fl0.cidx: 0 dev.igc.0.iflib.rxq1.rxq_fl0.pidx: 128 dev.igc.0.iflib.rxq1.cpu: 1 dev.igc.0.iflib.rxq0.rxq_fl0.buf_size: 2048 dev.igc.0.iflib.rxq0.rxq_fl0.credits: 128 dev.igc.0.iflib.rxq0.rxq_fl0.cidx: 0 dev.igc.0.iflib.rxq0.rxq_fl0.pidx: 128 dev.igc.0.iflib.rxq0.cpu: 0 dev.igc.0.iflib.txq3.r_abdications: 0 dev.igc.0.iflib.txq3.r_restarts: 0 dev.igc.0.iflib.txq3.r_stalls: 0 dev.igc.0.iflib.txq3.r_starts: 0 dev.igc.0.iflib.txq3.r_drops: 0 dev.igc.0.iflib.txq3.r_enqueues: 0 dev.igc.0.iflib.txq3.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.igc.0.iflib.txq3.txq_cleaned: 0 dev.igc.0.iflib.txq3.txq_processed: 0 dev.igc.0.iflib.txq3.txq_in_use: 0 dev.igc.0.iflib.txq3.txq_cidx_processed: 0 dev.igc.0.iflib.txq3.txq_cidx: 0 dev.igc.0.iflib.txq3.txq_pidx: 0 dev.igc.0.iflib.txq3.no_tx_dma_setup: 0 dev.igc.0.iflib.txq3.txd_encap_efbig: 0 dev.igc.0.iflib.txq3.tx_map_failed: 0 dev.igc.0.iflib.txq3.no_desc_avail: 0 dev.igc.0.iflib.txq3.mbuf_defrag_failed: 0 dev.igc.0.iflib.txq3.m_pullups: 0 dev.igc.0.iflib.txq3.mbuf_defrag: 0 dev.igc.0.iflib.txq3.cpu: 3 dev.igc.0.iflib.txq2.r_abdications: 0 dev.igc.0.iflib.txq2.r_restarts: 0 dev.igc.0.iflib.txq2.r_stalls: 0 dev.igc.0.iflib.txq2.r_starts: 0 dev.igc.0.iflib.txq2.r_drops: 0 dev.igc.0.iflib.txq2.r_enqueues: 0 dev.igc.0.iflib.txq2.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.igc.0.iflib.txq2.txq_cleaned: 0 dev.igc.0.iflib.txq2.txq_processed: 0 dev.igc.0.iflib.txq2.txq_in_use: 0 dev.igc.0.iflib.txq2.txq_cidx_processed: 0 dev.igc.0.iflib.txq2.txq_cidx: 0 dev.igc.0.iflib.txq2.txq_pidx: 0 dev.igc.0.iflib.txq2.no_tx_dma_setup: 0 dev.igc.0.iflib.txq2.txd_encap_efbig: 0 dev.igc.0.iflib.txq2.tx_map_failed: 0 dev.igc.0.iflib.txq2.no_desc_avail: 0 dev.igc.0.iflib.txq2.mbuf_defrag_failed: 0 dev.igc.0.iflib.txq2.m_pullups: 0 dev.igc.0.iflib.txq2.mbuf_defrag: 0 dev.igc.0.iflib.txq2.cpu: 2 dev.igc.0.iflib.txq1.r_abdications: 0 dev.igc.0.iflib.txq1.r_restarts: 0 dev.igc.0.iflib.txq1.r_stalls: 0 dev.igc.0.iflib.txq1.r_starts: 0 dev.igc.0.iflib.txq1.r_drops: 0 dev.igc.0.iflib.txq1.r_enqueues: 0 dev.igc.0.iflib.txq1.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.igc.0.iflib.txq1.txq_cleaned: 0 dev.igc.0.iflib.txq1.txq_processed: 0 dev.igc.0.iflib.txq1.txq_in_use: 0 dev.igc.0.iflib.txq1.txq_cidx_processed: 0 dev.igc.0.iflib.txq1.txq_cidx: 0 dev.igc.0.iflib.txq1.txq_pidx: 0 dev.igc.0.iflib.txq1.no_tx_dma_setup: 0 dev.igc.0.iflib.txq1.txd_encap_efbig: 0 dev.igc.0.iflib.txq1.tx_map_failed: 0 dev.igc.0.iflib.txq1.no_desc_avail: 0 dev.igc.0.iflib.txq1.mbuf_defrag_failed: 0 dev.igc.0.iflib.txq1.m_pullups: 0 dev.igc.0.iflib.txq1.mbuf_defrag: 0 dev.igc.0.iflib.txq1.cpu: 1 dev.igc.0.iflib.txq0.r_abdications: 0 dev.igc.0.iflib.txq0.r_restarts: 0 dev.igc.0.iflib.txq0.r_stalls: 0 dev.igc.0.iflib.txq0.r_starts: 0 dev.igc.0.iflib.txq0.r_drops: 0 dev.igc.0.iflib.txq0.r_enqueues: 0 dev.igc.0.iflib.txq0.ring_state: pidx_head: 0000 pidx_tail: 0000 cidx: 0000 state: IDLE dev.igc.0.iflib.txq0.txq_cleaned: 0 dev.igc.0.iflib.txq0.txq_processed: 0 dev.igc.0.iflib.txq0.txq_in_use: 0 dev.igc.0.iflib.txq0.txq_cidx_processed: 0 dev.igc.0.iflib.txq0.txq_cidx: 0 dev.igc.0.iflib.txq0.txq_pidx: 0 dev.igc.0.iflib.txq0.no_tx_dma_setup: 0 dev.igc.0.iflib.txq0.txd_encap_efbig: 0 dev.igc.0.iflib.txq0.tx_map_failed: 0 dev.igc.0.iflib.txq0.no_desc_avail: 0 dev.igc.0.iflib.txq0.mbuf_defrag_failed: 0 dev.igc.0.iflib.txq0.m_pullups: 0 dev.igc.0.iflib.txq0.mbuf_defrag: 0 dev.igc.0.iflib.txq0.cpu: 0 dev.igc.0.iflib.override_nrxds: 0 dev.igc.0.iflib.override_ntxds: 0 dev.igc.0.iflib.use_logical_cores: 0 dev.igc.0.iflib.separate_txrx: 0 dev.igc.0.iflib.core_offset: 0 dev.igc.0.iflib.tx_abdicate: 0 dev.igc.0.iflib.rx_budget: 0 dev.igc.0.iflib.disable_msix: 0 dev.igc.0.iflib.override_qs_enable: 0 dev.igc.0.iflib.override_nrxqs: 0 dev.igc.0.iflib.override_ntxqs: 0 dev.igc.0.iflib.driver_version: 1 dev.igc.0.%parent: pci4 dev.igc.0.%pnpinfo: vendor=0x8086 device=0x15f3 subvendor=0x8086 subdevice=0x0000 class=0x020000 dev.igc.0.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.PEX3.PXSX dev.igc.0.%driver: igc dev.igc.0.%desc: Intel(R) Ethernet Controller I225-V
dev.igc.0.watchdog_timeouts for example should not be >0.
Steve