Teil 2 hat die API gezeigt. Dieser Teil zeigt die ARXML-Seite — und zwar mit den tatsächlichen Container- und Parameternamen aus Kapitel 10 der SWS, nicht mit den vereinfachten Platzhaltern (EthSwtConfigSet, EthSwtVlan), die in der ursprünglichen Themenplanung als Arbeitshypothese standen.

Die Container-Hierarchie

EthSwt
 └── EthSwtConfig                     (Post-Build-Konfigurationssatz)
      └── EthSwtPort                  (1..* — eine Instanz pro Switch-Port)
           ├── EthSwtPortIdx
           ├── EthSwtPortTrcvRef
           ├── EthSwtPortMacLayerType / -Speed / -SubType
           ├── EthSwtPortRole
           ├── EthSwtPortTimeStampSupport
           ├── EthSwtFramePreemptionEnable
           ├── EthSwtPortMacSecEnabled (+ Bypass-Listen)
           ├── EthSwtPortEgress        (1 — Egress-Verhalten)
           └── EthSwtPortIngress       (1 — Ingress-Verhalten, u. a. VLAN)
                ├── EthSwtPortIngressDefaultVlan
                ├── EthSwtPortIngressDefaultPriority
                ├── EthSwtPortIngressDropUntagged
                ├── EthSwtPortIngressVlanTranslationTable (0..1)
                │    └── EthSwtPortIngressVlanTranslationTableEntry (0..*)
                │         (IngressVlanID → TranslatedVlanID)
                └── EthSwtPortPriorityRegeneration (genau 8 — eine je Priorität)

Anders als ursprünglich angenommen gibt es keinen eigenständigen EthSwtVlan-Container mit freistehender EthSwtVlanId. VLAN-Zuordnung ist Teil von EthSwtPortIngress (Default-VLAN, Ingress-VLAN-Translation) bzw. wird — für Tagging/Membership im engeren Sinn — über die Ingress-Filterung der Funktionalspezifikation (Kapitel 7.1.7.2.4.1 "Vlan-Membership") abgebildet, die in Teil 4 dieser Serie vertieft wird.

Die wichtigsten Parameter von EthSwtPort

ParameterBedeutung

EthSwtPortIdx

Instanz-ID des Ports (0..255) — Pre-Compile-Parameter, withAuto = true

EthSwtPortTrcvRef

Referenz auf den zugehörigen EthTrcv-Port (Verknüpfung zur EthTrcv-Serie); optional — MAC-only-Ports ohne PHY-Chip lassen dies leer

EthSwtPortMacLayerType / EthSwtPortMacLayerSpeed / -SubType

Anbindungsart und Geschwindigkeit des Ports (z. B. ETH_MAC_LAYER_SPEED_1G, _2500M, _5G, _10G — die Spec deckt ausdrücklich Multi-Gigabit-Interfaces ab)

EthSwtPortRole

U. a. ETHSWT_UP_LINK_PORT — relevant für kaskadierte Switches (siehe Teil 1 und den Global-Time-Post dieser Serie)

EthSwtPortTimeStampSupport

Hardware-Zeitstempel für diesen Port aktivieren (Pflichtparameter, Multiplizität 1) — Grundlage für EthTSyn/gPTP

EthSwtFramePreemptionEnable

Frame Preemption (IEEE 802.1Q) für diesen Port, Default false — Details im TSN-Post dieser Serie

EthSwtPortMacSecEnabled + Bypass-Listen

MACsec direkt im Switch-Port aktivieren, inkl. Bypass für bestimmte EtherTypes/VLANs/Ziel-MAC-Adressen — eigener Post in dieser Serie

VLAN-Parameter in EthSwtPortIngress

ParameterBedeutung

EthSwtPortIngressDefaultVlan

VLAN-ID, die einem eingehenden, nicht getaggten Frame zugewiesen wird

EthSwtPortIngressDefaultPriority

Default-Priorität (0–7) für eingehende Frames ohne PCP-Tag

EthSwtPortIngressDropUntagged

Steuert, ob untagged Frames an diesem Port verworfen werden

EthSwtPortIngressVlanTranslationTable / …​TableEntry

Optionale Tabelle von (IngressVlanID → TranslatedVlanID)-Paaren — die eingehende VLAN-ID wird beim Ingress durch eine andere ersetzt

EthSwtPortPriorityRegeneration

Genau 8 Einträge (einer je PCP-Wert 0–7), die eingehende Priorität auf eine regenerierte Priorität abbilden — laut SWS immer vorhanden, weil ein Switch grundsätzlich eine Priority-Regeneration durchführt

EthSwtPortPriorityRegeneration ist ein gutes Beispiel dafür, wie AUTOSAR Hardware-Verhalten zwingend abbildet: Die SWS begründet die Pflicht- Multiplizität von genau 8 Einträgen damit, dass "ein Ethernet-Switch immer eine Priority-Regeneration durchführt" — das ist also keine optionale Software-Funktion, sondern ein Stück Switch-Fabric-Verhalten, das im ARXML abgebildet werden muss, ob man es nutzt oder nicht.

Vollständiges ARXML-Beispiel (Auszug, vereinfacht)

<ECUC-CONTAINER-VALUE>
  <SHORT-NAME>EthSwtConfig_0</SHORT-NAME>
  <DEFINITION-REF>/AUTOSAR/EthSwt/EthSwtConfig</DEFINITION-REF>
  <SUB-CONTAINERS>

    <ECUC-CONTAINER-VALUE>
      <SHORT-NAME>EthSwtPort_0</SHORT-NAME>
      <DEFINITION-REF>/AUTOSAR/EthSwt/EthSwtConfig/EthSwtPort</DEFINITION-REF>
      <PARAMETER-VALUES>
        <ECUC-NUMERICAL-PARAM-VALUE>
          <DEFINITION-REF>.../EthSwtPortIdx</DEFINITION-REF>
          <VALUE>0</VALUE>
        </ECUC-NUMERICAL-PARAM-VALUE>
        <ECUC-TEXTUAL-PARAM-VALUE>
          <DEFINITION-REF>.../EthSwtPortMacLayerSpeed</DEFINITION-REF>
          <VALUE>ETH_MAC_LAYER_SPEED_1G</VALUE>
        </ECUC-TEXTUAL-PARAM-VALUE>
        <ECUC-REFERENCE-VALUE>
          <DEFINITION-REF>.../EthSwtPortTrcvRef</DEFINITION-REF>
          <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/.../EthTrcv_Port0</VALUE-REF>
        </ECUC-REFERENCE-VALUE>
      </PARAMETER-VALUES>
      <SUB-CONTAINERS>
        <ECUC-CONTAINER-VALUE>
          <SHORT-NAME>EthSwtPortIngress_0</SHORT-NAME>
          <DEFINITION-REF>.../EthSwtPort/EthSwtPortIngress</DEFINITION-REF>
          <PARAMETER-VALUES>
            <ECUC-NUMERICAL-PARAM-VALUE>
              <DEFINITION-REF>.../EthSwtPortIngressDefaultVlan</DEFINITION-REF>
              <VALUE>10</VALUE>
            </ECUC-NUMERICAL-PARAM-VALUE>
            <ECUC-NUMERICAL-PARAM-VALUE>
              <DEFINITION-REF>.../EthSwtPortIngressDropUntagged</DEFINITION-REF>
              <VALUE>false</VALUE>
            </ECUC-NUMERICAL-PARAM-VALUE>
          </PARAMETER-VALUES>
        </ECUC-CONTAINER-VALUE>
      </SUB-CONTAINERS>
    </ECUC-CONTAINER-VALUE>

    <!-- weitere EthSwtPort-Instanzen (1..N) analog -->

  </SUB-CONTAINERS>
</ECUC-CONTAINER-VALUE>

Typische Konfigurationsfehler

  • Fehlende oder falsche EthSwtPortTrcvRef — der Port referenziert keinen oder den falschen EthTrcv, wodurch EthSwt_GetSwitchPortMode später ETHSWT_E_SYNCPORT2PHY meldet (siehe Teil 2)

  • Unvollständige EthSwtPortPriorityRegeneration — weniger oder mehr als 8 Einträge sind laut Spec ein Konfigurationsfehler, nicht nur ein Stilproblem

  • EthSwtPortIngressDropUntagged falsch gesetzt — untagged Management- oder Boot-Traffic wird ungewollt verworfen

  • Verwechslung von Default-VLAN und VLAN-Translation — ein Default-VLAN gilt nur für untagged Frames, eine Translation-Table-Entry wirkt dagegen auf bereits getaggte Frames mit passender IngressVlanID

Serie

TeilThemaStatus

1

Grundlagen, SWS & Architektur

fertig

2

API & Initialisierung

fertig

3

ARXML-Konfiguration

dieser Post

4

VLAN-Management, Mirroring & Diagnose

folgt


Weiter in der EthSwt-Serie: EthSwt Teil 4 — VLAN-Management, Mirroring & Diagnose