Re: [Taps] Potential alternatives to YANG

"Holland, Jake" <jholland@akamai.com> Thu, 18 April 2019 21:44 UTC

Return-Path: <jholland@akamai.com>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 419851203CD for <taps@ietfa.amsl.com>; Thu, 18 Apr 2019 14:44:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.339
X-Spam-Level:
X-Spam-Status: No, score=-1.339 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, KHOP_DYNAMIC=1.363, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 ui1zSHqPJBsp for <taps@ietfa.amsl.com>; Thu, 18 Apr 2019 14:44:41 -0700 (PDT)
Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (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 1E84712037E for <taps@ietf.org>; Thu, 18 Apr 2019 14:44:41 -0700 (PDT)
Received: from pps.filterd (m0050093.ppops.net [127.0.0.1]) by m0050093.ppops.net-00190b01. (8.16.0.27/8.16.0.27) with SMTP id x3ILXbAg005324; Thu, 18 Apr 2019 22:44:35 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=jan2016.eng; bh=QQZkj6uDRBq8hbEhSzEYZT9VLw6c8h62EUJT6DYtsFU=; b=E5CwpwgiYVd3v+jxdAA2cmTyWcuLU866DquqNzXM0kHPrBWcTHv5A/DATruJM0sJ8OoV OhH1yYWEPeURP4UEitx4dP9ebwayspGKuB0R0sIC1S2GnnVs7hWbnSVvqeGYVtAwQC1Y vmBepSdaPZfvlKlqEG+DU6WK0xc2skfiwd2eHFPyO3tYRHUmbfnjW9a6CVvHHm/XKXWt 0jHR5oq2yyJQfkyM9gFQYhvYSWhjlGRSD7cb7QCJJ3WD1czK0cpqVEllFDfXo2uOt+/J 9lQsV/gEOTLCTcAK7zY7aQ+dNCVh8mCw4h/5yqmLmUooEuh+IAYz45kVRQ04IxF7Q3vH Jg==
Received: from prod-mail-ppoint4 (prod-mail-ppoint4.akamai.com [96.6.114.87] (may be forged)) by m0050093.ppops.net-00190b01. with ESMTP id 2rxv8f1494-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 18 Apr 2019 22:44:34 +0100
Received: from pps.filterd (prod-mail-ppoint4.akamai.com [127.0.0.1]) by prod-mail-ppoint4.akamai.com (8.16.0.27/8.16.0.27) with SMTP id x3ILWODC016809; Thu, 18 Apr 2019 17:44:33 -0400
Received: from email.msg.corp.akamai.com ([172.27.25.33]) by prod-mail-ppoint4.akamai.com with ESMTP id 2rub3vqtq1-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 18 Apr 2019 17:44:33 -0400
Received: from USTX2EX-DAG1MB4.msg.corp.akamai.com (172.27.27.104) by ustx2ex-dag1mb1.msg.corp.akamai.com (172.27.27.101) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 18 Apr 2019 16:44:33 -0500
Received: from USTX2EX-DAG1MB4.msg.corp.akamai.com ([172.27.6.134]) by ustx2ex-dag1mb4.msg.corp.akamai.com ([172.27.6.134]) with mapi id 15.00.1473.003; Thu, 18 Apr 2019 16:44:32 -0500
From: "Holland, Jake" <jholland@akamai.com>
To: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>, "taps@ietf.org" <taps@ietf.org>
Thread-Topic: [Taps] Potential alternatives to YANG
Thread-Index: AQHU7KPeNgKrL2lPAkK8qPZrHOIzyaY+5PiQgACaJoCAAlYz0IAAj6+A
Date: Thu, 18 Apr 2019 21:44:32 +0000
Message-ID: <48F283F4-C9FB-4C5E-BD86-9C95D0E50627@akamai.com>
References: <C130E1D0-CEDB-4999-9FF7-1D64BE5C6CCA@akamai.com> <6EC6417807D9754DA64F3087E2E2E03E2D2B54FA@rznt8114.rznt.rzdir.fht-esslingen.de> <6CAFDA89-B6CE-4178-A0D1-78259D88F3D8@akamai.com> <6EC6417807D9754DA64F3087E2E2E03E2D2BF50C@rznt8114.rznt.rzdir.fht-esslingen.de>
In-Reply-To: <6EC6417807D9754DA64F3087E2E2E03E2D2BF50C@rznt8114.rznt.rzdir.fht-esslingen.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.17.1.190326
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.113.66]
Content-Type: text/plain; charset="utf-8"
Content-ID: <3444AB8515852240B9884B44625A00EC@akamai.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-18_11:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904180127
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-18_11:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default 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-1810050000 definitions=main-1904180127
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/gNsae4jP0gTHUQAWJl0bH7KwPRw>
Subject: Re: [Taps] Potential alternatives to YANG
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Apr 2019 21:44:43 -0000

Hi Michael,

Responses inline with [JH].

On 2019-04-18, 04:56, "Scharf, Michael" <Michael.Scharf@hs-esslingen.de> wrote:
> > My claim is that the data store for networking-specific configuration and
> > operational state is what's most worth modeling as part of the TAPS effort.

> Actually I think we fully agree on that.

[JH] Excellent, thanks for helping me clear that up.  I'm glad to have avoided
a rathole there.
    
> I'd just like to ensure that the pros and cons of using YANG in this specific context are well understood.

[JH] I won't claim that I fully understand the pros and cons of YANG as opposed
to a wide range of other possible choices, but rather that I'm confident that
YANG is a good enough choice that we can get good value by using it.


> As far as I can tell, YANG has been built for mostly for NETCONF (and RESTCONF) and I believe that this has influenced design decisions.

[JH] OK, that's interesting.

I'd be happy to drop this thread, so before answering this, first please take a
look at the rest of this message to see if you think it's worth digging deeper
here.

But if this discussion does seem worth continuing, could you point to some of the
design decisions that were driven by NETCONF and RESTCONF, and an example or 2 of
how at least one of the other modeling languages has a better design because it
wasn't subject to these effects?  (And if known, the impact that has on the
developers who use it?)

> So, unlike for many other data modeling use cases in the IETF focusing on NETCONF/RESTCONF, one *could* raise the question whether YANG is indeed the best data modeling language.

[JH] The framing of "best" leads me to wonder if this discussion is an instance
of "the perfect as enemy of the good"?

Anyway, I think I have a few main responses here:

1. Evaluating a bunch of modeling languages sounds like a lot of work, and
   I expect that if we did it, we'd conclude for each language that it's
   marginally better in some ways and worse in others, and that none of them
   rise substantially above "good enough".
2. YANG has one unique advantage, which is that other networking standards provide
   some useful definitions of relevant data types, which can be easily included by
   reference into a YANG data model.  (This is the main reason for my lightly held
   belief that YANG is probably the best available choice.)
3. Moving forward with the YANG model doesn't stop anyone from proposing another
   model in another language also, and if that model turns out better, we can just
   use it after we see it.  If that happens, it seems like less wasted work than a
   thorough evaluation of alternate modeling languages before getting started,
   especially if we end up with the same choice.

> But I have dealt in the past with sectors of industry that would be able to give quite a number of reasons why the answer to that question would be "no", in particular if the use case is not tied to NETCONF/RESTCONF. I don't know if others in the TAPS working group have made similar experiences.

[JH] I haven't had this experience.  This also is interesting, though. If I'm
headed down a bad path, it would be great to know early.

So if you think there's reason to believe it's a bad path, I'm interested in
hearing at least the best few of these reasons, as long as they do something
like one of these things:
- indicate that "good enough" might not be true for YANG, or 
- give a good hint for which alternate language would be significantly better, or
- give an understanding of problems the YANG choice has that other languages don't

Thanks and regards,
Jake