DEENESPTFRRUARHIKOZHNL

class apext::tsync::FVM

[SWS_TS_14197] Upstream: RS_TS_20072 wording not yet imported

class FVM {...};

A freshness value management interface for ara::tsync.

Header-Datei#include "apext/tsync/fvm.h"
Forwarding-Header#include "apext/tsync/tsync_fwd.h"
Scopenamespace apext::tsync

User GuideAI-GENERATED

Provides freshness values for authenticating transmitted and received time synchronization messages.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 88e47d85a572 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Provides freshness values for authenticating transmitted and received time synchronization messages.

The class apext::tsync::FVM serves as the module's interface for providing freshness values for secured time synchronization messages [SWS_TS_14199]. Prior to operational use, the instance must be initialized, after which freshness values can be obtained for sending as well as for verifying received messages [SWS_TS_14200]. Upon reception, truncated freshness values are passed together with an attempt counter to reconstruct the full value for authenticator verification. All interface methods are specified as exception-safe and thread-safe.

Context

The class apext::tsync::FVM represents an interface for freshness value management within module tsync of the AUTOSAR Adaptive Platform. Its primary responsibility is to provide current freshness values (Freshness Values) for the time synchronization service ara::tsync so that messages can be cryptographically secured against replay and spoofing attacks [SWS_TS_14198], [SWS_TS_14199].

The TimeSync functionality acts as the central interaction partner, calling the FVM to retrieve freshness value containers (apext::tsync::FVContainer) for outgoing as well as received secured messages [SWS_TS_14198], [SWS_TS_14199]. The class declaration is included via header file #include "apext/tsync/fvm.h". All specified methods are declared thread-safe and exception-safe (noexcept), allowing calls to take place concurrently from different execution contexts of the time synchronization [SWS_TS_14198], [SWS_TS_14199], [SWS_TS_14200].

Lifecycle

The functional lifecycle of an FVM instance is divided into an explicit initialization phase and the subsequent operational phase:

  • Initialization: Prior to using query functions, the method Initialize() must be called [SWS_TS_14200]. Upon successful completion, it returns an empty ara::core::Result<void>. If initialization fails, it returns the error code TsyncFvmErrc::kFVInitializeFailed with rollback semantics [SWS_TS_14200].
  • Operational state: Successful initialization is likely the necessary prerequisite for subsequent queries for freshness values to yield valid results. Question Q-df4ee3e749313b94 (open) Once initialized, the instance remains in the operational state and answers queries for configured freshness value IDs.
  • Concurrency: Since all methods are marked as thread-safe, access to freshness values for sending and receiving can occur concurrently without external locking mechanisms [SWS_TS_14198], [SWS_TS_14199].

Usage Path

The typical calling sequence by the TimeSync component comprises initialization as well as the continuous determination of freshness values for the transmit and receive paths:

  1. Service initialization: TimeSync executes the method Initialize() at startup and checks the returned ara::core::Result for errors [SWS_TS_14200].
  2. Sending secured messages: Prior to sending a message, TimeSync calls GetTxFreshness() with the respective FreshnessValueID [SWS_TS_14199]. The obtained FVContainer object provides the freshness value used to calculate the authenticator [SWS_TS_14199].
  3. Receiving secured messages: Upon message reception, TimeSync calls GetRxFreshness() and passes the FreshnessValueID, the truncated value TruncatedFreshnessValue contained in the message, and the number of previous authentication attempts AuthVerifyAttempts [SWS_TS_14198]. The FVM determines the complete freshness value from this to verify the authenticator [SWS_TS_14198].
Initialization and freshness value determination in TimeSyncTimeSyncFVMUse Case: InitialisierungInitialize()ara::core::Result<void>Use Case: Sending a messageGetTxFreshness(FreshnessValueID)ara::core::Result<FVContainer>Use Case: Receiving a messageGetRxFreshness(FreshnessValueID, TruncatedFreshnessValue, AuthVerifyAttempts)ara::core::Result<FVContainer>

Sequence diagram: Typical sequence of initialization and retrieval of transmit and receive freshness values by TimeSync. Sources: [SWS_TS_14198], [SWS_TS_14199], [SWS_TS_14200]

Error Scenarios

All interface methods signal errors via ara::core::Result and are specified with noexcept [SWS_TS_14198], [SWS_TS_14199], [SWS_TS_14200]. The following error states and preconditions are relevant:

  • Failed initialization (TsyncFvmErrc::kFVInitializeFailed): Occurs when the FVM cannot be initialized [SWS_TS_14200]. Thanks to rollback semantics, the system remains in the uninitialized, defined initial state.
  • Freshness value not available (TsyncFvmErrc::kFVNotAvailable): Returned by GetTxFreshness() or GetRxFreshness() if no freshness value is available for the requested ID [SWS_TS_14198], [SWS_TS_14199]. In the event of an error, the operations do not alter their state (rollback semantics).
  • Repeated verification attempts upon reception: The parameter AuthVerifyAttempts starts at 0 and is incremented with each failed authentication attempt [SWS_TS_14198]. The incrementing likely serves the FVM to adjust an internal acceptance window step by step in order to tolerate slightly time-shifted freshness values. Question Q-8f151c47d2607f90 (open)

This guide is based exclusively on the AUTOSAR R25-11 specification requirements for the tsync module and was created automatically.

Member map

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G napext__tsync__FVM697 FVM + GetRxFreshness() + GetTxFreshness() + Initialize()

Detail view

Select an entry in the outline.

Methods

Used by TimeSync to obtain the current freshness value for received messages.

ara::core::Result< FVContainer > GetRxFreshness (std::uint16_t FreshnessValueID, const FVContainer &TruncatedFreshnessValue, std::uint16_t AuthVerifyAttempts) noexcept;

Used by TimeSync to obtain the current freshness value for transmitted messages.

ara::core::Result< FVContainer > GetTxFreshness (std::uint16_t FreshnessValueID) noexcept;
Initialize function

Initializes FVM

ara::core::Result< void > Initialize () noexcept;

Method documentation

function GetRxFreshness [SWS_TS_14198] Upstream: RS_TS_20072 wording not yet imported

ara::core::Result< FVContainer > GetRxFreshness (std::uint16_t FreshnessValueID, const FVContainer &TruncatedFreshnessValue, std::uint16_t AuthVerifyAttempts) noexcept;

Used by TimeSync to obtain the current freshness value for received messages.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 37f7da507510 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous interface GetRxFreshness of class apext::tsync::FVM (defined in apext/tsync/fvm.h) serves TimeSync to determine the current freshness value for incoming messages [SWS_TS_14198].

The call requires three parameters [SWS_TS_14198]:

  • FreshnessValueID: Numeric identifier of the freshness value (std::uint16_t) [SWS_TS_14198].
  • TruncatedFreshnessValue: The container (apext::tsync::FVContainer) with the truncated freshness values from the received secured message [SWS_TS_14198].
  • AuthVerifyAttempts: Counter of authentication attempts for this message since its last reception; the value starts at 0 for the first attempt and is incremented with each failed verification attempt [SWS_TS_14198].

The function returns a ara::core::Result<FVContainer> [SWS_TS_14198]. In the case of success, this contains a apext::tsync::FVContainer with the complete freshness value required for the subsequent calculation of the authenticator by TimeSync [SWS_TS_14198]. If the freshness value is not available, a recoverable error is reported with the error code TsyncFvmErrc::kFVNotAvailable and rollback semantics [SWS_TS_14198].

The signature is declared with noexcept; the implementation is specified as exception-safe (exception safe) and thread-safe (thread-safe) [SWS_TS_14198].

This text was generated by an AI based on the AUTOSAR specification R25-11.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "apext/tsync/fvm.h"
Scopeclass apext::tsync::FVM
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
FreshnessValueIDTruncatedFreshnessValueAuthVerifyAttemptsthe identifier of the freshness value. the apext::tsync::FVContainer with the values from the received Secured message. the number of authentication verify attempts of this message since the last reception. The value is 0 for the first attempt and incremented on every unsuccessful verification attempt.

Rückgabewert

TypBeschreibung
ara::core::Result<FVContainer >an ara::core::Result containing a ara::core::Result:: value_type containing a apext::tsync::FVContainer that holds the freshness value to be used for the calculation of the authenticator by TimeSync, or recoverable error.

Fehler

FehlercodeBeschreibung
TsyncFvmErrc::kFVNotAvailablerollback_semantics the Freshness Value is not available.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14198
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14198@rel:R25-11#cbec70a4
Content hash
cbec70a4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14198
Status: valid/unmigrated Version: rel:R25-11#5a2df49d Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14198@rel:R25-11#5a2df49d
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#cbec70a42026-09-30
  • R24-11rel:R24-11#8dfc9f262026-10-14
  • R25-11rel:R25-11#5a2df49d2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetTxFreshness [SWS_TS_14199] Upstream: RS_TS_20072 wording not yet imported

ara::core::Result< FVContainer > GetTxFreshness (std::uint16_t FreshnessValueID) noexcept;

Used by TimeSync to obtain the current freshness value for transmitted messages.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 9a44eddcc1b0 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function GetTxFreshness is defined as an interface of class apext::tsync::FVM in the header apext/tsync/fvm.h ([SWS_TS_14199]). It is called by the TimeSync component to query the current freshness value for transmitted messages. This freshness value is strictly required by TimeSync to calculate the cryptographic authenticator for outgoing transmissions.

Upon the call, the identifier of the freshness value is passed via the parameter FreshnessValueID of type std::uint16_t ([SWS_TS_14199]). As a return value, the interface synchronously returns an object of type ara::core::Result<FVContainer>. In the case of success, the return type encapsulates an instance of apext::tsync::FVContainer, which contains the concrete freshness value.

If the required freshness value is not available at the time of the query, the operation fails with a recoverable error ([SWS_TS_14199]). In this scenario, the function returns the error code TsyncFvmErrc::kFVNotAvailable, with the system adhering to defined rollback semantics.

Regarding concurrency and fault tolerance, GetTxFreshness is specified as thread-safe as well as exception safe and annotated with noexcept ([SWS_TS_14199]). The function can consequently be called from concurrent threads without external mutex protection, without requiring precautions against synchronous C++ exceptions.

This usage note was generated automatically based on AUTOSAR specifications.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "apext/tsync/fvm.h"
Scopeclass apext::tsync::FVM
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
FreshnessValueIDthe identifier of the freshness value.

Rückgabewert

TypBeschreibung
ara::core::Result<FVContainer >an ara::core::Result containing a ara::core::Result:: value_type containing a apext::tsync::FVContainer that holds the freshness value to be used for the calculation of the authenticator by TimeSync, or recoverable error.

Fehler

FehlercodeBeschreibung
TsyncFvmErrc::kFVNotAvailablerollback_semantics the Freshness Value is not available.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14199
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14199@rel:R25-11#a86e7a3f
Content hash
a86e7a3f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14199
Status: valid/unmigrated Version: rel:R25-11#09c3542d Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14199@rel:R25-11#09c3542d
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#a86e7a3f2026-09-30
  • R24-11rel:R24-11#1e7ee0612026-10-14
  • R25-11rel:R25-11#09c3542d2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Initialize [SWS_TS_14200] Upstream: RS_TS_20072 wording not yet imported

ara::core::Result< void > Initialize () noexcept;

Initializes FVM

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e3e4199a5145 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The function Initialize in namespace apext::tsync::FVM serves to initialize the Freshness Value Manager (FVM) according to [SWS_TS_14200]. The interface is provided via the header file apext/tsync/fvm.h and features the signature ara::core::Result<void> Initialize() noexcept;. The call is performed synchronously and without input parameters. In the case of success, a ara::core::Result with the empty return type void is provided.

Error handling

If a problem occurs during execution, the function returns the specific error code TsyncFvmErrc::kFVInitializeFailed within the result object [SWS_TS_14200]. The specification provides for rollback semantics here, so that presumably no inconsistent intermediate states remain in the event of an error. Question Q-0d3c1a8f45444579 (open)

Concurrency and Limitations

For the call context, the function is explicitly classified as thread-safe as well as exception safe [SWS_TS_14200]. Due to the specifier noexcept, no C++ exceptions are guaranteed to be propagated to the outside. Interpretation: Presumably, this initialization step must have completed successfully before other functional methods of the FVM component can be called. Question Q-ba44afb55d21ac38 (open)

This usage note was automatically generated based on AUTOSAR R25-11.

Header-Datei#include "apext/tsync/fvm.h"
Scopeclass apext::tsync::FVM
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >an ara::core::Result containing a ara::core::Result:: value_type containing a void, kFVInitializeFailed otherwise.

Fehler

FehlercodeBeschreibung
TsyncFvmErrc::kFVInitializeFailedrollback_semantics Initialization fails

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14200
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14200@rel:R25-11#55c36e33
Content hash
55c36e33
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14200
Status: valid/unmigrated Version: rel:R25-11#711e1128 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14200@rel:R25-11#711e1128
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#55c36e332026-09-30
  • R24-11rel:R24-11#f1f5a9742026-10-14
  • R25-11rel:R25-11#711e11282026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill