Subject: [netconf] reverting back to feature statements with boolean expressions

From: Kent Watsen <[email-masked]>
Date: Mon, 29 Apr 2019 00:02:30 +0000

The netconf-client-server and restconf-client-server drafts define top-level features ("initiate", "listen", and "call home"), under which there are fine-grained if-feature statements (e.g. "ssh-listen", tis-listen", ssh-call-home, tls-call-home, etc.).

These can be seen in the following tree diagrams:

  netconf-client-server:
    - https://tools.ietf.org/html/draft-ietf-netconf-netconf-client-server-11#section-3.1 <https://tools.ietf.org/html/draft-ietf-netconf-netconf-client-server-11#section-3.1>
    - https://tools.ietf.org/html/draft-ietf-netconf-netconf-client-server-11#section-4.1 <https://tools.ietf.org/html/draft-ietf-netconf-netconf-client-server-11#section-4.1>

  restconf-client-server:
    - https://tools.ietf.org/html/draft-ietf-netconf-restconf-client-server-11#section-2.1 <https://tools.ietf.org/html/draft-ietf-netconf-restconf-client-server-11#section-2.1>
    - https://tools.ietf.org/html/draft-ietf-netconf-restconf-client-server-11#section-3.1 <https://tools.ietf.org/html/draft-ietf-netconf-restconf-client-server-11#section-3.1>

This begs the question, why aren't these drafts using "if-feature" statements with boolean expression, as this was the use case for adding them to RFC 7950: https://tools.ietf.org/html/rfc7950#section-7.20.2.1 <https://tools.ietf.org/html/rfc7950#section-7.20.2.1>.

We originally had the boolean expressions, but reverted them because (I think) tools (pyang, yanglint, etc.) didn't understand them.  

I just switched the "if-feature" statements back to their original forms using boolean expressions (i.e. if-feature "listen"  --->  if-feature "ssh-listen or tls-listen") and all the tooling seems to work.

Thusly, I propose to make this change permanent.  Unless there are any objections raised, this change will be in the next published update.

Kent // contributor