Firewall: NAT: Port Forward - refactor to MVC (work in progress) for https://github.com/opnsense/core/issues/8401
Add a model wrapper around nat/rule and align filter code to generate the same output when using the model.
To test this part, make a copy of /tmp/rules.debug, run migrations (/usr/local/opnsense/mvc/script/run_migrations.php) and execute rule generation via /usr/local/etc/rc.filter_configure
A diff between the newly generated rules.debug and the backup created earlier should show no differences.
The following notes apply:
o ipprotocol and protocol have no defaults set as old frontend code didn't enforce this, we should likely set defaults (inet, any) knowing this will show a small diff in the output
o registerForwardRule() replaces the array_merge with an !empty() compare per field as our defaults are empty instead of missing
o legacyMoveAddressFields() in Rule.php assumes any when network and address are not set, which should comply with frontend logic as "any" is set in these cases anyway
o source/destinations are converted inline, using a volatile field to trigger the initial load (as only one is used, we prefer network)
System: Gateways: Group - a bit of an experiment for https://github.com/opnsense/core/issues/9442
Since 2023 we have refactored the gateways to MVC, which made ipprotocol part of the output, this eases validation a bit.
The route-to statement can either contain multiple `(if gwip)` entries or multiple `if` entries, but not combined.
This change keeps track of which entries are being added to the route-to statement and ignores the ones that can't be combined.
Let's put this to a test on master for a while.
In the long run the gateway group page should validate these situations to decrease the chance of gateways being silently ignored, but not before a migration to MVC.
[RISCV] tt-ascalon-d8 vector scheduling (#167066)
Add the vector scheduling model for tt-ascalon-d8 and corresponding
llvm-mca tests.
---------
Co-authored-by: Craig Topper <craig.topper at sifive.com>
[flang][cuda] Add support to allocate scalar character types (#169550)
Add support for character declared like:
```
subroutine sub1()
character*4, device :: b
end subroutine
```
[mlir][tblgen] Don't echo absolute paths into rewrite pattern source (#168984)
Currently, the declarative pattern rewrite generator will always print
the [source]:[line](s) from which a pattern came. This is a useful
debugging hint, but it causes problem when absolute paths are used as
arguments to mlir-tblgen (which LLVM's build rules automatically do).
Specifially, it causes the source to be tied to the build location,
harning reproducability and our collective ability to get ccache hits
from, say, separate worktrees.
This commit resolves the issue by replacing absolute paths in thes
"Generated from:" comments with their filenames. (The alternative would
have been to implement an entire file-prefix-map the way the C compilers
do, but since this is an isolated incident, I chose to resolve it
locally.)
NAS-138672 / 26.04 / Make `App.authenticated` a derived property (#17694)
We have two codependent attributes `authenticated` and
`authenticated_credentials`. As a design improvement, make the former
directly dependent on the latter by making it a property, preventing
them from becoming out of sync as was seen in #17689.
http://jenkins.eng.ixsystems.net:8080/job/tests/job/api_tests/6737/