Re: [netmod] regular expression flavours (again)

Robert Varga <> Thu, 13 June 2019 13:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6653D1202D3 for <>; Thu, 13 Jun 2019 06:22:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id kDoXftQ0WNuW for <>; Thu, 13 Jun 2019 06:22:22 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B5BC4120153 for <>; Thu, 13 Jun 2019 06:22:21 -0700 (PDT)
Received: from nitebug.nitenet.local ( []) by (Postfix) with ESMTPSA id BD575243A54; Thu, 13 Jun 2019 15:22:18 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=mail; t=1560432138; bh=/jIxtIJW38AuQIHqz40T5GVfNScLML8k54zj9nGevHY=; h=Subject:To:References:From:Date:In-Reply-To; b=crzZIzfFBJLciiqg45xuSssI1oO/275hGPX1pVE8i7adSAgzTj25K4L0VCtecJtqy INg6r01OKKTaaYv3rW1EBmLoFuSkqZJFJTdRwefrQZVp+aJRc4ERySYOfpu3W0i6ad /UAz3w71c9wgDiGq4xi0haoFqmdnA2Hfixu2WSPg=
To: Ladislav Lhotka <>, NETMOD WG <>
References: <> <> <> <> <>
From: Robert Varga <>
Openpgp: preference=signencrypt
Message-ID: <>
Date: Thu, 13 Jun 2019 15:22:13 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="FKgskWlz0qwIaTIrcDbzMpSW5ObcHKisi"
Archived-At: <>
Subject: Re: [netmod] regular expression flavours (again)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 13 Jun 2019 13:22:25 -0000

On 12/06/2019 13:01, Ladislav Lhotka wrote:
>>> What I meant was rather something like
>>>     pattern-language "POSIX";

Yeah, that is what I proposed here:

>> But depending on how many pattern languages are supported, wouldn’t that make
>> implementing YANG a lot harder, since implementations would need to support
>> all the allowed pattern languages?
> Not necessarily, implementors should be able decide which flavours to support.
> So OpenConfig would be a niche that uses POSIX, and they have to use tools that
> support it.

Well, some of the languages need to be mandatory-to-implement otherwise
things like unions stop working consistently.

> The real problem here is that they use an extension for changing the semantics
> of a built-in YANG statement, which is IMO not permitted by RFC 7950 and causes
> implementations to break without warning, or even opens security holes. If it
> was a critical extension, and I didn't want to implement the POSIX flavour, my
> implementation should be able to notice it and say "Sorry, I can't work with
> this module".

I could argue that tailf:action introduced such an extension, as users
expected augment to work with it -- except a parser cannot assume an
extension it knows nothing about actually defines a thing in the schema
tree. In my mind that constitutes prior art of getting things work in
the field before standardizing.

It makes little difference to me as an implementer whether the users
scream at me for the patterns not working as expected (we've had
equivalents of the issue you referenced pop up for years now) or they
scream because the tooling rejects to work with the models.

In either case the source is whoever wrote the models and it is the
expectation that tools work Just Work (tm).