Skip to content
AutoST by Zyberum GmbH
Menu
GlossaryDiagnostics

ODX (Open Diagnostic Data Exchange)

ODX (ISO 22901-1, ASAM MCD-2 D) is the XML format that describes how an ECU speaks UDS: services, DIDs and routines. How it is structured and what testers do with it.

Updated This page as Markdown

In short

ODX (Open Diagnostic Data Exchange) is the XML-based data format standardised as ASAM MCD-2 D and ISO 22901-1 that describes the diagnostic interface of an ECU: which services it supports, the requests and responses, the data identifiers and routines and how to convert raw bytes into physical values. Diagnostic testers and flashing tools read it instead of hard-coding each ECU. For security testing it is the specification against which the real ECU behaviour is compared.

What is ODX?

ODX is a data model in XML that describes the diagnostic communication of an ECU so that tools can work with it without ECU-specific code. Its main content is organised in diagnostic layers that inherit from each other: PROTOCOL, FUNCTIONAL-GROUP, BASE-VARIANT and ECU-VARIANT, plus ECU-SHARED-DATA for common definitions. Each layer contains DIAG-SERVICE elements with their REQUEST, POS-RESPONSE and NEG-RESPONSE structures, and data object properties (DOPs) with computation methods that turn bytes into physical values and units.

For example, the ODX entry for a ReadDataByIdentifier service tells a tool that request 22 F1 8C reads the ECU serial number, that the response 62 F1 8C is followed by ASCII bytes, and in which sessions the service is allowed.

Where is it defined?

ASAM defines ODX as MCD-2 D; ISO 22901-1 publishes the data model as an international standard. The file types include .odx-d for diagnostic layers, .odx-c and .odx-cs for communication parameters and .odx-f for flash data. The UDS content it describes comes from ISO 14229-1.

What it means in practice

ODX is the closest thing to a specification of the diagnostic interface that a test team usually gets. It names data identifiers and routines, shows which ones are meant to be writable and which session or security level each service needs. That makes it the reference for two security questions: does the ECU enforce what the file says, and does the ECU expose anything the file does not mention?

We regularly see both kinds of gap. Data identifiers marked as read-only in the description accept writes, and services restricted to the extended session in the file answer in the default session. Undocumented identifiers are often leftovers from development that nobody reviewed.

How AutoST tests it

AutoST imports ODX and CDD files. The diagnostics engine uses them to name the data identifiers found during enumeration and to scan the routine identifiers the file lists, including write probing that checks whether write access is enforced as documented. Identifiers that answer but are not in the file appear as separate findings.

Common misunderstandings

ODX is a description, not a security policy. An ECU does not read its ODX file at runtime, so the file can be correct while the implementation is not. And not every supplier delivers complete ODX: a partial file still helps, but the enumeration has to fill the gaps.

FAQ

Frequently asked questions

What is the difference between ODX and PDX?

ODX is the data format, PDX is the container. A PDX file is a ZIP archive that packages several ODX files (diagnostic layers, communication parameters, flash data) together with an index, so a tool can load a whole ECU or vehicle description in one file.

What is the difference between ODX and CDD?

CDD is the proprietary format of the Vector CANdelaStudio tool. Both describe the same kind of information, and CANdelaStudio can export ODX. Many suppliers keep their master data in CDD and deliver ODX or PDX to the OEM.

Does an ODX file tell me everything an ECU can do?

No. It describes what the manufacturer documented. Real ECUs often answer data identifiers or services that the file does not list, and comparing the two is one of the most useful checks in a security test.

Sources

Related pages

See it on your ECU

A term that matters for your ECU?

In 15 minutes we tell you how AutoST tests it, what a finding looks like and what it means for your ISO/SAE 21434 evidence.

  • Direct answer from an ECU security engineer
  • Which test covers the term
  • Free and without obligation
Tom Zaubermann

Your demo is withTom ZaubermannFounder of Zyberum, ex-lead of the VW InCar Security Testing Lab

Already trusted by Tier 1, Tier 2 suppliers and OEMs. References on request.

Call us: +49 176 439 17074automotive@zyberum.com

Or send us a message

We reply within one business day.

Call usAsk the AutoST team

Pick a time that suits you

Open in a new tab