Subject: [netconf] AUTH48 changes to RFC 8526 <draft-ietf-netconf-nmda-netconf-08>

From: Mahesh Jethanandani <[email-masked]>
Date: Tue, 29 Jan 2019 10:54:54 -0800

NETCONF WG,

During the AUTH48 review of draft-ietf-netconf-nmda-netconf-08, the authors found a couple of things that needed further clarification. The edits are reflected in this e-mail using OLD: and NEW:. Since the changes are technical changes, we needed to make sure that the WG was ok with the changes. This starts a one week review period terminating next Tuesday, February 5 to provide any comments you might have. If providing comments, please be specific in the changes you would like to see, preferably using your own OLD: and NEW:. If no comments are received, it will be deemed that the changes are fine with the WG. The two set of changes are in the YANG model itself, and in Section 3.1.1.4.

In the YANG model:

OLD:

        choice origin-filters {
          when 'derived-from-or-self(datastore, "ds:operational")';
          if-feature "origin";
          description
            "Filters based on the 'origin' annotation.";
          leaf-list origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A node matches
               the filter if its 'origin' annotation is derived from or
               equal to any of the given filter values.";
          }
          leaf-list negated-origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A node matches
               the filter if its 'origin' annotation is not derived
               from and not equal to any of the given filter values.";
          }
        }

NEW:

        choice origin-filters {
          when 'derived-from-or-self(datastore, "ds:operational")';
          if-feature origin;
          description
            "Filters configuration nodes based on the 'origin'
             annotation.  Configuration nodes that do not have an
             'origin' annotation are treated as if they have the
             'origin' annotation 'or:unknown'.

             System state nodes are not affected by origin-filters and
             thus not filtered.  Note that system state nodes can be
             filtered with the 'config-filter' leaf.";

          leaf-list origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A
               configuration node matches the filter if its 'origin'
               annotation is derived from or equal to any of the given
               filter values.";
          }
          leaf-list negated-origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A
               configuration node matches the filter if its 'origin'
               annotation is not derived from and not equal to any of
               the given filter values.";
          }
        }

OLD:

        leaf config-filter {
          type boolean;
          description
            "Filter for nodes with the given value for their
             'config' property.  If this leaf is not present, all
             nodes are selected.

             For example, when this leaf is set to 'true', only 'config
             true' nodes are selected.";
        }

NEW:

        leaf config-filter {
          type boolean;
          description
            "Filter for nodes with the given value for their 'config'
             property.  When this leaf is set to 'true', only 'config
             true' nodes are selected and, when set to ‘false’, only
             ‘config false’ nodes are selected.  If this leaf is not
             present, no nodes are filtered.";
        }

Add the following example to 3.1.1.4:

    In order to not retrieve any system state nodes, the
    "config-filter" can be used:

    <rpc message-id="103"
         xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
      <get-data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
                xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"
                xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin">
        <datastore>ds:operational</datastore>
        <subtree-filter>
          <bgp xmlns="http://example.com/ns/bgp <http://example.com/ns/bgp>"/>
        </subtree-filter>
        <config-filter>true</config-filter>
        <origin-filter>or:intended</origin-filter>
        <origin-filter>or:system</origin-filter>
        <with-origin/>
      </get-data>
    </rpc>

    <rpc-reply message-id="103"
               xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
      <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda">
        <bgp xmlns="http://example.com/ns/bgp <http://example.com/ns/bgp>"
             xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
             or:origin="or:intended">
          <peer>
            <name>2001:db8::2:3</name>
            <local-port or:origin="or:system">60794</local-port>
          </peer>
        </bgp>
      </data>
    </rpc-reply>

Thanks.

Mahesh Jethanandani // as shepherd
[email-masked]