AUTOSAR_CP_SWS_IntrusionDetectionSystemManager
FIG-52f7656cd4b061e2
915 × 314 px
1 Release(s)
Figure 7.4: Use of Event Buffers and Context Data Buffers
SHA-256 Inhalts-Fingerabdruck:
52f7656cd4b061e26ade944e76b637412a731d2051fe1659ac50a46269e0c3c9
✦
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
- Diagrammtyp: Konzeptionelles Datenfluss- und Speicherarchitektur-Diagramm (Pufferzuweisungs- und Verknüpfungsmodell / Queueing-Mechanismus).
- Funktionale Einordnung: AUTOSAR Classic Platform, BSW-Sicherheitsarchitektur, Intrusion Detection System Manager (
IdsM). - Technischer Zweck: Visualisierung des deterministischen Speicher- und Entkopplungsmodells zwischen synchronem Empfang von Security Events (SEv via API) und deren asynchroner Weiterverarbeitung im zyklischen Taskkontext (
IdsM_MainFunction). Zeigt die Trennung von fest dimensionierten Event-Metadaten und variabel dimensionierten Kontextdaten (Context Data) zur Vermeidung dynamischer Speicherallokation im automobilen Steuergerät.
2. Komponenten, Entitäten & Schnittstellen
- Event Buffer Pool (Links):
- Pufferpool für Event-Deskriptoren/Metadaten fester Größe (z. B. Event-ID, Zeitstempel, Zähler, Filterstatus).
- Verwaltet als Freispeicherliste/Ringpuffer mit fester Elementanzahl (statisch konfiguriert).
- Context Data Buffer Pool (Mitte):
- Mehrstufiger Pufferpool mit statisch partitionierten Speicherblöcken unterschiedlicher Größe (
Size, diskrete Blockgrößen) und Belegungsstatus (Status:Unusedvs.In Use). - Realisiert ein deterministisches Best-Fit-/First-Fit-Verfahren („most adequate size“) ohne Heap-Fragmentierung (
malloc-Verbot).
- Mehrstufiger Pufferpool mit statisch partitionierten Speicherblöcken unterschiedlicher Größe (
- Event Data Buffer Filled (Unten, blau):
- Konkrete Instanz eines aus dem Event-Pool allozierten und mit SEv-Basisdaten beschriebenen Pufferelements.
- Optional Context Data Buffer Linked (Mitte-Unten, orange):
- Zugewiesener Kontextdatenpuffer aus dem Context-Pool; über Pointer bidirektional bzw. referentiell fest an den Event Data Buffer gekoppelt (
Linked). - Nur aktiv, wenn das gemeldete SEv Nutzdaten/Payload (z. B. CAN-Frame-Dump, PDU-Fragmente) mitführt.
- Zugewiesener Kontextdatenpuffer aus dem Context-Pool; über Pointer bidirektional bzw. referentiell fest an den Event Data Buffer gekoppelt (
- Collection of events to be processed asynchronously (Rechts):
- Asynchrone FIFO-Queue/Event-Warteschlange zur Übergabe an die interne Filter- und Qualifizierungs-Pipeline der MainFunction.
3. Dynamisches Verhalten & Sequenzablauf
- Trigger / API-Aufruf (Synchroner Pfad):
- Ein Software-Sensor (BSW-Modul wie
CanSM,SecOCoder SW-C via RTE) meldet ein Security Event überIdsM_SetSecurityEvent().
- Ein Software-Sensor (BSW-Modul wie
- Event-Pufferallokation:
- Entnahme eines freien Blocks aus dem
Event Buffer Pool. Tritt ein Pufferüberlauf auf (Pool erschöpft), greift die konfigurierte Pufferüberlaufstrategie (Drop Event, Logging via Det/Dem).
- Entnahme eines freien Blocks aus dem
- Kontextdaten-Allokation & Modifikation (Optional):
- Führt das SEv Kontextdaten mit, ermittelt der
IdsMimContext Data Buffer Poolden kleinstmöglichen Block, dessen Kapazität mindestenscontextDataSizeentspricht. - Gemäß
[SWS_IdsM_00750](Upstream:RS_Ids_00200): Ist ein Context Data Modifier konfiguriert (IdsMContextDataModifierCallout) und der Reporting-ModusDETAILEDoderDETAILED_BYPASSING_FILTERS, wird der Callout synchron unmittelbar nach Meldung des SEv ausgeführt, um Kontextdaten vor Pufferung zu modifizieren/anzupassen. - Markierung des gewählten Kontextblocks als
In Useund logische Verknüpfung mit dem Event-Puffer.
- Führt das SEv Kontextdaten mit, ermittelt der
- Einreihung in asynchrone Queue:
- Übergabe des verknüpften Pufferpaars (
Event Data Buffer+ optionalerContext Data Buffer) in dieCollection of events to be processed asynchronously.
- Übergabe des verknüpften Pufferpaars (
- Asynchrone Abarbeitung (
IdsM_MainFunction):- Zyklisches Auslesen der Queue im Task-Kontext.
- Ausführung der IdsM-Filterketten (Stateful-, Threshold-, Frequency-Filter) und PDU-Aggregation (QvIs-PDU-Generierung).
- Nach Verarbeitung oder Filter-Verwerfung: Rückgabe beider Puffer in ihre jeweiligen Freispeicher-Pools (
Statuswechselt wieder aufUnused).
4. Normative Relevanz & Entwickler-Hinweise
- Speicherdimensionierung (BSW-Konfiguration):
- Die Größenklassen und Instanzanzahlen beider Pools müssen zur Generierungszeit über die Parameter
IdsMEventBufferPoolundIdsMContextDataBufferPoolim AUTOSAR-Toolchain-Editor präzise dimensioniert werden. - Eine Fehlkonfiguration der Puffergrößenklassen führt zu Fragmentierungsverschnitt oder zu Pufferabwürfen unter Last.
- Die Größenklassen und Instanzanzahlen beider Pools müssen zur Generierungszeit über die Parameter
- Interrupt-Sicherheit & Kritische Abschnitte:
- Da
IdsM_SetSecurityEvent()aus ISR- oder preemptiven Task-Kontexten aufgerufen werden kann, müssen die Puffer-Zuweisung und der Statuswechsel (Unused→In Use) durch Schollsperren (SchM_Enter_IdsM_.../SchM_Exit_IdsM_...) vor Race Conditions geschützt sein.
- Da
- Zero-Copy & Effizienz:
- Der Entwickler von
IdsMContextDataModifierCalloutmuss sicherstellen, dass die Modifikation in-place bzw. mit minimaler Latenz erfolgt, da dieser Callout den synchronen Pfad des meldenden Treibers/der SW-C blockiert.
- Der Entwickler von
- Lebenszyklus von Zeigern:
- Die an
IdsM_SetSecurityEvent()übergebenen Kontextdaten-Zeiger dürfen vom Aufrufer nach Rückkehr der Funktion verworfen werden; der IdsM kopiert die Daten zwingend in den reservierten Context-Puffer, bevor die API zurückkehrt.
- Die an
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.