Enables adaptive applications to provide the DoIP entity identification for diagnostic management.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 73f8b2cf1d2eProvenanceOpen 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].
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].
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.
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)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPEntityIdentificationInterface.
concurrencyType
Specifies 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.
This Offer will enable the DM to forward request messages to this handler.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 60c723a50d6cProvenanceOpen 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.
This StopOffer will disable the forwarding of request messages from DM.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2e0edce0b8e6ProvenanceOpen 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.
gemini-3.8-flash-low· 2026-10-13 · German original