Re: [netmod] Adoption poll for draft-wwx-netmod-event-yang

Schönwälder, Jürgen <J.Schoenwaelder@jacobs-university.de> Wed, 19 February 2020 12:18 UTC

Return-Path: <J.Schoenwaelder@jacobs-university.de>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B918A120046 for <netmod@ietfa.amsl.com>; Wed, 19 Feb 2020 04:18:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.436
X-Spam-Level: *
X-Spam-Status: No, score=1.436 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_NONE=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=jacobsuniversity.onmicrosoft.com
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 tzKHOFp9CaEd for <netmod@ietfa.amsl.com>; Wed, 19 Feb 2020 04:18:02 -0800 (PST)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40089.outbound.protection.outlook.com [40.107.4.89]) (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 6C24312003F for <netmod@ietf.org>; Wed, 19 Feb 2020 04:18:02 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VEvVz/fyuI1OIXLqed7CZY3z8FLBNsFnPnAUT6UNhBWHv076xynPI8SCF0TDOXfgjOBUYX4x4JzNNfCkCYCItlo84VjOVzRftolpriS7PJ2U80P3tPtrLfrimAa1Xaqc5k7ZbL13yYJtM3S1rSRQvgurlQXDsDBdGnGfThAArKQRtvLIOKnLtdZqQ8+qyMikUZ9t6AaMZX5i0msbjLBqUa65paBP7p67sSffNPFl8P7PHSL/lA/k1kyct2Aq7b/jWxnl/zbwhkjyf5AMtkTWlEnPSfJa4kkTrLwxpCaIpfB/upshQjWmRizQsIqMqe4jwf/G+w/2LyfbMuaoyqzyHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iKhA73owH2LEHy6VPbkpO8Q2a+kKtZ80qZnP3OVYxU0=; b=d+rYUTc2to7MfFfx6+iUOjE2XEGr6wFEK9BaVsBANaKbDfeBy05kFE+80lgiJIX5oGSJMU7TaGlHoTUy6IQ1dZRWD4+j+stDqBADaYyFdGJPXo5NEKF6PK98lQB8h5WFACrL4OLSpcBDTtk265ZxneyCzZoDiI11ETS2OU1wvEerAx1zlZ76pJHaOJ+6PfxCRscRwwLgqphf7r2E9PeTnbH5N8WUZYvfxSh2SfIpBpspdmc8xxMgoAyxC+Q1N3HGzrt1l+BTiQiIqzffcjRdpMhhUJMaKjPtWirG7f9lae2o/EYORcg+Z6NhmjhXhffrPSoiRkL3tk6MsZiNgkosGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iKhA73owH2LEHy6VPbkpO8Q2a+kKtZ80qZnP3OVYxU0=; b=fsWAV0IYrhJ0Vuo1psTTiVMKWgLYKNme9S7QmEQwt5x6wddHjz9O314iYa3ztvCxVX5q3e/BXQzVGg+amIayu1IcX9UF7uOFvdaEmBjAgL25NvdgXKe1P/smrNN5QZ7r6jaPQq6qa0yA7wx8ru/GRQl/ReSuiew2GXjNCRPxo8w=
Received: from DB6P190MB0312.EURP190.PROD.OUTLOOK.COM (10.165.140.31) by DB6P190MB0519.EURP190.PROD.OUTLOOK.COM (10.165.185.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.27; Wed, 19 Feb 2020 12:18:00 +0000
Received: from DB6P190MB0312.EURP190.PROD.OUTLOOK.COM ([fe80::2cda:e754:4835:c579]) by DB6P190MB0312.EURP190.PROD.OUTLOOK.COM ([fe80::2cda:e754:4835:c579%3]) with mapi id 15.20.2729.032; Wed, 19 Feb 2020 12:18:00 +0000
Received: from localhost (212.201.44.247) by AM0PR01CA0024.eurprd01.prod.exchangelabs.com (2603:10a6:208:69::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.25 via Frontend Transport; Wed, 19 Feb 2020 12:17:59 +0000
From: "Schönwälder, Jürgen" <J.Schoenwaelder@jacobs-university.de>
To: Benoit Claise <bclaise@cisco.com>
CC: Joel Jaeggli <joelja@bogus.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] Adoption poll for draft-wwx-netmod-event-yang
Thread-Index: AQHV5rGG/WubBQrYckSiWEEsgzHRGKgiVg+AgAAZywA=
Date: Wed, 19 Feb 2020 12:18:00 +0000
Message-ID: <20200219121758.2ri4jtrhl6ytlkrw@anna.jacobs.jacobs-university.de>
References: <e655193d-79f5-f339-7043-65e2044c406e@bogus.com> <20200218231700.3tho6ngescf2k4zh@anna.jacobs.jacobs-university.de> <4b29cb4d-d252-b139-a46c-b5530f998a3b@cisco.com>
In-Reply-To: <4b29cb4d-d252-b139-a46c-b5530f998a3b@cisco.com>
Reply-To: "Schönwälder, Jürgen" <J.Schoenwaelder@jacobs-university.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: AM0PR01CA0024.eurprd01.prod.exchangelabs.com (2603:10a6:208:69::37) To DB6P190MB0312.EURP190.PROD.OUTLOOK.COM (2603:10a6:6:34::31)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=J.Schoenwaelder@jacobs-university.de;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [212.201.44.247]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 929f2505-2aa2-4549-403a-08d7b535c293
x-ms-traffictypediagnostic: DB6P190MB0519:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <DB6P190MB0519860400906224EF60D424DE100@DB6P190MB0519.EURP190.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0318501FAE
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(39850400004)(376002)(136003)(346002)(199004)(189003)(478600001)(26005)(86362001)(6916009)(4326008)(1076003)(956004)(52116002)(6666004)(71200400001)(66574012)(786003)(6496006)(6486002)(66556008)(66946007)(81156014)(66476007)(5660300002)(81166006)(8676002)(2906002)(66446008)(64756008)(8936002)(3450700001)(16526019)(966005)(316002)(54906003)(186003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6P190MB0519; H:DB6P190MB0312.EURP190.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: jacobs-university.de does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: ZC7ctFbWlddvH7a+sAoUWvmsqAp6LIAFHZCIDXOZ46f75Qx6vbI2Amo3GyJkY8SxzoBLrFvP+NN5FY1oyLdpMcyLvyLpyz5d33S/F76y2LEKb9tbHIuDyEIIceZ1kWTV8q+3kyV5HNuTOPRRFPT3EDBU15dqiM+oiwSaB3+H9KNdz7veOVCw4xza81brXLiRdnOP7y/MBvfObgxq0B61NaupF0wWE2sPoQN7qOTw48k7M9MMv7VSD4/qdVeVNSkT+YLB6PJstfEGM+94sezNZfieH0MtFU6DDcLF18uukT1qlgwAm14blW8yEG+fTQVs/3br49tBQfD4eDK2OvYF863SOM8+xf5kpQHIf7RpEwu85h/r2fRbeq7dpAmnd/8kI6CXdknUuQcxMM1ewiKFnr3s8++YYU0ra0q0sjs/49+tf97XzZuUkI6MTmyynSDZOztm/Eo23LbE+yL9DwfwdaSAe7Epqs4y1FgpuCUZjsHHeWY6cuD/3488paIeUJsrw8u/XM8VhNLzwaxNWwUEcA==
x-ms-exchange-antispam-messagedata: hZ5xhs2IS5VGHNgbaYk6LKDuMuIUv2ei5DOvuHB/3/1UMZPJhaRZFv78SWNoQSbWVxIvqPWi+7qF5QR7CmPDm6mQ9jwOj7ObmA4cwhVTJB1kp53OnAUz8do0ktBqAAGRl4gxg//eFmOMWiA0/E7mcw==
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <41A4616F2C8C544983B57A1FEE8D5D03@EURP190.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: jacobs-university.de
X-MS-Exchange-CrossTenant-Network-Message-Id: 929f2505-2aa2-4549-403a-08d7b535c293
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2020 12:18:00.0137 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SNOfTf7MnkjVNxuvH0NRprgLrhKw/DVz7d/7In7qr81R60CKqzoR5NtwZfUhHh+E5PGuI+8+HranABxtgwhq/c6KJX65PDXx7jSbD8TJVcQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6P190MB0519
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/XNWRNO_ZMJoj0Io14s8v6iu8qXg>
Subject: Re: [netmod] Adoption poll for draft-wwx-netmod-event-yang
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Feb 2020 12:18:05 -0000

Benoit,

thanks for the clarification.

I still believe that the approach taken is wrong. I doubt that network
operators are interested in an assembly level approach for expressing
threshold triggers. I am not sure xpath is the answer either. What was
perhaps reasonable to try in the 90s (RMON, DISMAN work) may not be
reasonably today anymore.

The example starting on page 43 seems to be doing this

  every 10 minutes
  if    exists(/ietf-interfaces:interfaces='eth0')
  and   if:interface[if:name='eth0']/if:statistic/if:in-errors >= 100
  then  /if:interfaces/if:interface[if:name='eth0']/if:enable = false

but it requires 1.5 pages of XML to express this (and then the rule is
not even meaningful since comparing an absolute value of a counter is
not useful).

If we are serious about policies, I believe we need to think about a
language-based approach that can be read and understood and which does
the things that are meaningful. Let me makeup some pseudo code based
on the example that can work for all eth* interfaces and that gets the
delta calculation of the counter right.

  if = /ietf-interfaces:interfaces/interface # json style namespace binding
  dt = 600 # 10 minutes in seconds
  every dt
  foreach name in $if/name:
    this = $if/[name=$name]
    if   $name matches 'eth.*'
    and  delta($this/statistic/in-errors, dt) >= 100
    then $this/enable = false

If people are serious about doing this kind of work, start by
collecting real-world policies that need to be expressable, then
identify the "language" mechanisms that are needed (loops over lists,
bindings, variables and substitutions, pattern matching, ...) and then
find a suitable representation. Yes, this is also something that
people wanted SUPA to do and it did fail because it was already hard
to collect real-world policies that help to understand what kind of
mechanisms are needed and why.

/js

On Wed, Feb 19, 2020 at 11:45:39AM +0100, Benoit Claise wrote:
> Jürgen,
> 
> To tell that I was skeptical about the SUPA work is just wrong.
> 
> I had great hopes for SUPA, as having consistent policy constructs in YANG
> module was key. The big hope was that those SUPA constructs could be re-used
> in other YANG modules
>     example: routing, ACL, security ...
>     Regardless of the location: in a network element or in a
> controller/orchestrator
>     Regardless of the function: network element and service YANG modules
> If successful, in the end, SUPA would have helped to reuse code.
> 
> Was I disappointed by the progress? Yes. The results were not there while
> the rest of the world uses their YANG policy constructs. Timing was key so,
> as AD, I had to pull the plug.
> The world has moved on. So be it.
> You can't infer skepticism from pragmatism.
> 
> Now, back to the draft.
> From a network element point, I stressed the need to take have _simple _ECA
> rules directly routers.
> Think about RMON event/alarm but for YANG. Think about removing the RMON
> event/alarm restrictions that it works only for integer/counter.
> If your point is that the draft is not perfect, fair point.
> Should we solve attempt to solve that issue? Yes.
> 
> A confusion comes from the abstract that implies that this work is based on
> SUPA.
> 
> Abstract
> 
>    RFC8328 defines a policy-based management framework that allows
>    definition of a data model to be used to represent high-level,
>    possibly network-wide policies.  Policy discussed in RFC8328 are
>    classified into imperative policy and declarative policy, Event
>    Condition Action (ECA) policy is an typical example of imperative
>    policy.  This document defines a YANG data model for the ECA policy
>    management.  The ECA policy YANG provides the ability for the network
>    management function (within a network element) to control the
>    configuration and monitor state change and take simple and instant
>    action on the server when a trigger condition on the system state is
>    met.
> 
> Actually, in my mind, the abstract should be simplified to something such as
> (and yes, it could be improved)
> 
> Abstract
> 
>    This document defines a YANG data model for the ECA policy
>    management.  The ECA policy YANG provides the ability for the network
>    management function (within a network element) to control the
>    configuration and monitor state change and take simple and instant
>    action on the server when a trigger condition on the system state is
>    met.
> 
> And then, somewhere in the introduction, the following text should be
> reused:
> 
>    RFC8328 defines a policy-based management framework that allows
>    definition of a data model to be used to represent high-level,
>    possibly network-wide policies.  Policy discussed in RFC8328 are
>    classified into imperative policy and declarative policy, Event
>    Condition Action (ECA) policy is an typical example of imperative
>    policy.
> 
> 
> Regards, Benoit.
> > On Tue, Feb 18, 2020 at 08:44:18AM -0800, Joel Jaeggli wrote:
> > > This email begins a 2 week working group adoption poll for:
> > > 
> > > https://tools.ietf.org/html/draft-wwx-netmod-event-yang-06
> > > 
> > > Please voice your support or objections before the poll completes on
> > > March 3rd.
> > I am against adoption of this draft. I wonder whether Benoit will
> > explain his contributions to this document; Benoit was added as a
> > co-author in -06 and he used to be rather sceptical about the SUPA
> > work (and this is essentially part of the SUPA work resubmitted to the
> > NETMOD WG). Despite this, the YANG definitions are clearly not up to
> > the level one would expect for WG adoption. Many descriptions are
> > just repetition of leaf names and there are obvious errors such as
> > 
> >            leaf-list day-of-month {
> >              type uint8 {
> >                range "0..59";
> >              }
> >              description
> >                "A set of days of the month at which this
> >                 scheduling timing will trigger.";
> >            }
> > 
> > Despite the strange range, it is unclear how a number will in the
> > range will identify a set. Note, this is an example, there are lots of
> > them in the document. The examples provides are not convincing and
> > technically wrong (how can <interval>10m</interval> match
> > 
> >            leaf interval {
> >              type uint32 {
> >                range "1..max";
> >              }
> >              units "seconds";
> >              mandatory true;
> >              description
> >                "The number of seconds between two triggers
> >                 generated by this periodic timing object.";
> >            }
> > 
> > and I have serious doubts that the design is anywhere close to be
> > practically usable. There need to be mechanisms to bind 'variables'
> > while matching conditions that and be reused in action definitions, it
> > is not scalable to have constants such as interface names in the
> > examples hard-coded in policy rules - this would lead to a huge number
> > of rules if you want to apply policy rules to all interfaces.
> > 
> > There is also a lack of extensibility, which is important for a core
> > policy language, and definitions like:
> > 
> >    identity function-type {
> >      description
> >        "Possible values are:
> >         plus, minus, mult, divide, remain.";
> >    }
> > 
> > without ever defining these operators feels strange. I also not
> > convinced that the resulting expressions are expressive enough for
> > real-world use.
> > 
> > This document is in a state that requires way too much effort to fix
> > in a WG process. I also doubt that expressing policies in such a
> > low-level format is usable in practice. Policy languages for network
> > management have a long history and this proposal seems to ignore the
> > lessons learned in the past.
> > 
> > /js
> > 
> 

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>