Vermittelt I-PDUs per statischer Routing-Tabelle unverändert zwischen oberen und unteren Kommunikationsmodulen.
KI-GENERIERTungeprüftModell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 3a20c4ee9a26HerkunftOffene Fragen (1)
Kausaler Anker: R20-11Gültig ab R20-11Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13
Vermittelt I-PDUs per statischer Routing-Tabelle unverändert zwischen oberen und unteren Kommunikationsmodulen.
Der PDU Router vermittelt I-PDUs zwischen oberen Modulen wie Com und DCM, Communication Interfaces und Transportprotokollen. Er setzt dabei nur die I-PDU-IDs entlang konfigurierter Routing-Pfade um und verändert den Inhalt nicht [SWS_PduR_00160]. Zu seinen Aufgaben gehören Senden, Empfang, TriggerTransmit, segmentierte TP-Übertragungen und Gateways mit optionalem FIFO-Puffer. Geroutet wird ausschließlich im Zustand PDUR_ONLINE nach erfolgreichem PduR_Init [SWS_PduR_00328]. Zur Laufzeit lassen sich Routing-Pfadgruppen über PduR_EnableRouting und PduR_DisableRouting schalten.
Der PDU Router vermittelt I-PDUs zwischen oberen Modulen wie Com und DCM, Communication Interfaces wie CanIf, FrIf und LinIf sowie Transportprotokollen. Dabei verändert er die I-PDUs nicht [SWS_PduR_00160] und routet nur entlang konfigurierter Routing-Pfade [SWS_PduR_00162]. Seine Kernleistung ist die Umsetzung der I-PDU-IDs auf dem Sendepfad ebenso wie auf dem Bestätigungs- und Indikationspfad [SWS_PduR_00766]. Die Schnittstellen sind generisch; die Platzhalter <Up>, <Lo> und <LoTp> ergeben sich aus der Konfiguration PduRBswModules[SWS_PduR_00504].
Kontextdiagramm: Der PduR sitzt zwischen oberen Modulen und IF- bzw. TP-Modulen; BswM schaltet Pfadgruppen, Fehler gehen an den DET. Quellen: [SWS_PduR_00504], SWS PDU Router S. 16
Der PduR kennt nur die Zustände PDUR_UNINIT und PDUR_ONLINE[SWS_PduR_00324]. Geroutet wird ausschließlich in PDUR_ONLINE[SWS_PduR_00328]. Dorthin gelangt er durch PduR_Init(ConfigPtr)[SWS_PduR_00334]. Vorher melden alle Funktionen außer PduR_Init und PduR_GetVersionInfo den Fehler PDUR_E_UNINIT, sofern die Fehlererkennung aktiv ist [SWS_PduR_00119].
Zur Laufzeit schalten PduR_EnableRouting und PduR_DisableRouting ganze Routing-Pfadgruppen [SWS_PduR_00615][SWS_PduR_00617], typischerweise gesteuert vom BswM. Aufrufe auf einem deaktivierten Pfad enden mit E_NOT_OK[SWS_PduR_00717]. Entwicklungsfehler wie PDUR_E_PDU_ID_INVALID meldet der PduR an den DET [SWS_PduR_00100]. FIFO-Verluste meldet er als PDUR_E_PDU_INSTANCES_LOST[SWS_PduR_00670]. Eine eigene Fehlerbehandlung auf Interface-Pfaden gibt es nicht; Rückgabewerte gehen an die Quelle SWS PDU Router S. 46.
Rolle und Systemgrenze: I-PDU-Vermittlung zwischen oberen Modulen, Interfaces und Transportprotokollen
Der PDU Router (PduR) ist die zentrale Vermittlungsstelle des klassischen Kommunikationsstacks. Er nimmt I-PDUs von einem Quellmodul entgegen und überträgt sie unverändert und konsistent an ein oder mehrere Zielmodule [SWS_PduR_00160]. Geroutet wird ausschließlich entlang der konfigurierten Routing-Pfade [SWS_PduR_00162]. Ein Pfad ist eindeutig durch zwei Angaben bestimmt: die Quell-I-PDU-ID aus der PduR-Konfiguration und die Ziel-I-PDU-IDs aus den Konfigurationen der aufgerufenen Zielmodule [SWS_PduR_00161]. Die Kernleistung des PduR ist daher die Umsetzung von I-PDU-IDs. Sie gilt für den Sendepfad ebenso wie für den Bestätigungs- und Indikationspfad [SWS_PduR_00766]. Jedes Modul wählt seine Handle-IDs selbst; die Konfiguration verknüpft sie über die „globale“ Pdu ECU Configuration Abb. 3.13 S. 192.
Oberhalb des PduR liegen Module wie Com und DCM. Unterhalb liegen Communication Interfaces wie CanIf, FrIf und LinIf sowie Transportprotokolle wie CanTp, FrTp und LinTp SWS PDU Router S. 24. Die Schnittstellen sind generisch definiert. Die Platzhalter <Up>, <Lo> und <LoTp> werden über die in PduRBswModules referenzierte Modulkonfiguration ersetzt, bei CDDs über deren apiServicePrefix[SWS_PduR_00504]SWS PDU Router Abb. 10.2 S. 95. Unterstützt ein unteres Modul sowohl TP als auch IF, kommen die Infixe Tp und If hinzu [SWS_PduR_00800].
Ist PduRZeroCostOperation gesetzt und sind alle Routing-Pfade Pre-Compile, dürfen die Nachbarmodule einander direkt aufrufen [SWS_PduR_00287]. Ist mindestens ein Pfad nicht Pre-Compile, muss der Generator einen Fehler melden [SWS_PduR_00619]SWS PDU Router S. 56. Ungenutzte Merkmale soll der Generator wegoptimieren, also TP, IF, Gateway und FIFO [SWS_PduR_00764].
Lebenszyklus: von PDUR_UNINIT über PduR_Init nach PDUR_ONLINE
Sie setzt die konfigurierten Default-Werte der Sendepuffer [SWS_PduR_00308].
Sie aktiviert die Routing-Pfadgruppen gemäß Enable-at-start-Parameter [SWS_PduR_00709]. Spätere Fassungen nennen diesen Parameter PduRIsEnabledAtInitSWS PDU Router S. 131.
Vor der Initialisierung melden alle Funktionen außer PduR_Init und PduR_GetVersionInfo den Fehler PDUR_E_UNINIT, sofern PduRDevErrorDetect aktiv ist [SWS_PduR_00119]. PduR_GetVersionInfo[SWS_PduR_00338] wird über PduRVersionInfoApi freigeschaltet System Template S. 656.
Die Post-Build-Daten liegen in PduR_PBConfigType und sind in PduR_PBcfg.c implementiert [SWS_PduR_00241][SWS_PduR_00743]. Sie sind über PduRConfigurationId eindeutig identifiziert [SWS_PduR_00281]. Diese Kennung liefert PduR_GetConfigurationId[SWS_PduR_00341][SWS_PduR_00280] als uint16-basierten PduR_PBConfigIdType; ein Steuergerät kann mehrere wählbare Konfigurationen enthalten [SWS_PduR_00771]. Routing-Tabellen lassen sich zur Post-Build-Zeit aktualisieren [SWS_PduR_00295], allerdings nur im uninitialisierten Zustand [SWS_PduR_00296]. Der Speicherbedarf kann mit einer neuen Konfiguration wachsen und ist daher zur Designzeit einzuplanen SWS PDU Router S. 160.
Communication-Interface-Pfade: Transmit, TriggerTransmit und Bestätigungen
Ruft ein oberes Modul PduR_<User:Up>Transmit auf [SWS_PduR_00406], ruft der PduR <Lo>_Transmit für jedes Ziel [SWS_PduR_00625]. Dabei puffert er nicht [SWS_PduR_00629]. Für den Rückgabewert gilt:
Bei Multicast muss die obere Schicht dieselben Daten mehrfach liefern. Die Anfrage des ersten Ziels geht mit TP_CONFPENDING an die obere Schicht [SWS_PduR_00631], alle weiteren mit TP_DATARETRY[SWS_PduR_00632]. Die obere Schicht erhält nach der letzten Bestätigung eine einzige <Up>_TpTxConfirmation. Diese meldet E_OK, wenn mindestens ein Ziel E_OK gemeldet hat [SWS_PduR_00765]SWS PDU Router Abb. 9.10 S. 83.
Der TP-Empfang beginnt mit PduR_<User:LoTp>StartOfReception[SWS_PduR_00507]. Der PduR leitet ihn an <Up>_StartOfReception weiter [SWS_PduR_00549] und gibt dessen Rückgabe unverändert zurück [SWS_PduR_00623]. Danach folgen zwei Weiterleitungen:
Gateway-Betrieb: unmittelbare Weiterleitung, FIFO-Puffer und On-the-fly-TP
Zwischen Communication Interfaces routet der PduR 1:n [SWS_PduR_00436] und mit unmittelbarer Weiterleitung, also ohne eigene Ratenbildung [SWS_PduR_00437]. Gatewayt wird nur IF↔IF oder TP↔TP [SWS_PduR_00638]. Für die weitergegebene Länge gilt:
Ohne Pufferung gibt der PduR das Minimum aus empfangener Länge und konfigurierter Ziellänge weiter [SWS_PduR_00783].
Mit Pufferung kopiert er höchstens PduRPduMaxLength und verwirft den Rest [SWS_PduR_00746].
Eine I-PDU kann gleichzeitig lokal an Com gehen und auf einen zweiten CAN weitergeleitet werden SWS PDU Router Abb. 9.14 S. 114.
Wie das Ziel an die Daten kommt, legt PduRDestPduDataProvision fest:
Bei PDUR_DIRECT kopiert das Ziel die Daten beim Transmit selbst [SWS_PduR_00303].
Für TP-Gateways gibt es zwei Verfahren. Beim Direct Gatewaying startet <DstLoTp>_Transmit in der RxIndication mit E_OK[SWS_PduR_00551]. Beim On-the-fly-Gatewaying startet die Weitersendung bereits, sobald PduRTpThreshold erreicht ist [SWS_PduR_00317]. Dann ist nur ein Ziel erlaubt [SWS_PduR_00708], und bereits gesendete Daten werden nicht wiederholt [SWS_PduR_00707]SWS PDU Router S. 58. Den Puffer wählt der PduR nach Größe:
Passt die Nachricht in PduRPduMaxLength, nutzt er den dedizierten Puffer [SWS_PduR_00797].
Andernfalls holt er dynamisch einen Puffer aus PduRTxBuffer[SWS_PduR_00798].
Mit der TxConfirmation gibt er den Puffer frei [SWS_PduR_00637]. Soll die I-PDU zusätzlich lokal empfangen werden, ruft der PduR <UpTp>_StartOfReception, <UpTp>_CopyRxData und <UpTp>_RxIndication in dieser Reihenfolge auf [SWS_PduR_00789]. Dafür muss er puffern, weil der DCM vom Gateway nichts weiß SWS PDU Router S. 112.
Routing-Pfadgruppen: Routing zur Laufzeit schalten
Routing-Pfadgruppen bündeln Pfade je Netzwerk oder PDU-Art. Geschaltet werden sie typischerweise vom BswM SWS PDU Router S. 69. Dazu dienen PduR_EnableRouting(id)[SWS_PduR_00615] und PduR_DisableRouting(id, initialize)[SWS_PduR_00617]; die Kennung ist vom Typ uint16[SWS_PduR_00654]. Die Aktivierung wirkt sofort [SWS_PduR_00715]. Beim Deaktivieren gelten folgende Regeln:
initialize entscheidet, ob Einzelpuffer auf den Default-Wert zurückgesetzt werden [SWS_PduR_00617].
FIFOs der gestoppten Pfade werden geleert, und der PduR meldet PDUR_E_PDU_INSTANCES_LOST[SWS_PduR_00663].
Der Mode Management Guide empfiehlt die Pfadgruppen für I-PDUs ohne Com-I-PDU-Gruppe, etwa für LdCom. Geschaltet wird über BswM-Regeln, beispielsweise abhängig vom Partial-Network-Zustand Mode Management Guide S. 50. Die BswM-Aktion BswMPduRouterControl ruft dazu PduR_EnableRouting bzw. PduR_DisableRouting auf SWS BSW Mode Manager S. 145. Bei n:1-Routing auf ein lokales Modul darf zur Laufzeit höchstens ein Pfad aktiv sein System Template S. 736[SWS_PduR_00615].
Die folgenden Stellen tragen die Aussagen dieses Leitfadens. Die Sequenzen in Kapitel 9 der Spezifikation veranschaulichen sie, etwa SWS PDU Router Abb. 9.5 S. 100.
KI-generierter Leitfaden auf Basis der Requirements des SWS PDU Router (R20-11) und zugeordneter Dokumentstellen; normativ sind ausschließlich die verlinkten Requirements. Als Interpretation gekennzeichnete Aussagen bitte an der Spezifikation prüfen.
PDU Router (PduR)
The PDU Router routes I-PDUs between communication interfaces, transport protocols, and upper layers without payload inspection.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8eca52c90f1cHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone und nicht reentrante Funktion PduR_Init initialisiert den PDU-Router [SWS_PduR_00334]. Als Parameter übernimmt sie mit ConfigPtr einen Zeiger auf die Post-Build-Konfiguration des Moduls (PduR_PBConfigType) und liefert keinen Rückgabewert [SWS_PduR_00334]. Im Rahmen der Initialisierung belegt PduR_Init alle PDU-Sendepuffer mit den konfigurierten Standardwerten vor [SWS_PduR_00308].
Zusammenspiel und Reihenfolgebedingungen
Nach dem Einschalten befindet sich das Modul zunächst im Zustand PDUR_UNINIT[SWS_PduR_00325]. PduR_Init muss vor allen anderen Funktionen des Moduls aufgerufen werden, da andere Schnittstellen – mit Ausnahme von PduR_GetVersionInfo – im uninitialisierten Zustand den Fehler PDUR_E_UNINIT über das DET melden, sofern PduRDevErrorDetect aktiviert ist [SWS_PduR_00119].
Fehlerbehandlung und Nebenläufigkeit
Wird PduR_Init in einem anderen Zustand als PDUR_UNINIT aufgerufen, wird dies als PDUR_E_UNINIT gewertet [SWS_PduR_00100]. Bei einem ungültigen Konfigurationszeiger oder der Übergabe eines Null-Zeigers greifen die Fehlercodes PDUR_E_INIT_FAILED beziehungsweise PDUR_E_PARAM_POINTER[SWS_PduR_00100]. Aufgrund der fehlenden Reentranz darf kein paralleler Aufruf der Initialisierungsroutine erfolgen [SWS_PduR_00334].
Dieser Text wurde von einer KI basierend auf der AUTOSAR-Spezifikation R20-11 generiert.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e3aad02fdb37HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Funktion PduR_EnableRouting (Service-ID 0xf3) dient der gezielten Aktivierung einer definierten Routing-Pfadgruppe im PDU-Router ([SWS_PduR_00615]). Als einzigen Parameter übernimmt sie die Gruppenkennung id vom Typ PduR_RoutingPathGroupIdType, welche die zugehörige Routing-Pfadgruppe in der Konfiguration des PDU-Routers adressiert ([SWS_PduR_00615]). Der Aufruf besitzt keinen Rückgabewert und ist über die Header-Datei PduR.h verfügbar ([SWS_PduR_00615]).
Für den fehlerfreien Einsatz sind die Systemzustände und Parametergrenzen maßgeblich: Vor dem Aufruf muss das Modul PduR vollständig initialisiert sein, da die Ausführung im uninitialisierten Zustand den Fehler PDUR_E_UNINIT auslöst ([SWS_PduR_00100]). Falls der Funktion PduR_EnableRouting ein ungültiger Routing-Tabellen- bzw. Pfadgruppen-Identifikator übergeben wird, führt dies zum Fehler PDUR_E_ROUTING_PATH_GROUP_ID_INVALID mit dem Fehlerwert 0x08 ([SWS_PduR_00100]).
Hinsichtlich Nebenläufigkeit ist die Schnittstelle als reentrant deklariert ([SWS_PduR_00615]), sodass parallele Aufrufe zur Steuerung von Pfadgruppen grundsätzlich zulässig sind. Im Gesamtsystem dient die Funktion der dynamischen Freischaltung von Kommunikationsbeziehungen; vermutlich wird der Dienst typischerweise durch übergeordnete Instanzen wie den Modusmanager ausgelöst, um Routing-Pfade abhängig von System- oder Netzwerkzuständen zur Laufzeit zu aktivieren. Frage Q-365f4b81f59f3511 (offen)
Automatisch generierter Nutzungshinweis auf Basis der AUTOSAR-Classic-Spezifikation (Release R20-11).
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 79b319e1f13bHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Funktion PduR_DisableRouting dient dem Deaktivieren einer konfigurierten Routing-Pfadgruppe ([SWS_PduR_00617]). Sie ist reentrant ausgelegt und besitzt keinen Rückgabewert ([SWS_PduR_00617]).
Parameter und Verhalten
id (PduR_RoutingPathGroupIdType): Identifikation der zu deaktivierenden Routing-Pfadgruppe, wie sie in der Konfiguration des PDU-Routers definiert ist ([SWS_PduR_00617]).
initialize (boolean): Steuert das Pufferverhalten beim Deaktivieren. Bei Übergabe von true werden Single-Buffer auf ihren Standardwert initialisiert; bei false behalten Single-Buffer ihren aktuellen Wert bei ([SWS_PduR_00617]).
Fehlerbehandlung und Randbedingungen
Im Fehlerfall sind laut Fehlertabelle spezifische Fehlercodes definiert ([SWS_PduR_00100]):
Wird die Funktion aufgerufen, ohne dass das Modul initialisiert ist, ist der Fehlercode PDUR_E_UNINIT (0x01) vorgesehen ([SWS_PduR_00100]).
Wird an PduR_DisableRouting eine ungültige Routing-Tabelle bzw. Gruppen-ID übergeben, ist der Fehler PDUR_E_ROUTING_PATH_GROUP_ID_INVALID (0x08) spezifiziert ([SWS_PduR_00100]).
Die Funktion steht über den Header PduR.h zur Verfügung ([SWS_PduR_00617]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.
Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9763b14fa079Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Der Enumerationstyp PduR_StateType spezifiziert gemäß [SWS_PduR_00742] die Zustände des PDU-Routers. Der Datentyp wird über die Header-Datei PduR.h zur Verfügung gestellt und dient im PDU-Router als formale typisierte Grundlage zur Repräsentation des jeweiligen Initialisierungszustands innerhalb des Moduls sowie für aufrufende Komponenten.
Gemäß der Anforderung [SWS_PduR_00324] besteht das PDU-Router-Modul aus genau zwei Betriebszuständen, die durch die Enumerationswerte von PduR_StateType festgelegt werden. Der nach [SWS_PduR_00742] definierte Wertebereich umfasst folgende Werte:
PDUR_UNINIT: Kennzeichnet den Zustand, in dem der PDU-Router nicht initialisiert ist ([SWS_PduR_00742]).
PDUR_ONLINE: Signalisiert, dass der PDU-Router erfolgreich initialisiert wurde und betriebsbereit ist ([SWS_PduR_00742]).
Im Rahmen des Zusammenspiels der Spezifikationsanforderungen fungiert PduR_StateType als verbindliche Festlegung für das interne und externe Zustandsmodell des PDU-Routers ([SWS_PduR_00324]). Da der Wertebereich laut [SWS_PduR_00742] ausschließlich auf PDUR_UNINIT und PDUR_ONLINE beschränkt ist, unterscheidet die Spezifikation hier strikt zwischen dem uninitialisierten Ausgangszustand und dem Zustand nach erfolgreicher Initialisierung. Zusätzliche Zwischenstufen, Teilbetriebsmodi oder spezifische Fehlerzustände sind im Wertebereich von PduR_StateType nicht vorgesehen.
Automatisch generierter Nutzungshinweis auf Basis der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
Request a governed re-review of this record. The record is not changed immediately.
Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.
claude-opus-5-5· 2026-10-13