Re: [OPSAWG] Yangdoctors early review of draft-ietf-opsawg-nat-yang-06

<mohamed.boucadair@orange.com> Mon, 06 November 2017 14:58 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: opsawg@ietfa.amsl.com
Delivered-To: opsawg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 951B713FC32; Mon, 6 Nov 2017 06:58:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.619
X-Spam-Level:
X-Spam-Status: No, score=-2.619 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
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 57M0RoXi3epD; Mon, 6 Nov 2017 06:58:04 -0800 (PST)
Received: from orange.com (mta240.mail.business.static.orange.com [80.12.66.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9233C13FC2F; Mon, 6 Nov 2017 06:58:04 -0800 (PST)
Received: from opfedar00.francetelecom.fr (unknown [xx.xx.xx.11]) by opfedar26.francetelecom.fr (ESMTP service) with ESMTP id 04A531C0B0B; Mon, 6 Nov 2017 15:58:03 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.34]) by opfedar00.francetelecom.fr (ESMTP service) with ESMTP id D491E180052; Mon, 6 Nov 2017 15:58:02 +0100 (CET)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM6F.corporate.adroot.infra.ftgroup ([fe80::bd00:88f8:8552:3349%17]) with mapi id 14.03.0361.001; Mon, 6 Nov 2017 15:58:02 +0100
From: mohamed.boucadair@orange.com
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "draft-ietf-opsawg-nat-yang.all@ietf.org" <draft-ietf-opsawg-nat-yang.all@ietf.org>, "opsawg@ietf.org" <opsawg@ietf.org>
Thread-Topic: Yangdoctors early review of draft-ietf-opsawg-nat-yang-06
Thread-Index: AQHTT09nb4Xo03k7b0eBVGOEwFdqM6L8ajgAgAAc3gCAARxwQIABnpyAgAgbCIA=
Date: Mon, 06 Nov 2017 14:58:02 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B93300A07212C@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <150912805550.22087.2939629492652644040@ietfa.amsl.com> <787AE7BB302AE849A7480A190F8B93300A060DB1@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <20171030162210.ni72dxxmc45o3cak@elstar.local> <787AE7BB302AE849A7480A190F8B93300A063187@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <20171101100409.n6sycvnj5km4jrdk@elstar.local>
In-Reply-To: <20171101100409.n6sycvnj5km4jrdk@elstar.local>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.168.234.2]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/opsawg/UUT45mrGystPXsl4bnThi2UQ7N0>
Subject: Re: [OPSAWG] Yangdoctors early review of draft-ietf-opsawg-nat-yang-06
X-BeenThere: opsawg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: OPSA Working Group Mail List <opsawg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/opsawg>, <mailto:opsawg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/opsawg/>
List-Post: <mailto:opsawg@ietf.org>
List-Help: <mailto:opsawg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/opsawg>, <mailto:opsawg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Nov 2017 14:58:11 -0000

Hi Juergen,

Thank you for the follow-up and for the suggestions. 

I made the following changes to address your comments:

- Revert back to the use of features.
- Leave out the logging container for a future extension.
- Remove the "VRF" part from the module, but maintain an extensible design to easily support VRF in the future.  

FWIW, the updated version of the module which integrates those comments is available at: 
https://github.com/boucadair/draft-ietf-opsawg-nat-yang/blob/master/ietf-nat%402017-11-06.yang 

Unless you have any further comment, I'm planning to submit this version early next week. 

Cheers,
Med

> -----Message d'origine-----
> De : Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de]
> Envoyé : mercredi 1 novembre 2017 11:04
> À : BOUCADAIR Mohamed IMT/OLN
> Cc : yang-doctors@ietf.org; draft-ietf-opsawg-nat-yang.all@ietf.org;
> opsawg@ietf.org
> Objet : Re: Yangdoctors early review of draft-ietf-opsawg-nat-yang-06
> 
> On Tue, Oct 31, 2017 at 09:55:46AM +0000, mohamed.boucadair@orange.com
> wrote:
> > > >  That said, there are a number of details where I doubt
> > > > > the model is correct and things where I believe things are
> incomplete.
> > > > > Given that there are many different NAT functions, I also expected
> to
> > > > > see usage of YANG features.
> > > >
> > > > [Med] We used to make use of "features", but there was a comment
> during
> > > the WG call for adoption that requested us to make use of identities,
> > > instead.
> > >
> > > But these are not the same thing.
> >
> > [Med] You are right. Sorry for not being clear.
> >
> > What I meant is that the module used, for example, "if-feature nat64"
> and so on to refer to NAT flavors. We replaced those with "when"
> statements that points to the actual capabilities of an implementation.
> > Another change we made, is that we used to have "Boolean" to indicate
> the support of a given tarnation scheme (e.g., nat64-support, nat44-
> support), but we updated those to make use of identities.
> 
> I do not recall having seen these when expressions. But even if there
> were when expressions, this does not the same as features. A when
> expression puts a constraint on a valid configuration, a feature
> expresses that not all parts of a model may be implemented. This is
> implementation time partitioning vs. configuration time partitioning.
> 
> >  If I am not a nat64, then apparently
> > > several objects to not apply to me.
> >
> > [Med] Yes. We tried to cover this by "when" statements.
> >
> >  This is what features allow you to
> > > express. Perhaps someone wanted identities for something different, I
> > > do not know. I think it is reasonable to assume that not all NAT
> > > implementations will support all types of NATs that the model supports
> > > and hence the model should reflect this.
> > >
> >
> > [Med] The module indicates what a given implementation has to support
> based on its capabilities. This is handled by means of "when" statements.
> 
> This seems to be a mis-understanding of what when expressions do. See
> above for the explanation.
> 
> > > > > - What is the vrf-routing-instance identity good for?
> > > >
> > > > [Med] This is used to bind a NAT function to an external VRF routing
> > > instance. Please check https://www.ietf.org/mail-
> > > archive/web/opsawg/current/msg05117.html
> > > >
> > >
> > > I very much doubt that an identity identifies a VRF instance. I am not
> > > questioning the need to identify a VRF, I am questioning that the
> > > solution put in place achieves this.
> >
> > [Med] Thank you for clarifying. This is actually a good point. The
> options we considered are as follows:
> >
> > (1) Use an Identity to avoid struggling with semantics of how a VRF can
> be defined.
> > (2) Point to draft-ietf-rtgwg-ni-model, likely (?) as a normative
> reference.
> > (3) Remove the VRF thing from the draft; future extensions can be
> defined.
> >
> > Given that "VRFs" are not required for all NATs and some reviewers asked
> to add VRFs in addition to interfaces, we went for option (1). Having a
> dependency on a YANG module under development is not justified for all
> implementations.
> >
> 
> But (1) is broken as far as I can tell. You either work out with the
> routing guys how to properly refer to a VRF or you better leave this
> out.
> 
> > > If leafs are not configurable, then they should be config false.
> >
> > [Med] I will revert config to false as we used to have in previous
> versions. As I said earlier, pyang will cry. I don't know how to fix that.
> >
> 
> Then ask for help including the error message. Marking something that
> is conceptually "config false" as "config true" is pretty misleading.
> 
> > [Med] The current module allows for implementations that support many
> translation flavors. In particular, it allows for a same NAT instance to
> enable many features in the same time.
> >
> > There is no need to indicate explicitly the translation scheme(s) to
> enable because this will be implicitly deduced from the configuration
> parameters. For example:
> > - an implementation supplied with an external IPv4 address pool only,
> will automatically behave in the base NAT mode.
> > - an implementation supplied with an external IPv4 address pool and
> port-related parameters will behave in the NAPT mode.
> > - an implementation supplied with an external IPv4 address pool, port-
> related parameters, and NAT64 prefixes will behave in the statefull NAT64
> mode
> > - an implementation supplied with an external IPv4 address pool, port-
> related parameters, dst-nat-enable=true, and dst-ip-address-pool will
> behave in the NAPT mode + destination NAT
> >
> > and so on.
> 
> As long as this is clear from the specification. One option you may
> consider is to use presence containers that can carry the bit when to
> enable / disable a specific NAT function. (Although personally, I am
> not such a big fan of presence containers, perhaps since I am not a
> fan of side effects in general).
> 
> > > > [Med] Yes.
> > > >
> > > > >
> > > > > - logging-info
> > > > >
> > > > >   Is this information complete? Perhaps it is for plain syslog
> > > > >   (without any security) but I doubt the info is complete for the
> > > > >   other transports mentioned, at least not for FTP. And surely, if
> you
> > > > >   want to protect the logging information, then you will neeed way
> > > > >   more parameters. And what does 'retrieving' logging entries
> mean?  I
> > > > >   assume with syslog and ipfix you push log messages. I am less
> sure
> > > > >   about FTP. Perhaps less is more and simply provide support for
> > > > >   syslog and leave the other options for extensions. You have a
> choice
> > > > >   in place, so not need to go and deal with all possible
> complexity
> > > > >   here.
> > > > >
> > > >
> > > > [Med] It is out of scope of specify the exact logging information.
> Those
> > > considerations are out of scope. We only focus on the protocol and the
> > > server information.
> > >
> > > I think my comment was saying that the information is not sufficient
> to
> > > talk to a server.
> >
> > [Med] It is only about the minimal set of information. The information
> is not complete on purpose. Protocol-specific information is out of scope
> of this document.
> 
> I am not sure it is valuable to have a standards-track specification
> for something that is incomplete up the point that it can't be used if
> implemented without annotations and extensions, i.e., the whole thing
> can't be interoperable unless there is a standards-track extension. So
> I would rather not standardize this at all and wait until someone is
> willing to work out the details.
> 
> /js
> 
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>