Re: [netconf] RFC 6241 Ambiguity

Mahesh Jethanandani <mjethanandani@gmail.com> Tue, 25 June 2019 18:02 UTC

Return-Path: <mjethanandani@gmail.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 27478120AC9 for <netconf@ietfa.amsl.com>; Tue, 25 Jun 2019 11:02:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9jMDwTDg_Yj6 for <netconf@ietfa.amsl.com>; Tue, 25 Jun 2019 11:02:50 -0700 (PDT)
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E263120AA4 for <netconf@ietf.org>; Tue, 25 Jun 2019 11:02:50 -0700 (PDT)
Received: by mail-pg1-x52a.google.com with SMTP id z19so312354pgl.12 for <netconf@ietf.org>; Tue, 25 Jun 2019 11:02:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:date:references:to:in-reply-to:message-id; bh=t2ylB2RjCjG9MdnrSzfKCCgt20nBwJWbTT0W92Zb0KQ=; b=eg0M0bkVI9/ahQ2xQ6hYtZFU1+Lw7WTYMm54ytQsQ2dShjuLp01BXLXFRG2b2rd4O/ CG1XI7JXFHVLypp8zY5odoySS4Opzi5a/2v6iKL0IZOXIf/zPU12h0hXP51jUuTcL7jL eIGuyv7cvmaCQuOpzzr631nzIJ5eIRMyDnNXeIJZ/KoQyDN2hj3cSLBPfiVO7UVD3SaI 6HHu/4VI3x3Z3ovQuish/0TTMYcVloHRi/qj3UnjqRDpPQZuRWeVQcFEQFeFXlV5WzKq uChGMAdjL6aXaJIgcO8Im1PJ2UfhRHbozq6oXgqCZJdk/Bs0iSUYF7UdztqM3fQ1fZvw tlTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:date:references:to :in-reply-to:message-id; bh=t2ylB2RjCjG9MdnrSzfKCCgt20nBwJWbTT0W92Zb0KQ=; b=NF64ysLUNtls/xhkQZZ2IrVO6NzbvjfujsAvobRchynUG3GvW8R2e6XcVZ7a1LKoyz Q3o7P/HnBdVb7UUPtn7uYRZFoK05+/2zEqiTIRb2ckvN50p8I1BuDNy5n9i1zriXQxXS k7Sgp5ljq1Fqpw6yeg2kEBMJ4EJoVQS/Bau/2pqBtQ/e0nZs53JIDnuNj2p3E/uFKr2X dIYe3NcUboo9FZHAMjRjP3IRKIkVoHICkreS4tSow+HwdL4FTAF6GRrBG2yAC6T4i2y7 8Uj/rO5whGHdRFFxmkGCKQKPx4OR3PA3ROuOVDAS6oQkzLOC2JzfHLX6Xzqo7klR9j4y Ttsw==
X-Gm-Message-State: APjAAAXYuXlVWl4J1CcrGGZ2VDUU9YPVdzSesyMJaAMmtEwy7p8D2/cC cuhIv2KJmvNuc3a6SYB/C8X1IiJy
X-Google-Smtp-Source: APXvYqwhW5XBPJAG/3iuoL1j3k5QeFcN/ewH5Q0nmqOeqmUmDq31aVMhc5lrd2p+Mcx9Tt1b7i4JAA==
X-Received: by 2002:a63:fb17:: with SMTP id o23mr39848076pgh.362.1561485769114; Tue, 25 Jun 2019 11:02:49 -0700 (PDT)
Received: from [10.33.123.154] ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id c69sm3153732pje.6.2019.06.25.11.02.48 for <netconf@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Jun 2019 11:02:48 -0700 (PDT)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_5453861D-C2A1-4B7C-A147-3E4C189259E9"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Tue, 25 Jun 2019 11:02:47 -0700
References: <em35e87021-fa76-4888-a383-8b34e960175f@morpheus> <0100016aa75956af-70018fb1-15f8-4394-8ffd-4f4d5b2d7b3f-000000@email.amazonses.com> <CABCOCHScSp8AEjcgSd7tX-Va45y51CxK-b_hO4nd3SzW9rTUKA@mail.gmail.com> <eme2e51d99-6140-4142-b89f-db5e4c6e2a88@morpheus> <0100016ab7a9af7e-cd7f776e-79e1-42a4-9c5d-d04aed0d8fa1-000000@email.amazonses.com> <emdf557a96-2926-4d87-83f9-2f8216ed652e@morpheus> <76ED75C8-AA1A-4A03-A382-0DE834C914A1@gmail.com> <0100016abd77bfe3-88ae515a-d7f9-41c7-b627-9c51bdf16213-000000@email.amazonses.com> <CABCOCHQ-SWFCzs-FzhLe=-n+j+-AEknTuv-nKJ4etFm0srig5w@mail.gmail.com> <884391D0-3F53-4F3D-BFB0-DD333D09507C@gmail.com> <CABCOCHTLzW+2mkau0KHSbprw0e7PjNFO6SZoPyXUzkKm7gsyow@mail.gmail.com> <00d101d51216$f807d120$e8177360$@hansfords.net> <E954A8E5-B241-4655-BF04-F987EC2870C2@gmail.com> <CABCOCHRKSjEFfRvdQWZEnqMQVQd_hNdrK2r4KByiaTbb8FL3aA@mail.gmail.com> <3B2E5975-26B3-4310-B718-9D8D3F0B0DDA@gmail.com> <CABCOCHTH8Ge6Yk3KdaX-sTmcs_Cx-1U4CEvL8Mt-oLFXUQUCug@mail.gmail.com> <0100016b482fc5f4-caf4b52b-416a-438f-9c47-68df526fb9b7-000000@email.amazonses.com> <CABCOCHQbUCPBu-wY_5sA2TUgsOFNGBtAtrYZ9crFJZV+=xo3Cw@mail.gmail.com> <0100016b4bc86abb-d69f575f-c2e7-4ce9-93a5-047262cbff75-000000@email.amazonses.com> <CABCOCHQct9XP86LsGU3qkUkNKfcoSttdmnUqLLG_JP1wfcLe3w@mail.gmail.com> <0100016b4d55fbaf-7f6ae36b-0a00-4b10-a6c0-22fd0401a5e2-000000@email.amazonses.com> <CABCOCHQJ96hXxD19E_KQJ2quHxiUwSivn-Ei0sGWoYDFwM6Qxw@mail.gmail.com>
To: "netconf@ietf.org" <netconf@ietf.org>
In-Reply-To: <CABCOCHQJ96hXxD19E_KQJ2quHxiUwSivn-Ei0sGWoYDFwM6Qxw@mail.gmail.com>
Message-Id: <3204AB2C-3B67-419A-851E-9BA8BEB2273A@gmail.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/hx_8vYYiGuw7Nt57DCNqcj8mfQ0>
Subject: Re: [netconf] RFC 6241 Ambiguity
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Jun 2019 18:03:01 -0000

Summarizing the list of changes that we seem to have agreed upon:

For the first set of changes in section 7.8 and 7.9, we seem to agree on the original set of changes I had sent out earlier, which essentially deferred the discussion of confirmed commit to section 8.4 of the RFC. The second set of changes updates Section 8.4.1 to explain what happens to a confirmed commit that includes a <persist> element.

The highlights in the sections should enable identifying the changes.

CHANGE 1 START

OLD (as in original RFC 6241)

7.8 <https://tools.ietf.org/html/rfc6241#section-7.8>.  <close-session>

   Description:  Request graceful termination of a NETCONF session.

      When a NETCONF server receives a <close-session> request, it will
      gracefully close the session.  The server will release any locks
      and resources associated with the session and gracefully close any
      associated connections.  Any NETCONF requests received after a
      <close-session> request will be ignored.

   Positive Response:  If the device was able to satisfy the request, an
      <rpc-reply> is sent that includes an <ok> element.

   Negative Response:  An <rpc-error> element is included in the
      <rpc-reply> if the request cannot be completed for any reason.

   Example:

     <rpc message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <close-session/>
     </rpc>

     <rpc-reply message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <ok/>
     </rpc-reply>

NEW

7.8 <https://tools.ietf.org/html/rfc6241#section-7.8>.  <close-session>

   Description:  Request graceful termination of a NETCONF session.

      When a NETCONF server receives a <close-session> request, it will
      gracefully close the session.  The server will release any locks
      and resources associated with the session and gracefully close any
      associated connections.  Any NETCONF requests received after a
      <close-session> request will be ignored.

      For details on what happens if a NETCONF server receives a 
      <close-session> request while processing a confirmed commit,
      please refer to Section 8.4 <https://tools.ietf.org/html/rfc6241#section-8.4>.

   Positive Response:  If the device was able to satisfy the request, an
      <rpc-reply> is sent that includes an <ok> element.

   Negative Response:  An <rpc-error> element is included in the
      <rpc-reply> if the request cannot be completed for any reason.

   Example:

     <rpc message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <close-session/>
     </rpc>

     <rpc-reply message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <ok/>
     </rpc-reply>

OLD (as in original RFC 6241).

7.9 <https://tools.ietf.org/html/rfc6241#section-7.9>.  <kill-session>

   Description:  Force the termination of a NETCONF session.

      When a NETCONF entity receives a <kill-session> request for an
      open session, it will abort any operations currently in process,
      release any locks and resources associated with the session, and
      close any associated connections.

      If a NETCONF server receives a <kill-session> request while
      processing a confirmed commit (Section 8.4 <https://tools.ietf.org/html/rfc6241#section-8.4>), it MUST restore the
      configuration to its state before the confirmed commit was issued.

      Otherwise, the <kill-session> operation does not roll back
      configuration or other device state modifications made by the
      entity holding the lock.

   Parameters:

      session-id:  Session identifier of the NETCONF session to be
         terminated.  If this value is equal to the current session ID,
         an "invalid-value" error is returned.

   Positive Response:  If the device was able to satisfy the request, an
      <rpc-reply> is sent that includes an <ok> element.

   Negative Response:  An <rpc-error> element is included in the
      <rpc-reply> if the request cannot be completed for any reason.


   Example:

     <rpc message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <kill-session>
         <session-id>4</session-id>
       </kill-session>
     </rpc>

     <rpc-reply message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <ok/>
     </rpc-reply>

NEW

7.9 <https://tools.ietf.org/html/rfc6241#section-7.9>.  <kill-session>

   Description:  Force the termination of a NETCONF session.

      When a NETCONF entity receives a <kill-session> request for an
      open session, it will abort any operations currently in process,
      release any locks and resources associated with the session, and
      close any associated connections.

      For details on what happens if a NETCONF server receives a 
      <kill-session> request while processing a confirmed commit,
      please refer to Section 8.4 <https://tools.ietf.org/html/rfc6241#section-8.4>.

      Otherwise, the <kill-session> operation does not roll back
      configuration or other device state modifications made by the
      entity holding the lock.

   Parameters:

      session-id:  Session identifier of the NETCONF session to be
         terminated.  If this value is equal to the current session ID,
         an "invalid-value" error is returned.

   Positive Response:  If the device was able to satisfy the request, an
      <rpc-reply> is sent that includes an <ok> element.

   Negative Response:  An <rpc-error> element is included in the
      <rpc-reply> if the request cannot be completed for any reason.


   Example:

     <rpc message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <kill-session>
         <session-id>4</session-id>
       </kill-session>
     </rpc>

     <rpc-reply message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
       <ok/>
     </rpc-reply>

CHANGE 1 END

CHANGE 2 START
The following paragraph in Section 8.4.1 would be modified.

OLD:

   If the device reboots for any reason before the confirm timeout
   expires, the server MUST restore the configuration to its state
   before the confirmed commit was issued.


NEW:

   If the device reboots for any reason before the confirm timeout
   expires, the server MUST restore the configuration to its state
   before the confirmed commit was issued, unless the confirmed commit 
   also included a <persist> element, in which case the server MAY continue
   the confirmed commit procedure.

CHANGE 2 END

Finally, looking at the current set of Errata that are already open against the RFC, we (the chairs) believe that Errata number 5397 should be deleted and (a new Errata with these contents) be posted. This is being done to avoid stacking one Errata on top of another.

Unless there is objection to these changes within the next two weeks, we will proceed with submitting them to the RFC Editor.

> On Jun 12, 2019, at 2:47 PM, Andy Bierman <andy@yumaworks.com> wrote:
> 
> Hi,
> 
> This is the new text in question:
> It appears your intent is (c) since there is no mention at all what happens if
> <persist> was included.  The text just says what does not happen in this case.
> 
>>> 
>>>    If the device reboots for any reason before the confirm timeout
>>>    expires, the server MUST restore the configuration to its state
>>>    before the confirmed commit was issued, unless the confirmed commit 
>>>    also included a <persist> element.
>> 
>> 
>> 
>> How about adding at the end:
>> 
>> OLD:
>> 
>> element.
>> 
>> NEW:
>> 
>> element, in which case the server MAY continue the confirmed commit procedure.
>> 
>> 
>> Andy
>>  
> 
> On Wed, Jun 12, 2019 at 1:16 PM Kent Watsen <kent+ietf@watsen.net <mailto:kent%2Bietf@watsen.net>> wrote:
> 
> Hi Andy,
> 
>> I object to changing RFC 6241 with an Errata if it attempts to enforce protocol behavior
>> that the original RFC does not actually specify.  (c) is correct for an Errata because the original RFC
>> is under-specified.  Or perhaps: (d) 'persist' MAY span reboots
> 
> It sounds like we're in agreement.  Are you objecting to something I wrote in particular?
> 
> Kent // contributor
> 
> 

Mahesh Jethanandani
mjethanandani@gmail.com