A related question.

> On Sep 14, 2021, at 12:31 PM, Mahesh Jethanandani <mjethanand...@gmail.com> 
> wrote:
> 
> Hi Martin,
> 
>> On Sep 14, 2021, at 11:17 AM, Martin Björklund <mbj+i...@4668.se 
>> <mailto:mbj+i...@4668.se>> wrote:
>> 
>> Mahesh Jethanandani <mjethanand...@gmail.com 
>> <mailto:mjethanand...@gmail.com>> wrote:
>>> Hi Juergen,
>>> 
>>>> On Sep 14, 2021, at 10:17 AM, Jürgen Schönwälder 
>>>> <j.schoenwael...@jacobs-university.de 
>>>> <mailto:j.schoenwael...@jacobs-university.de>> wrote:
>>>> 
>>>> On Tue, Sep 14, 2021 at 01:51:36PM +0000, STARK, BARBARA H wrote:
>>>> 
>>>>> As I mentioned, BBF TR-181 uses int with range    -1:65535 with -1 
>>>>> meaning NULL. So I certainly have no issue with that approach. The 
>>>>> language in RFC9046 was intended to make sure this approach was allowed, 
>>>>> since this is how it's done in TR-181.
>>>>> I guess I am a bit surprised to learn that YANG doesn't seem to have a 
>>>>> preferred way to handle this. Unfortunately, given my considerable lack 
>>>>> of YANG expertise, I can't recommend the "right" way to model this in 
>>>>> YANG. I can only insist that the model be able to express a value in the 
>>>>> range 0 to 2^16 and NULL value for these parameters. 
>>>>> Independent of the fact that the words in RFC9046 don't seem to have 
>>>>> expressed this perfectly clearly, that is absolutely the intent of those 
>>>>> words. I apologize that the RFC9046 words don't seem to be sufficiently 
>>>>> clear. 
>>>>> 
>>>>> Since you do mention the possibility of using -1 for NULL, I'd like to 
>>>>> understand who might find this approach unacceptable? The language in the 
>>>>> information model was definitely intended to express the acceptability of 
>>>>> using this approach from a Babel WG perspective (because I knew that's 
>>>>> how it would be done in TR-181). Would this be unacceptable to people 
>>>>> with YANG expertise? I think my preference would be to use this approach, 
>>>>> since it would provide additional consistency between the TR-181 and YANG 
>>>>> models.
>>>> 
>>>> If other data models use an extended integer range and -1 to indicate
>>>> a special case, then this may be a strong reason to do the same in the
>>>> IETF YANG data model. Consistency across data models is a value, in
>>>> particular for systems that may have to support multiple. While the
>>>> conversion of different notations no hard, its one more thing to
>>>> potentially get wrong.
>>>> 
>>>> If you were starting with a blank sheet of paper, then the YANG idiom
>>>> would likely be to use a union of a 16-bit integer and a special
>>>> (string) value, which might even be of type empty.
>>> 
>>> I hear two suggestions on what the “other” construct should be in the union 
>>> statement. Use ‘empty’ as you suggest, or use ‘boolean’. Are there any 
>>> pros/cons for either of the approaches?
>> 
>> 'boolean' doesn't seem right, since that would mean that you could see
>> the values 'true' | 'false' | <uint16>.
>> 
>> If you want a union I suggest a union with one enum, perhaps:
>> 
>>  type union {
>>    type enumeration {
>>      enum null;
>>    }
>>    type uint16;
>>  }
>> 
>> But Jürgens point about using a solution that other data models use
>> makes sense.
> 
> That would mean something like this:
> 
> type union {
>   type empty;
>   type uint16;
> }
> 
> Right?

RFC 7950 says that the empty type cannot have a default value. The model had 
the value 0, which represented NULL as the default value for some of the 
attributes. With the suggested change, is there a way in the union for the 
empty type to be the default?

If not, I will have to use Martin’s suggestion above of using a null 
enumeration.

Thanks.

> 
>> 
>> Yet another alternative could be to not instantiate this leaf when the
>> value in the information model is null.
> 
> I have never been very clear on what happens when the leaf goes from a 
> defined value to null. In other words, how do you “un-instantiate” a leaf? Do 
> you delete it?
> 
> Cheers.
> 
>> 
>> 
>> 
>> /martin
>> 
>> 
>> 
>> 
>> 
>>> 
>>>> 
>>>> One of the reasons to have no common approach to these kind of
>>>> questions is to provide the flexibility needed to do the right thing
>>>> in different contexts. Of course, you may want to stay consistent in a
>>>> data model or a collection of related data model.
>>>> 
>>>> I skimmed RFC 8407 and it seems we do not have text discussion this
>>>> specific situation. Perhaps we should have text, perhaps I have
>>>> overlooked it. ;-) I think there are different patterns to choose from
>>>> to handle this situation with their various pros and cons.
>>>> 
>>>> /js
>>>> 
>>>> -- 
>>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>>> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/ 
>>>> <https://www.jacobs-university.de/>>
>>> 
>>> Mahesh Jethanandani
>>> mjethanand...@gmail.com <mailto:mjethanand...@gmail.com>
> Mahesh Jethanandani
> mjethanand...@gmail.com <mailto:mjethanand...@gmail.com>
Mahesh Jethanandani
mjethanand...@gmail.com





_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to