Subject: [netconf] updates to the suite of client/server drafts

From: Kent Watsen <[email-masked]>
Date: Tue, 30 Apr 2019 03:37:15 +0000

Below are the change logs for each draft just submitted.

Highlights:
  - all issues from the tcp adoption call have been addressed.

Lowlights:
  - some issues from the http adoption call remain.
  - there are some "fixme" comments left in the models.
  - the tree-diagram in Sections 2.1 and 3.1 in both the NC
     and RC drafts are a bit off (GitHub issue reported).

K. // contributor

=== change logs ===

crypto-types

   o  Added NACM annotations.

   o  Updated Security Considerations section.

   o  Added 'asymmetric-key-pair-with-cert-grouping' grouping.

   o  Removed text from 'permanently-hidden' enum regarding such keys
      not being backed up or restored.

   o  Updated the boilerplate text in module-level "description"
      statement to match copyeditor convention.

   o  Added an explanation to the 'public-key-grouping' and 'asymmetric-
      key-pair-grouping' statements as for why the nodes are not
      mandatory (e.g., because they may exist only in <operational>.

   o  Added 'must' expressions to the 'public-key-grouping' and
      'asymmetric-key-pair-grouping' statements ensuring sibling nodes
      either all exist or do not all exist.

   o  Added an explanation to the 'permanently-hidden' that the value
      cannot be configured directly by clients and servers MUST fail any
      attempt to do so.

   o  Added 'trust-anchor-certs-grouping' and 'end-entity-certs-
      grouping' (the plural form of existing groupings).

   o  Now states that keys created in <operational> by the *-hidden-key
      actions are bound to the lifetime of the parent 'config true'
      node, and that subsequent invocations of either action results in
      a failure.

keystore

   o  Added a 'description' statement to the 'must' in the /keystore/
      asymmetric-key node explaining that the descendent values may
      exist in <operational> only, and that implementation MUST assert
      that the values are either configured or that they exist in
      <operational>.

   o  Copied above 'must' statement (and description) into the local-or-
      keystore-asymmetric-key-grouping, local-or-keystore-asymmetric-
      key-with-certs-grouping, and local-or-keystore-end-entity-cert-
      with-key-grouping statements.

trust-anchors

   o  Added groupings 'local-or-truststore-certs-grouping' and 'local-
      or-truststore-host-keys-grouping', matching similar definitions in
      the keystore draft.  Note new (and incomplete) "truststore" usage!

   o  Related to above, also added features 'truststore-supported' and
      'local-trust-anchors-supported'.

tcp-client-server

      o addressed issues raised by Michael Scharf, TCPM WG chair and now co-author
      o this version resolves the adoption-call comments  (okay to resubmit as "ietf" now?)

ssh-client-server

   o  Removed the "demux containers", floating the nacm:default-deny-
      write to each descendent node, and adding a note to model
      designers regarding the potential need to add their own demux
      containers.

   o  In the server model, replaced <client-cert-auth> with <client-
      authentication> and introduced 'local-or-external' choice.

tls-client-server

   o  In server model, made 'client-authentication' a 'presence' node
      indicating that the server supports client authentication.

   o  In the server model, added a 'required-or-optional' choice to
      'client-authentication' to better support protocols such as
      RESTCONF.

   o  In the server model, added a 'local-or-external' choice to
      'client-authentication' to better support consuming data models
      that prefer to keep client auth with client definitions than in a
      model principally concerned with the "transport".

   o  In both models, removed the "demux containers", floating the
      nacm:default-deny-write to each descendent node, and adding a note
      to model designers regarding the potential need to add their own
      demux containers.

http-client-server

   o number of "improvements" (i hope)
   o not reviewed by HTTP WG chairs yet
   o likely needs finessing before asking them to review it again

netconf-client-server

   o  Removed the "Design Considerations" section.

   o  Removed the 'must' statement limiting keepalives in periodic
      connections.

   o  Updated models and examples to reflect removal of the "demux"
      containers in the imported models.

   o  Updated the "periodic-connnection" description statements to be
      more like the RESTCONF draft, especially where it described
      dropping the underlying TCP connection.

   o  Updated text to better reference where certain examples come from
      (e.g., which Section in which draft).

   o  In the server model, commented out the "must 'pinned-ca-certs or
      pinned-client-certs'" statement to reflect change made in the TLS
      draft whereby the trust anchors MAY be defined externally.

   o  Replaced the 'listen', 'initiate', and 'call-home' features with
      boolean expressions.

restconf-client-server

   o  Removed the 'must' statement limiting keepalives in periodic
      connections.

   o  Updated models and examples to reflect removal of the "demux"
      containers in the imported models.

   o  Updated the "periodic-connnection" description statements to
      better describe behavior when connections are not closed
      gracefully.

   o  Updated text to better reference where certain examples come from
      (e.g., which Section in which draft).

   o  In the server model, commented out the "must 'pinned-ca-certs or
      pinned-client-certs'" statement to reflect change made in the TLS
      draft whereby the trust anchors MAY be defined externally.

   o  Replaced the 'listen', 'initiate', and 'call-home' features with
      boolean expressions.