Subject: [core] I-D Action: draft-ietf-core-sid-05.txt

From: [email-masked]
Date: Wed, 19 Dec 2018 05:07:45 -0800

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Constrained RESTful Environments WG of the IETF.

        Title           : YANG Schema Item iDentifier (SID)
        Authors         : Michel Veillette
                          Alexander Pelov
                          Ivaylo Petrov
	Filename        : draft-ietf-core-sid-05.txt
	Pages           : 26
	Date            : 2018-12-19

Abstract:
   YANG Schema Item iDentifiers (SID) are globally unique 64-bit
   unsigned numbers used to identify YANG items.  This document defines
   the semantics, the registration, and assignment processes of SIDs.
   To enable the implementation of these processes, this document also
   defines a file format used to persist and publish assigned SIDs.

The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-core-sid/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-core-sid-05
https://datatracker.ietf.org/doc/html/draft-ietf-core-sid-05

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-core-sid-05

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

---

From: Robert Wilton <[email-masked]>
Date: Thu, 20 Dec 2018 14:40:49 +0000

Hi,

I've raised this previously, but I'm not sure whether there was any 
discussion or conclusion, or perhaps I missed it:

SIDs are currently defined to be 64 bit unsigned numbers, but I think 
that it would be better to limit these to the positive part of signed 64 
bit integers instead.  This still allows a very large range of SIDs to 
be allocated but I think will make it easier for normal programming 
languages to handle:

1) Both Python and JVM based languages don't naturally handle unsigned 
64 bit integers.  It is pragmatically likely that those implementations 
will probably choose to use a signed 64 bit integer instead to represent 
SIDs, breaking interoperability.

2) The SIDs in the YANG CBOR encoded as deltas to the parent SID.  If 
the parent has a small SID (e.g . 1), and the child has a large SID 
(e.g. 2^64-1) then the delta will end up as a large negative number 
(2^64 - 2) that cannot be represented in C's signed 64 bit integer, 
making that difficult to handle as well.

Hence, given signed integer maths is expected to be performed on SIDs, 
it would be safer and easier to define them within the range of values 
that can be represented by a signed 64 integer.

Thanks,
Rob

On 19/12/2018 13:07, [email-masked] wrote:
> _______________________________________________
> core mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/core
> .
>