Part 2 covered the API. This part covers the ARXML side — using the actual
container and parameter names from chapter 10 of the SWS, not the
simplified placeholders (EthSwtConfigSet, EthSwtVlan) that served as a
working hypothesis in the original topic planning.
The container hierarchy
EthSwt
└── EthSwtConfig (post-build configuration set)
└── EthSwtPort (1..* — one instance per switch port)
├── EthSwtPortIdx
├── EthSwtPortTrcvRef
├── EthSwtPortMacLayerType / -Speed / -SubType
├── EthSwtPortRole
├── EthSwtPortTimeStampSupport
├── EthSwtFramePreemptionEnable
├── EthSwtPortMacSecEnabled (+ bypass lists)
├── EthSwtPortEgress (1 — egress behavior)
└── EthSwtPortIngress (1 — ingress behavior, incl. VLAN)
├── EthSwtPortIngressDefaultVlan
├── EthSwtPortIngressDefaultPriority
├── EthSwtPortIngressDropUntagged
├── EthSwtPortIngressVlanTranslationTable (0..1)
│ └── EthSwtPortIngressVlanTranslationTableEntry (0..*)
│ (IngressVlanID → TranslatedVlanID)
└── EthSwtPortPriorityRegeneration (exactly 8 — one per priority)Contrary to the original assumption, there is no standalone
|
The key parameters of EthSwtPort
| Parameter | Meaning |
|---|---|
| Instance ID of the port (0..255) — pre-compile parameter,
|
| Reference to the associated |
| Connection type and speed of the port (e.g. |
| Among others |
| Enables hardware timestamps for this port (mandatory parameter, multiplicity 1) — the basis for EthTSyn/gPTP |
| Frame preemption (IEEE 802.1Q) for this port, default |
| Enable MACsec directly on the switch port, including bypass for certain EtherTypes/VLANs/destination MAC addresses — covered in a dedicated post in this series |
VLAN parameters in EthSwtPortIngress
| Parameter | Meaning |
|---|---|
| VLAN ID assigned to an incoming, untagged frame |
| Default priority (0–7) for incoming frames without a PCP tag |
| Controls whether untagged frames are dropped at this port |
| Optional table of (IngressVlanID → TranslatedVlanID) pairs — the incoming VLAN ID is replaced by another one on ingress |
| Exactly 8 entries (one per PCP value 0–7) mapping incoming priority to a regenerated priority — per the SWS always present, because a switch inherently performs priority regeneration |
|
Complete ARXML example (excerpt, simplified)
<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>
<!-- further EthSwtPort instances (1..N) analogous -->
</SUB-CONTAINERS>
</ECUC-CONTAINER-VALUE>Typical configuration mistakes
Missing or wrong
EthSwtPortTrcvRef— the port references noEthTrcv, or the wrong one, soEthSwt_GetSwitchPortModelater reportsETHSWT_E_SYNCPORT2PHY(see Part 2)Incomplete
EthSwtPortPriorityRegeneration— fewer or more than 8 entries is a configuration error per spec, not just a style issueEthSwtPortIngressDropUntaggedset incorrectly — untagged management or boot traffic gets dropped unintentionallyConfusing default VLAN with VLAN translation — a default VLAN only applies to untagged frames, whereas a translation table entry acts on frames that are already tagged with a matching
IngressVlanID
Series
| Part | Topic | Status |
|---|---|---|
1 | Fundamentals, SWS & architecture | done |
2 | API & initialization | done |
3 | ARXML configuration | this post |
4 | VLAN management, mirroring & diagnostics | upcoming |
Next in the EthSwt series: EthSwt Part 4 — VLAN Management, Mirroring & Diagnostics