Re: [netconf] draft-ietf-netconf-notification-capabilities feedback

Balázs Lengyel <> Mon, 25 March 2019 23:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A043312014D for <>; Mon, 25 Mar 2019 16:21:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 3.036
X-Spam-Level: ***
X-Spam-Status: No, score=3.036 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.979, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.723, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id EfWDtNdcIyug for <>; Mon, 25 Mar 2019 16:21:33 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 9669212014C for <>; Mon, 25 Mar 2019 16:21:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z6OB8gNGcCjB+KCnzXDqfssSfKnl5C+s9XU6GzyXj3c=; b=EQcea/riY2yCqTaf7XCIymqk55kv39KhrZQ5fkShSIDDEVnIaovHNTWE9ynyezWOEqHncLbb5+taxkEQmg9ceVm1brlUaESzZ1X0NM0xtkYb5bMpvWtZJ1Kb0CDGG0N9PyrLERKS8cqG5I8rR0Ob6sVr4arMuO7JEuS7PkKvuII=
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.13; Mon, 25 Mar 2019 23:21:30 +0000
Received: from ([fe80::39a5:6b6d:a86f:721c]) by ([fe80::39a5:6b6d:a86f:721c%2]) with mapi id 15.20.1730.013; Mon, 25 Mar 2019 23:21:30 +0000
From: =?utf-8?B?QmFsw6F6cyBMZW5neWVs?= <>
To: Benoit Claise <>, NETCONF <>
Thread-Topic: draft-ietf-netconf-notification-capabilities feedback
Thread-Index: AQHU42F6NBoLcEaFCk2J84+UwiK7dQ==
Date: Mon, 25 Mar 2019 23:21:30 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
x-originating-ip: []
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.0
x-clientproxiedby: (2603:10a6:3:e3::33) To (2603:10a6:209:31::16)
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d578ecd0-0842-4274-53bb-08d6b1789c7c
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600127)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(49563074)(7193020); SRVR:AM6PR07MB5829;
x-ms-traffictypediagnostic: AM6PR07MB5829:
authentication-results: spf=none (sender IP is );
x-microsoft-antispam-prvs: <>
x-forefront-prvs: 0987ACA2E2
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(346002)(366004)(39860400002)(396003)(199004)(189003)(51914003)(65826007)(14444005)(31696002)(256004)(316002)(66574012)(486006)(36756003)(186003)(3846002)(2616005)(6116002)(31686004)(476003)(52116002)(26005)(65956001)(65806001)(85202003)(11346002)(66066001)(478600001)(413944005)(7736002)(606006)(97736004)(14454004)(68736007)(86362001)(446003)(76176011)(105586002)(71200400001)(110136005)(25786009)(71190400001)(6246003)(85182001)(106356001)(99936001)(81156014)(64126003)(58126008)(8936002)(53936002)(6506007)(6436002)(386003)(102836004)(99286004)(6306002)(6486002)(15650500001)(236005)(2906002)(8676002)(6512007)(54896002)(229853002)(5660300002)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR07MB5829;; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 8rFYsPADHvwTCm1ttBE7DNq5D8B5FxmvyQwR17SSpLR7zcvCjzL1zdO7JhDK2GHDxfmX1H3JYpDuoj6QDnornu1ML0pJpoXAukZOlTP6fTs0jzPhv48tnowHFIKMcKfP7gp7s5gQV0PcOS3I36qOC2aJNDY+V4n2pIV+Au+cWcogDqAz7s1FLKJuUoJ+Z9IFdaJrqg+XT9J6WBnGm7FFGBxgXVJ1QZ04ZKf4IxeZYHSopQjfbgugeJ0TelUmlLnTZO8AH0Rhm27cl/lw5SOfRRuyNKgHI+Ozk1LJ9BgjPWBOy8wzIx1eSLeUPFWHhJXK6+x84F7tGsa5Cui2wo16J8jFzz+l5bzvG5s0XuxN0ryJDSHeBPBfvrT3iJa7a8GdJg/cfvKthGq1jjs6UROREWQInubBv7hA8kHSk/rEIIQ=
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms000908030802090306060707"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: d578ecd0-0842-4274-53bb-08d6b1789c7c
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2019 23:21:30.2531 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR07MB5829
Archived-At: <>
Subject: Re: [netconf] draft-ietf-netconf-notification-capabilities feedback
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 25 Mar 2019 23:21:36 -0000

Thanks for the comments, See below. Balazs

On 2019. 03. 24. 17:55, Benoit Claise wrote:
Dear all,

Here is my feedback on" rel="nofollow">draft-ietf-netconf-notification-capabilities, which I gave verbally to Balasz today.

- we need the on-change capabilities for
    1. per datastore
    2. per YANG object(s), i.e. schema specifig
    3. per YANG instance
BALAZS: per datastore to be added. per instance is possible  in the on-line data; while it is also possible in the off-line instance data files, it won't really work as usually the instance keys are not know that early.

- We really would some nacm:node-instance-identifier examples (of the 3 different use cases)
BALAZS: will be provided

The rest below seems to be implementation specific (limitations):
      +--ro minimum-dampening-period?               uint32
      +--ro (update-period)?
      |  +--:(minimum-update-period)
      |  |  +--ro minimum-update-period?                  uint32
      |  +--:(supported-update-period)
      |     +--ro supported-update-period*                uint32
      +--ro max-objects-per-update?                 uint32
BALAZS: They are optional, you don't have to provide them. I was specifically asked to include them. I think it is useful, and it does no harm.

- The choice default values should be discussed. They implementation-specific.
     leaf notification-sent-for-config-default {
       type boolean;
       default true;
       description "Specifies the default value for
         top level configuration data nodes for the
         on-change-notification-sent capability.";

     leaf notification-sent-for-state-default {
       type boolean;
       default false;
       description "Specifies the default value
         top level state data nodes for the
         on-change-notification-sent capability.";
Initially, I was thinking that both should be false, so that only on-change true must be present in the list.
BALAZS: I chose the defaults because in my view is that implementing config updates centrally is easy, while implementing state updates is a distributed task, thus complicated. The defaults can be changed by a deviation. If the WG has a strong opinion I can change them,

- Not sure why the draft tries to go in the compliance statement of you MUST support both options
 The information SHALL be provided in two ways both following the
   ietf-notification-capabilities module:

   o  It SHALL be provided by the implementer as YANG instance data file
      complying to the [" title='"YANG Based Instance Data Files Format"' rel="nofollow">I-D.lengyel-netmod-yang-instance-data].  The
      file SHALL be available already in implementation time retrievable
      in a way that does not depend on a live network node.  E.g.
      download from product Website.

   o  It SHALL be available via NETCONF or RESTCONF from the live YANG
      server during runtime.
BALAZS: I will change  this to say: The information SHOULD be provided in implementation time, but one of the above MUST be done.
The specifications should document:
If you want this info off-line, then use draft-ietf-netmod-yang-instance-file-format
If you want this info on-line, implement the module in the server, potentially as an extension to the IETF-YANG-LIBRARY
MUST implement one of the two.

- When I see "instance", I always wonder if you mean an instantation or the instance-file-format
   If the information is
   not available early in some document, but only as instance data from
   the network node, the NMS implementation will be delayed, because it
   has to wait for the network node to be ready. 
BALAZS: I will use instance-data-set  or on-line for live data.
- This explanation could be improved (read it multiple times)
     On-change notifications SHALL be sent for a config=true
     data node if one of the following is true:
     - if it is a top level data-node and is not specified in the
     on-change-notification-capability list and the
     notification-sent-for-config-default is true; or
     - notifications are sent for its parent data node and it is
     not specified in the on-change-notification-capability list; or
     - it is specified in the on-change-notification-capability
     list and has a on-change-notification-sent value true.

     On-change notifications SHALL be sent for a config=false
     data node if one of the following is true:
     - if it is a top level data-node or has a config=true parent
     data node and is not specified in the
     on-change-notification-capability list and the
     notification-sent-for-state-default is true; or
     - notifications are sent for its parent data node
     which is also config=false and it is
     not specified in the on-change-notification-capability list; or
     - it is specified in the on-change-notification-capability
     list and has an on-change-notification-sent value true or
BALAZS: will try. Providing examples will help.
- why don't you just mention "on-change streaming capability discovery"

   Run-time information is needed

   o  for any "purely model driven" client, e.g. a NETCONF-browser.  As
      long as it has a valid model to read the capability information,
      it does not care which data nodes send notification, it will just
      handle what is available.

   o  in case the capability might change during run-time e.g. due to
      licensing, HW constraints etc.

   o  to check that early, implementation time capability information
      about the capabilities is indeed what the server implements (is
      the supplied documentation correct?)
- The terminology seems to focus on NETCONF, however it should stress the generic streaming capabilities
BALAZS: configuring on-change subscription is netconf (and restconf) related even if the transport of notifications may use different transports. Will clarify.

Regards, Benoit
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
Mobile: +36-70-330-7909              email: