Ermöglicht Applikationen die Erzeugung und Prüfung von Näherungsnachweisen für geschützte SOVD-Diagnoseoperationen.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7c7c088635a6HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht Applikationen die Erzeugung und Prüfung von Näherungsnachweisen für geschützte SOVD-Diagnoseoperationen.
Die Schnittstellenklasse dient in der AUTOSAR Adaptive Platform zur Implementierung von Näherungsprüfungen für SOVD-Operationen im Diagnose-Umfeld [SWS_DM_01481]. Applikationen leiten von der Klasse ab, aktivieren die Weiterleitung durch das Diagnostic Management via Offer() und stellen asynchron die geforderte Challenge sowie deren spätere Validierung bereit [SWS_DM_01478]. Nebenläufige Aufrufe der Validierungsmethoden richten sich nach dem bei der Konstruktion gewählten Nebenläufigkeitsmodus, während Registrierung und Destruktion nicht threadsicher sind.
Kontext
Die Klasse ara::diag::SovdProximityChallenge[SWS_DM_01481] dient in der AUTOSAR Adaptive Platform zur anwendungsseitigen Umsetzung der Schnittstelle für Näherungsnachweise (Proximity Challenge) im Service-Oriented Vehicle Diagnostics (SOVD) Umfeld. Sie bildet die Brücke zwischen dem AUTOSAR Diagnostic Management (DM bzw. Diagnostic Server) und der eigentlichen Fahrzeugapplikation, welche die Sicherheitslogik für physische oder kryptografische Näherungsprüfungen bereitstellt AUTOSAR_AP_SWS_Diagnostics §8.56 „Providing the SOVD operation proximity_challenge“. Wenn für eine SOVD-Operation konfiguriert ist, dass ein Näherungsnachweis erforderlich ist (Attribut proximityProofRequired ist TRUE), fordert das Diagnostic Management bei der Bearbeitung einer Diagnoseanfrage von der Applikation eine Challenge an und lässt die vom Client übermittelte Antwort verifizieren [SWS_DM_01398]. An diesem Verbund sind drei wesentliche Parteien beteiligt: der externe SOVD-Client, das vermittelnde Diagnostic Management und die nutzende Applikation.
Die Instanziierung der Handler-Klasse erfolgt über den Konstruktor SovdProximityChallenge[SWS_DM_01480]. Dieser bindet die Instanz an einen im Manifest definierten ara::core::InstanceSpecifier und legt über den Parameter ConcurrencyType fest, ob die spätere Ausführung nebenläufig (kConcurrent) oder sequenziell (kNotConcurrent) erfolgt. Der Konstruktor selbst ist als threadsicher spezifiziert [SWS_DM_01480]. Nach der Objekterzeugung befindet sich der Handler zunächst im passiven Zustand. Erst durch den expliziten Aufruf von Offer()[SWS_DM_01478] wird das Diagnostic Management autorisiert, Anfragen an die Applikationsinstanz weiterzuleiten.
Die Weiterleitung kann jederzeit mittels StopOffer()[SWS_DM_01495] wieder deaktiviert werden. Weder Offer(), StopOffer() noch der virtuelle Destruktor ~SovdProximityChallenge()[SWS_DM_01479] sind threadsicher. Interpretation: Vor der Zerstörung des Objekts dürfte es erforderlich sein, StopOffer() aufzurufen, um eine Weiterleitung an ein im Abbau befindliches Objekt zu verhindern. Frage Q-b4c66854163f433e (offen) Zudem dürfte eine Applikationsinstanz in der Praxis typischerweise während der gesamten Laufzeit des Diagnoseprozesses gehalten werden, um SOVD-Operationen kontinuierlich abzusichern. Die Thread-Sicherheit der eigentlichen Abfrage- und Validierungsmethoden GetChallenge()[SWS_DM_01494] und ValidateResponse()[SWS_DM_01493] wird durch den im Konstruktor übergebenen ConcurrencyType gesteuert.
Nutzungspfad
Nach erfolgreicher Initialisierung und Dienstbereitstellung mittels Offer()[SWS_DM_01478] reagiert die Klasse auf Anfragen des Diagnostic Managements. Fordert ein SOVD-Client eine geschützte Operation an, ruft das DM die rein virtuelle Methode GetChallenge()[SWS_DM_01494] auf. Die Applikation generiert den Näherungstoken und liefert ihn zusammen mit dem Gültigkeitszeitpunkt (valid_until) asynchron über ein ara::core::Future<SovdProximityChallengeType> zurück [SWS_DM_01494]. Standardmäßig wird davon ausgegangen, dass zu jedem Zeitpunkt nur eine einzige Challenge existiert, die für alle Clients und Operationen gültig ist, wobei deren Lebensdauer typischerweise fest (z. B. auf zwei Minuten) festgelegt wird AUTOSAR_AP_SWS_Diagnostics §8.56 „Providing the SOVD operation proximity_challenge“. Für komplexere Szenarien kann die Applikation das übergebene ara::diag::MetaInfo-Objekt auswerten, um client- oder operationsspezifische Prüfungen vorzunehmen AUTOSAR_AP_SWS_Diagnostics §8.56 „Providing the SOVD operation proximity_challenge“.
Das Diagnostic Management übermittelt das Attribut proximity_challenge im Antwortkörper an den Client [SWS_DM_01398]. Antwortet der Client mit einem Näherungsnachweis, leitet das DM diese Daten via ValidateResponse()[SWS_DM_01493] weiter. Der übergebene Speicherbereich proximityResponse bleibt gültig, bis das zurückgegebene ara::core::Future<ProximityChallengeValidationResultType> erfüllt oder die Verarbeitung abgebrochen wird [SWS_DM_01493]. Vor dem Herunterfahren des Prozesses wird der Dienst über StopOffer()[SWS_DM_01495] abgemeldet.
Bereits bei der Objekterzeugung über den Konstruktor [SWS_DM_01480] prüft das Framework die Modellkonsistenz und kann folgende Verletzungen melden: InstanceSpecifierMappingIntegrityViolation (der Bezeichner kann nicht aufgelöst werden oder verweist nicht auf einen Port-Prototyp), PortInterfaceMappingViolation (der Port-Prototyp ist nicht als DiagnosticSovdProximityChallengeInterface typisiert), ProcessMappingViolation (kein passender modellierter Prozess gefunden) oder InstanceSpecifierAlreadyInUseViolation (der Bezeichner wird im Prozess bereits verwendet) [SWS_DM_01480].
Beim Aufruf von Offer()[SWS_DM_01478] liefert das resultierende ara::core::Result<void> im Fehlerfall standardisierte Fehlercodes: DiagOfferErrc::kAlreadyOffered, falls der Dienst für diesen Port bereits aktiv angeboten wird, oder DiagOfferErrc::kConfigurationMismatch, wenn die Monitorkonfiguration nicht mit der DEXT übereinstimmt. Für GetChallenge()[SWS_DM_01494] und ValidateResponse()[SWS_DM_01493] sind keine standardisierten Fehlercodes definiert. Alle Elementfunktionen der Klasse sind als noexcept deklariert und gewährleisten Ausnahme-Sicherheit.
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f009f89ccf76HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Methode Offer der Klasse ara::diag::SovdProximityChallenge (definiert in #include "ara/diag/sovd_proximity_challenge.h") registriert den Handler beim Diagnostic Management (DM) und versetzt diesen in die Lage, eingehende Anforderungsnachrichten (request messages) an die Handler-Instanz weiterzuleiten [SWS_DM_01478]. Der Aufruf erfolgt parameterlos und ist mit noexcept spezifiziert [SWS_DM_01478].
Als Rückgabewert dient ara::core::Result<void>[SWS_DM_01478]. Im Fehlerfall liefert die Methode einen spezifischen Fehlercode mit Rollback-Semantik zurück [SWS_DM_01478]:
DiagOfferErrc::kAlreadyOffered: Der Dienst wurde bereits über die Instanz angeboten [SWS_DM_01478].
DiagOfferErrc::kConfigurationMismatch: Die Konfiguration des Handlers stimmt nicht mit den DEXT-Daten überein [SWS_DM_01478].
Bezüglich der Ausführungssicherheit ist die Methode als exception safe deklariert, gilt jedoch explizit als not thread-safe[SWS_DM_01478]. Parallele Aufrufe auf derselben Instanz müssen daher von der aufrufenden Anwendung synchronisiert werden. Das Bereitstellungsmuster entspricht dem einheitlichen Aktivierungsprinzip von DM-Handlern, wie es unter anderem auch bei ara::diag::GenericRoutine[SWS_DM_00557], ara::diag::GenericUDSService[SWS_DM_00619] und ara::diag::CommunicationControl[SWS_DM_00809] zur Anwendung kommt. Interpretation: Solange Offer nicht erfolgreich ausgeführt wurde, leitet der DM Anforderungen für die Proximity-Challenge vermutlich nicht an den Handler weiter. Frage Q-320a80aca81ef460 (offen)
Dieser Verwendungshinweis wurde automatisiert auf Basis von AUTOSAR R25-11 generiert.
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 DiagnosticSovdProximityChallengePortMapping needs to be typed by a DiagnosticSovdProximityChallengeInterface. 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
instanceSpecifier
InstanceSpecifier to a PortPrototype of a DiagnosticSovdProximityChallengeInterface service instance in the manifest.
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 StopOffer will disable the forwarding of request messages from DM.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d973f1eccf91HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode StopOffer der Klasse ara::diag::SovdProximityChallenge deaktiviert die Weiterleitung von Anfragenachrichten aus dem Diagnostic Management (DM) an diese Service-Instanz ([SWS_DM_01495]). Die Schnittstelle wird über den Header ara/diag/sovd_proximity_challenge.h bereitgestellt.
Verwendung und Ausführungskontext
Die Funktion wird synchron aufgerufen, akzeptiert keine Übergabeparameter und besitzt keinen Rückgabewert ([SWS_DM_01495]). Nach Ausführung leitet das DM keine weiteren Anforderungen zur Proximity-Challenge mehr an die Anwendung weiter.
Fehlerbehandlung und Ausnahmesicherheit
Die Methode ist als noexcept deklariert und vollständig ausnahmesicher (exception safe) ([SWS_DM_01495]). Fehlerzustände oder spezifische Fehlercodes sind für diesen Aufruf nicht vorgesehen.
Nebenläufigkeit und Lebenszyklus
In Bezug auf die Ausführung ist StopOffer ausdrücklich als nicht threadsicher (not thread-safe) spezifiziert ([SWS_DM_01495]). Parallele Aufrufe auf derselben Instanz müssen aufruferseitig synchronisiert werden. Interpretation: Der Aufruf dürfte typischerweise beim Herunterfahren der Komponente oder bei vorübergehend ausgesetzter Proximity-Challenge-Prüfung erfolgen. Frage Q-7b8910a8d5f6dc05 (offen)
This function validates the proximity response sent by the client.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0179eb4520d7HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die rein virtuelle Methode ara::diag::SovdProximityChallenge::ValidateResponse dient der Validierung einer vom Client übermittelten Proximity-Antwort [SWS_DM_01493]. Die Diagnostic-Server-Instanz ruft diese Methode auf, sobald ein SOVD-Request-Body das Attribut proximity_response enthält [SWS_DM_01395], wie beispielsweise bei Anfragen zum Beenden einer Operationsausführung [SWS_DM_01391]. Übergeben werden der Byte-Span proximityResponse sowie das Kontextobjekt metaInfo[SWS_DM_01493]. Letzteres ermöglicht es der Anwendung, bei Bedarf client- oder operationsspezifische Prüfungen durchzuführen SWS Diagnostics S. 215. Das Validierungsergebnis wird asynchron über ein ara::core::Future<ProximityChallengeValidationResultType> bereitgestellt [SWS_DM_01493].
Die Schnittstelle ist als noexcept und ausnahmesicher (exception safe) deklariert [SWS_DM_01493]. Es sind keine standardisierten Fehlercodes vorgegeben [SWS_DM_01493]. Interpretation: Ein Fehlschlagen der Proximity-Validierung dürfte über den Rückgabetyp ProximityChallengeValidationResultType oder den Fehlerkanal des Future abgebildet werden. Frage Q-1be6378537b59f2b (offen)
Hinsichtlich der Nebenläufigkeit ist die Thread-Sicherheit bedingt (conditional): Ob die Implementierung threadsicher sein muss, wird über den im Konstruktor festgelegten ConcurrencyType gesteuert [SWS_DM_01493]. Die übergebenen Daten im Puffer proximityResponse bleiben gültig, bis das zugehörige Promise erfüllt oder die Verarbeitung durch einen CancellationHandler abgebrochen wird [SWS_DM_01493].
Die Funktion wirkt mit der Bereitstellung der Challenge via GetChallenge zusammen [SWS_DM_01398]. Erst nach erfolgreicher Validierung der Proximity-Antwort führt der Server angeforderte Aktionen aus, wie das Beenden einer Operation via Terminate an der SovdOperationExecution[SWS_DM_02179].
Dieser Verwendungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Adaptive R25-11 generiert.
gemini-3.8-flash-medium· 2026-10-13