Two further comments for discussion:

*1) Unclarity, or hierarchy issues, in SID lists?*

In Section 7.4 and 8.3, the SID values list, it looks like we are listing for each SID some sort of YANG path pointing to the element. We should clarify here what the intended path type is, e.g. is it a data node identifier or a schema node identifier?

Formal .sid files require schema node identifier per RFC 9595. Developers just wanting to create or parse vouchers with their own code would prefer to see data node identifiers which are much more intuitive.

Because the "choice" elements are absent from the listed paths, I assume that data node identifier is intended. In that case, we have the issue that there are extra levels of hierarchy that shouldn't be there.

For example, in 7.4 I would expect the below for example:

     2451 data /ietf-voucher:voucher
     2452 data /ietf-voucher:voucher/assertion
     2453 data /ietf-voucher:voucher/created-on
     <...>

So SID 2450 is the module itself, 2451 is the container 'voucher' in the module, and 2452 and onwards are the leafs.
This is clear for developers not deep into YANG.

This also matches intuitively very nicely 1:1 to the JSON examples we give.
That is, each listed path is also the XPath expression that gives access to the specific data node that has the SID allocated.

E.g. if I do XPath /ietf-voucher:voucher/created-on  I should get the "created-on" data from the below example voucher.

{
  "ietf-voucher:voucher": {
    "created-on": "2016-10-07T19:31:42Z",
    "assertion": "logged",
    "serial-number": "JADA123456789",
    "idevid-issuer": "base64encodedvalue==",
    "pinned-domain-cert": "base64encodedvalue==",
    "nonce": "base64encodedvalue=="
  }
}



*2) Do we need the 'choice' elements in YANG?

*In RFC 8366 we did not define any 'choice' elements in YANG. Just mandatory and optional elements. While adding 'choice' can represent some semantics and validity checking of vouchers, it also adds complexity in the YANG model itself and the resulting SID allocation.

Using choice elements also leads to larger differences between the data node identifiers and the schema node identifiers. Which makes things harder to understand for readers I think. See item 1) above for example; if we would use schema node identifiers in the SID list (which I think we don't currently) then we get very long path strings. Related discussion in CoRE is here: https://mailarchive.ietf.org/arch/msg/core/TaJcKNLdkDI_EKtDGeW7hyk_kKs/


Esko

On 24-11-2025 13:07, Esko Dijk wrote:
I've now started to review the version -17. I would say it's not ready yet to leave the WG.
Here some initial questions:

In Section 7.1, the last 3 elements fall outside of the structure "voucher".  Why is this the case? Can we correct/unify this or is there a reason (in which case we'd need to explain). For me personally, the less unneeded hierarchy the better; but the prime goal should be consistency - i.e. leafs at the same level in the hierarchy - where possible.

In Section 8.1, similar question.

In Section 8.3, "expires-on" is present twice. This is not the case in 8.1, so it looks like 8.1/8.3 are not in sync?

We use RFC 6125 as reference, though it's not very important I think. This RFC has been obsoleted. I think we should remove or change this reference. Not sure which reference is good?

I'm preparing a few editorial fixes in a single PR. One thing I found is that "Voucher Artifact" and "Voucher" and "Artifact" are all equal by the definitions in the Terminology section. It all refers to the Voucher Data plus the signature applied to it. Is that correct? (If so I'll add a cross-reference in the terms so it's easier for a reader to understand this.)

Esko

--
*IoTconsultancy.nl* | Email/Teams: [email protected] | +31 6 2385 8339

_______________________________________________
Anima mailing list [email protected]
To unsubscribe send an email [email protected]

--
*IoTconsultancy.nl* | Email/Teams: [email protected] | +31 6 2385 8339
_______________________________________________
Anima mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to