Skip to content

A reload of the module puts OPNsense's interfaces back, XGS 136, 2026-10-20

A reload of npuep.ko destroys every front port's interface and makes it again, and OPNsense is not told. Until today the XGS 136 came back from one with its LAN bridge empty and without its address, and the WAN on Port1 without its own - reachable over its console only, until three configctl calls by hand. contrib/npuep/reload.sh now does what a boot does once the ports are back:

  • the bridges made again with their members (configctl interface bridge configure);
  • every interface assigned to a front port, a bridge, a VLAN, a LAGG or the management link to the coprocessor configured again (configctl interface reconfigure, one key at a time), and the rules;
  • the coprocessor's own end of the management link set again (mgmt-link.sh coprocessor, as the bootup hook does) - its reset forgot it;
  • the PoE ports the owner switched off switched off again, and the cages' media told again.
  • since the same evening, first of all, what a boot applies once the ports are there - the coprocessor's acceleration gate, the never-offloaded list, the flow maker and the counts - from the boot hook itself (07-npuep settings). Without it a reload left the flow maker off whatever XGS: Settings said: found when an IPsec soak started after one reported "the flow maker off", and stopped; after a reload with it the flow maker, the counts to pf and to the ports read 1, and a reboot after the change came up with the same.

Script: images/deploy/lab-136-reload.sh, photographed; the series, lab-136-reload-series.sh, with the console listened to beside it.

Measured

npuep.ko md5 db2f787a, reload.sh md5 f595caee:

reloads with the put-back 16
the host lived through them 15
checked afterwards, each with the bridge's 10 members and its address, the WAN's DHCP address, the three static addresses and the management link back 7 of 7
a reload, start to the interfaces back 80 seconds
stopped the host 1 - the watchdog restarted it (603)

A reload of npuep.ko on the XGS 136: the script's own log, then the bridge with its 10 members and address, every interface's address and the management link back

The first reload, before the script configured the management link again, came back with everything but that: the coprocessor answered a ping and not ssh, until configctl interface reconfigure for the management interface by hand.

What it does not mean

  • One reload in sixteen stopped the host, with no message and no dump, while the interfaces were being configured again and devd ran rc.linkup for the same ports; twelve more back to back did not. That stays open in 603.
  • Nothing in the product reloads the module. A boot loads it once; this is the developer's path.

Discussion

The discussion of this page is held in the project's GitHub Discussions. Showing it here loads giscus from giscus.app and GitHub, and writing in it needs a GitHub account - what that means.