Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

0038: Recorded extension vocabulary

Context

RFC 9880 Section 7.5.2 lets organizations register a Quality Name Prefix and define qualified Quality Names under it. The IANA SDF Quality Name Prefixes registry recorded its first prefix, oma, on 12 May 2026. The Open Mobile Alliance defines one quality with it in its OMNA SDF Quality Names registry. oma:id is the LwM2M Object or Resource ID of a definition, and its CDDL adds "oma:id" => uint to the RFC 9880 sockets $$SDF-EXTENSION-OBJECT, $$SDF-EXTENSION-DATA and $$SDF-EXTENSION-ACTION. The oma2sdf converter emits it on every converted Object and Property, and its output for object 3303 writes the Object ID as a string.

Decision

Recorded extension vocabulary is a qualified Quality Name whose definition Esdieff records as dated Recorded registry evidence, following ADR 0002: Recorded standards baseline and ADR 0027: Unit names and recorded registry guidance. The first entry is oma:id, recorded from the IANA prefix registry and the OMNA registry page as accessed on 16 October 2026.

oma:id belongs where its registered CDDL sockets apply. That is an sdfObject definition, an sdfAction definition and every full data description: sdfData, sdfProperty, Action input and output data, Event output data, object property entries and choice alternatives. Its value must be a CDDL uint under the formal admission rules of ADR 0032: Formal model admission, so 3303 and 3303.0 are admitted while "3303", -1 and 3303.5 are not. An excluded value at one of these positions is an error whose basis is the OMNA registration rather than RFC 9880. Reports give it a new registration basis kind, with the registration’s citation and the Quality Name as its identifier. The kind joins report version 1.0 in place, because no report reader predates the first release. Full assesses it as M028 in its critical-extension area, so the 54-obligation inventory stays unchanged and the Initial assessment is unaffected.

At any other position, such as an sdfEvent or sdfThing definition or a Direct item, oma:id is undeclared extension vocabulary under ADR 0037: Undeclared extension vocabulary, with its usual notice. So is any other oma: name. A dated record establishes what it contains, not that nothing else has been registered since.

The recorded meaning covers value admission only. Esdieff does not check that an ID names a real LwM2M object, or that IDs are unique within an Object, because the registration states neither. A caller that withholds recorded registry evidence leaves the oma:id conclusions unavailable, as it does for units. Base conclusions still proceed past oma:id at its positions in every assessment. Where a report did not consult the recorded evidence, as in a Sample report, an assessment other than Full or a Full check that withholds it, those conclusions rely on ADR 0037 and name undeclared-extensions-ignorable/1. Further recorded extensions take the same shape: a registered or published definition, the positions its CDDL names and its value domain.

Considered Options

A warning for an excluded value would let a catalogue with broken IDs pass unless strict warnings were requested, although the registered type makes the defect definite. Following the four classes in the OMNA table instead of its CDDL would leave placements its own grammar admits, such as Action input data, unchecked. Treating other oma: names or other positions as errors would turn a dated record into a claim that nothing else was registered. Reusing the rfc basis kind would avoid a report change but name RFC 9880 as the reason, and a report version 2.0 would protect no existing reader.