Subject: [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

From: Reshad Rahman via Datatracker <[email-masked]>
Date: Sun, 06 Sep 2020 13:41:46 -0700

Reviewer: Reshad Rahman
Review result: Ready with Issues

Review of rev -04 by Reshad Rahman

The document is clear and well-written. While some issues have been identified,
they can be resolved quickly.

Issues
        1.      YANG model P8, for “leaf xpath-filter”, add reference to
        RFC6021. There should also be a normative reference to RFC6021 (as per
        RFC8407) 2.      Example P10, </interfa should be </interfaces> 3.     
        Example P10, last paragraph talks about preference and
        explicit-router-id. This seems to be leftover from when the example was
        based on OSPF model. 4.      Example P12 and P13. The RPC operation has
        “operational” as source (enabled is true)  and “intended” as target
        (enabled is false). The differences shown (in RPC output) have “value
        true” and “source-value false”. But I thought value came from target
        datastore and source-value from source datastore, so the values are
        reversed, i.e.. it should be “value false” and “source-value true”
        instead? Looking at the origin in the output I am wondering if the
        intent is to have “intended” as source and ”operational” as target. Or
        am I misunderstanding this?

Questions
        1.      YANG model: does the operation “delete” make sense for a diff
        operation? If it is kept, it’d be good to have some text explaining
        that for a diff operation, “delete” and “replace” are the same? If
        they’re not the same, please also add some text…. 2.      YANG model:
        prefix “cp” doesn’t seem to be a great choice since cp is associated
        with copying. I realize that there is some preference for 2-letter
        prefixes, but to me “cp” is not a great choice. What about “cmp”?
        WG/chairs should have a word to say about this. 3.      YANG model P9,
        for the “uses path:yang-patch”, why not have a  reference to RFC8072
        (is it because the description above mentions RFC8072)? 4.      Section
        7 mentions rate limiting requests per client. Should there be a
        “global” rate-limiting too, i.e not client-specific? 5.      Wondering
        if section 8 should be in an Appendix (or even removed)? Also, the
        method suggested doesn’t seem to guarantee that the difference
        persisted for the “dampening” time.

Nits:
        1.      P11 replace <operational<  with <operational>

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Mon, 7 Sep 2020 14:06:04 +0000

<Here's the same message with hopefully more readable formatting>

The document is clear and well-written. While some issues have been identified, they can be resolved quickly.

Issues
	1.	YANG model P8, for “leaf xpath-filter”, add reference to RFC6021. There should also be a normative reference to RFC6021 (as per RFC8407)
	2.	Example P10, </interfa should be </interfaces>
	3.	Example P10, last paragraph talks about preference and explicit-router-id. This seems to be leftover from when the example was based on OSPF model.
	4.	Example P12 and P13. The RPC operation has “operational” as source (enabled is true)  and “intended” as target (enabled is false). The differences shown (in RPC output) have “value true” and “source-value false”. But I thought value came from target datastore and source-value from source datastore, so the values are reversed, i.e.. it should be “value false” and “source-value true” instead? Looking at the origin in the output I am wondering if the intent is to have “intended” as source and ”operational” as target. Or am I misunderstanding this?

Questions
	1.	YANG model: does the operation “delete” make sense for a diff operation? If it is kept, it’d be good to have some text explaining that for a diff operation, “delete” and “replace” are the same? If they’re not the same, please also add some text….
	2.	YANG model: prefix “cp” doesn’t seem to be a great choice since cp is associated with copying. I realize that there is some preference for 2-letter prefixes, but to me “cp” is not a great choice. What about “cmp”? WG/chairs should have a word to say about this.
	3.	YANG model P9, for the “uses path:yang-patch”, why not have a  reference to RFC8072 (is it because the description above mentions RFC8072)?
	4.	Section 7 mentions rate limiting requests per client. Should there be a “global” rate-limiting too, i.e not client-specific?
	5.	Wondering if section 8 should be in an Appendix (or even removed)? Also, the method suggested doesn’t seem to guarantee that the difference persisted for the “dampening” time.

Nits:

On 2020-09-06, 4:42 PM, "yang-doctors on behalf of Reshad Rahman via Datatracker" <[email-masked] on behalf of [email-masked]> wrote:

    Reviewer: Reshad Rahman

    Issues

    Questions

    Nits:

    _______________________________________________
    yang-doctors mailing list
    [email-masked]
    https://www.ietf.org/mailman/listinfo/yang-doctors

---

From: Alexander L Clemm <[email-masked]>
Date: Tue, 15 Sep 2020 14:18:48 -0700

Hello Reshad, hello YANG Doctors,

thank you for your review!  Please find my replies inline, <ALEX>.  We
have also just posted -05 (thanks, Yingzhen, for doublechecking my
updates).   

--- Alex on behalf of coauthors

> 	1.	YANG model P8, for “leaf xpath-filter”, add reference to RFC6021. There should also be a normative reference to RFC6021 (as per RFC8407)
<ALEX> Thanks.  Adding reference to 6991 (as 6021 is obsoleted). </ALEX>
> 	2.	Example P10, </interfa should be </interfaces>
<ALEX> Thanks.  Of course! </ALEX>
> 	3.	Example P10, last paragraph talks about preference and explicit-router-id. This seems to be leftover from when the example was based on OSPF model.
<ALEX> Yes, this is a leftover.  Updated the text accordingly.  </ALEX>
> 	4.	Example P12 and P13. The RPC operation has “operational” as source (enabled is true)  and “intended” as target (enabled is false). The differences shown (in RPC output) have “value true” and “s…
<ALEX> Yes, the example contains a few mistakes.  The values were
reversed, and in addition what you mentioned I noticed an issue with the
treatment of origin metadata (only part of <operational>.  It is fixed
now.  </ALEX>
> 	1.	YANG model: does the operation “delete” make sense for a diff operation? If it is kept, it’d be good to have some text explaining that for a diff operation, “delete” and “replace” are the same?…

<ALEX> Here we are simply referring to the basic YANG-patch edit
operations per https://tools.ietf.org/html/rfc8072#page-11.  Those are
in turn derived from <edit-config> operations per
https://tools.ietf.org/html/rfc6241#page-37.  I am not sure we need add
to explain those, as we are directly referring to YANG-patch. 

</ALEX>

> 	2.	YANG model: prefix “cp” doesn’t seem to be a great choice since cp is associated with copying. I realize that there is some preference for 2-letter prefixes, but to me “cp” is not a great choic…
<ALEX> Changing it to cmp, pending comments by WG chairs </ALEX>
> 	3.	YANG model P9, for the “uses path:yang-patch”, why not have a  reference to RFC8072 (is it because the description above mentions RFC8072)?
<ALEX> We are clearly referencing RFC 8072; are you suggesting to put a
reference substatement below the uses statement?   It looks a little
strange to me but sure, we will add it.   
> 	4.	Section 7 mentions rate limiting requests per client. Should there be a “global” rate-limiting too, i.e not client-specific?

<ALEX> I am not sure this is really needed as I think the number of
management clients will in general be fairly limited to begin with, but
we can certainly add it.  How about the following text:

OLD:

One possibility for an implementation to mitigate against such a
possibility is to limit the number of requests that is served to a
client in any one time interval, rejecting requests made at a higher
frequency than the implementation can reasonably sustain.

NEW:

One possibility for an implementation to mitigate against such a
possibility is to limit the number of requests that is served to a
client, or to any number of clients, in any one time interval, rejecting
requests made at a higher frequency than the implementation can
reasonably sustain.

</ALEX>

> 	5.	Wondering if section 8 should be in an Appendix (or even removed)? Also, the method suggested doesn’t seem to guarantee that the difference persisted for the “dampening” time.

<ALEX> Personally, I do think it makes sense to include a brief
discussion of possible further extensions.  I suggest to keep the
section if it's okay with you, or perhaps leave it to the chair whether
they have a preference to remove it.  

</ALEX>

> 	1.	P11 replace <operational<  with <operational>
<ALEX> fixed </ALEX>
> netmod mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netmod

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Tue, 15 Sep 2020 23:04:01 +0000

Hi Alex,

I will review the latest version.

See below for questions/responses.

On 2020-09-15, 5:19 PM, "yang-doctors on behalf of Alexander L Clemm" <[email-masked] on behalf of [email-masked]> wrote:

    > The document is clear and well-written. While some issues have been identified, they can be resolved quickly.
<snip>

    > 	1.	YANG model: does the operation “delete” make sense for a diff operation? If it is kept, it’d be good to have some text explaining that for a diff operation, “delete” and “replace” are the s…
<RR> I actually meant "delete" and "remove".

    </ALEX>
<RR> The operations are indeed well defined in RFC8072 (copied below), but they are defined from the perspective of YANG-Patch. So for YANG-Patch "delete" and "remove" are different operations, but from a diff comparison I believe they are the same (the resource must exist since it's being returned in a diff)

   +-----------+-----------------------------------------------------------------+
   | delete    | delete a data resource if it already exists; if it    |
   |                | does not exist, return an error                               |
   |                |                                                                                      |
   | remove | remove a data resource if it already exists           |
   +-----------+-----------------------------------------------------------------+

<RR> Not needed. 

    OLD:

    NEW:

<RR> Good with me.

    </ALEX>

    </ALEX>
<RR>Whatever the WG/chairs decide is fine with me.

Regards,
Reshad.

---

From: Alexander L Clemm <[email-masked]>
Date: Tue, 15 Sep 2020 16:31:02 -0700

Hi Reshad,

re: question 1: As you indicate, there may be no distinction between
indicating a "remove" or a "delete" in the patch.  Right now it would be
acceptable to return either.  If we want to eliminate this freedom,
which one would you prefer be used?  Shall we remove the possibility for
"delete" and just cover it using "remove"? 

Note that the place where this is specified in the model is as part of a
condition that specifies when the source value should be included.   If
we want to rule out that diff can return either "remove" or "delete"
(indeed they are synonymous), we would need to add text to the container
description that when a data object is present in the target of the
comparison but not the source, that "remove" should be used to indicate
that.

The model would be changed follows.  Please confirm if this looks good
to you & we'll incorporate it. 

OLD

           container differences {
             description
               "The list of differences, encoded per RFC8072 <https://tools.ietf.org/html/rfc8072> with an
                augmentation to include source values where
                applicable.";
             uses ypatch:yang-patch {
               augment "yang-patch/edit" {
                 description
                   "Provide the value of the source of the patch,
                    respectively of the comparison, in addition to
                    the target value, where applicable.";
                 anydata source-value {
                   when "../operation = 'delete'"
                     + "or ../operation = 'merge'"
                     + "or ../operation = 'move'"
                     + "or ../operation = 'replace'"
                     + "or ../operation = 'remove'";
                   description
                     "The anydata 'value' is only used for 'delete',
                      'move', 'merge', 'replace', and 'remove'
                      operations.";
                 }
                 reference "RFC 8072 <https://tools.ietf.org/html/rfc8072>: YANG Patch Media Type";
               }
             }
           }

NEW:

           container differences {
             description
               "The list of differences, encoded per RFC8072 <https://tools.ietf.org/html/rfc8072> with an
                augmentation to include source values where
                applicable.  Where a difference include a data object
                in the target that is not present in the source, 
                this shall be indicated as a 'remove' operation 
                in the patch, not as a 'delete' operation.";
             uses ypatch:yang-patch {
               augment "yang-patch/edit" {
                 description
                   "Provide the value of the source of the patch,
                    respectively of the comparison, in addition to
                    the target value, where applicable.";
                 anydata source-value {
                   when "../operation = 'merge'"
                     + "or ../operation = 'move'"
                     + "or ../operation = 'replace'"
                     + "or ../operation = 'remove'";
                   description
                     "The anydata 'value' is only used for 'merge',
                      'move','replace', and 'remove' operations.";
                 }
                 reference "RFC 8072 <https://tools.ietf.org/html/rfc8072>: YANG Patch Media Type";
               }
             }
           }

Thanks
--- Alex

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Fri, 18 Sep 2020 12:57:27 +0000

Hi Alex,

I think the only “problem” with using both “remove” and “delete” is that it could be confusing (when should one be used and not the other). Adding some text to say they’re the same for the diff operation is good enough for me.

Regards,
Reshad.

From: Alexander L Clemm <[email-masked]>
Date: Tuesday, September 15, 2020 at 7:31 PM
To: "Reshad Rahman (rrahman)" <[email-masked]>, "[email-masked]" <[email-masked]>
Cc: "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Reshad,

re: question 1: As you indicate, there may be no distinction between indicating a "remove" or a "delete" in the patch.  Right now it would be acceptable to return either.  If we want to eliminate this freedom, which one would you prefer be used?  Shall we remove the possibility for "delete" and just cover it using "remove"?

Note that the place where this is specified in the model is as part of a condition that specifies when the source value should be included.   If we want to rule out that diff can return either "remove" or "delete" (indeed they are synonymous), we would need to add text to the container description that when a data object is present in the target of the comparison but not the source, that "remove" should be used to indicate that.

The model would be changed follows.  Please confirm if this looks good to you & we'll incorporate it.

OLD

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://tools.ietf.org/html/rfc8072> with an

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

                 reference "RFC 8072<https://tools.ietf.org/html/rfc8072>: YANG Patch Media Type";

               }

             }

           }

NEW:

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://tools.ietf.org/html/rfc8072> with an

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

                 reference "RFC 8072<https://tools.ietf.org/html/rfc8072>: YANG Patch Media Type";

               }

             }

           }

Thanks
--- Alex

Hi Alex,

On 2020-09-15, 5:19 PM, "yang-doctors on behalf of Alexander L Clemm" <[email-masked] on behalf of [email-masked]><mailto:[email-masked]@clemm.org> wrote:

    updates).

<snip>

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: Alexander L Clemm <[email-masked]>
Date: Fri, 18 Sep 2020 12:42:25 -0700

Hi Reshad,

okay, so let's add the following then to section 4, in the explanation
of the "differences" output parameter:

"When a datastore node in the source of the comparison is not present in
the target of the comparison, this can be indicated either as a "delete"
or as a "remove" in the patch as there is no differentiation between
those operations for the purposes of the comparison.  "

And update the description as follows:

         container differences {
          description
           "The list of differences, encoded per RFC8072 with an
             augmentation to include source values where
             applicable.  When a datastore node in the source is
             not present in the target, this can be indicated either
             as a 'delete' or as a 'remove' as there is no difference
             between them for the purposes of the comparison.";
...

I will post this in a -06 shortly.  Please let us know if this addresses
your concerns or if there is anything else.

Thanks!

--- Alex

On 9/18/2020 5:57 AM, Reshad Rahman (rrahman) wrote:
>
> Hi Alex,
>
>  
>
> I think the only “problem” with using both “remove” and “delete” is
> that it could be confusing (when should one be used and not the
> other). Adding some text to say they’re the same for the diff
> operation is good enough for me.
>
>  
>
> Regards,
>
> Reshad.
>
>  
>
> *From: *Alexander L Clemm <[email-masked]>
> *Date: *Tuesday, September 15, 2020 at 7:31 PM
> *To: *"Reshad Rahman (rrahman)" <[email-masked]>,
> "[email-masked]" <[email-masked]>
> *Cc: *"[email-masked]" <[email-masked]>, "[email-masked]"
> <[email-masked]>, "[email-masked]"
> <[email-masked]>
> *Subject: *Re: [yang-doctors] [netmod] Yangdoctors last call review of
> draft-ietf-netmod-nmda-diff-04
>
>  
>
> Hi Reshad,
>
> indicating a "remove" or a "delete" in the patch.  Right now it would
> be acceptable to return either.  If we want to eliminate this freedom,
> which one would you prefer be used?  Shall we remove the possibility
> for "delete" and just cover it using "remove"? 
>
> Note that the place where this is specified in the model is as part of
> a condition that specifies when the source value should be included.  
> If we want to rule out that diff can return either "remove" or
> "delete" (indeed they are synonymous), we would need to add text to
> the container description that when a data object is present in the
> target of the comparison but not the source, that "remove" should be
> used to indicate that.
>
>                "The list of differences, encoded per RFC8072
> <https://tools.ietf.org/html/rfc8072> with an
>                  reference "RFC 8072
> <https://tools.ietf.org/html/rfc8072>: YANG Patch Media Type";
>                }
>              }
>            }
>  
>  
>
> NEW:
>
>            container differences {
>              description
>                "The list of differences, encoded per RFC8072
> <https://tools.ietf.org/html/rfc8072> with an
>                  reference "RFC 8072
> <https://tools.ietf.org/html/rfc8072>: YANG Patch Media Type";
>                }
>              }
>            }
>
>  
>
> Thanks
>
> --- Alex
>
>  
>
>     On 2020-09-15, 5:19 PM, "yang-doctors on behalf of Alexander L Clemm" <[email-masked] on behalf of [email-masked]> <mailto:[email-masked]@clemm.org> wrote:
>
>      
>
>         > <Here's the same message with hopefully more readable formatting>
>
>         >
>
>         > Review of rev -04 by Reshad Rahman
>
>         >
>
>         > The document is clear and well-written. While some issues have been identified, they can be resolved quickly.
>
>         >
>
>     <snip>
>
>      
>
>         > Questions
>
>         >    1.      YANG model: does the operation “delete” make sense for a diff operation? If it is kept, it’d be good to have some text explaining that for a diff operation, “delete” and “replace” are the same? If they’re not the same, please also add some text….
>
>         >    3.      YANG model P9, for the “uses path:yang-patch”, why not have a  reference to RFC8072 (is it because the description above mentions RFC8072)?
>
>         >    4.      Section 7 mentions rate limiting requests per client. Should there be a “global” rate-limiting too, i.e not client-specific?
>
>      
>
>         >    5.      Wondering if section 8 should be in an Appendix (or even removed)? Also, the method suggested doesn’t seem to guarantee that the difference persisted for the “dampening” time.
>
>      
>

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Fri, 18 Sep 2020 19:47:51 +0000

Hi Alex,

This addresses my comment/concern.

Regards,
Reshad.

Date: Friday, September 18, 2020 at 3:43 PM

Hi Reshad,

okay, so let's add the following then to section 4, in the explanation of the "differences" output parameter:

"When a datastore node in the source of the comparison is not present in the target of the comparison, this can be indicated either as a "delete" or as a "remove" in the patch as there is no differentiation between those operations for the purposes of the comparison.  "

         container differences {
          description

I will post this in a -06 shortly.  Please let us know if this addresses your concerns or if there is anything else.

Thanks!

--- Alex

Regards,
Reshad.

From: Alexander L Clemm <[email-masked]><mailto:[email-masked]>
Date: Tuesday, September 15, 2020 at 7:31 PM
To: "Reshad Rahman (rrahman)" <[email-masked]><mailto:[email-masked]>, "[email-masked]"<mailto:[email-masked]> <[email-masked]><mailto:[email-masked]>
Cc: "[email-masked]"<mailto:[email-masked]> <[email-masked]><mailto:[email-masked]>, "[email-masked]"<mailto:[email-masked]> <[email-masked]><mailto:[email-masked]>, "[email-masked]"<mailto:[email-masked]> <[email-masked]><mailto:[email-masked]>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Reshad,

OLD

           container differences {

             description

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

               }

             }

           }

NEW:

           container differences {

             description

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: Alexander L Clemm <[email-masked]>
Date: Fri, 18 Sep 2020 12:48:45 -0700

Thank you! 

I just uploaded rev -06.

--- Alex

On 9/18/2020 12:47 PM, Reshad Rahman (rrahman) wrote:
> *Date: *Friday, September 18, 2020 at 3:43 PM
> "When a datastore node in the source of the comparison is not present
> in the target of the comparison, this can be indicated either as a
> "delete" or as a "remove" in the patch as there is no differentiation
> between those operations for the purposes of the comparison.  "
>
> I will post this in a -06 shortly.  Please let us know if this
> addresses your concerns or if there is anything else.
>
> Thanks!
>
> --- Alex
>
>  
>
>     I think the only “problem” with using both “remove” and “delete”
>     is that it could be confusing (when should one be used and not the
>     *From: *Alexander L Clemm <[email-masked]> <mailto:[email-masked]>
>     *To: *"Reshad Rahman (rrahman)" <[email-masked]>
>     <mailto:[email-masked]>, "[email-masked]"
>     <mailto:[email-masked]> <[email-masked]>
>     <mailto:[email-masked]>
>     *Cc: *"[email-masked]" <mailto:[email-masked]>
>     <[email-masked]> <mailto:[email-masked]>,
>     "[email-masked]" <mailto:[email-masked]> <[email-masked]>
>     <mailto:[email-masked]>,
>     "[email-masked]"
>     <mailto:[email-masked]>
>     <mailto:[email-masked]>
>     *Subject: *Re: [yang-doctors] [netmod] Yangdoctors last call
>     review of draft-ietf-netmod-nmda-diff-04
>
>      
>
>     Hi Reshad,
>
>     re: question 1: As you indicate, there may be no distinction
>     between indicating a "remove" or a "delete" in the patch.  Right
>     now it would be acceptable to return either.  If we want to
>     eliminate this freedom, which one would you prefer be used?  Shall
>     we remove the possibility for "delete" and just cover it using
>     "remove"? 
>
>     Note that the place where this is specified in the model is as
>     part of a condition that specifies when the source value should be
>     included.   If we want to rule out that diff can return either
>     "remove" or "delete" (indeed they are synonymous), we would need
>     to add text to the container description that when a data object
>     is present in the target of the comparison but not the source,
>     that "remove" should be used to indicate that.
>

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Tue, 22 Sep 2020 13:07:42 +0000

Hi Alex,

Thank you for addressing my comments.

I checked rev-06, and I believe the XML and JSON output in the example is broken: there is a single “edit” element with multiple “edit-id” elements. I believe there should be multiple “edit” elements.

The only “nit” is that leaf-xpath-filter references 6021 instead of 6991 (as you correctly pointed out in your response).
           leaf xpath-filter {
             if-feature nc:xpath;
             type yang:xpath1.0;
             description
               "This parameter contains an XPath expression
                identifying the portions of the target
                datastore to retrieve.";
             reference "RFC 6021: Common YANG Data Types";
           }

Regards,
Reshad.

Date: Friday, September 18, 2020 at 3:48 PM

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

               }

             }

           }

NEW:

           container differences {

             description

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: Yingzhen Qu <[email-masked]>
Date: Fri, 25 Sep 2020 05:07:34 +0000

Hi Reshad,

Thank you for your review.

About the example, in RFC 8072, in the list “edit”, each edit is identified by “edit-id”. So the example looks like:
<edit>
   <edit-id>1</edit-id>
   …..
   <edit-id>2</edit-id>
  ….
</edit>
Do you mean this part is broken?

Thanks,
Yingzhen

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Tuesday, September 22, 2020 at 6:07 AM
To: Alexander L Clemm <[email-masked]>, "[email-masked]" <[email-masked]>
Cc: "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04
Resent-From: <[email-masked]>
Resent-To: <[email-masked]>, <[email-masked]>, <[email-masked]>, <[email-masked]>, <[email-masked]>, <[email-masked]>, <[email-masked]>, <[email-masked]>, <[email-masked]>, Joel Jaeggli <[email-masked]>, <[email-masked]>
Resent-Date: Tuesday, September 22, 2020 at 6:07 AM

Hi Alex,

Regards,
Reshad.

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cc9e83369f1624e4b60b608d85ef883ee%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637363768774402822&sdata=i0qHfDC8FoxMKlhc04Hwm5KO04ql8rDZiFReTbgRXEE%3D&reserved=0> with an

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cc9e83369f1624e4b60b608d85ef883ee%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637363768774407820&sdata=Se2BV0iRhOl3PFCcs6mQ8Dwt0d1C6rxRTIZU0Wz5veE%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

NEW:

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cc9e83369f1624e4b60b608d85ef883ee%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637363768774412805&sdata=pw9%2BdnjrRujdxvDjU%2BjbbHB46nbtpkJBacUnAjdgwSM%3D&reserved=0> with an

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cc9e83369f1624e4b60b608d85ef883ee%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637363768774417801&sdata=AAvbX0CNalX%2FhCkMCuEiqb031lgRIwj3hYOB%2FTFPqAQ%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    operations per https://tools.ietf.org/html/rfc8072#page-11<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072%23page-11&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cc9e83369f1624e4b60b608d85ef883ee%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637363768774422792&sdata=09b5IcwmwHzFeioUDuM4fDXAiUj2XxTO2Sh%2F5AVD%2FD4%3D&reserved=0>.  Those are

    https://tools.ietf.org/html/rfc6241#page-37<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6241%23page-37&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cc9e83369f1624e4b60b608d85ef883ee%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637363768774427780&sdata=HDgsC240CXvQeJ6MFJOUPK%2FZnbifc35VXgWD9GnzXpE%3D&reserved=0>.  I am not sure we need add

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Fri, 25 Sep 2020 11:58:21 +0000

Hi Yingzhen,

Yes I believe this part is broken, since you have multiple edit-id elements for 1 edit element, below is the YANG snippet from RFC8072.

         list edit {
           key edit-id;
           ordered-by user;
<snip>
           leaf edit-id {
             type string;
             description
               "Arbitrary string index for the edit.
                Error messages returned by the server that pertain
                to a specific edit will be identified by this value.";
           }

If you take a look at A.1.1 of RFC8072, there is an example with multiple edit elements.

Regards,
Reshad.

From: Yingzhen Qu <[email-masked]>
Date: Friday, September 25, 2020 at 1:07 AM
To: "Reshad Rahman (rrahman)" <[email-masked]>, Alexander L Clemm <[email-masked]>, "[email-masked]" <[email-masked]>
Cc: "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Reshad,

Thanks,
Yingzhen

Hi Alex,

Regards,
Reshad.

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

               }

             }

           }

NEW:

           container differences {

             description

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: Yingzhen Qu <[email-masked]>
Date: Fri, 25 Sep 2020 14:46:50 +0000

Hi Reshad,

Thank you for the example. I modified the XML example as you suggested. The JSON example looks ok to me. Also fixed the nit to reference RFC 6991.

New generated txt file attached, please let me know if you see more issues.

Thanks,
Yingzhen

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Friday, September 25, 2020 at 4:58 AM
To: Yingzhen Qu <[email-masked]>, Alexander L Clemm <[email-masked]>, "[email-masked]" <[email-masked]>
Cc: "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Yingzhen,

         list edit {
           key edit-id;
           ordered-by user;
<snip>
           leaf edit-id {
             type string;
             description

Regards,
Reshad.

Hi Reshad,

Thanks,
Yingzhen

Hi Alex,

Regards,
Reshad.

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cb7fc77bbed654b8842c808d8614a5045%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637366319110869812&sdata=ToExdbPZEYxKRuXsEh2E45ynP06Dbyj%2BwpWjzBNqzDE%3D&reserved=0> with an

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cb7fc77bbed654b8842c808d8614a5045%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637366319110879805&sdata=WbPDEmi7dnYh5C1Y9SIdG%2FS76LDbz9%2FCavlSbs8yNKk%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

NEW:

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cb7fc77bbed654b8842c808d8614a5045%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637366319110879805&sdata=WbPDEmi7dnYh5C1Y9SIdG%2FS76LDbz9%2FCavlSbs8yNKk%3D&reserved=0> with an

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cb7fc77bbed654b8842c808d8614a5045%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637366319110889796&sdata=Zbnla%2F%2FtgGm8eFjxXYMfLlB3eb%2B0%2FkcLejfPV2w2tj4%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    operations per https://tools.ietf.org/html/rfc8072#page-11<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072%23page-11&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cb7fc77bbed654b8842c808d8614a5045%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637366319110899791&sdata=NY537yUFCnepe0KvW5cx5Khu5MFKHyk3h4IVPEpmIfY%3D&reserved=0>.  Those are

    https://tools.ietf.org/html/rfc6241#page-37<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6241%23page-37&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Cb7fc77bbed654b8842c808d8614a5045%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637366319110899791&sdata=qacE1mF1It2iyy0sK3FZKk4WBWGsbW1hgY5glddb9UY%3D&reserved=0>.  I am not sure we need add

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Fri, 25 Sep 2020 15:34:04 +0000

Hi Yingzhen,

The JSON example doesn’t seem ok because it only contains 1 edit entry. To confirm I went to https://jsonlint.com/ and it 1st complained about missing comma after the } for source-value and when I fixed that it complained about Duplicate key ‘edit-id’.

FYI, the JSON block below passed the lint check.

Regards,
Reshad.

  {
      "ietf-nmda-compare:output": {
            "differences": {
                  "ietf-yang-patch:yang-patch": {
                        "patch-id": "interface status",
                        "comment": "diff between intended (source) and operational",
                        "edit": [
                             {
                                    "edit-id": "1",
                                    "operation": "replace",
                                    "target": "/ietf-interfaces:interface=eth0/enabled",
                                    "value": {
                                          "ietf-interfaces:interface/enabled": "false"
                                    },
                                    "source-value": {
                                          "ietf-interfaces:interface/enabled": "true",
                                          "@ietf-interfaces:interface/enabled": {
                                                "ietf-origin:origin": "ietf-origin:learned"
                                          }
                                    }
                              },
                              {
                                    "edit-id": "2",
                                    "operation": "create",
                                    "target": "/ietf-interfaces:interface=eth0/description",
                                    "value": {
                                          "ietf-interface:interface/description": "ip interface"
                                    }
                              }
                        ]
                  }
            }
      }
  }

Date: Friday, September 25, 2020 at 10:47 AM

Hi Reshad,

Thanks,
Yingzhen

Hi Yingzhen,

         list edit {
           key edit-id;
           ordered-by user;
<snip>
           leaf edit-id {
             type string;
             description

Regards,
Reshad.

Hi Reshad,

Thanks,
Yingzhen

Hi Alex,

Regards,
Reshad.

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

               }

             }

           }

NEW:

           container differences {

             description

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: Yingzhen Qu <[email-masked]>
Date: Fri, 25 Sep 2020 15:49:12 +0000

Hi Reshad,

Thanks for the link to verify JSON, it’s very helpful.

I’ve uploaded version -07. Please let me know if you have any comments.

Thanks,
Yingzhen

Date: Friday, September 25, 2020 at 8:34 AM

Hi Yingzhen,

The JSON example doesn’t seem ok because it only contains 1 edit entry. To confirm I went to https://jsonlint.com/<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fjsonlint.com%2F&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544225811&sdata=1MfsJLUqKllzfkYO6xAYy%2FZlOq5Prq6MHVXi1sa6VW4%3D&reserved=0> and it 1st complained about missing comma after the } for source-value and when I fixed that it complained about Duplicate key ‘edit-id’.

Regards,
Reshad.

  {

Hi Reshad,

Thanks,
Yingzhen

Hi Yingzhen,

         list edit {
           key edit-id;
           ordered-by user;
<snip>
           leaf edit-id {
             type string;
             description

Regards,
Reshad.

Hi Reshad,

Thanks,
Yingzhen

Hi Alex,

Regards,
Reshad.

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544235765&sdata=drapeeEOoAsvkbVbwXRpJbtiak3fbhn9VG%2B4g5ocOak%3D&reserved=0> with an

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544235765&sdata=drapeeEOoAsvkbVbwXRpJbtiak3fbhn9VG%2B4g5ocOak%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

NEW:

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544245720&sdata=xo601608KBI8P9VUmZNIdqKkjOdWsTUj5dwFXEZq9Iw%3D&reserved=0> with an

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544245720&sdata=xo601608KBI8P9VUmZNIdqKkjOdWsTUj5dwFXEZq9Iw%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    operations per https://tools.ietf.org/html/rfc8072#page-11<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072%23page-11&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544255678&sdata=P%2BtALNsWuBbanIpCo%2Fkhb%2BrclQGN%2FuwjAh5bRA%2FM6%2FU%3D&reserved=0>.  Those are

    https://tools.ietf.org/html/rfc6241#page-37<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6241%23page-37&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7Ce9baa6c2aeee43ef078d08d8616872b9%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366448544255678&sdata=x2ai3ZRdPPLU%2FrK3TIEqnGJZaS7C7dTpbOSpTqkw0jk%3D&reserved=0>.  I am not sure we need add

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Fri, 25 Sep 2020 16:42:18 +0000

Looks good, no new issues.

Regards,
Reshad.

Date: Friday, September 25, 2020 at 11:49 AM

Hi Reshad,

Thanks,
Yingzhen

Hi Yingzhen,

Regards,
Reshad.

  {

Hi Reshad,

Thanks,
Yingzhen

Hi Yingzhen,

         list edit {
           key edit-id;
           ordered-by user;
<snip>
           leaf edit-id {
             type string;
             description

Regards,
Reshad.

Hi Reshad,

Thanks,
Yingzhen

Hi Alex,

Regards,
Reshad.

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

               }

             }

           }

NEW:

           container differences {

             description

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.

---

From: Alexander Clemm <[email-masked]>
Date: Fri, 25 Sep 2020 19:30:57 +0000

Thanks, Reshad and Yingzhen!
--- Alex

From: netmod <[email-masked]> On Behalf Of Reshad Rahman (rrahman)
Sent: Friday, September 25, 2020 9:42 AM
To: Yingzhen Qu <[email-masked]>; Alexander L Clemm <[email-masked]>; [email-masked]
Cc: [email-masked]; [email-masked]; [email-masked]
Subject: Re: [netmod] [yang-doctors] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Regards,
Reshad.

From: Yingzhen Qu <[email-masked]<mailto:[email-masked]>>
Date: Friday, September 25, 2020 at 11:49 AM
To: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>, Alexander L Clemm <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Reshad,

Thanks,
Yingzhen

From: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>
Date: Friday, September 25, 2020 at 8:34 AM
To: Yingzhen Qu <[email-masked]<mailto:[email-masked]>>, Alexander L Clemm <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Yingzhen,

The JSON example doesn’t seem ok because it only contains 1 edit entry. To confirm I went to https://jsonlint.com/<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fjsonlint.com%2F&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474870208&sdata=Brd2xHCHKLua5h9xmISxj1uI%2FdzqoI4dlD7bTVtbV1k%3D&reserved=0> and it 1st complained about missing comma after the } for source-value and when I fixed that it complained about Duplicate key ‘edit-id’.

Regards,
Reshad.

  {

From: Yingzhen Qu <[email-masked]<mailto:[email-masked]>>
Date: Friday, September 25, 2020 at 10:47 AM
To: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>, Alexander L Clemm <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Reshad,

Thanks,
Yingzhen

From: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>
Date: Friday, September 25, 2020 at 4:58 AM
To: Yingzhen Qu <[email-masked]<mailto:[email-masked]>>, Alexander L Clemm <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Yingzhen,

         list edit {
           key edit-id;
           ordered-by user;
<snip>
           leaf edit-id {
             type string;
             description

Regards,
Reshad.

From: Yingzhen Qu <[email-masked]<mailto:[email-masked]>>
Date: Friday, September 25, 2020 at 1:07 AM
To: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>, Alexander L Clemm <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Hi Reshad,

Thanks,
Yingzhen

From: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>
Date: Tuesday, September 22, 2020 at 6:07 AM
To: Alexander L Clemm <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04
Resent-From: <[email-masked]<mailto:[email-masked]>>
Resent-To: <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>, Joel Jaeggli <[email-masked]<mailto:[email-masked]>>, <[email-masked]<mailto:[email-masked]>>
Resent-Date: Tuesday, September 22, 2020 at 6:07 AM

Hi Alex,

Regards,
Reshad.

From: Alexander L Clemm <[email-masked]<mailto:[email-masked]>>
Date: Friday, September 18, 2020 at 3:48 PM
To: "Reshad Rahman (rrahman)" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [yang-doctors] [netmod] Yangdoctors last call review of draft-ietf-netmod-nmda-diff-04

Thank you!

I just uploaded rev -06.

--- Alex

Regards,
Reshad.

Hi Reshad,

         container differences {
          description

Thanks!

--- Alex

Regards,
Reshad.

Hi Reshad,

OLD

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474870208&sdata=ZhyS14WI5SBCfZBXlkgxxx8QEjGpjkIQMYQ4UbRbQhk%3D&reserved=0> with an

                applicable.";

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                      operations.";

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474880202&sdata=KsgJFMriEx2pi0LWkXWfy6CyeIPfd03byz2ZucMPoRU%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

NEW:

           container differences {

             description

               "The list of differences, encoded per RFC8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474880202&sdata=KsgJFMriEx2pi0LWkXWfy6CyeIPfd03byz2ZucMPoRU%3D&reserved=0> with an

             uses ypatch:yang-patch {

                 description

                 anydata source-value {

                   description

                 }

                 reference "RFC 8072<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474890186&sdata=HI7FszS1y32mk12k0%2BVHYQJt24JaEzEsoss1uFADdpc%3D&reserved=0>: YANG Patch Media Type";

               }

             }

           }

Thanks
--- Alex

Hi Alex,

    updates).

<snip>

    operations per https://tools.ietf.org/html/rfc8072#page-11<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc8072%23page-11&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474890186&sdata=LADW9OYrjZOJ0Nv5clbHcSf41eoS1NXpNejWb8A8zeQ%3D&reserved=0>.  Those are

    https://tools.ietf.org/html/rfc6241#page-37<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6241%23page-37&data=02%7C01%7Calex%40futurewei.com%7C0f32962064e242119f1108d86172362c%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637366490474900180&sdata=870DbV9BaYJ%2FfdIS3D0ECD4EdfseNsH7Kah3KsqsbrE%3D&reserved=0>.  I am not sure we need add

    </ALEX>

   |                |                                                                                      |

<RR> Not needed.

    OLD:

    NEW:

    reasonably sustain.

<RR> Good with me.

    </ALEX>

    </ALEX>

Regards,

Reshad.