Re: [alto] Comments on data source configuration in alto-oam

2023-01-27 Thread maqiufang (A)
Hi, Jensen

My understanding is that, if we’d like to take reactive mode (e.g., periodic 
push from yang datastore [1]) as an example,  ALTO-server receives stream of 
updates from a specified YANG datastore at a fixed interval without needing to 
poll. Suppose the publisher supports RESTCONF as transport mechanism, either a 
“initiate” or a “listen” container (defined in rcc:restconf-client-app-grouping 
[2]) can be configured to ask the ALTO-server which works as a RESTCONF-client 
here, to initiate connections to publisher (i.e., to establish dynamic 
subscription or configured subscription [3] to the RESTCONF-server) or just 
listen and wait for a call-home[4] connection (i.e., to receive configured 
subscription as a YANG-push receiver).

I have provided an example as attached, I am using a call-home connection as 
exmaple here, so that the alto-server only needs to listen on a specified port 
and wait for the periodic arrival of stream network topology data. Besides, the 
example yang file is also updated as attached according to our discussion in 
last Tuesday-night meeting.

[1] https://datatracker.ietf.org/doc/html/rfc8641
[2] https://datatracker.ietf.org/doc/draft-ietf-netconf-restconf-client-server/
[3] https://datatracker.ietf.org/doc/html/rfc8639
[4] https://datatracker.ietf.org/doc/rfc8071/


Best Regards,
Qiufang
From: Jensen Zhang [mailto:jingxuan.n.zh...@gmail.com]
Sent: Friday, January 20, 2023 10:56 AM
To: maqiufang (A) 
Cc: alto@ietf.org; draft-ietf-alto-oam-y...@ietf.org
Subject: Re: [alto] Comments on data source configuration in alto-oam

Hi Qiufang,

I am preparing the new revision in the GitHub repo [1]. I am going to merge 
your proposed updates on the "data-source" part. I hope we can have an example 
in the appendix to show how to use the new reactive mode. Do you have any 
references or suggestions?

[1] https://github.com/ietf-wg-alto/draft-ietf-alto-oam-yang

Cheers,
Jensen


On Tue, Jan 17, 2023 at 4:46 PM Jensen Zhang 
mailto:jingxuan.n.zh...@gmail.com>> wrote:
Hi Qiufang,

Many thanks for your deep review. See my feedback inline.

On Tue, Jan 17, 2023 at 11:23 AM maqiufang (A) 
mailto:maqiufa...@huawei.com>> wrote:
Hi, all

I had a chance to take a deeper look at this -02 version  — not the other 
parts, but only the YANG model related to the data-source configuration, which 
I believe is the section 5.3.1 and Appendix A.1 in the current draft. Following 
are some contributor thoughts:

• I like the idea that we only define a very general list now and leave 
the parameters specific to each data source to be extended in future, while I 
am not convinced that the update-policy choice defined here is proper. My 
intuition is that for reactive mode, the alto server waits data feed without 
needing to poll. It could receive data as soon as it changes, but periodic 
collection could also be another mode.

I don't fully understand the feed-interval property in reactive mode. The 
data-source list actually configures a list of data source listeners in the 
ALTO server. Should this property be configured by the data source side, 
instead of the ALTO server side? Do you have any example of how the 
feed-interval is used by a concrete data source listener?


I question whether a Boolean type of reactive leaf is sufficient, and what if a 
false value is configured here? I would rather use an empty type.

Make sense. I like this change.


• I would like the update-policy choice to be defined outside 
data-source list (but not very strong feeling), it is not the property of 
data-source itself, but how the alto server get data from data-source.

If we move update-policy outside, could someone configure a data source without 
configuring its update-policy? If so, how does the ALTO server decide how to 
get data updates?

That said, my suggested data-source tree diagram is following:

…

 +--rw data-source* [source-id]

 |  +--rw source-id  string

 |  +--rw source-typeidentityref

 |  +--rw (source-params)?

 +--rw data-update-policy* [source-id]

 |  +--rw source-id-> ../../data-source/source-id

 |  +--rw (update-policy)?

 | +--:(reactive)

 | |  +--rw (reactive-mode)?

 | | +--:(on-change)

 | | |  +--rw on-changeempty

 | | +--:(period)

 | |+--rw feed-intervaluint32

 | +--:(proactive)

 |+--rw poll-interval  uint32

…

• Regarding the Appendix part, it seems to me that some parameters are 
still missing. The following tree diagram for a yang-datastore source example 
could be for the authors’ reference:

module: example-ietf-alto-data-source

  augment /alto:alto-server/alto:data-source/alto:source-params:

+--:(yang-datastore)

   +--rw source-server

  +--rw name?   inet:domain-name

  +--rw datastore   identityref

 

Re: [alto] Comments on data source configuration in alto-oam

2023-01-19 Thread Jensen Zhang
Hi Qiufang,

I am preparing the new revision in the GitHub repo [1]. I am going to merge
your proposed updates on the "data-source" part. I hope we can have an
example in the appendix to show how to use the new reactive mode. Do you
have any references or suggestions?

[1] https://github.com/ietf-wg-alto/draft-ietf-alto-oam-yang

Cheers,
Jensen


On Tue, Jan 17, 2023 at 4:46 PM Jensen Zhang 
wrote:

> Hi Qiufang,
>
> Many thanks for your deep review. See my feedback inline.
>
> On Tue, Jan 17, 2023 at 11:23 AM maqiufang (A) 
> wrote:
>
>> Hi, all
>>
>>
>>
>> I had a chance to take a deeper look at this -02 version  — not the
>> other parts, but only the YANG model related to the data-source
>> configuration, which I believe is the section 5.3.1 and Appendix A.1 in the
>> current draft. Following are some contributor thoughts:
>>
>> · I like the idea that we only define a very general list now
>> and leave the parameters specific to each data source to be extended in
>> future, while I am not convinced that the update-policy choice defined here
>> is proper. My intuition is that for reactive mode, the alto server waits
>> data feed without needing to poll. It could receive data as soon as it
>> changes, but periodic collection could also be another mode.
>>
>
> I don't fully understand the feed-interval property in reactive mode. The
> data-source list actually configures a list of data source listeners in the
> ALTO server. Should this property be configured by the data source side,
> instead of the ALTO server side? Do you have any example of how the
> feed-interval is used by a concrete data source listener?
>
>
>> I question whether a Boolean type of reactive leaf is sufficient, and
>> what if a false value is configured here? I would rather use an empty type.
>>
>
> Make sense. I like this change.
>
>
>> · I would like the update-policy choice to be defined outside
>> data-source list (but not very strong feeling), it is not the property of
>> data-source itself, but how the alto server get data from data-source.
>>
>>
> If we move update-policy outside, could someone configure a data source
> without configuring its update-policy? If so, how does the ALTO server
> decide how to get data updates?
>
>
>> That said, my suggested data-source tree diagram is following:
>>
>> …
>>
>>  +--rw data-source* [source-id]
>>
>>  |  +--rw source-id  string
>>
>>  |  +--rw source-typeidentityref
>>
>>  |  +--rw (source-params)?
>>
>>  +--rw data-update-policy* [source-id]
>>
>>  |  +--rw source-id-> ../../data-source/source-id
>>
>>  |  +--rw (update-policy)?
>>
>>  | +--:(reactive)
>>
>>  | |  +--rw (reactive-mode)?
>>
>>  | | +--:(on-change)
>>
>>  | | |  +--rw on-changeempty
>>
>>  | | +--:(period)
>>
>>  | |+--rw feed-intervaluint32
>>
>>  | +--:(proactive)
>>
>>  |+--rw poll-interval  uint32
>>
>> …
>>
>> · Regarding the Appendix part, it seems to me that some
>> parameters are still missing. The following tree diagram for a
>> yang-datastore source example could be for the authors’ reference:
>>
>> module: example-ietf-alto-data-source
>>
>>   augment /alto:alto-server/alto:data-source/alto:source-params:
>>
>> +--:(yang-datastore)
>>
>>+--rw source-server
>>
>>   +--rw name?   inet:domain-name
>>
>>   +--rw datastore   identityref
>>
>>   +--rw target-paths* [name]
>>
>>   |  +--rw name string
>>
>>   |  +---u yp:selection-filter-types
>>
>>   +--rw protocol*   identityref
>>
>>   +--rw restconf
>>
>>   |  +---u rcc:restconf-client-app-grouping
>>
>>   +--rw netconf
>>
>>  +---u ncc:netconf-client-app-grouping
>>
>>
>>
>
> Thanks for the improvement. Just a small question. What is the usage of
> the name property of the source-server? Who will reference this name? Is
> this the duplicate of the source-id?
>
>
>> The difference between *conf-client-app-grouping and
>> *conf-client-listen-stack-grouping is that the former also supports
>> initiating connections to servers proactively, which I believe is the more
>> common case.
>>
>
> Good suggestion. I like this change.
>
>
>>
>>
>> All related YANG modules are attached.
>>
>
> Many thanks. I will consider your proposed changes and merge them into the
> new revision.
>
> btw. We have received a lot of very good concrete editing comments and
> suggestions. We really appreciate your contributions. Would you like to
> become a coauthor of this document?
>
>
>>
>>
>> Best Regards,
>>
>> Qiufang
>>
>
> Thanks,
> Jensen
>
___
alto mailing list
alto@ietf.org
https://www.ietf.org/mailman/listinfo/alto


Re: [alto] Comments on data source configuration in alto-oam

2023-01-17 Thread Jensen Zhang
Hi Qiufang,

Many thanks for your deep review. See my feedback inline.

On Tue, Jan 17, 2023 at 11:23 AM maqiufang (A) 
wrote:

> Hi, all
>
>
>
> I had a chance to take a deeper look at this -02 version  — not the other
> parts, but only the YANG model related to the data-source configuration,
> which I believe is the section 5.3.1 and Appendix A.1 in the current draft.
> Following are some contributor thoughts:
>
> · I like the idea that we only define a very general list now and
> leave the parameters specific to each data source to be extended in future,
> while I am not convinced that the update-policy choice defined here is
> proper. My intuition is that for reactive mode, the alto server waits data
> feed without needing to poll. It could receive data as soon as it changes,
> but periodic collection could also be another mode.
>

I don't fully understand the feed-interval property in reactive mode. The
data-source list actually configures a list of data source listeners in the
ALTO server. Should this property be configured by the data source side,
instead of the ALTO server side? Do you have any example of how the
feed-interval is used by a concrete data source listener?


> I question whether a Boolean type of reactive leaf is sufficient, and what
> if a false value is configured here? I would rather use an empty type.
>

Make sense. I like this change.


> · I would like the update-policy choice to be defined outside
> data-source list (but not very strong feeling), it is not the property of
> data-source itself, but how the alto server get data from data-source.
>
>
If we move update-policy outside, could someone configure a data source
without configuring its update-policy? If so, how does the ALTO server
decide how to get data updates?


> That said, my suggested data-source tree diagram is following:
>
> …
>
>  +--rw data-source* [source-id]
>
>  |  +--rw source-id  string
>
>  |  +--rw source-typeidentityref
>
>  |  +--rw (source-params)?
>
>  +--rw data-update-policy* [source-id]
>
>  |  +--rw source-id-> ../../data-source/source-id
>
>  |  +--rw (update-policy)?
>
>  | +--:(reactive)
>
>  | |  +--rw (reactive-mode)?
>
>  | | +--:(on-change)
>
>  | | |  +--rw on-changeempty
>
>  | | +--:(period)
>
>  | |+--rw feed-intervaluint32
>
>  | +--:(proactive)
>
>  |+--rw poll-interval  uint32
>
> …
>
> · Regarding the Appendix part, it seems to me that some
> parameters are still missing. The following tree diagram for a
> yang-datastore source example could be for the authors’ reference:
>
> module: example-ietf-alto-data-source
>
>   augment /alto:alto-server/alto:data-source/alto:source-params:
>
> +--:(yang-datastore)
>
>+--rw source-server
>
>   +--rw name?   inet:domain-name
>
>   +--rw datastore   identityref
>
>   +--rw target-paths* [name]
>
>   |  +--rw name string
>
>   |  +---u yp:selection-filter-types
>
>   +--rw protocol*   identityref
>
>   +--rw restconf
>
>   |  +---u rcc:restconf-client-app-grouping
>
>   +--rw netconf
>
>  +---u ncc:netconf-client-app-grouping
>
>
>

Thanks for the improvement. Just a small question. What is the usage of the
name property of the source-server? Who will reference this name? Is this
the duplicate of the source-id?


> The difference between *conf-client-app-grouping and
> *conf-client-listen-stack-grouping is that the former also supports
> initiating connections to servers proactively, which I believe is the more
> common case.
>

Good suggestion. I like this change.


>
>
> All related YANG modules are attached.
>

Many thanks. I will consider your proposed changes and merge them into the
new revision.

btw. We have received a lot of very good concrete editing comments and
suggestions. We really appreciate your contributions. Would you like to
become a coauthor of this document?


>
>
> Best Regards,
>
> Qiufang
>

Thanks,
Jensen
___
alto mailing list
alto@ietf.org
https://www.ietf.org/mailman/listinfo/alto