AUTOSAR_CP_SWS_CryptoServiceManager
FIG-563548a94b84c7e7
788 × 702 px
1 Release(s)
Figure 7.5: Csm_<Service> Function Behavior
SHA-256 Inhalts-Fingerabdruck:
563548a94b84c7e767deb29492e14bc1e45715246a4c421ceb2fd688401ab2fc
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Aktivitätsdiagramm (Kontrollfluss-/Entscheidungsmodell).
- Funktionale Einordnung: Spezifiziert die Dispatch- und Queuing-Entscheidungslogik innerhalb des Crypto Service Managers (CSM) (AUTOSAR Classic Platform, Service Layer) bei Eintritt in eine kryptografische Service-Funktion (
Csm_<Service>()bzw.Csm_ProcessJob()). - Technischer Zweck: Das Diagramm regelt das Verhalten bezüglich Streaming-Fortführungen, Priorisierung synchroner Aufrufe gegenüber gepufferten Jobs und die Pufferung bzw. Weiterleitung asynchroner Jobs an das Crypto Interface (CryIf) gemäß SWS_Csm_00950 und SWS_Csm_00954.
2. Komponenten, Entitäten & Schnittstellen
- Module & Schichten:
- CSM (
Csm): Service-Schicht; hostet Service-APIs und verwaltet die prioritätsbasierte Software-Warteschlange (CSM Queue). - CryIf (
CryIf): Hardware Abstraction Layer; Ziel für den AufrufCryIf_ProcessJob().
- CSM (
- Datenstrukturen & Attribute:
Crypto_JobType: Job-Objekt mit Zustand (jobState:CRYPTO_JOBSTATE_ACTIVEvs.IDLE), Ausführungsart (jobPrimitiveInfo->processingType:CRYPTO_PROCESSING_SYNCvs.ASYNC) und Priorität (jobPriority).CSM Queue: Ringpuffer/Prioritäts-Queue zur Verwaltung anstehender asynchroner Krypto-Aufträge.
- Schnittstellen & Rückgabewerte:
CryIf_ProcessJob(uint32 channelId, Crypto_JobType* job): Abwärtsgerichteter Treiber-/Interface-Aufruf.- Return-Codes:
E_OK,CRYPTO_E_BUSY/BUSY.
3. Dynamisches Verhalten & Sequenzablauf
Der Kontrollfluss teilt sich anhand von Job-Zustand und Verarbeitungsmodus in drei Hauptpfade:
- Aktiver Job (Streaming-Fortsetzung /
JOB = ACTIVE? -> [yes]):- Befindet sich der Job bereits im Zustand
ACTIVE(Folgeaufruf vonCRYPTO_OPERATIONMODE_UPDATEoderFINISH), wird jegliche Queue-Prüfung umgangen. - Aktion: Sofortiger Durchstich via
retVal = CryIf_ProcessJob(). Das Ergebnis wird unmittelbar zurückgegeben.
- Befindet sich der Job bereits im Zustand
- Synchroner Job (
JOB = ACTIVE? -> [no]&JOB = SYNC? -> [yes]):- Entscheidung: Vergleich der Job-Priorität mit dem höchsten Prioritätswert aller aktuell in der CSM-Queue befindlichen Jobs (
Is the job priority higher than the highest in the queue?). [yes]: Job genießt Vorrang → Direkte Weiterleitung viaretVal = CryIf_ProcessJob().[no]: Um Prioritätsinversion und Blockaden zu verhindern, wird der synchrone Aufruf abgewiesen → Rückgabe vonBUSY(CRYPTO_E_BUSY).
- Entscheidung: Vergleich der Job-Priorität mit dem höchsten Prioritätswert aller aktuell in der CSM-Queue befindlichen Jobs (
- Asynchroner Job (
JOB = ACTIVE? -> [no]&JOB = SYNC? -> [no]):- Prüfung:
Csm queue empty?[yes](Queue ist leer): Unmittelbarer Ausführungsversuch viaretVAL = CryIf_ProcessJob().- Ist der Rückgabewert
retVal != BUSY(Treiber nimmt Job an): Beendigung mit diesem Status (typischerweiseE_OK). - Ist
retVal == BUSY(unterliegender Treiber/Kanal belegt): Übergang zur Pufferungslogik.
- Ist der Rückgabewert
[no](Queue enthält bereits Jobs): Direkter Übergang zur Pufferungslogik (Wahrung der FIFO-/Prioritätsreihenfolge).
- Pufferungslogik (
CSM queue full?):[yes]: Queue erschöpft → Rückgabe vonCrypto_E_BUSY.[no]:Enqueue job CSM queue→ Job wird in die Warteschlange eingereiht (Erfolg, asynchrone Bearbeitung viaCsm_MainFunction()).
- Prüfung:
4. Normative Relevanz & Entwickler-Hinweise
- Treiber- und Stack-Implementierung (CSM/CryIf):
- Prioritätsinversion: Synchrone Jobs dürfen nicht ausgeführt werden, wenn in der Queue höher priorisierte Jobs warten; der Treiber darf in diesem Fall nicht blockiert werden (
SWS_Csm_00954). - Streaming-Konsistenz: Für Jobs im Modus
UPDATE/FINISHdarf keine Neu-Einreihung in die Queue erfolgen. Ein Kontextwechsel innerhalb der Crypto-Hardware während eines mehrteiligen Jobs wird durch die direkte Weiterleitung vermieden (SWS_Csm_00950). - Concurrency & Critical Sections: Die Prüfungen (
JOB = ACTIVE, Queue-Füllstand, Prioritätsvergleich) sowie das Enqueueing müssen zwingend über atomare Operationen oder OS-Interrupt-Sperren (SchM_Enter_Csm_*) geschützt werden, daCsm_<Service>()reentrant aus verschiedenen Task-Kontexten aufgerufen werden kann.
- Prioritätsinversion: Synchrone Jobs dürfen nicht ausgeführt werden, wenn in der Queue höher priorisierte Jobs warten; der Treiber darf in diesem Fall nicht blockiert werden (
- BSW-Konfiguration (
Csm.epc):- Dimensionierung des Parameters
CsmQueueSize: Bei zu klein gewählter Queue schlagen Bursts asynchroner Aufrufer (z. B. SecOC-PDU-Verifikation bei CAN-Spitzen) mitCRYPTO_E_BUSYfehl.
- Dimensionierung des Parameters
- Applikations-/Stack-Nutzung (z. B. SecOC, KeyM, TLS):
- Asynchrone Aufrufer müssen vorbereitet sein, dass selbst bei Rückgabewert
CRYPTO_E_BUSYkein harter Fehler (E_NOT_OK) vorliegt, sondern Retry-Mechanismen initiiert werden müssen.
- Asynchrone Aufrufer müssen vorbereitet sein, dass selbst bei Rückgabewert
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.