Re: [lmap] AD evaluation: draft-ietf-lmap-yang-10

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Tue, 24 January 2017 20:23 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: lmap@ietfa.amsl.com
Delivered-To: lmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DEAA31296FC for <lmap@ietfa.amsl.com>; Tue, 24 Jan 2017 12:23:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.399
X-Spam-Level:
X-Spam-Status: No, score=-7.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-3.199] 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 ya_3SvuguAsU for <lmap@ietfa.amsl.com>; Tue, 24 Jan 2017 12:23:06 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A98E1294F7 for <lmap@ietf.org>; Tue, 24 Jan 2017 12:23:06 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 0DE936A8; Tue, 24 Jan 2017 21:23:05 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.205]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id qlxDKFH74jOB; Tue, 24 Jan 2017 21:23:02 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 24 Jan 2017 21:23:04 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 0CDB0200AC; Tue, 24 Jan 2017 21:23:04 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id l4rvpBciTv6k; Tue, 24 Jan 2017 21:23:01 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id EC974200AB; Tue, 24 Jan 2017 21:23:01 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 83D593E4A30C; Tue, 24 Jan 2017 21:23:05 +0100 (CET)
Date: Tue, 24 Jan 2017 21:23:05 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Alissa Cooper <alissa@cooperw.in>
Message-ID: <20170124202305.GA38068@elstar.local>
Mail-Followup-To: Alissa Cooper <alissa@cooperw.in>, lmap@ietf.org
References: <49AB42C1-3DE5-4289-9B32-173B69C191DC@cooperw.in>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <49AB42C1-3DE5-4289-9B32-173B69C191DC@cooperw.in>
User-Agent: Mutt/1.6.0 (2016-04-01)
Archived-At: <https://mailarchive.ietf.org/arch/msg/lmap/yC8l0gwxfmQ1ZRNlKi7H3SxGXco>
Cc: lmap@ietf.org
Subject: Re: [lmap] AD evaluation: draft-ietf-lmap-yang-10
X-BeenThere: lmap@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
List-Id: Large Scale Measurement of Access network Performance <lmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lmap>, <mailto:lmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lmap/>
List-Post: <mailto:lmap@ietf.org>
List-Help: <mailto:lmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lmap>, <mailto:lmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jan 2017 20:23:09 -0000

Alissa,

thanks for your review comments. Let me see what can be done to
address them...

On Tue, Jan 24, 2017 at 11:04:47AM -0500, Alissa Cooper wrote:
> I have reviewed this document in preparation for IETF last call. I have a few substantive comments and questions that I’d like to discuss before issuing the LC. I’ve also included some nits and minor comments that should be resolved together with any IETF LC comments.
> 
> Substantive comments and questions:
> 
> = Section 3 =
> 
> "Configuration Information: This is modeled in the /lmap/agent
>       subtree, the /lmap/schedules subtree, and the /lmap/tasks subtree
>       described below.  Some items have been left out because they are
>       expected to be dealt with by the underlying protocol."
> 
> I think this needs some further elaboration about the items that have been left out. As far as I can tell the only items from the information model that this data model does not define are ma-config-credentials and ma-config-control-channels. There is already text further below to explain the expectation about how channels will be modeled, which should be referenced here. Is there not something more specific that can be said about how credentials will be handled/modeled, assuming the "underlying protocol" referenced for configuration is NETCONF?
>

I think this is related to the issue you raised for the information
model. Until we are clear what the MA credentials not associated to
a channel were intended to be used for, I can't really answer this
specific question.

> = Section 4.2 =
> 
> (1) "It is generally a good idea to always configure
>             an end time and to refresh the configuration
>             of event object as needed to ensure that agents
>             that loose connectivity to their controller
>             do not continue their tasks forever."
>             
> This is more of a comment for the information model, but if this is worth saying here, shouldn't it (also) be mentioned in the corresponding information model definition in draft-ietf-lmap-information-model? This doesn't seem specific to this particular data model.

I see your point. I think it makes sense to note this in the second
item 4. of section 3 of the information model. (I will change the
numbering of the second list to use letters to make it easier to refer
to things.)

       [...] For Event objects specifying a
       series of events, it is generally a good idea to configure an end
       time and to refresh the end time as needed to ensure that MAs
       that loose connectivity to their controller do not continue
       executing Schedules forever.

> (2) For all the counters defined here, I think you need to specify the time period over which the counts are to be calculated.

We use counters as defined in RFC 6991 and I think the definition in
RFC 6991 takes care of things.

> (3) 'list action {
>              key name;
>              description
>                "An action describes a task that is invoked by the
>                 schedule. Multiple actions are invoked sequentially.";'
> 
> I don't get this -- doesn't the execution mode define whether the actions are executed sequentially, in parallel, or pipelined?

Good catch. Changed this to:

           list action {
             key name;
             description
               "An action describes a task that is invoked by the
		schedule. Multiple actions are invoked according to
                the execution-mode of the schedule.";

> (4) "A queue is internally used to pass
>                   results to another schedule."
> 
> I thought it was up to the implementation to decide how to implement this?

OK. I meanwhile understand that the word 'queue' has too many
connotations. Is 'buffer' a less problematic term? The key here is
that the data producer and the data consumer are in general not
running at the time and hence data needs to be stored temporarily
somewhere. I will replace queue with buffer for now.

> (5) I don't understand why the 'program' elements are included in the task configurations and capabilities. It doesn't seem wise to allow the controller to tell the MA which program it needs to use to complete a task, and I don't understand why the MA would need to communicate that information to the controller either. I thought the recent list discussion indicated that if an MA was not capable of performing an action, that action would simply fail, which seems like all that is needed.

There are multiple things:

(a) How do I tell which task I want to have executed? The information
    model assumes that this can be done with the help of a registry.
    The YANG data model, in addition, allows to use a simple 'program
    name'. Note that this is a choice, i.e., you either use a registry
    or a program name, but not both.

    The registry at the end is just some level of indirection - but
    this indirection also requires to have tasks registered in a
    registry. Right now, the implementation I know of only supports
    program names.

(b) The task list in the capabilities branch serves as an inventory,
    i.e., it tells the controller which tasks are supported by a given
    implementation. The other task list defined options that are used
    when a certain task is invoked (the Task Configuration in the
    information model). If a controller configures a task that the
    agent does support (i.e., it is not listed in the capability
    tasks), it will not be executed.

Note that a capability task name 'traceroute' exposed by the LMAP
agent does not necessarily mean that there is a program called
traceroute at the operating system level. In fact, an implementation
could choose to run traceroute internally without an explicit system
level process (like RIPE Atlas did everything in a big event loop, not
sure whether this is still the case).
 
> Nits and minor comments:
> 
> = Section 4.1 =
> 
> Please provide a reference for ISO 8601.

added

> = Section 4.2 =
> 
> s/loose connectivity/lose connectivity/
> 
> s/schedule determins/schedule determines/
> 
> s/A set of month/A set of months/
> 
> s/A set of second/A set of seconds/

fixed
 
> = Section 5 =
> 
> (1) Just a suggestion, but I think this is worth calling out specifically:
> 
> OLD
> Unauthorized access may leak measurement results.
> 
> NEW
> Unauthorized access may leak measurement results, including from passive measurements.

added

> (2) "Implementers MUST taken care that
>    option names and values are passed literally to programs.  In
>    particular, it MUST be avoided that any shell expansions are
>    performed that may alter the option names and values."
> 
> This text strikes me as a bit odd. Surely there are a whole selection of good programming practices that are necessary to ensure that things don't go haywire when implementing LMAP -- why call out these two with normative recommendations? Why does this guidance only apply to options? I would recommend having this text be non-normative, but if you do keep it I would suggest the following:
> 
> Implementers MUST take care that
>    option names and values are passed literally to programs.  In
>    particular, shell expansions that may alter the option names and values MUST NOT be performed.

I have no strong opinion on MUST vs must here and I usually happily
follow the advice of IESG members on RFC 2119 keywords. ;-)

Yes, there are many ways to write broken code but this is such a
common problem that I think can't hurt to remind implementors.

A diff of -10 to my working copy (of -11) can be found here:

  http://beadg.de/lmap/

/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/>