Re: [netconf] RFC 6241 Ambiguity

Mahesh Jethanandani <mjethanandani@gmail.com> Fri, 31 May 2019 22:19 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 902991200FF for <netconf@ietfa.amsl.com>; Fri, 31 May 2019 15:19:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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] 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 4O26GigeGtoP for <netconf@ietfa.amsl.com>; Fri, 31 May 2019 15:19:43 -0700 (PDT)
Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) (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 E368E120020 for <netconf@ietf.org>; Fri, 31 May 2019 15:19:42 -0700 (PDT)
Received: by mail-pg1-x530.google.com with SMTP id t1so1250182pgc.2 for <netconf@ietf.org>; Fri, 31 May 2019 15:19:42 -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=j2kYDGRr4DcQHsVb+cmxBXykh6W99M91bctq0hrdSBU=; b=cDNXIBRbzHYNa0FOFEZnde+7DLwS5FJ9W5VQRyZBZhDN9gBWj+yNcQO2vixgBBeHXf v8sOpBpPgDU6dGZLnLgcgzA/FsWC1GKz9j2VHXkao0JvuTJqRVl8UqfrlRyFbeg+1gqz HaeJ4HzQPI/c9iLUtQf2shcICQ4DWN4fxCipS+nlUKS+bDeliUhWpEM4XUDyddKIqXs+ xHorJ+DDoARxmUhVcqlozJZDeU/IsDoW7FzWoVnlfPMD05+GaLXVLEG+PI0YXydgBa6l jeuvMNyyoPNoQ6/MGpaaXYL4mIJ4lCohRJ07wlAnNHVn/+ATuu7KFub7sLfHREH+j6DC 0gew==
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=j2kYDGRr4DcQHsVb+cmxBXykh6W99M91bctq0hrdSBU=; b=kYrUpJb8XapAUbrJTX9dUy9q5CwQbeUgho6Nvj/Vw1VsTX+y4Btp5lKwAkv4ZLGILm zJyXW3Af4GJ/R2OdNy7nYmo4YzASS3XXcj0j3hhY1v/3nZb+CYawdWhZ3LxJc8xkSBFz vKWhnBSnI1gQhQFHw8XgqYpTzTVpx00QCRB7Q+JtNii0XdBm0fIwlenHL2mUbdx3mszd xcbktXzKKaqqlJzEm/5Ft7uED0ccGi5hsutS0vmPeXS/1X5C2xY2ntgKo1ZLjaMSxfDu DeCKVR/Fy1dH40vNWlAvTQXzExZd789PP4z4JJ0Dlvk9TIdCm31zqf9S4YeGbMz/oyvq NR+g==
X-Gm-Message-State: APjAAAVmlNoAVqsCG7YuYY/TwX/Vz85Jw+g/rWO878SniB/gjmp8fzKl yY4e/yIH+pn9GPF9NzZGKPrDtAdD
X-Google-Smtp-Source: APXvYqxil9EaDbNcOoKSH6VjyKqJj2HqtOSJfvsIDwUrgOKXEPsW49gNBSPUNogUKhAZkwvhSC47CQ==
X-Received: by 2002:aa7:8b17:: with SMTP id f23mr7734583pfd.194.1559341182024; Fri, 31 May 2019 15:19:42 -0700 (PDT)
Received: from [10.33.123.214] ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id v9sm6778762pfm.34.2019.05.31.15.19.41 for <netconf@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 May 2019 15:19:41 -0700 (PDT)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4D40E664-11C6-47F5-A0C7-5643ADCD4BE6"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Fri, 31 May 2019 15:19:40 -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>
To: Netconf <netconf@ietf.org>
In-Reply-To: <00d101d51216$f807d120$e8177360$@hansfords.net>
Message-Id: <E954A8E5-B241-4655-BF04-F987EC2870C2@gmail.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/juT9LbEleVoaDls3x6ndOEiDIHo>
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: Fri, 31 May 2019 22:19:46 -0000


Several attempts have been made to clarify the role of confirmed commit in RFC 6241 vis-a-vis Section 7.8 <close-session> and Section 7.9 <kill-session>, and the text in Section 8.4 Confirmed Commit Capability.

We, (the chairs) believe that the best way to resolve issues with the current set of erratum that already exist or are being proposed is to minimize re-explaining the role of confirmed commit in both Section 7.8 and 7.9 and defer the explanation to Section 8.4 of the RFC. With that in mind, we are proposing that Section 7.8 and 7.9 should ultimately look as follows. Note, the highlights in all the sections are to enable identifying the changes.

 
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>


In addition, 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.

Current Erratums for RFC 6241 will be adjusted to accommodate these changes.

Mahesh & Kent (co-chairs)