[netmod] Abusing YANG extensions

Andy Bierman <andy@yumaworks.com> Wed, 02 May 2018 16:19 UTC

Return-Path: <andy@yumaworks.com>
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 EFD21128D2E for <netmod@ietfa.amsl.com>; Wed, 2 May 2018 09:19:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.61
X-Spam-Level:
X-Spam-Status: No, score=-2.61 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 OxAcLgxsDVAN for <netmod@ietfa.amsl.com>; Wed, 2 May 2018 09:19:49 -0700 (PDT)
Received: from mail-lf0-x229.google.com (mail-lf0-x229.google.com [IPv6:2a00:1450:4010:c07::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3E08E12895E for <netmod@ietf.org>; Wed, 2 May 2018 09:19:49 -0700 (PDT)
Received: by mail-lf0-x229.google.com with SMTP id b23-v6so21719631lfg.4 for <netmod@ietf.org>; Wed, 02 May 2018 09:19:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=Ll0oXCe+5P9UFiv2FIUCEu95l2jfW59i3fBYrHyN1m8=; b=yx9j5NHBOmzQBhmUxvuZ+tfF877RcCZyLZTVWZGYandMiKEv/LasUFxrEWpXlSV0WX zCP2wvw1l7Jp/+kc/p68mYcbHHPqmqA+Qt5nKJ+kDjOA61Eyzyyb+9nuQiz4q7XKFX2r aTUKdfnKUVZYalVV7MZwQH60b0MiC2clP0d3c3mQLW8yrTX2mvdcVo7OQR2X6PftMhgo bp+A1flS3kic339dylv/6t/MjVG7m6LZ9BT2IBxi0/yF4hHXZuOlB2OF4HGi1i9QkK3d sQEI/kiI4eBvUpIM8f50vibg2rJDkL1piGUB6g30wi6fAVvchnjz+djB2GSkJvP6TbIJ SMzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ll0oXCe+5P9UFiv2FIUCEu95l2jfW59i3fBYrHyN1m8=; b=lZ9SZ8dW6rzHZWqMJA6+5ek24eSEHH78b7+y5twiNBXOg3Wt+zh3WITHg0dI5Mx5FK KF1TqrNiC8rcpT2KBnB/Q0Ka/j5iqArLxPd+JVFqNeVpEeZ++mvi7BgnQxzjylQC7MlL P/S9sYZgkHv0VKgordaZpED1wZl2kMPbwf/KyzTceRl3zCESG/USOdsuJRm9HAsHRMoF UYPJ5K+42evsKvzC1+E/doeIPFoFyZ3oq0YlAX/BQIpd/OZFgQ0XfluD/OKde1Be6ZXh X6apLwXtbeMCpejqnlo/s1iXDmwRiWwgcyljz5yv1Mz+r/oI4PUhtgUqQOWyEHGhPPif 509g==
X-Gm-Message-State: ALQs6tCF84JCSenVKcGmG/uosCn4E37WFmHyOfDx4gplgcaLJIkq57Jt YWBIp2voyg+9d9UGsPFyKXdXtq8CnLh1eJEBMfmfuQ==
X-Google-Smtp-Source: AB8JxZpiKQIJpIUJWng5rZD/HiggHy8qUeuBLBtEMxOPtcETiLORhw5C/v6yNNNGo9aZEMOmhYiaCGRngGfkd/QVBe4=
X-Received: by 2002:a19:5491:: with SMTP id b17-v6mr13002832lfl.33.1525277986974; Wed, 02 May 2018 09:19:46 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:d8c6:0:0:0:0:0 with HTTP; Wed, 2 May 2018 09:19:45 -0700 (PDT)
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 02 May 2018 09:19:45 -0700
Message-ID: <CABCOCHSYG4DDPA1EbZmp4b28b6VBk8oFDk4xHpD_FRJkxJRJiQ@mail.gmail.com>
To: NetMod WG <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000990448056b3b748f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/y6Wa7fodiaoI95dwB5ha4LuoRvw>
Subject: [netmod] Abusing YANG extensions
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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, 02 May 2018 16:19:51 -0000

Hi,

The discussion about yang-data is stuck because the NETMOD WG does not
understand or does not agree on what it means to abuse a YANG extension
and use it improperly.

If a tool implementing a standard cannot do so without implementing
certain extensions, then those extensions are not optional,
but rather they are mandatory, and therefore violating YANG 1.1.

The NACM extensions are OK because they can be safely ignored
unless the implementation supports NACM, These extensions
are only implemented by the server, so the client is not impacted.

The <config> element is a use-case where YANG fails completely.
According to YANG, the <config> element should only contain child nodes
if they are defined directly or defined with the augment-stmt.
YANG says absolutely nothing about nested data nodes that contain
top-level data nodes.

The "mount-point" extension in YANG Schema Mount also violates
YANG 1.1 in this way. A plain client that does not support schema-mount
will find container and list elements that contain undefined child nodes.
If the server chooses to support schema-mount, the client
is forced to support it, and this is a violation of YANG 1.1.

However, the yang-data extension cannot possibly interfere with standard
YANG 1.1 statements because it is used to specify data structures
that are outside the plain data nodes, instead of over-riding the
definitions of the plain data nodes.


Andy