diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-10-17 21:43:07 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-10-17 21:43:07 +0200 |
| commit | dbde15e2dc1a0cfacdc7f8893434a3257a75a7e1 (patch) | |
| tree | 7b08d0967552dae8ba1a1c2a9b5a42c8066afd5b /src/validators/ipv4-range-exclude | |
| parent | 8d40cc543f723f89102772b0ad99c482795e1d77 (diff) | |
| download | vyos-1x-dbde15e2dc1a0cfacdc7f8893434a3257a75a7e1.tar.gz vyos-1x-dbde15e2dc1a0cfacdc7f8893434a3257a75a7e1.zip | |
firewall: T9474: keep fragment matching working alongside packet marks
Fragments were detected by overwriting the whole packet mark with a fixed
value before reassembly. Any later mark - a raw "set mark" or a policy route
"set table" - replaced it, so "fragment match-frag" no longer matched, and
marks already present on fragments were lost.
Fragments now only get bit 31 of the mark, which no configurable firewall or
routing policy mark uses:
- fragment matching tests the bit, mark matching ignores it
- firewall and policy route mark writers keep it
- policy route and local-route ip rules mask it while fragments are routed
- it is cleared after the forward and input filters, so later consumers such
as QoS or IPVS see the original mark
WAN load-balancing still overwrites the mark and keeps the previous
behaviour for fragments.
Diffstat (limited to 'src/validators/ipv4-range-exclude')
0 files changed, 0 insertions, 0 deletions
