5791 Commits
Author SHA1 Message Date
Franco Fichtner 603ebe6c66 net/tayga: fix rc.d actions after controller changes in 26.7.6; closes #5778 2026-10-11 09:21:55 +02:00
Franco Fichtner 1bc3c2f48f LICENSE/README: sync 2026-10-09 13:59:03 +02:00
Monviech 53533c8732 benchmarks/iperf: modernize server mode (#5773)
* benchmarks/iperf: modernize server mode

Replace the legacy Ruby manager and its persistent socket service with a short-lived Python helper invoked through configd. Store transient jobs and JSON results in /tmp, reject duplicate ports, and support removal of running instances.

Move the server UI to an in-memory Instance model and client-style Bootgrid view under /ui/iperf/index/instance. Drop firewall manipulation, service registration, and Ruby dependencies.

* Update benchmarks/iperf/src/opnsense/mvc/app/controllers/OPNsense/iperf/Api/InstanceController.php

* server should start persistently, not one shot, and always show the last test result. That is more user friendly

* use json-stream so we can distinguish between a running and waiting iperf server

* change status icons slightly

* Add start/stop commands to client and server

* use a filter on the commands

* For client lets also use the error as stop status

* Lets keep client and server config and log inside /var/db/iperf

* Report bytes per second in the API and format with byteFormatter in the front end

* simplify error handling a bit, they cannot be translated anyway so at least make them machine readable

* Delegate client job creation completely to configd to avoid issues with permissions later

* Lets pass these parameters as json object so its generalized

* Add changelog and copyright headers

* copilot review

* normalize the API between client and server, and some other smaller fixes

* Expose the json results for the GUI and API, and make sure theyre all passed through .text() so no XSS

* the response is already escaped by Response
2026-10-09 13:54:22 +02:00
Ad Schellevis 05f3f126b6 Security: Q-Feeds Connect - add option to generate custom aliases (#5774)
* security/q-feeds-connector - adopt new json format

* security/q-feeds-connector - add db_update action which indexes the additional feed information in sqlite, which will be executed during a regular update after fetch.

* security/q-feeds-connector - fix performance issue with large deletes and add simple get_meta call

* security/q-feeds-connector - work in progress meta data processing.

* security/q-feeds-connector - change meta processing (performance) and add form+grid for firewall alias configuration.

* security/q-feeds-connector - implement parser for custom aliases, while here, also fix https://github.com/opnsense/plugins/issues/5735

* security/q-feeds-connector - expand include/exclude tag selectors into separate selectors.

* security/q-feeds-connector - add missing menu item for firewall aliases
2026-10-09 11:30:05 +02:00
François Maymil 298d84c0da benchmarks/iperf: add client mode (#5771) 2026-10-08 13:06:44 +02:00
Franco Fichtner d21fcc8902 misc/theme-tukan: whitespace sweep 2026-10-08 08:51:40 +02:00
Franco Fichtner 082d79f967 dns/ddclient: bump for latest change 2026-10-08 08:41:53 +02:00
claudioguareschi ad78362b2c dns/ddclient: add force refresh (#5758)
* dns/ddclient: add force refresh

Add a "Force refresh" command to the Accounts grid, per row for enabled
accounts and for the selected rows (native backend only). The cached
state of the requested accounts is cleared in a locked state while the
service is stopped, so the service updates them on startup using the
regular account implementation, even when the detected address equals
the one sent before. Normal polling is unchanged.

The grid is reloaded until the requested accounts show a new update
time, accounts without an update are reported after 30 seconds.

Refs #5757

* dns/ddclient: force refresh, simplify as reviewed

Reset the cached state (-r/--reset-state) and restart the service
through the standard restart action, errors are reported via
UserException. The page keeps the icon spinning until the requested
accounts show a new update time, then reloads the grid.

* dns/ddclient: force refresh, reset the state while the service is stopped

The running daemon could otherwise flush its previous state back between
the reset and the restart.

* dns/ddclient: force refresh, spin the row icons of the selected accounts too
2026-10-06 15:58:07 +02:00
Monviech 5c29b2b318 net/frr: isis.volt is no op, remove that 2026-10-05 16:54:54 +02:00
Monviech dc4d496dcf net/frr: Update changelog 2026-10-05 16:10:17 +02:00
Monviech d0681b3002 net/frr: Remove some leaking css from diagnostics.volt thats most likely unnecessary 2026-10-05 15:59:59 +02:00
Monviech 4a43427320 net/frr: Fix undefined array key routerID when BGP is not running and accessing the Diagnostics Controller 2026-10-05 15:47:28 +02:00
Monviech 88b7c36169 net/frr: Restructure pkg-descr per daemon and add commit hashes to ease finding potential issues faster. 2026-10-05 15:02:32 +02:00
Monviech 9cc363edc8 net/frr: reimplement handling policy list entries as logical groups (#5745)
* net/frr: BGP handle grouped policy objects consistently

Keep the existing flat storage for prefix lists, AS-path lists, community lists, and route maps while presenting each logical group as one model relation option. This avoids a fragile configuration migration and retains compatibility with existing UUID references.

Add a shared FRR controller guard which prevents deleting any member of a logical group while one of its entries is referenced. Group list entries by their displayed name or number and clarify the corresponding form help.

When rendering BGP, consider a logical group enabled when any of its entries is enabled. Apply this consistently to neighbor and peer-group policy attachments, redistribution route maps, and route-map matches.

* net/frr: OSPF handle grouped policy objects consistently

Present flat prefix-list and route-map entries as logical groups in relations. Protect every member of a referenced group from deletion and render references whenever any member of the selected group is enabled.

* net/frr: Update plugin changelog

Document consistent handling of grouped BGP, OSPF, and OSPFv3 policy objects.

* net/frr: Use tabulator groupBy to logically group the keys in the grid
2026-10-05 14:42:28 +02:00
Monviech 60bc56e8f4 net/ndp-proxy-go: Add --respond-prefix mode (#5768) 2026-10-05 14:37:33 +02:00
Monviech 0c4977618c net/frr: Bump to 2.0, there are quite a few changes and migrations 2026-10-05 10:21:51 +02:00
b-hoffen c37f8c98bc net/frr: CARP event handler, skip interfaces that report OSPF as not running (#5762)
The handler assumed that every interface listed by ospfd has
a cost.  ospfd lists an interface on which OSPF is not running (e.g. a
CARP bound WireGuard instance that is down on the backup node) without
one, so the handler ended with KeyError: 'cost' and left all following
interfaces in ospfd_carp.conf at their default cost.

Skip such interfaces and continue with the rest.
2026-10-05 08:48:34 +02:00
Sergii Bogomolov 3afd667df9 net/netflector: add initial plugin version (#5697) 2026-10-03 18:34:52 +02:00
Monviech 5ccee1fd16 net/frr: "network IPv6-prefix area id" command is invalid for OSPFv3 (#5751)
* net/frr: Remove wrong router-level network CRUD for OSPFv3

FRR does not support a router-level network ... area ... command for OSPFv3. OSPFv3 is enabled and assigned to an area per interface.

* Add changelog
2026-10-02 13:56:51 +02:00
Franco Fichtner 92215cd76e dns/rfc2136: subscribe to "updateip" event
interface_configure() was still calling newwanip:rfc2136 but this meant
it had knowledge about this specifc plugin.  By adding this consumer we
can hide the actual plugins using it and perhaps add updateip to all
relevant code paths as well.  newwanip is only called for dynamic addressing.
2026-10-01 11:04:49 +02:00
Monviech d8d9b66e0d net/frr: Report failed configuration reloads (#5748)
* net/frr: Report failed configuration reloads

Preserve the frr-reload exit status so the service controller can report reload failures. Import the frr-reload.log into the standard FRR log at debug level and expose that log directly in the Routing menu.

* Add changelog
2026-09-30 15:42:38 +02:00
Franco Fichtner 2e08858494 sysutils/sftp-backup: while here scrub for style 2026-09-30 08:35:50 +02:00
Franco Fichtner 9bedebaa65 sysutils/sftp-backup: bump 2026-09-30 08:34:25 +02:00
Franco Fichtner c4a04935db misc/theme-cicada: bump 2026-09-30 08:29:41 +02:00
Greelan 007cfb1700 misc/theme-cicada: fix non-interactive info icons (#5716) 2026-09-30 08:28:49 +02:00
Martin Wasley 1d0a513169 Correct opnsense bootgrid.css (#5603) 2026-09-30 08:28:18 +02:00
Ad Schellevis e9db54ec66 sysutils/sftp-backup - forgot unlink for https://github.com/opnsense/plugins/issues/5733 2026-09-29 15:38:23 +02:00
Ad Schellevis c77d417345 sysutils/sftp-backup - verify backups after put, closes https://github.com/opnsense/plugins/issues/5733
There might be valid reasons why we are not allowed to verify our backup, in which case the error message might not be relevant.
2026-09-29 15:38:13 +02:00
Monviech c8e6e93d8a net/frr: Tighten routing model field validation
Use network-aware fields for router IDs, addresses, and BGP networks, and consistently validate routing policy identifiers.
2026-09-29 11:29:03 +02:00
Franco Fichtner a71772369e dns/ddclient: update 2026-09-29 09:20:30 +02:00
Monviech 7faee23153 net/frr: Adjust changelog 2026-09-28 17:51:05 +02:00
Monviech e417675e70 net/frr: Adjust bfd strict one more time 2026-09-28 17:49:01 +02:00
Monviech 6dfbea14f3 net/frr: fix strict BFD rendering
Render the base BFD command before its separate strict command to match FRR's running configuration.
2026-09-28 17:24:00 +02:00
Monviech 4f95c4fd22 net/frr: BGP do not render empty remote-as for peer-group 2026-09-28 17:16:24 +02:00
Monviech 42668815e5 net/frr: Bump version to 1.60 (new major release) and add additional migration notes and changelog 2026-09-28 14:56:49 +02:00
Monviech fd1cbe203d net/frr: OSPF/OSPFv3 Passive interface should be visible by default in grid 2026-09-28 14:56:49 +02:00
Monviech 55856d40e3 net/frr: Guard M1_1_0.php migration so it doesn't get executed for unrelated frr models 2026-09-28 14:56:49 +02:00
Monviech e6232ad9b9 net/frr: The trim in M1_1_5.php is not needed 2026-09-28 14:56:49 +02:00
Monviech 3f53a02b54 net/frr: Update model versions to the latest migration state so these won't trigger the migrations again in the future 2026-09-28 14:56:49 +02:00
Monviech 3a7b49a5fc net/frr: OSPF/OSPFv3 Interface should be required and exclude firewall group interfaces 2026-09-28 14:56:49 +02:00
Monviech 7f5c7fdac4 net/frr: OSPF/OSPFv3 move tabs around to reflect natural configuration order 2026-09-28 14:56:49 +02:00
Monviech 9df97b592a net/frr: OSPF passive interface moves to correct spot, the interface configuration 2026-09-28 14:56:49 +02:00
Monviech 737b483429 net/frr: make OSPF and OSPFv3 areas explicit 2026-09-28 14:56:49 +02:00
Franco Fichtner 315ca3d7e4 dns/ddclient: linter pass over executables 2026-09-28 08:45:44 +02:00
5t0n3 b3f5426338 dns/ddclient: native porkbun script (#5599) 2026-09-25 11:32:33 +02:00
Mark Youngman 27c894bc10 dns/ddclient: address.py lstrip should be removeprefix (#5725) 2026-09-25 11:29:29 +02:00
Monviech d701990c65 net/frr: fix and complete automatic firewall rules (#5736)
* net/frr: fix and complete automatic firewall rules

Generate rules directly for every enabled routing protocol and remove the dependency on configured OSPF networks or interfaces.

* Tighten the OSPF rules a bit more

* Also guard creation of rules if frr is not enabled
2026-09-25 09:14:01 +02:00
Franco Fichtner 16e30e831c net/firewall-legacy: also add ACLs where possible
Menu registrations remain in core and can be deleted when the
plugin goes away.  Same is true for the ACL pattern for the
page firewall_rules.php which is anchored in core because it
is being shared with the MVC framework.
2026-09-23 10:07:53 +02:00
Franco Fichtner be8411be79 net/firewall-legacy: moved outbound NAT page from core 2026-09-23 09:50:25 +02:00
Franco Fichtner a18b13bef0 README: sync 2026-09-22 21:31:33 +02:00