DEENESPTFRRUARHIKOZHNL

class ara::diag::ServiceValidation

[SWS_DM_00771] Upstream: RS_Diag_04199

class ServiceValidation {...};

DiagnosticServiceValidationInterface.

Header-Datei#include "ara/diag/service_validation.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

User GuideAI-GENERATED

Validates incoming diagnostic requests in Diagnostic Management using manufacturer or supplier checks.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: f91c31f76f32 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Validates incoming diagnostic requests in Diagnostic Management using manufacturer or supplier checks.

The class ara::diag::ServiceValidation serves for the application-specific validation of incoming UDS diagnostic requests in Diagnostic Management based on manufacturer or supplier criteria [SWS_DM_00772]. After creation, the service must be activated using Offer() so that request data is forwarded asynchronously to Validate() for verification and subsequently confirmed via Confirmation() [SWS_DM_00776]. As an essential constraint, the instance is bound to a port, is neither copyable nor movable, and is not thread-safe apart from the constructor.

Context

The class ara::diag::ServiceValidation provides the programming interface for the modeling element DiagnosticServiceValidationInterface within the AUTOSAR Adaptive diagnostic stack. Via this interface, an application can implement application-specific checks for incoming diagnostic requests. The instance interacts directly with Diagnostic Management (DM), which is authorized to forward incoming diagnostic requests to the validation logic [SWS_DM_00776].

The functional assignment of the validation is controlled via the modeling attribute DiagnosticServiceValidationMapping.category. Depending on this category, the validation method Validate() is called within the scope of the UDS response rules according to ISO 14229-1 (Chapter 8.7) either in the context of a manufacturer check (\"Manufacturer Check\") or a supplier check (\"Supplier Check\") [SWS_DM_00772]. The DM is likely to subject incoming request messages to this validation check prior to actual service execution in order to filter out invalid requests early on. Question Q-d84302d27d940634 (open)

Lifecycle

Creation is performed explicitly via the constructor by specifying an ara::core::InstanceSpecifier, which must reference an PortPrototype defined in the system model [SWS_DM_00772]. ara::diag::ServiceValidation is designed as a non-copyable and non-movable single instance: both the copy constructor [SWS_DM_01689] and the move constructor [SWS_DM_01690] as well as the assignment operators for copy [SWS_DM_01687] and move [SWS_DM_01688] are declared as deleted (=delete).

After initialization, the object is in an inactive state. Only by calling Offer() is the forwarding of diagnostic requests from DM to the handler enabled [SWS_DM_00776]. Service offering can be terminated during runtime via StopOffer(), whereupon DM deactivates forwarding again [SWS_DM_00777]. The resources are released via the virtual destructor ~ServiceValidation() [SWS_DM_00773].

With regard to concurrency, only the constructor is specified as thread-safe [SWS_DM_00772]. The methods Offer() [SWS_DM_00776], StopOffer() [SWS_DM_00777], Validate() [SWS_DM_00774], Confirmation() [SWS_DM_00775] as well as the destructor [SWS_DM_00773] are classified as not thread-safe, but are exception-safe (noexcept).

Usage Path

The concrete validation logic is presumably provided by deriving from ara::diag::ServiceValidation and overriding the virtual interface methods by the application. Question Q-84efdab7839212b5 (open) The typical operational flow is divided into the following phases:

  1. Instantiation: Creating the instance by passing the InstanceSpecifier that references the configured port [SWS_DM_00772].
  2. Service offering: Calling Offer() to activate request forwarding by the DM [SWS_DM_00776].
  3. Validation: For each incoming diagnostic request, the DM calls the method Validate() [SWS_DM_00774]. The raw data (including Service Identifier, SID) is passed as ara::core::Span<const std::uint8_t> along with the MetaInfo of the request [SWS_DM_00774]. The data remains valid until the returned ara::core::Future<void> is satisfied or processing is cancelled by a cancellation handler [SWS_DM_00774].
  4. Confirmation: As soon as the processing of the diagnostic request is completed, the DM informs the handler via the method Confirmation(), passing the result status (ConfirmationStatusType) and the MetaInfo [SWS_DM_00775].
  5. Deactivation: Terminating request processing by means of StopOffer() [SWS_DM_00777].
Validation and confirmation sequence of a diagnostic requestApplicationServiceValidationDiagnostic ManagementOffer()Registrierung aktivierenValidate(requestData, metaInfo)Verification of data & MetaInfoaltValidierung erfolgreichFuture<void> (Erfolg)Validierung fehlgeschlagenFuture<void> (DiagUdsNrcErrc)Confirmation(status, metaInfo)StopOffer()Registrierung deaktivieren

Sequence diagram: Call sequence for validating and confirming a diagnostic request. Sources: [SWS_DM_00772], [SWS_DM_00774], [SWS_DM_00775], [SWS_DM_00776], [SWS_DM_00777].

Error Scenarios

Error conditions occur both during the static configuration check during construction and at runtime:

  • Construction violations: The constructor reports specific modeling errors as violations [SWS_DM_00772]:
    • InstanceSpecifierMappingIntegrityViolation: The identifier cannot be resolved in the context of the Executable or does not reference an PortPrototype [SWS_DM_00772].
    • PortInterfaceMappingViolation: The referenced PortPrototype is not typed by an DiagnosticServiceValidationInterface [SWS_DM_00772].
    • ProcessMappingViolation: No matching modeled Process exists for the process [SWS_DM_00772].
    • InstanceSpecifierAlreadyInUseViolation: The InstanceSpecifier is already being used by another instance in the running process [SWS_DM_00772].
  • Service offering: If Offer() is called when the service is already actively offered, the return value ara::core::Result<void> returns the error code DiagOfferErrc::kAlreadyOffered [SWS_DM_00776].
  • Validation errors: If the content check of the request fails, the application signals rejection via the returned ara::core::Future<void> by setting a corresponding Negative Response Code (NRC) from ISO 14229-1 via DiagUdsNrcErrc [SWS_DM_00774].

This guide is based on the AUTOSAR Adaptive specification R25-11 for the diag module.

Member map

Class diagram

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

G nara__diag__ServiceValidation871 ServiceValidation + ServiceValidation() + operator=() + ~ServiceValidation() + Confirmation() + Offer() + StopOffer() + Validate()

Detail view

Select an entry in the outline.

Constructors and destructor

Constructor of ServiceValidation. Depending on value of attribute DiagnosticServiceValidationMapping.category, the Validate is either called in the context of the NRC sequence in chapter 8.7 response implementation rules from UDS ISO 14229-1 as a Manufacturer or a Supplier Check.

Overloads ServiceValidation 3
explicit ServiceValidation (const ara::core::InstanceSpecifier &specifier) noexcept; SWS_DM_00772
ServiceValidation (ServiceValidation &)=delete; SWS_DM_01689
ServiceValidation (ServiceValidation &&)=delete; SWS_DM_01690

Destructor of ServiceValidation .

virtual ~ServiceValidation () noexcept;

Methods

Confirmation function

This method is called, when a diagnostic request has been finished, to notify about the outcome.

virtual void Confirmation (ConfirmationStatusType status, const Meta Info &metaInfo) noexcept;
Offer function

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;
StopOffer function

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;
Validate function

Called for any request message.

virtual ara::core::Future< void > Validate (ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo) noexcept;

Operators

operator= function 2

ServiceValidation shall be a single not assignable instance.

Overloads = 2

Method documentation

function Confirmation [SWS_DM_00775] Upstream: RS_AP_00138, RS_Diag_04170, RS_Diag_04199

virtual void Confirmation (ConfirmationStatusType status, const Meta Info &metaInfo) noexcept;

This method is called, when a diagnostic request has been finished, to notify about the outcome.

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

The method Confirmation of interface ara::diag::ServiceValidation ([SWS_DM_00775], declared in ara/diag/service_validation.h) serves as notification about the completion and result of a previously processed diagnostic request.

Usage and Semantics

The virtual callback function is called synchronously by Diagnostic Management as soon as request processing is finished. It has no return value (void) and takes two input parameters ([SWS_DM_00775]):

  • status (ConfirmationStatusType): Signals the final status or the result of the service processing ([SWS_DM_00775]).
  • metaInfo (const Meta Info &): Contains associated meta-information of the diagnostic request ([SWS_DM_00775]).

Error Handling and Concurrency

The function is specified as exception-safe (exception safe) and declared with the identifier noexcept ([SWS_DM_00775]). Application-side overrides must therefore not propagate exceptions to the outside. Specific error codes such as DET or DEM reports are not defined for this method. Regarding concurrency, Confirmation is classified as not thread-safe (not thread-safe) ([SWS_DM_00775]); access to application-internal states within the callback requires appropriate synchronization during concurrent sequences.

Interaction

Triggering the notification is coupled to the lifecycle end of a diagnostic request ([SWS_DM_00775]). This cycle is completed as soon as a positive or negative response has been transmitted or suppressed (AUTOSAR_AP_SWS_Diagnostics §7.3.2.1.2 “Life-cycle of a Diagnostic Conversation”). Interpretation: At module level, Diagnostic Management is likely to trigger the callback Confirmation only after transmission via the transport layer has been acknowledged by means of TransmitConfirmation and the result kTransmitOk or kTransmitFailed ([SWS_DM_00307], [SWS_DM_00351]). Question Q-97c38586ef5e3704 (open)

This usage note was generated by an AI based on the specification AUTOSAR Adaptive R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
statusstatus/outcome of the service processing.
metaInfoMetaInfo of the request.

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_00775
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00775@rel:R25-11#04409010
Content hash
04409010
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00775
Status: valid/unmigrated Version: rel:R25-11#bbcfd2e3 Versionshistorie & Revisions (1 transition, 8 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_DM_00775@rel:R25-11#bbcfd2e3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#044090102026-09-30
  • R19-11rel:R19-11#20a5939d2026-10-14
  • R20-11rel:R20-11#761e125d2026-10-14
  • R21-11rel:R21-11#761e125d2026-10-14
  • R22-11rel:R22-11#991a58222026-10-14
  • R23-11rel:R23-11#a506b4142026-10-14
  • R24-11rel:R24-11#5339f3712026-10-14
  • R25-11rel:R25-11#bbcfd2e32026-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 Offer [SWS_DM_00776] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04199

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

This Offer will enable the DM to forward request messages to this handler.

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

use

The member function Offer of class ara::diag::ServiceValidation (header ara/diag/service_validation.h) activates the forwarding of incoming diagnostic requests by the Diagnostic Manager (DM) to this specific validation handler [SWS_DM_00776]. The call is made synchronously and without input parameters via the signature ara::core::Result<void> Offer() noexcept; [SWS_DM_00776]. A ara::core::Result<void> serves as the return value, which is empty in case of success or encapsulates the occurred error code in case of an error [SWS_DM_00776].

Error handling

If the registration fails, the method returns an errored Result. If the service was already offered previously for the instance in question, the error code DiagOfferErrc::kAlreadyOffered is returned [SWS_DM_00776]. Here, rollback semantics apply, so that the previous state of the instance remains unchanged [SWS_DM_00776].

Concurrency and Limitations

The function is specified as exception-safe (exception safe), but explicitly as not thread-safe (not thread-safe) [SWS_DM_00776]. Parallel accesses to the same instance must be coordinated by the calling application. Regarding the sequence, Offer must be called before the Diagnostic Manager can forward service requests for validation [SWS_DM_00776].

Interaction

Offering interfaces via Offer is a consistent design pattern of AUTOSAR Adaptive diagnostics and is applied analogously to routines ([SWS_DM_00557], [SWS_DM_00594]), generic UDS services ([SWS_DM_00619]), DoIP functions ([SWS_DM_00725], [SWS_DM_00735]), and security access ([SWS_DM_00766]), among others. As long as an interface has not been provided via Offer, the DM discards requests or falls back on defined replacement values ([SWS_DM_01525], [SWS_DM_01527]). Conceptual parallels to ara::com are functionally motivated, but represent an independent implementation of diagnostics (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”).

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

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

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

Record
AUTOSAR/AP/record/SWS_DM_00776
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00776@rel:R25-11#f679147c
Content hash
f679147c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00776
Status: valid/unmigrated Version: rel:R25-11#98f79358 Versionshistorie & Revisions (1 transition, 8 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_DM_00776@rel:R25-11#98f79358
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f679147c2026-09-30
  • R19-11rel:R19-11#1c84ea4d2026-10-14
  • R20-11rel:R20-11#cea448532026-10-14
  • R21-11rel:R21-11#bcd37d0f2026-10-14
  • R22-11rel:R22-11#c7eb78232026-10-14
  • R23-11rel:R23-11#3732217c2026-10-14
  • R24-11rel:R24-11#d9522beb2026-10-14
  • R25-11rel:R25-11#98f793582026-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 ServiceValidation [SWS_DM_00772] Upstream: RS_AP_00137, RS_Diag_04199, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit ServiceValidation (const ara::core::InstanceSpecifier &specifier) noexcept;

Constructor of ServiceValidation. Depending on value of attribute DiagnosticServiceValidationMapping.category, the Validate is either called in the context of the NRC sequence in chapter 8.7 response implementation rules from UDS ISO 14229-1 as a Manufacturer or a Supplier Check.

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Verletzungen (Violations)InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticServiceValidationMapping needs to be typed by a DiagnosticServiceValidationInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.

Parameter (in)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticServiceValidationInterface

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

Record
AUTOSAR/AP/record/SWS_DM_00772
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00772@rel:R25-11#db1a817b
Content hash
db1a817b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00772
Status: valid/unmigrated Version: rel:R25-11#551e2d84 Versionshistorie & Revisions (1 transition, 8 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_DM_00772@rel:R25-11#551e2d84
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#db1a817b2026-09-30
  • R19-11rel:R19-11#8ba9fe932026-10-14
  • R20-11rel:R20-11#12b557df2026-10-14
  • R21-11rel:R21-11#1f0371f52026-10-14
  • R22-11rel:R22-11#f49056232026-10-14
  • R23-11rel:R23-11#6c563b032026-10-14
  • R24-11rel:R24-11#f8f0ab112026-10-14
  • R25-11rel:R25-11#551e2d842026-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 ServiceValidation [SWS_DM_01689] Upstream: RS_AP_00147

ServiceValidation (ServiceValidation &)=delete;

ServiceValidation shall be a single not copy-able instance.

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation

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

Record
AUTOSAR/AP/record/SWS_DM_01689
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01689@rel:R25-11#61492512
Content hash
61492512
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01689
Status: valid/unmigrated Version: rel:R25-11#d48785a6 Versionshistorie & Revisions (1 transition, 4 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_DM_01689@rel:R25-11#d48785a6
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#614925122026-09-30
  • R23-11rel:R23-11#428fd8c92026-10-14
  • R24-11rel:R24-11#d48785a62026-10-14
  • R25-11rel:R25-11#d48785a62026-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 ServiceValidation [SWS_DM_01690] Upstream: RS_AP_00147

ServiceValidation (ServiceValidation &&)=delete;

Move constructor of ServiceValidation.

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation

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

Record
AUTOSAR/AP/record/SWS_DM_01690
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01690@rel:R25-11#52b974e0
Content hash
52b974e0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01690
Status: valid/unmigrated Version: rel:R25-11#e4fdb290 Versionshistorie & Revisions (1 transition, 4 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_DM_01690@rel:R25-11#e4fdb290
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#52b974e02026-09-30
  • R23-11rel:R23-11#646ef28b2026-10-14
  • R24-11rel:R24-11#e4fdb2902026-10-14
  • R25-11rel:R25-11#e4fdb2902026-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 StopOffer [SWS_DM_00777] Upstream: RS_Diag_04199

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

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

use

Method StopOffer() of class ara::diag::ServiceValidation (header file ara/diag/service_validation.h) serves to disable the forwarding of incoming request messages from Diagnostic Management (DM) to the service validation instance [SWS_DM_00777]. The call is synchronous, takes no input parameters, and returns no return value [SWS_DM_00777].

Error Handling and Concurrency

The function is declared as noexcept and is considered exception safe, so that no C++ exceptions occur during execution [SWS_DM_00777]. Specific error codes or feedback to error management are not defined for this call [SWS_DM_00777].

With regard to concurrency, the method is specified as not thread-safe [SWS_DM_00777]. Interpretation: The calling application must ensure that concurrent calls to the same instance of StopOffer() are synchronized to avoid data inconsistencies. Question Q-dde3c015d30a9db1 (open)

Interaction

Offering and stopping interfaces via Offer() and StopOffer() is modeled on the familiar semantics of ara::com, but represents independent functionality in the diagnostics domain AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. The pattern for disabling request forwarding from the DM is used consistently across the standard for further diagnostic handlers, such as for authentication services [SWS_DM_01131], communication control [SWS_DM_00810], download services [SWS_DM_00793], and ECU reset requests [SWS_DM_01017].

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

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_00777
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00777@rel:R25-11#ecbd75f1
Content hash
ecbd75f1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00777
Status: valid/unmigrated Version: rel:R25-11#809ce59e Versionshistorie & Revisions (1 transition, 8 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_DM_00777@rel:R25-11#809ce59e
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#ecbd75f12026-09-30
  • R19-11rel:R19-11#988e9cc52026-10-14
  • R20-11rel:R20-11#556e7ce62026-10-14
  • R21-11rel:R21-11#ee572f802026-10-14
  • R22-11rel:R22-11#db0a3b992026-10-14
  • R23-11rel:R23-11#c1a089312026-10-14
  • R24-11rel:R24-11#1b0c9f462026-10-14
  • R25-11rel:R25-11#809ce59e2026-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 Validate [SWS_DM_00774] Upstream: RS_AP_00138, RS_Diag_04170, RS_Diag_04199, RS_AP_00119

virtual ara::core::Future< void > Validate (ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo) noexcept;

Called for any request message.

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

use

The virtual method ara::diag::ServiceValidation::Validate is invoked for each incoming diagnostic request message [SWS_DM_00774]. Through it, the Diagnostic Server (DM) executes configured manufacturer-specific [SWS_DM_01252] as well as supplier-specific service checks [SWS_DM_01253] in accordance with ISO 14229-1. The assignment as manufacturer or supplier check depends on the modeling in the constructor [SWS_DM_00772].

The function accepts the diagnostic data including Service Identifier (SID) via requestData as well as meta information via metaInfo [SWS_DM_00774]. Buffer requestData remains valid until the returned ara::core::Future<void> is satisfied via the associated promise or execution is cancelled [SWS_DM_00774]. If validation completes successfully without error, the Diagnostic Server continues processing the request in accordance with ISO 14229-1 [SWS_DM_01254].

Error Handling and Boundary Conditions

If the check fails, an appropriate NRC in accordance with ISO 14229-1 must be returned using DiagUdsNrcErrc [SWS_DM_00774]. If Validate returns the error kNoProcessingNoResponse, the instance of the Diagnostic Server discards the message without further response [SWS_DM_00860].

With regard to concurrency, Validate is specified as exception safe (exception safe), but as not thread-safe (not thread-safe) [SWS_DM_00774]. Interpretation: Because the function is not thread-safe, the Diagnostic Server is likely to serialize calls to the same instance or exclude concurrent accesses. Question Q-e150c15ad709602c (open) The call context is defined by the NRC sequence of ISO 14229-1 prior to the actual service execution [SWS_DM_00772].

This usage note was created automatically based on the AUTOSAR Adaptive specification R25-11.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
requestDataDiagnostic request data (including SID). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.

Rückgabewert

TypBeschreibung
ara::core::Future< void >Returns nothing or an error

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00774
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00774@rel:R25-11#97b264c9
Content hash
97b264c9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00774
Status: valid/unmigrated Version: rel:R25-11#697b56ca Versionshistorie & Revisions (1 transition, 8 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_DM_00774@rel:R25-11#697b56ca
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#97b264c92026-09-30
  • R19-11rel:R19-11#7333f5562026-10-14
  • R20-11rel:R20-11#5a132c282026-10-14
  • R21-11rel:R21-11#59f85a3b2026-10-14
  • R22-11rel:R22-11#43a758b42026-10-14
  • R23-11rel:R23-11#05e1af662026-10-14
  • R24-11rel:R24-11#8a3b62802026-10-14
  • R25-11rel:R25-11#697b56ca2026-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 operator= [SWS_DM_01687] Upstream: RS_AP_00147

ServiceValidation & operator= (ServiceValidation &)=delete;

ServiceValidation shall be a single not assignable instance.

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation

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

Record
AUTOSAR/AP/record/SWS_DM_01687
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01687@rel:R25-11#cca774bf
Content hash
cca774bf
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01687
Status: valid/unmigrated Version: rel:R25-11#4d0e8e99 Versionshistorie & Revisions (1 transition, 4 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_DM_01687@rel:R25-11#4d0e8e99
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#cca774bf2026-09-30
  • R23-11rel:R23-11#b0b3cfec2026-10-14
  • R24-11rel:R24-11#4d0e8e992026-10-14
  • R25-11rel:R25-11#4d0e8e992026-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 operator= [SWS_DM_01688] Upstream: RS_AP_00147

ServiceValidation & operator= (ServiceValidation &&)=delete;

Move assignment operator of ServiceValidation.

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation

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

Record
AUTOSAR/AP/record/SWS_DM_01688
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01688@rel:R25-11#070b5419
Content hash
070b5419
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01688
Status: valid/unmigrated Version: rel:R25-11#1b73524b Versionshistorie & Revisions (1 transition, 4 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_DM_01688@rel:R25-11#1b73524b
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#070b54192026-09-30
  • R23-11rel:R23-11#451c17372026-10-14
  • R24-11rel:R24-11#1b73524b2026-10-14
  • R25-11rel:R25-11#1b73524b2026-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 ~ServiceValidation [SWS_DM_00773] Upstream: RS_AP_00134, RS_Diag_04199

virtual ~ServiceValidation () noexcept;

Destructor of ServiceValidation .

Header-Datei#include "ara/diag/service_validation.h"
Scopeclass ara::diag::ServiceValidation
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

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

Record
AUTOSAR/AP/record/SWS_DM_00773
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00773@rel:R25-11#6c06b72e
Content hash
6c06b72e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00773
Status: valid/unmigrated Version: rel:R25-11#ef75a44c Versionshistorie & Revisions (1 transition, 8 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_DM_00773@rel:R25-11#ef75a44c
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6c06b72e2026-09-30
  • R19-11rel:R19-11#7fc7f8282026-10-14
  • R20-11rel:R20-11#c80e4a8e2026-10-14
  • R21-11rel:R21-11#c80e4a8e2026-10-14
  • R22-11rel:R22-11#af4050602026-10-14
  • R23-11rel:R23-11#bfb288b52026-10-14
  • R24-11rel:R24-11#ef75a44c2026-10-14
  • R25-11rel:R25-11#ef75a44c2026-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