ud3tn/include
Felix Walter 32477818fa bundle6: Fix status report parser
Incoming status reports can contain multiple timestamps, depending on
which flags are set, as in BPv7. In outgoing bundles, we do not support
this, but we must support it when parsing received SRs.

The approach to parse the conditionally-present fields is to always fall
through all the `case` labels and only stop (+ parse) where we see the
corresponding flag. Otherwise we would need a big jump table for every
individual step (checking if any of the remaining flags is present). As
the `switch` construct already represents such an overall jump table, we
just leverage it (and tell the compiler that it is fine to fall through
there).

This also adds two functions to initialize AR and SR data structures, so
we do not miss initializing any fields (which we were, previously!) and
cause UB.

Signed-off-by: Felix Walter <felix.walter@d3tn.com>
2026-03-19 19:22:45 +01:00
..
aap style: Spacing, indentation, long lines, continuations 2023-07-25 13:15:05 +02:00
aap2 aap2_client: Make compatible with C++ 2026-03-18 10:04:09 +01:00
agents cla, mk: Fix disabling SQLite functionality 2025-06-05 17:03:39 +02:00
bundle6 bundle6, ud3tn: Remove custody signal handling 2026-03-19 19:22:45 +01:00
bundle7 bundle7: Add flag to validate if there is no BIB and no primary CRC 2026-03-19 18:58:07 +01:00
cla CLA: Support cleanup if launch failed for all CLAs 2026-03-19 19:13:12 +01:00
platform test/unit, hal_platform: Fix leak reported in release mode 2026-03-18 09:57:10 +01:00
routing/compat Make EID a data structure 2026-02-03 09:22:53 +01:00
spp style: Spacing, indentation, long lines, continuations 2023-07-25 13:15:05 +02:00
ud3tn bundle6: Fix status report parser 2026-03-19 19:22:45 +01:00