[lmap] review: draft-ietf-lmap-information-model-03

"Bajpai, Vaibhav" <v.bajpai@jacobs-university.de> Mon, 26 January 2015 10:32 UTC

Return-Path: <v.bajpai@jacobs-university.de>
X-Original-To: lmap@ietfa.amsl.com
Delivered-To: lmap@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1FD4E1A88A8 for <lmap@ietfa.amsl.com>; Mon, 26 Jan 2015 02:32:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.26
X-Spam-Level:
X-Spam-Status: No, score=-2.26 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_LOW=-0.7, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 1ZU-tpIbFAZC for <lmap@ietfa.amsl.com>; Mon, 26 Jan 2015 02:32:03 -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 22F8E1A8897 for <lmap@ietf.org>; Mon, 26 Jan 2015 02:32:03 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id E326B1032 for <lmap@ietf.org>; Mon, 26 Jan 2015 11:32:01 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id VLpH9SZ14JmI for <lmap@ietf.org>; Mon, 26 Jan 2015 11:31:59 +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 for <lmap@ietf.org>; Mon, 26 Jan 2015 11:32:00 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8E06C20037 for <lmap@ietf.org>; Mon, 26 Jan 2015 11:32:00 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id vAeOoP7W5WFK for <lmap@ietf.org>; Mon, 26 Jan 2015 11:31:58 +0100 (CET)
Received: from exchange.jacobs-university.de (shubcas01.jacobs.jacobs-university.de [10.70.0.122]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id BC3F220036 for <lmap@ietf.org>; Mon, 26 Jan 2015 11:31:58 +0100 (CET)
Received: from SXCHMB01.jacobs.jacobs-university.de ([fe80::c1f:c30f:99ac:df0c]) by SHUBCAS01.jacobs.jacobs-university.de ([::1]) with mapi id 14.03.0224.002; Mon, 26 Jan 2015 11:31:58 +0100
From: "Bajpai, Vaibhav" <v.bajpai@jacobs-university.de>
To: "<lmap@ietf.org>" <lmap@ietf.org>
Thread-Topic: review: draft-ietf-lmap-information-model-03
Thread-Index: AQHQOVNPzEgvcMa2FkS5D7o5TWD65w==
Date: Mon, 26 Jan 2015 10:31:57 +0000
Message-ID: <FEB98B3A-B30D-4ED3-85BC-EDE006C6A7B9@jacobs-university.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.50.203.30]
Content-Type: multipart/signed; boundary="Apple-Mail=_8CF5928B-17A8-476D-BEB1-2195C1BD0CC8"; protocol="application/pgp-signature"; micalg="pgp-sha512"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/lmap/PyvRaiEARhyFRWTquQng_Fnszts>
Cc: "Bajpai, Vaibhav" <v.bajpai@jacobs-university.de>
Subject: [lmap] review: draft-ietf-lmap-information-model-03
X-BeenThere: lmap@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
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: <http://www.ietf.org/mail-archive/web/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: Mon, 26 Jan 2015 10:32:05 -0000

LMAP,

> On 23 Jan 2015, at 17:33, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> 
> we have updated the YANG data model in order to align it with the
> latest update of the information model. A couple of questions came up
> during the process, which we will post in a separate message. We also
> added an instance document in XML and the same rendered in JSON. Both
> have been validated against the YANG data model using the pyang
> toolchain.

Below is our review of the information model -03:



Capability and Status Information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  >      datetime            ma-last-task;
  >      datetime            ma-last-report;
  >      datetime            ma-last-instruction;
  >      datetime            ma-last-configuration;

The semantics of ma-last-* is unclear. 'Last' means last executed or last
succeessfuly completed? Additionally, how does the LMAP implementation know
whether task X is a measurement task, a reporting task, et al.? If not how
would the implementation fill in the datetime fields.

In the YANG data model [1], we have added 'last-execution' (to all known
tasks) and it records the last invocation of the task (but it should really be
a pair 'last-invocation' and 'last-completion'. But the point here is to
report this for each tasks instead of a grouping of tasks by function.



Condition Codes
~~~~~~~~~~~~~~~

  >    [ma-condition-obj    ma-conditions<0..*>;]

  >    object {
  >      string                ma-condition-code;
  >      string                ma-condition-text;
  >    } ma-condition-obj

This is a list of condition codes.  Each condition code in this list needs to
associate to a task.  How do we make the association?

In the YANG data model [1], we have added 'last-failed-execution' (to all
known tasks) and it records the last failed execution together with a status
code and a status message. This makes sure that a subsequent successful
execution is not removing the error code and message. We also believe that (at
least in the data model) we need to define a set of suitable status codes in
order to be interoperable.



Reporting
~~~~~~~~~

  >  object {
  >      string              ma-report-task-name;
  >     [uri                 ma-report-task-registry-entry;]
  >     [name-value-pair     ma-report-scheduled-task-options<0..*>];
  >     [string              ma-report-task-cycle-id;]
  >      string              ma-report-task-column-labels<0..*>;
  >      ma-result-row-obj   ma-report-task-rows<0..*>;
  >  } ma-report-task-obj;

How about introducing a configuration version number?  This will remove remove
the need to send entire task configuration as part of the report, since only
config version numbers would need to be matched.



Schedules
~~~~~~~~~

  >  object {
  >     string                         ma-schedule-task-name;
  >    [name-value-pair                ma-schedule-task-options<0..*>];
  >    [ma-sched-downstream-tasks-obj  ma-schedule-destination-tasks<0..*>;]
  >  } ma-sched-task-obj;


  a) Task options are now part of both schedule and task configurations
  (Thanks!). However, it's unclear whether schedule options are prepended or
  appended to the task options. We think schedule options should be appended to
  the task options because schedules are more frequently updated than task
  configurations.

  In the YANG data model [1], we have specified that options are appended.


  b) Task and downstream relationship is not clear. Is it:

    $ a | b (a streaming data to b)     (or)
    $ a ; b (b running after a is completed)

    In case of the latter, does the destination task wait for the upstream
    task to be completed? For example, with an upstream task sending results
    to a reporter, is the reporter blocking until there is data from the
    upstream task? The behavior is not currently defined in the document.

    The behavior of ^ relationship is unclear, when for example a periodic
    scheduled task forwards data to an immediate schedule report (or an
    immediate forwards to another immediate). In such cases, what would
    immediate mean if a task consumes data from another task?



  c) Let's not introduce a new 'name-value-pair' type. Instead it would be
  better to refer to an options object which has a name and a value elements.


  >   object {
  >      [string    ma-schedule-task-destination-schedule-name];
  >      [string    ma-schedule-task-destination-task-configuration-name];
  >      [int       ma-schedule-task-output-selection<0..*>;]  // default: all
  >   } ma-sched-destination-tasks-obj;

The notion of an upstream task being able to direct outputs with different
file descriptions to different destination tasks (which themselves are
referred to by a schedule name) was challenging to grasp from the ^ snippet.
Perhaps more description on this would be nice.

  >   Measurement Task
  >     Output 1 -----+----> "Hourly Schedule":"Hourly Reporting Task"
  >     Output 2 ----/

In the ^ example, how do we decide the the order of directing results into the
hourly reporting task?




References
~~~~~~~~~~

  >  [I-D.ietf-lmap-framework]
  >             Eardley, P., Morton, A., Bagnulo, M., Burbridge, T.,
  >             Aitken, P., and A. Akhter, "A framework for large-scale
  >             measurement platforms (LMAP)", draft-ietf-lmap-
  >             framework-03 (work in progress), January 2014.

Needs an update.

  >  [I-D.bagnulo-ippm-new-registry]
  >             Bagnulo, M., Burbridge, T., Crawford, S., Eardley, P., and
  >             A. Morton, "A registry for commonly used metrics", draft-
  >             bagnulo-ippm-new-registry-01 (work in progress), July
  >             2013.

Needs an update.




JSON Data Model Example
~~~~~~~~~~~~~~~~~~~~~~~

As part of the YANG data model definition [1], we now provide both a XML and
a JSON encoded example for reference. The example is validated against the
YANG data model definition. Can we remove the JSON example from this document?

[1] http://tools.ietf.org/html/draft-schoenw-lmap-yang-02



Editorial Comments:
~~~~~~~~~~~~~~~~~~~

A lot of new spelling errors were spotted when examining the diff.


[1] http://tools.ietf.org/html/draft-schoenw-lmap-yang-02


Best, Vaibhav

=====================================================
Vaibhav Bajpai

Research I, Room 91
Computer Networks and Distributed Systems (CNDS) Lab
School of Engineering and Sciences
Jacobs University Bremen, Germany

www.vaibhavbajpai.com
=====================================================