Re: [Netconf] YangPush now

Kent Watsen <kwatsen@juniper.net> Thu, 19 July 2018 16:12 UTC

Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BF4A5130F02 for <netconf@ietfa.amsl.com>; Thu, 19 Jul 2018 09:12:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id u3HThXebhVzU for <netconf@ietfa.amsl.com>; Thu, 19 Jul 2018 09:12:05 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1F7A8130E19 for <netconf@ietf.org>; Thu, 19 Jul 2018 09:12:05 -0700 (PDT)
Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6JG4emT016601 for <netconf@ietf.org>; Thu, 19 Jul 2018 09:12:03 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=HtH2vS7kGQakhXx4pVHhrNN2QPoI6rLIFgJyXZF/W3s=; b=FAHzjr5ptag0+DZPTHKpZs0LUyvYYa3GU/SrTjR/dxU2Wv1GimlBycMY0hY7Mp1gJA8j 49xcCuBe+6zC/cLH9t8WhIJY48lg5c0wJUhing6Wp3i5WWtBdIggKVF+LiciCli0ALb6 ePcPtyofLM0kQHiWe3T3h14pXAuiX/aGBppm7jSCpEAcI29vE8GQ/5nusURnVinukBoT fL/wwtRCwuVpp0F4rkAgfBTncQWLfvunuzzwCtdazcqe/nWctXg5/5sldivs0P81pHAQ mUcclrwgKlJdP1YJj8M70Xz4O13vklF/jyZyyxj88/h3wMxMqN6bwMVCVzR6MlvmdnPB +g==
Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp0177.outbound.protection.outlook.com [216.32.180.177]) by mx0b-00273201.pphosted.com with ESMTP id 2kavaqr93p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for <netconf@ietf.org>; Thu, 19 Jul 2018 09:12:02 -0700
Received: from BYAPR05MB4230.namprd05.prod.outlook.com (52.135.200.153) by BYAPR05MB4518.namprd05.prod.outlook.com (52.135.203.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.14; Thu, 19 Jul 2018 16:12:00 +0000
Received: from BYAPR05MB4230.namprd05.prod.outlook.com ([fe80::9006:fad3:993d:25fe]) by BYAPR05MB4230.namprd05.prod.outlook.com ([fe80::9006:fad3:993d:25fe%2]) with mapi id 15.20.0973.016; Thu, 19 Jul 2018 16:12:00 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] YangPush now
Thread-Index: AQHUHVo97/1MCRrcckGjuypYd3RC86SS6W4AgAB92YCAAEL3AIAAPuOAgABuioCAADVFAIACBUCA///mfwA=
Date: Thu, 19 Jul 2018 16:12:00 +0000
Message-ID: <85CBFD6B-CBEE-47C5-83ED-FD37007B78A3@juniper.net>
References: <2E1BAD12-EFF2-4E35-B232-57A4C4490989@cisco.com> <20180717055030.7bmzlychtznf3mso@anna.jacobs.jacobs-university.de> <18622ABD-DB9F-406C-836F-64649F3D8FF6@cisco.com> <20180717172036.hhuoq6fzs7ctblpf@anna.jacobs.jacobs-university.de> <CABCOCHS8cfqKLaQe9M4tu-2zkZ5=6-a2FEv+idJwZiW_btx_Zw@mail.gmail.com> <a54850668bfb4483b89f4c2b15bf5f44@XCH-RTP-013.cisco.com> <CABCOCHSxTh7J1Kys1B+sNC2dWuJKr_L7cJgO9T+E+-_+k9H-6w@mail.gmail.com> <5366188A-111C-49ED-95AF-82A5171750CC@cisco.com>
In-Reply-To: <5366188A-111C-49ED-95AF-82A5171750CC@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/f.20.0.170309
x-originating-ip: [66.129.241.13]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB4518; 6:oVXLrOJMQ8PLjWSStEVDLmfm5TNCBsJd4ClLVa9OuxqZhEcFzb7RIJzNyTwOXwxQ53ftxt1kSztqE1JnuNcgNzpjptobusm+mLktRBzT9S8omYKqrMY/zXvBEr4Uy287g3QzrUKkpD11rB1I4QhFJbTr/5Pe3QtiziZ8gEd7w9T03HInhkRnss1igvBGhrLWXXgWU6oP4gIgP+7YUL/pV89A9p3yRTfIQ9LkLjS5O5DmeqZNgeWud8cKu+hbPMNIgqaSWBG6e8Z7HhDLFXUeDw44AjT8veleVRt2dxab85k2dIczmbo6pRxGp+/Biv3IpIrVUpvFxJOROQ3qaFcvYcsMFcSfShPROcigse68e7fSZrenEDew2E+JLUg5UvxyHPTVrYY2qVurnGfa07mgyJnFWB3kPt2A9jkgLh6iTLoDb2JRLZ1KnNrTdJ3KdhBNEUC5Q50NzcMSfyGJNPsqjg==; 5:kXmDhCBXHSUvrG+AiBhHQNjHV2wF4Oh1SbxUxJEqT305NJvttI9X01wO44l0tRPKq2R0oMWzusIihv4nSnNyeKgEYR6FbL9AafO6q16GEl/NeYNJrbPVMrbz7V1tW42CgQ6HhYt0aZGWVZ/LKbvfHJQ3ixCX3ujWsvH1kuT+fgU=; 7:dMtQa9S6thouNb6kMmD6oGjdFnWSIvgVupmNLRB0notjFOYdgtsUkcirSiUr+8O1ZTdn5O2XNUyrgLdEyZ/U0HWpG6TUcVz+12tUla/DkZhMo/aXIrmqkYnnHP6UDDU/dc4MUOLaPSqNahWP6rZmJhFGo5NiHm/v1ScoeytYS8+i2UJhhXudOUUlYXKJMs+LQ0tdk6nV2+p40tyDM648uMZiCcjH5UGZE0t0IUdIwn4yd0TCDinAwiRqEqFNYQw4
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 2ce226ad-a879-4711-561d-08d5ed925bfa
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600067)(711020)(4618075)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB4518;
x-ms-traffictypediagnostic: BYAPR05MB4518:
x-microsoft-antispam-prvs: <BYAPR05MB451835C7B9AA91E553D1812EA5520@BYAPR05MB4518.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(17755550239193);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231311)(944501410)(52105095)(10201501046)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:BYAPR05MB4518; BCL:0; PCL:0; RULEID:; SRVR:BYAPR05MB4518;
x-forefront-prvs: 0738AF4208
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(39860400002)(366004)(376002)(136003)(396003)(189003)(199004)(97736004)(446003)(11346002)(316002)(2616005)(476003)(486006)(256004)(99286004)(2906002)(6436002)(5250100002)(93886005)(2351001)(58126008)(14454004)(36756003)(86362001)(2900100001)(106356001)(105586002)(229853002)(478600001)(25786009)(6916009)(6246003)(81156014)(1730700003)(8936002)(8676002)(53936002)(81166006)(6116002)(6486002)(5640700003)(76176011)(3846002)(82746002)(68736007)(66066001)(5660300001)(83716003)(7736002)(6512007)(2501003)(305945005)(33656002)(186003)(6506007)(26005)(102836004); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB4518; H:BYAPR05MB4230.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-microsoft-antispam-message-info: yOmrGVitTdAxSuf6UZFG87iKdH+MxBBbiL8EsaCvfUkSBiGfWympAtwplc0rrLY/HCoZuN/8ZriaBVoHypmPIN+qbjaK+yUuumJicDuC3GOf90351grsXdj9dqzjJ/lsvcB6c5aECuwagEV+NdgGoAt4KwLXL58IXEvdlxf2Us7pUeUzbGItK6N/lL/7203IpM6QD6x5OQGVWqjrWqCnJVqckvjeN2Bx2ypmfekwrVpiN2VtHmcziOSMaI5oKRZqt2HOBJ8UcOROLHqsxeSBe75fDm63dxdY0zXJBYCS+hkxy+yA/ZpUhsH65cBBncfaEI8lLu0eF0av+g4xmA6zttnTAf/WZ2gVR/XrmEPo9uI=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <AB077D3117A74D41A5E596DB1A05EF03@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ce226ad-a879-4711-561d-08d5ed925bfa
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2018 16:12:00.6152 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4518
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-07-19_06:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1806210000 definitions=main-1807190170
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/BKtyD8rhTrPYhKJBnwLCBDva9MQ>
Subject: Re: [Netconf] YangPush now
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Jul 2018 16:12:08 -0000

To address some of the concerns being raise here, I suggest the following:

1. make the augmentation of a "notif" model mandatory (see the '+' lines
   below), to ensure that there is always something more than just a name
   being configured per receiver.

      container receivers {
        list receiver {
          key "name";
          min-elements 1;
          leaf name {
            type string;
          }
   +      choice transport {
   +        mandatory true;
   +        description
   +          "Defines the transport-specific configuration data
   +           for the selected transport.";
   +      }


2. modify netconf-notif to augment-in the ietf-netconf-server grouping:

  module ietf-netconf-notifications {
    prefix nn;
    import ietf-netconf-server { prefix ncs; }
    import ietf-subscribed-notifications { prefix sn; }

    // define a *local* netconf-server instance
    container "netconf-server" {
      uses "ncs:netconf-server-grouping" {
        // prune out the "listen" subtree
        refine "listen" {
          if-feature "never-supported-feature";
        }
        // disable dependency on the "call-home" feature
        refine "call-home" {
          if-feature "true"; // needed? (see 7950, s7.20.2, P3)
                             // valid? (unsure)
        }
      }
    }

    // add leafref to above locally-configured call-home instances
    augment "/sn:subscriptions/sn:subscription/sn:receivers/sn:receiver" {
      leaf netconf-endpoint {
        type leafref {
          path "/nn:netconf-server/nn:call-home/nn:netconf-client/nn:name";
        }
      }
    }
  }


3. do the identical thing to the restconf-nofif draft:

  module ietf-restconf-notifications {
    prefix rn;
    import ietf-restconf-server { prefix rcs; }
    import ietf-subscribed-notifications { prefix sn; }

    // define a *local* restconf-server instance
    container "restconf-server" {
      uses "rcs:restconf-server-grouping" {
        // prune out the "listen" subtree
        refine "listen" {
          if-feature "never-supported-feature";
        }
        // disable dependency on the "call-home" feature
        refine "call-home" {
          if-feature "true"; // needed? (see 7950, s7.20.2, P3)
                             // valid? (unsure)
        }
      }
    }

    // add leafref to above locally-configured call-home instances
    augment "/sn:subscriptions/sn:subscription/sn:receivers/sn:receiver" {
      leaf restconf-endpoint {
        type leafref {
          path "/rn:restconf-server/rn:call-home/rn:netconf-client/rn:name";
        }
      }
    }
  }


Doing so would fill in the missing piece folks are asking to see.  Yes, 
it introduces a normative reference to the client/server work, but it is
consistent with the result from Monday's NETCONF "dynamic ~ configured"
discussion and, besides, that work seems almost done now.

There still might be an issue regarding the server pushing notifications
immediately after the NC/RC session starts, but I feel that by having a
*conf-server instance inside the "notif" model, we can more easily claim
that the behavior is okay.

The current restconf-notif draft is more https-focused, but I feel that,
if there is a goal to have a plain-https transport, then that should be
defined in a separate "https-notif" draft.

Currently the restconf-client-server model does not enable the 
configuration of the "http-version" to be used.  I cringe to say this,
but we might consider introducing an "https-client-server" draft that
the "restconf-client-server" draft could be refactored to depend on.
If this were done, then said "https-notif" draft could use the "https-
client-grouping", and thus be consistent with the pattern we're 
establishing here.

To address the interoperability issue, it seems we either: 1) define
a super-simple mandatory-to-implement "notif" layer (I would recommend
https-client for this) or 2) a good mandatory-to-implement "notif"
layer (e.g., binary over DTLS and per line-card, per the udp-pub-channel
draft), or 3) do nothing, leaving it to the market to decide, similar
to how RFC 8040 doesn't require a specific encoding (XML, JSON, etc.)



Kent  // contributor