Subject: [Netconf] new capability proposal for netconf: base:1.1

From: Andy Bierman <[email-masked]>
Date: Wed, 17 Mar 2010 11:27:24 -0700

Hi,

I am strongly opposed to the way RFC 4741 is being updated
because the base protocol capability is the same as RFC 4741.

Instead of a new confirmed-commit:1.1 capability, I propose
an alternative:

New capability:  base:1.1

   urn:ietf:params:xml:ns:netconf:base:1.1

A 4741bis-compliant client or server will advertise the base:1.0 and
base:1.1 capability URIs.  It will examine the base URI returned
from its NETCONF peer and use the highest version advertised (1.0 or 1.1).

A base:1.1 NETCONF entity complies with all mandatory behavior
in RFC4741bis, and knows there are gray areas in a base:1.0 entity
that may not work the same way on all servers.

I do not accept the argument that just because RFC XXX doesn't
say 'foo", it is okay to add "foo" to it, and still expect
implementations of RFC XXX to be unaffected.

Pros:
  - People will ask: Which RFC do I need to read to learn
    about the protocol version that server X is using?
    Current solution does not offer any clue.
  - This covers all new text in RFC4741bis.  Currently,
    it is extremely unclear what the differences are
    between a 4741 server and a 4741bis server, but there
    are many non-trivial clarifications.
  - There are no implementations that know about confirmed-commit:1;1
    or base:1.1 at this time.  In that respect, they are conceptually
    equivalent.  Except base:1.1 is better because it covers
    the entire document and lets users know which server version
    they are using.
  - This proposal allows us to fix things we know have workable
    solutions, such as rpc-warning, or capability-changed
    errors, etc., that can only be present if a new client
    is talking to a new server.
  - Using 1 capability URI to bundle all the new features is a rather
    common practice, and proven to be manageable.  Creating lots of
    little capabilities is more complex.

Cons:
  -  Must admit that 4741bis is not backwards-compatible with 4741

Andy