Summary

  • At RIPE 93 on 26 October, BIRD development leader Maria Matejka set NETCONF/XML, RESTCONF/JSON and CORECONF/CBOR side by side.
  • Her original YANG transcoding proposal shows a small, consequential type change: JSON "+3" is a string; after XML conversion it can be read as a number.

The plus sign went into the conversion machine with an ID card. It emerged looking much the same, except the next clerk filed it under a different type. In a network configuration system, that is a strange way to discover who was in charge of the paperwork.

At RIPE 93 on 26 October, Maria Matejka, the BIRD development leader at CZ.NIC, walked through the menu of network-management interfaces. Her original slides move from NETCONF and XML to RESTCONF and JSON, then to CORECONF and CBOR. YANG supplies the data model; the wire formats carry its values with different type vocabularies. Three doors can reach similar configuration data, but the porter at each door has a different set of pockets.

Matejka's March individual transcoding proposal gives that problem a wonderfully small example. A YANG leaf permits either an int32 or a string. JSON receives "item": "+3"; the quotes identify the value as a string under RFC 7951. XML carries the text +3 without that JSON type cue. When another endpoint interprets it, the value can join the numeric branch of the union. The characters survived. Their meaning changed desks.

This is where an intermediary acquires real authority. A proxy that merely copies bytes across formats may change the choice a device makes. Matejka's proposal asks a transcoder to read the YANG model, select the correct output representation, validate values and check that a round trip preserves their type. It also proposes a warning when a union member is reinterpreted and an annotation that carries the original type. The Datatracker records the March individual draft as expired; the October talk brings the problem back to a room of operators.

The issue is wider than one quirky plus sign. RFC 7951 represents smaller integers as JSON numbers but int64, uint64 and decimal64 as JSON strings. CBOR can add compact tagged representations. A gateway must know the schema behind the surface spelling. Otherwise the tidy promise of “one model, many protocols” hands configuration decisions to whichever converter happened to sit in the middle.

Matejka's slides call parts of the CORECONF work unfinished. That leaves operators with a practical test for today's tools: send a typed value through every advertised format path and compare the value the device actually applies. The next bug report should have room for both the bytes and their passport.

Original sources