DEENESPTFRRUARHIKOZHNL

class ara::diag::DoIPEntityIdentification

[SWS_DM_01362] Upstream: RS_Diag_00026

class DoIPEntityIdentification {...};

DoIPEntityIdentification class to obtain the EID if required.

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

User GuideAI-GENERATED

Enables adaptive applications to provide the DoIP entity identification for diagnostic management.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 73f8b2cf1d2e Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Enables adaptive applications to provide the DoIP entity identification for diagnostic management.

The class ara::diag::DoIPEntityIdentification enables adaptive applications to dynamically provide the entity identification (EID) for the DoIP diagnostic protocol [SWS_DM_01361]. After instantiation, the application activates forwarding by means of Offer() and answers queries from Diagnostic Management via the pure virtual method GetEntityId() asynchronously by means of a future [SWS_DM_01366], [SWS_DM_01367]. If the interface is not yet provided when a query occurs, Diagnostic Management transmits a standardized 0xFF value as a replacement [SWS_DM_01528].

Context

The class ara::diag::DoIPEntityIdentification serves to dynamically provide the entity identification (EID) for the DoIP protocol (Diagnostic over IP) [SWS_DM_01361]. In an AUTOSAR Adaptive environment, it forms the functional bridge between an individual adaptive application and Diagnostic Management (DM) AUTOSAR_AP_SWS_Diagnostics, p. 107. If DoIpNetworkConfiguration.eidRetrieval is set to the mode DoIpEidRetrievalEnum.eidUseApi in the configuration, Diagnostic Management requests the EID via this programming interface [SWS_DM_01361]. Binding to the software architecture is established via a ara::core::InstanceSpecifier that references a PortPrototype of an DiagnosticDoIPEntityIdentificationInterface [SWS_DM_01364].

Lifecycle

Creation takes place via the explicit constructor, to which, in addition to InstanceSpecifier, the parameter ConcurrencyType (kConcurrent or kNotConcurrent) is passed [SWS_DM_01364]. The latter specifies whether subsequent invocations of the interface must be handled in a thread-safe manner [SWS_DM_01364], [SWS_DM_01366]. After construction, the object initially remains in an inactive state. Invoking Offer() enables the interface for Diagnostic Management and activates the forwarding of requests to the handler [SWS_DM_01367]. Before the object is destroyed or upon termination of operation, StopOffer() disables forwarding again [SWS_DM_01368]. Finally, destruction takes place via the virtual destructor [SWS_DM_01365]. Neither Offer(), StopOffer() nor the destructor are thread-safe and therefore require coordinated synchronization in the application code [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].

DoIPEntityIdentificationStates NichtBereitgestellt NichtBereitgestellt Bereitgestellt Bereitgestellt NichtBereitgestellt->Bereitgestellt Offer() Bereitgestellt->NichtBereitgestellt StopOffer() Bereitgestellt->Bereitgestellt GetEntityId()

State diagram: Lifecycle and registration phases of DoIP entity identification. Sources: [SWS_DM_01364], [SWS_DM_01365], [SWS_DM_01367], [SWS_DM_01368].

Usage Path

In the typical usage scenario, the adaptive application derives its own implementation class from ara::diag::DoIPEntityIdentification and overrides the pure virtual method GetEntityId() [SWS_DM_01366]. After instantiation with a valid identifier, the application registers the handler using Offer() [SWS_DM_01367]. As soon as Diagnostic Management requires the entity ID to assemble DoIP messages, it invokes GetEntityId() [SWS_DM_01361], [SWS_DM_01366]. The method returns a ara::core::Future<EntityId>, allowing the identification data to be determined and provided asynchronously [SWS_DM_01366]. When functional operation ends, the application revokes the offer via StopOffer() [SWS_DM_01368].

Sequence of DoIP entity ID provisionApplicationDoIPEntityIdentificationDiagnostic ManagementDoIPEntityIdentification(specifier, concurrencyType)Offer()ara::core::Result<void>Use Case: EID query in DoIP protocolGetEntityId()GetEntityId()ara::core::Future<EntityId>Use Case: DienstbeendigungStopOffer()

Sequence diagram: Typical call sequence for registration and querying of the EID by Diagnostic Management. Sources: [SWS_DM_01361], [SWS_DM_01364], [SWS_DM_01366], [SWS_DM_01367], [SWS_DM_01368].

Error Scenarios

Erroneous model configurations during construction lead to specific runtime violations: If the InstanceSpecifier cannot be resolved in the model or does not reference a PortPrototype, a InstanceSpecifierMappingIntegrityViolation results [SWS_DM_01364]. If the port mapping does not reference a DiagnosticDoIPEntityIdentificationInterface, a PortInterfaceMappingViolation is present, whereas a missing process matching triggers a ProcessMappingViolation [SWS_DM_01364]. If the same identifier is used multiple times in the process, a InstanceSpecifierAlreadyInUseViolation follows [SWS_DM_01364].

If Offer() is called when the service is already actively offered, the method returns a ara::core::Result with error code DiagOfferErrc::kAlreadyOffered [SWS_DM_01367]. If Diagnostic Management cannot query the EID—for example, because the interface was not yet offered at the time of the request—a defined protocol fallback applies: Diagnostic Management sends a replacement 6-byte EID value of 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF in DoIP messages [SWS_DM_01528].

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

Member map

Class diagram

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

G nara__diag__DoIPEntityIdentification87 DoIPEntityIdentification + ~DoIPEntityIdentification() + DoIPEntityIdentification() + GetEntityId() + Offer() + StopOffer()

Detail view

Select an entry in the outline.

Constructors and destructor

Constructor of DoIPEntityIdentification.

explicit DoIPEntityIdentification (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Destructor of DoIPEntityIdentification.

virtual ~DoIPEntityIdentification () noexcept;

Methods

GetEntityId function

Called to get the EID for the DoIP protocol.

virtual ara::core::Future< EntityId > GetEntityId () noexcept=0;
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;

Embedded types

EntityId class

Method documentation

function DoIPEntityIdentification [SWS_DM_01364] Upstream: RS_AP_00137, RS_Diag_00026, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit DoIPEntityIdentification (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Constructor of DoIPEntityIdentification.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
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 DiagnosticDoIpEntityIdentificationPortMapping needs to be typed by a DiagnosticDoIPEntityIdentificationInterface. 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 DiagnosticDoIPEntityIdentificationInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent)..

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

Record
AUTOSAR/AP/record/SWS_DM_01364
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01364@rel:R25-11#8c31120d
Content hash
8c31120d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01364
Status: valid/unmigrated Version: rel:R25-11#01461b41 Versionshistorie & Revisions (1 transition, 5 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_01364@rel:R25-11#01461b41
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#8c31120d2026-09-30
  • R22-11rel:R22-11#97f4f9572026-10-14
  • R23-11rel:R23-11#6285024e2026-10-14
  • R24-11rel:R24-11#bff980792026-10-14
  • R25-11rel:R25-11#01461b412026-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 GetEntityId [SWS_DM_01366] Upstream: RS_AP_00138, RS_Diag_00026

virtual ara::core::Future< EntityId > GetEntityId () noexcept=0;

Called to get the EID for the DoIP protocol.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Rückgabewert

TypBeschreibung
ara::core::Future< EntityId >Entity identification

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

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

Record
AUTOSAR/AP/record/SWS_DM_01366
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01366@rel:R25-11#0daba935
Content hash
0daba935
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01366
Status: valid/unmigrated Version: rel:R25-11#b7599708 Versionshistorie & Revisions (1 transition, 5 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_01366@rel:R25-11#b7599708
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#0daba9352026-09-30
  • R22-11rel:R22-11#03ed90322026-10-14
  • R23-11rel:R23-11#dc0449c22026-10-14
  • R24-11rel:R24-11#35c811cd2026-10-14
  • R25-11rel:R25-11#b75997082026-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_01367] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_00026

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: 60c723a50d6c Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Method Offer of class ara::diag::DoIPEntityIdentification enables the forwarding of incoming DoIP requests by the Diagnostic Management daemon (DM) to the registered handler ([SWS_DM_01367]). Only after a successful call are messages passed on to the handler. Interpretation: The call typically occurs during the initialization phase of the Adaptive Application before diagnostic messages are to be received. Question Q-4b78d4f80bda63a4 (open)

Usage and semantics:

  • Call context: The operation is executed synchronously and declared as noexcept; it throws no exceptions ([SWS_DM_01367]).
  • Return value: It returns a ara::core::Result<void>, which contains no value in case of success ([SWS_DM_01367]).

Error handling:

  • If the interface has already been offered for the instance, the call fails and returns error code DiagOfferErrc::kAlreadyOffered with rollback semantics ([SWS_DM_01367]).

Concurrency and restrictions:

  • The interface is specified as not thread-safe ([SWS_DM_01367]). Concurrent calls on the same instance must be synchronized by the calling application.

Interaction:

The registration pattern complies with the procedure of other DoIP services such as DoIPGroupIdentification ([SWS_DM_00725]) and DoIPPowerMode ([SWS_DM_00735]) as well as generic UDS handlers ([SWS_DM_00619]). The naming follows the pattern known from ara::com, but represents an independent registration with the DM (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”).

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

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
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_01367
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01367@rel:R25-11#bac2d0d7
Content hash
bac2d0d7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01367
Status: valid/unmigrated Version: rel:R25-11#1e1b8396 Versionshistorie & Revisions (1 transition, 5 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_01367@rel:R25-11#1e1b8396
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#bac2d0d72026-09-30
  • R22-11rel:R22-11#78e265802026-10-14
  • R23-11rel:R23-11#4d70569b2026-10-14
  • R24-11rel:R24-11#2f07768f2026-10-14
  • R25-11rel:R25-11#1e1b83962026-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_01368] Upstream: RS_Diag_00026

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: 2e0edce0b8e6 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

Method ara::diag::DoIPEntityIdentification::StopOffer stops offering the service for DoIP entity identification and disables the forwarding of request messages from Diagnostic Management (DM) to the application [SWS_DM_01368]. The interface is provided via header file ara/diag/doip_entity_identification.h. It accepts no parameters and returns no return value (void) [SWS_DM_01368]. Interpretation: Since the signature provides neither a future object nor notification via callback, the call is likely executed in a synchronous blocking manner until forwarding in the DM has terminated. Question Q-75f67df3a003b08f (open)

Error Handling and Exception Safety

The operation is declared with the specifier noexcept and specified as exception safe (exception safe) [SWS_DM_01368]. No specific error codes are returned and no exceptions are thrown.

Concurrency and Limitations

With respect to the execution environment, the method is classified as not thread-safe (not thread-safe) [SWS_DM_01368]. If concurrent calls or accesses to the same instance of ara::diag::DoIPEntityIdentification occur, these must be synchronized on the application side.

Interaction

The behavior fits into the uniform life cycle pattern of AUTOSAR Adaptive Diagnostic Management. A comparable disabling of message forwarding occurs, for example, in group identification via [SWS_DM_00726] as well as in diagnostic switches and monitors via [SWS_DM_01089]. As highlighted in AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”, the naming of Offer and StopOffer is based on the patterns of ara::com, but represents an independent implementation for diagnostic interfaces.

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

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
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_01368
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01368@rel:R25-11#0a104040
Content hash
0a104040
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01368
Status: valid/unmigrated Version: rel:R25-11#995f1e52 Versionshistorie & Revisions (1 transition, 5 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_01368@rel:R25-11#995f1e52
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#0a1040402026-09-30
  • R22-11rel:R22-11#9e1482542026-10-14
  • R23-11rel:R23-11#de1f2b922026-10-14
  • R24-11rel:R24-11#40423c4c2026-10-14
  • R25-11rel:R25-11#995f1e522026-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 ~DoIPEntityIdentification [SWS_DM_01365] Upstream: RS_AP_00134, RS_Diag_00026

virtual ~DoIPEntityIdentification () noexcept;

Destructor of DoIPEntityIdentification.

Header-Datei#include "ara/diag/doip_entity_identification.h"
Scopeclass ara::diag::DoIPEntityIdentification
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_01365
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01365@rel:R25-11#0ce405e3
Content hash
0ce405e3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01365
Status: valid/unmigrated Version: rel:R25-11#dd9937e2 Versionshistorie & Revisions (1 transition, 5 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_01365@rel:R25-11#dd9937e2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#0ce405e32026-09-30
  • R22-11rel:R22-11#73c187462026-10-14
  • R23-11rel:R23-11#e45fbddd2026-10-14
  • R24-11rel:R24-11#d5ded6fa2026-10-14
  • R25-11rel:R25-11#dd9937e22026-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