Subject: [mpls] Review of draft-ietf-mpls-tp-linear-protection-mib-08.txt

From: "Joan Cucchiara" <[email-masked]>
Date: Wed, 29 Jun 2016 13:51:20 -0400

Authors,

Thank you for addressing the review comments quickly and I apologize for
being late with the follow-on review.    The MIB compiles cleanly with
smingPRO and smilint.

In the previous review the relationship between some tables in the
MPLS-OAM-ID-STD-MIB and in this draft were not clear.   While changes have
been made, more clarification is needed.  Please keep in mind that
developers need to understand the relationships between these tables and how
the rows in these tables are created (i.e., network management entity and/or
operator).  

I have reviewed the changes made from 07 to this draft.   I have deleted the
07 comments that are resolved in this new version.   If there is still a
clarification that is needed, I added additional comments prefaced by "JEC".

Thanks,
-Joan

Specific Comments:   
==================
Section 1. Introduction

"However, since the MIB module specified in this document are ..." <--
plural

JEC:   minor edit.  In the above sentence, s/are/is/

Section 5.4 The Table Structure

 * The mplsLpsConfigTable

As a reviewer, this is confusing because the relationship with these tables
is unclear and so it is very difficult to review the MIB Module.  Please
clarify the relationship with these tables and to the mplsOamIdMeTable in
the MPLS-OAM-ID-STD-MIB.

JEC:   This section specifies "The protection domain is identified by
mplsLpsConfigDomainName." and the object's DESCRIPTION indicates that this
value is supposed to be unique, so my  question is why does this need to be
unique, and if it really does need to be unique, then why isn't this an
INDEX?       Please clarify.

   mplsLpsConfigDomainName OBJECT-TYPE
      SYNTAX      SnmpAdminString (SIZE (0..32))
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "Textual name represents the MPLS-TP linear protection domain.
          Each protection domain is identified by a unique protection
          domain name. "
      ::= { mplsLpsConfigEntry 2 }

(This object should probably have a DEFVAL{""} since 0 length string is
allowed.)

Section 7.  Example of Protection Switching Configuration 

JEC: The example in this section needs to be reworked.  Please use different
values for some of these indices.  Too many of these indices are "1" and
that is not very helpful.   If the indices are supposed to be the same
values that would be good to know with additional comments too.

MIB Module
------------

* mplsLpsConfigDomainName  -- Is there a DEFAULT value for this object?
The string size is 1..32 with no option of 0 length string, so wanted to
check about a default value?  Under what circumstances can this value be
modified?   Please give a REFERENCE.

JEC:  Now that a 0 length string is allowed, there should probably be a
DEFVAL{ ""};  Additionally, why is it necessary to have each Domain Name be
unique?   If it MUST be unique, then perhaps it should be an INDEX.    Also,
it is unclear how rows in this table are supposed to be created.  Could that
be included in the Table's description?

* mplsLpsConfigMode - Needs REFERENCE (and please try to be specific).
Under what circumstances can this be modified?

JEC:   Still needs a REFERENCE.  Need to add what sort of SNMP error code
will be returned  when an attempt is made to change this value and RowStatus
== "active",  e.g. inconsistentValue Error ?

JEC:  * mplsLpsConfigSdBadSeconds  -- see this 2 times in the DESCRIPTION
clause.
          This object may be modified if the associated
          mplsLpsConfigRowStatus object is equal to active(1).

          This object may be modified if the associated
          mplsLpsConfigRowStatus object is equal to active(1). "

JEC:  * mplsLpsConfigSdBadSeconds and mplsLpsConfigSdGoodSeconds  Did not
see such features as these in the REFERENCE sited.  Could you please confirm
REFERENCE.  Not clear on how these are used with the SdThreshold.  Where
does the DEFVAL of 10 come from?

* mplsLpsConfigWaitToRestore
Why is this not in minutes?  If someone configures this to be 30 seconds is
that valid?  Doesn't seem so based on the DESCRIPTION.  Please clarify.

JEC:   The DESCRIPTION clause still mentions seconds. ("This object holds
the Wait To Restore timer value in seconds.")    Units are in minutes and
the rest of DESCRIPTION clause is in minutes.  Please be consistent.

JEC:  * mplsLpsMeConfigDomainIndexValue, is this an INDEX?   The name leads
me to believe it is, as does the DESCRIPTION, but have no idea how the
objects in this entry are  configured.  Please add a REFERENCE clause, or
clarify somehow.   This is crucial to the success or failure of this MIB.
Is the network management entity (e.g SNMP Agent/subagent) suppose to create
these rows?  Is an operator?  Please add details on how entries are made in
this table.   You say that it is a Sparse Augments relationship but even
still, very unclear on 
how rows are created.     If this is NOT an INDEX, then please remove the
term "Index" from the name of this object.

Have to ask If  the intention is that one or more entries (i.e. rows in this
table) could be related to a single entry in mplsOamIdMeTable?  If so, then
an index is needed.  

*mplsLpsMeConfigState is a read-create. 

JEC:  DESCRIPTION says "operational state" but the name says "ConfigState"
and this is a read-create?  Need to decide which this is and be consistent.
Do you need another object for the operational state which is a read-only?  

Notifications

* mplsLpsEventFopTimOut Notification

Please rename this to mplsLpsEventFopTimeout

JEC: Not done, please rename to be consistent with other objects in the MIB
Module.

---