[yang-tooling] Re: SID file issues / .sid file differences in pyang and core-wg/pyang

Laurent Toutain <laurent.toutain@imt-atlantique.fr> Thu, 05 February 2026 16:50 UTC

Return-Path: <laurent.toutain@imt-atlantique.fr>
X-Original-To: yang-tooling@mail2.ietf.org
Delivered-To: yang-tooling@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 2C8F2B2604F0 for <yang-tooling@mail2.ietf.org>; Thu, 5 Feb 2026 08:50:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=imt-atlantique.fr
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e9WeXr4YCpO7 for <yang-tooling@mail2.ietf.org>; Thu, 5 Feb 2026 08:50:34 -0800 (PST)
Received: from zproxy2.enst.fr (zproxy2.enst.fr [137.194.2.221]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 5D17CB2604E9 for <yang-tooling@ietf.org>; Thu, 5 Feb 2026 08:50:34 -0800 (PST)
Received: from localhost (localhost [IPv6:::1]) by zproxy2.enst.fr (Postfix) with ESMTP id EC011807BB for <yang-tooling@ietf.org>; Thu, 5 Feb 2026 17:50:26 +0100 (CET)
Received: from zproxy2.enst.fr ([IPv6:::1]) by localhost (zproxy2.enst.fr [IPv6:::1]) (amavis, port 10032) with ESMTP id 8GiHjOP2Ze1M for <yang-tooling@ietf.org>; Thu, 5 Feb 2026 17:50:26 +0100 (CET)
Received: from localhost (localhost [IPv6:::1]) by zproxy2.enst.fr (Postfix) with ESMTP id B315D80201 for <yang-tooling@ietf.org>; Thu, 5 Feb 2026 17:50:26 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.10.3 zproxy2.enst.fr B315D80201
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imt-atlantique.fr; s=50EA75E8-DE22-11E6-A6DE-0662BA474D24; t=1770310226; bh=yjONxfdKZr782dvydZZFZ/jwyyivuPyotisPv6LnYsU=; h=MIME-Version:From:Date:Message-ID:To; b=AFrVzdB++YHNH6j1CgWS2LYGNvH5Hcsu62mQtQElFqHe4EZZPC40CpX48plPyTUkU vZFo7YV+K4WqU1YKRpF7z8ohoRD//DlipY+HdfCOUgmN6nIr4pSW3K6cRYZh0D8/Ed +X30hVNpj9DHqCOyJb2c54LW3PWsh9EAFZPmD+eo=
X-Virus-Scanned: amavis at
Received: from zproxy2.enst.fr ([IPv6:::1]) by localhost (zproxy2.enst.fr [IPv6:::1]) (amavis, port 10026) with ESMTP id xW-zeH94aTy3 for <yang-tooling@ietf.org>; Thu, 5 Feb 2026 17:50:26 +0100 (CET)
Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by zproxy2.enst.fr (Postfix) with ESMTPSA id 7103B807BB for <yang-tooling@ietf.org>; Thu, 5 Feb 2026 17:50:26 +0100 (CET)
Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-b8e9c8ada38so170954066b.0 for <yang-tooling@ietf.org>; Thu, 05 Feb 2026 08:50:26 -0800 (PST)
X-Forwarded-Encrypted: i=1; AJvYcCUkgNMWA6/f3dN7CaHFa9jlk2iab63He8lw20fzQeGc5MpF8wgPUmaaY2qOmFCqJOT4SRRqce9MeR2zvZc=@ietf.org
X-Gm-Message-State: AOJu0Ywuyj8RqyhV2LnIOoASpQccYM+oA2fKMF2705IoesqSIxHTSSCw j9/mr6Rkgj3uK7fFC15pWKTxK3vfEo/z7pjHjWpxr85iumXcBvKaojtuPa7O0qxYyIPwhiA823a OWqrYufmXz6DEa1z9311SyhACrojkKkw=
X-Received: by 2002:a17:906:9fd1:b0:b72:70ad:b8f0 with SMTP id a640c23a62f3a-b8e9f19471bmr467170266b.36.1770310225991; Thu, 05 Feb 2026 08:50:25 -0800 (PST)
MIME-Version: 1.0
References: <CABCOCHTP52cfDVeguY3iYbzJqmCfg-z5cMeFz-y_3vNw250TEg@mail.gmail.com> <1263365.1770129015@dyas> <CABCOCHRHAEkiAJu=TtaZDERG9eiq_Ay9txRt10DEOgPYu3eprA@mail.gmail.com> <6c4f3e7e-ffa3-404b-83b3-9533f4046212@iotconsultancy.nl> <CABCOCHTWV2amW1wdHPQyd5jeaAVeie1S2xFfFf2ZgZQ6EbCKqg@mail.gmail.com> <4c11110f-fe64-414f-ad78-0183c61851b8@iotconsultancy.nl> <DDC68541-9A77-4AFD-BF36-DF6A75CF888B@tzi.org> <ce89bf21-8806-4590-9f37-a1eefa44b979@iotconsultancy.nl> <408BA8A1-AD8E-4CED-9991-B4632577986E@tzi.org> <7aca3e8e-ac46-4bb5-8b16-f75b51490b55@iotconsultancy.nl> <56406098-2B8F-402B-BE6A-AE9FEA9D7217@tzi.org> <CABCOCHQR30cSFqoFiYrj-PhX42r9o8zkSz9idVSOZYOyLD4A4A@mail.gmail.com> <ee28c8c1-fe81-4f9f-ba36-b60c74b5d156@iotconsultancy.nl> <CABCOCHR-oo5xK2bbagDUtK=1Mi5dBLjNT8r=4Y4QSJoFs0SgRA@mail.gmail.com> <b1256b3f-794b-40e8-a7e8-d1395fa7aa0d@iotconsultancy.nl> <EE144B22-21ED-46E8-8963-3D5639F377E9@tzi.org> <CABCOCHSzgtHZ3YpEwCrCtXBTFjusidzP3aCDbeJySM36toFoeA@mail.gmail.com> <81BE63E4-AB15-4298-8A63-94726BD7F024@tzi.org> <CABCOCHTC-VTk5gBY7O95Au8eUF84pgVA2q4z7d8kY8N4hsFVtw@mail.gmail.com> <6E107270-5943-4615-A221-24FC6A66D914@tzi.org> <CABCOCHR32FgW_y54KTomJcD+kaFn_yqupr1-zCJJyHsPEoxX5g@mail.gmail.com>
In-Reply-To: <CABCOCHR32FgW_y54KTomJcD+kaFn_yqupr1-zCJJyHsPEoxX5g@mail.gmail.com>
From: Laurent Toutain <laurent.toutain@imt-atlantique.fr>
Date: Thu, 05 Feb 2026 17:49:49 +0100
X-Gmail-Original-Message-ID: <CABONVQZTqmiGPW3WdEABPeLCwiJXoXxnWZqEo2zVVt0wLto-6g@mail.gmail.com>
X-Gm-Features: AZwV_Qj3TUIBl1eGc2_rkCPqPwRBVd-tN4psvFOuNRF5kmqn-2wxGIUnYl0tjMA
Message-ID: <CABONVQZTqmiGPW3WdEABPeLCwiJXoXxnWZqEo2zVVt0wLto-6g@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
Content-Type: multipart/alternative; boundary="00000000000029a177064a1678ca"
Message-ID-Hash: QSG5IFT3P7L7TJVBWPDUQICIJ2UY32YC
X-Message-ID-Hash: QSG5IFT3P7L7TJVBWPDUQICIJ2UY32YC
X-MailFrom: laurent.toutain@imt-atlantique.fr
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Carsten Bormann <cabo@tzi.org>, Esko Dijk <esko.dijk=40iotconsultancy.nl@dmarc.ietf.org>, yang-tooling@ietf.org, Michael Richardson <mcr+ietf@sandelman.ca>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [yang-tooling] Re: SID file issues / .sid file differences in pyang and core-wg/pyang
List-Id: "Contributing to and tracking the progress of YANG tooling, as it concerns IETF work that uses YANG." <yang-tooling.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-tooling/D-NWPKTYT7tromGC4H19bQaoFSc>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-tooling>
List-Help: <mailto:yang-tooling-request@ietf.org?subject=help>
List-Owner: <mailto:yang-tooling-owner@ietf.org>
List-Post: <mailto:yang-tooling@ietf.org>
List-Subscribe: <mailto:yang-tooling-join@ietf.org>
List-Unsubscribe: <mailto:yang-tooling-leave@ietf.org>

Hi,

I was away from my mail for a few days, and I missed a lot of interesting
discussions.

I would like to present my vision of what I’m expecting from CORECONF, to
see if it is in line with the usage we plan to do, for instance in SCHC to
exchange compression rules.

We are dealing with very limited devices which don’t have the capacity of
directly manipulating a YANG file, and our goal is also to limit the
traffic because we may also be very constrained in bandwidth, for instance,
we are investigating some underwater communications with few kilobits/s.

What I like with YANG and CORECONF, is that the strict formalism both from
YANG and CBOR leads to a small code footprint to manipulate any CORECONF
representation. The size of exchange messages also makes this
representation competitive with other protocols. In this paper (
https://ieeexplore.ieee.org/abstract/document/11073610) we compare
CORECONF and EDHOC in a SDN scenario and the results are quite close.

So, one of my concerns is to have something small and flexible to represent
data coming from a constrained device. The alphabetical order used by pyang
may not provide the best result. For instance, in the SCHC YANG module, the
rule-id-value leaf is more than 23 SID away from the start, we spend 2
bytes instead of one due to the CBOR coding of integers.

May be thuis scheme can merge the actual CORECONF representation and the
need to introduce choice:

With the SID for the example box model, we have:

SID        Assigned to
---------  --------------------------------------------------
100       module example-box
101       data /example-box:box
102       data /example-box:box/a
103       data /example-box:box/b

To represent the 2 vlaues, the CBOR structure wille be {101: {1: A, 2: B}}

If you introduce the choice hierarchy:
SID        Assigned to
---------  --------------------------------------------------
100        module example-box
101        data /example-box:box
102        data /example-box:box/a_choice
103        data /example-box:box/a_choice/case_a
104        data /example-box:box/a_choice/case_a/a
105        data /example-box:box/a_choice/case_b
106        data /example-box:box/a_choice/case_b/b

The CBOR structure is {101: {1: {1: {1: A}, 3:{1:B}}}}


The strict hierarchy coding introduces 6 extra bytes. But in fact we don’t
care that much, because what is important is the absolute SID value, not
the delta encoding introduced for compactness. A structure like {101: {2:
A, 5:B}} will carry the same information, the main difference is that the
deltas are increasing faster so their CBOR representation may be larger too.

We can imagine a SID allocation like that:
SID        Assigned to
---------  --------------------------------------------------
100        module example-box
101        data /example-box:box
104        data /example-box:box/a_choice
103        data /example-box:box/a_choice/case_a
102        data /example-box:box/a_choice/case_a/a
105        data /example-box:box/a_choice/case_b
103        data /example-box:box/a_choice/case_b/b

We can still have a compact representation {101:{1: A, 2: B}} and the
introduction of the choice hierarchy, preserving the compact coding of the
information and allowing choice to be taken into consideration. A compact
node will use the 100-103 SID and the other are used to allow full
compatibility with the YANG module. This make the numbering a bit more
complex.

My 2 cents

Laurent




On Thu, Feb 5, 2026 at 5:13 PM Andy Bierman <andy@yumaworks.com> wrote:

>
>
> On Thu, Feb 5, 2026 at 8:07 AM Carsten Bormann <cabo@tzi.org> wrote:
>
>> On Feb 5, 2026, at 16:59, Andy Bierman <andy@yumaworks.com> wrote:
>> ...
>> > If the sender uses id-sid and sends a name, is the receiver supposed to
>> reject the message as not valid?
>>
>> We don’t require that.
>> An implementation that is SIDs only (which will be typical for servers in
>> the constrained space) will simply not be able to process a name.
>> Whether any other implementation (one that has the names) should react
>> negatively to a name in a representation declared as id=sid is up to its
>> stance on RFC9413…
>> (I’d log a diagnostic.)
>>
>>
> OK. Makes sense.  In NETCONF, any unparseable message causes the session
> to be dropped.
>
>
>> Grüße, Carsten
>>
>>
> Andy
>
> _______________________________________________
> yang-tooling mailing list -- yang-tooling@ietf.org
> To unsubscribe send an email to yang-tooling-leave@ietf.org
>