I've been experiencing WAN stability issues recently where OPNsense 26.7.2 sees the WAN connection drop. I checked the logs on my Motorola MB8611 cable modem, and while I am seeing errors like "UCD invalid or channel unusable", the timestamps for those events don't align with the DHCP renews or link drops. Frustratingly the other errors such as "SYNC Timing Synchronization failure - Failed to acquire QAM/QPSK symbol timing", "Started Unicast Maintenance Ranging - No Response received - T3 time-out", and "Received Response to Broadcast Maintenance Request, But no Unicast Maintenance opportunities received - T4 time out" say "Time Not Established". Cable modem signal looks good and there are no uncorrected errors.
I came across this:
https://github.com/nightcomdev/opnsense
My hardware is similar (Intel Xeon E-2126G, 32GB RAM, 2x I225-V, M.2 SSD). My WAN connection is 1300 Mbps down, 35 Mbps up. So I went through the "tunables" section and adjusted my OPNsense configuration, but I think it made things worse. I've been reviewing the tunables, and I think the advice to configure the eee (Energy Efficient Ethernet) tunables to 0 to disable them is wrong, based on this thread:
https://forum.netgate.com/topic/181708/how-to-disable-enable-energy-efficient-ethernet-eee/48
Specifically, "EEE is disabled by default in igc in FreeBSD. The description text for 'hw.igc.eee_setting' is incorrect. That should be 1 to disable it as mentioned." When I remove those eee system tunables and reboot OPNsense, this is what I see:
# sysctl dev.igc.0 | grep eee
dev.igc.0.eee_control: 1
# sysctl dev.igc.1 | grep eee
dev.igc.1.eee_control: 1
# sysctl hw.igc | grep eee
hw.igc.eee_setting: 1
Are there any other mistakes in that nightcomdev made in those tunables recommendations? I'm still seeing WAN disconnects in my OPNsense logs even after removing the eee tunables. I am not seeing LAN instability (LAN is on the other I225-V controller, igc1) or drops. Recent logs:
2026-08-27T05:14:52-04:00 Notice dhclient dhclient-script: Creating resolv.conf
2026-08-27T05:14:52-04:00 Notice dhclient dhclient-script: New Routers (igc0): 192.168.100.1
2026-08-27T05:14:52-04:00 Notice dhclient dhclient-script: New Broadcast Address (igc0): 192.168.100.255
2026-08-27T05:14:52-04:00 Notice dhclient dhclient-script: New Subnet Mask (igc0): 255.255.255.0
2026-08-27T05:14:52-04:00 Notice dhclient dhclient-script: New IP Address (igc0): 192.168.100.10
2026-08-27T05:14:52-04:00 Notice dhclient dhclient-script: Reason BOUND on igc0 executing
2026-08-27T05:14:51-04:00 Notice dhclient dhclient-script: Reason ARPCHECK on igc0 executing
2026-08-27T05:14:51-04:00 Notice dhclient dhclient-script: Reason ARPSEND on igc0 executing
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure newwanip:rfc2136 (,[wan])
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dns (execute task : unbound_configure_do())
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dns (execute task : dnsmasq_configure_do())
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dns (execute task : dnscryptproxy_configure_do())
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dns ()
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dhcp (execute task : radvd_configure_dhcp())
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dhcp (execute task : dhcpd_dhcp_configure())
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure dhcp ()
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure ipsec (execute task : ipsec_configure_do(,wan))
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure ipsec (,wan)
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure monitor (execute task : dpinger_configure_do(,[WAN_GW]))
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: plugins_configure monitor (,[WAN_GW])
2026-08-27T05:14:49-04:00 Warning opnsense /usr/local/etc/rc.linkup: ROUTING: refusing to set interface route on addressless wan(igc0)
2026-08-27T05:14:49-04:00 Notice opnsense /usr/local/etc/rc.linkup: ROUTING: entering configure using wan
2026-08-27T05:14:49-04:00 Notice dhclient dhclient-script: Reason PREINIT on igc0 executing
2026-08-27T05:14:49-04:00 Notice kernel <6>[116851] igc0: link state changed to UP
2026-08-27T05:14:48-04:00 Notice opnsense /usr/local/etc/rc.linkup: DEVD: Ethernet attached event for wan(igc0)
2026-08-27T05:14:07-04:00 Notice kernel <6>[116809] igc0: link state changed to DOWN
2026-08-27T05:14:07-04:00 Critical dhclient exiting.
2026-08-27T05:14:07-04:00 Error dhclient connection closed
2026-08-27T05:14:07-04:00 Notice opnsense /usr/local/etc/rc.linkup: DEVD: Ethernet detached event for wan(igc0)
The cable modem has an internal admin interface on 192.168.100.1 so my OPNsense WAN connection will fall back to 192.168.100.10 when my Comcast WAN link is being re-negotiated by the cable modem. And to be clear I am not unplugging anything during these "Ethernet detached event for wan(igc0)", and the 41 seconds between then and when the attach event happened seems like about the time it would take the cable modem to reboot. Looking at the cable modem "System Up Time", which is currently 0 days 01h:02m:29s, that correlates to another "igc0: link state changed to UP" event at 10:01:52, so it could be that OPNsense is as stable as it can be at this point, and the problem lies with the cable modem or the upstream link... maybe the cable modem's response to upstream problems is to reboot or drop it's ethernet link to OPNsense?
The MB8611 logs are not very verbose and the hover text for "System Up Time" is "How long your cable modem has been connected to the Internet", where I would expect system up time to indicate how long the cable modem has been running... The 41 seconds of no WAN link looks more like a cable modem reboot to me... I know Comcast pushes out cable modem config files to cable modems (including ones owned by users), and I have no insights into that config or even when the cable modem gets a new config file. Anyone have any experience or thoughts in this area?
Does Reporting: Health: Quality look similar to this? A constant ping to an internet IP will match the graph. I am convinced it is a Comcast issue. Many service calls, over the years, improved the internet connection, but never 100%. Services like Verizon never had these random drop-outs.
Time stamps from your CM will probably not match information from OPNsense. 1. Comcast sets the wrong time on the CM. 2. OPNsense is much more exact and comprehensive at reporting issues.
Edit: T3 and T4 time-out's should be from Comcast. In other words, nothing to do with OPNsense.
Hmm I don't see a "quality" option under health (see attached screenshot). And yes, I should have clarified that the "UCD invalid or channel unusable" and associated errors are from the (limited) logs I can pull from the cable modem, not OPNsense. I reached out to Comcast and I've got a tech scheduled, but earliest they could come is in a couple of weeks.
I just want to make sure with the shaky history of the I225-V and I226-V 2.5Gbps ethernet controllers that I didn't make anything worse with the OPNsense tunables.