DEENESPTFRRUARHIKOZHNL
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 Aufruf CryIf_ProcessJob().
  • Datenstrukturen & Attribute:
    • Crypto_JobType: Job-Objekt mit Zustand (jobState: CRYPTO_JOBSTATE_ACTIVE vs. IDLE), Ausführungsart (jobPrimitiveInfo->processingType: CRYPTO_PROCESSING_SYNC vs. 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:

  1. Aktiver Job (Streaming-Fortsetzung / JOB = ACTIVE? -> [yes]):
    • Befindet sich der Job bereits im Zustand ACTIVE (Folgeaufruf von CRYPTO_OPERATIONMODE_UPDATE oder FINISH), wird jegliche Queue-Prüfung umgangen.
    • Aktion: Sofortiger Durchstich via retVal = CryIf_ProcessJob(). Das Ergebnis wird unmittelbar zurückgegeben.
  2. 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 via retVal = CryIf_ProcessJob().
    • [no]: Um Prioritätsinversion und Blockaden zu verhindern, wird der synchrone Aufruf abgewiesen → Rückgabe von BUSY (CRYPTO_E_BUSY).
  3. Asynchroner Job (JOB = ACTIVE? -> [no] & JOB = SYNC? -> [no]):
    • Prüfung: Csm queue empty?
      • [yes] (Queue ist leer): Unmittelbarer Ausführungsversuch via retVAL = CryIf_ProcessJob().
        • Ist der Rückgabewert retVal != BUSY (Treiber nimmt Job an): Beendigung mit diesem Status (typischerweise E_OK).
        • Ist retVal == BUSY (unterliegender Treiber/Kanal belegt): Übergang zur Pufferungslogik.
      • [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 von Crypto_E_BUSY.
      • [no]: Enqueue job CSM queue → Job wird in die Warteschlange eingereiht (Erfolg, asynchrone Bearbeitung via Csm_MainFunction()).

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/FINISH darf 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, da Csm_<Service>() reentrant aus verschiedenen Task-Kontexten aufgerufen werden kann.
  • 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) mit CRYPTO_E_BUSY fehl.
  • Applikations-/Stack-Nutzung (z. B. SecOC, KeyM, TLS):
    • Asynchrone Aufrufer müssen vorbereitet sein, dass selbst bei Rückgabewert CRYPTO_E_BUSY kein harter Fehler (E_NOT_OK) vorliegt, sondern Retry-Mechanismen initiiert werden müssen.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R24-11 → R25-11 keine inhaltliche Änderung Vorgänger: FIG-0039ffd2482a3664

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

JOB = ACTIVE? | retVal = CryIf_ProcessJob() | JOB = SYNC? | Csm queue | empty? | retVAL = CryIf_ProcessJob() | Is the job priority | higher than the | highest in the | queue? retVal = BUSY | CSM queue full? | Return BUSY Return Crypto_E_BUSY | Enqueue | job CSM | queue | [yes] | [no] | [no] | [yes] | [yes] | [yes] | [no] | [no] | [yes] | [yes] | [no] | [no]

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_CP_SWS_CryptoServiceManager S. 30 7.5 Figure 7.5: Csm_<Service> Function Behavior