The MPLS WG Archive

Cell Relay Retreat>MPLS WG Archive>month:2003-Jun> msg00154



[Date Prev][Date Next][Thread Prev][Thread Next]  
  [Date Index][Thread Index][Author Index][Subject Index]

WG last call on the FTN mib module and the TE mib module

  • From: "Adrian Farrel" <afarrel@movaz.com>
  • Date: Fri, 27 Jun 2003 13:04:09 -0400
  • Cc: <adrian@olddog.co.uk>, "Thomas D. Nadeau" <tnadeau@cisco.com>, "Cheenu Srinivasan" <cheenu@alumni.princeton.edu>, "'Arun Viswanathan'" <arunv@force10networks.com>

As promised, here is the continuation of my review of this draft.
 
This concludes my comments. I'm afraid I don't have the stamina to
work on the conformance statement.
 
Adrian
 
=========
 
24) mplsTunnelResourcePointer Description
 
This refers to "segment" twice. But we are not dealing
in segments in this MIB table. We are dealing in
tunnel instances (or if you must, LSPs).
 
25) mplsTunnelPrimaryInstance
 
It is very unclear what you mean in this case by
"primary". I think the description needs to be enhanced.
 
For example, do you mean the tunnel instance that is
actually established and active at the moment? No, it
can't be that because in mplsTunnelInstancePriority
allows two instances to be active at once.
 
Does it mean "preferred"? Wouldn't that be covered
by the instance with the highest priority?
 
Perhaps it means the instance that carries the full
configuration? No this is the definition of the row
with tunnel instance zero.
 
26) mplsTunnelTable
 
Given that I have a tunnel with many instances defined,
how do I find which instance(s) are currently active?
Do I have to read each of them and collect the ones
with operStatus up?
 
27) mplsTunnelInstancePriority
 
        "This value indicates which priority, in descending
          order, with 0 indicating the lowest priority,
          within a group of tunnel instances. A group of
<         tunnel instances is defined as a set of tunnels
>         tunnel instances is defined as a set of LSPs
          with the same mplsTunnelIndex in this table, but
<         with a different mplsTunnelInstance. Tunnel group
>         with a different mplsTunnelInstance. Tunnel instance
          priorities are used to denote the priority at which
28) mplsTunnelRole (out of order, sorry)
 
   SYNTAX        INTEGER { head(1), transit(2), tail(3) }
 
I believe you need BITS not INTEGER since a tunnel may
be set up between interfaces on a single LSR making it
both ingress and egress. You could alternatively add:
 
   head_tail(4)
 
but I think that is less useful.
 
29) mplsTunnelExcludeAllAfinity
 
As Ed says, this should read "Any". Also in the description.
 
30) mplsTunnelPrimaryUpTime
 
This description is inadequate.
What is meant be "active"?
See point 25) for questions about what a primary instance is.
Is this value present in the row for every instance that is
not a primary instance? If so, why?
 
31) mplsTunnelPathChanges
 
<       "Specifies the number of times the paths has changed
>       "Specifies the number of times the path has changed
          for this tunnel since its creation."
32) mplsTunnelPathChanges and mplsTunnelLastPathChange
 
Do you mean "for this tunnel instance" or are you trying
to capture the case where a tunnel has changed path by
any means including a change of instance?
 
What do you mean by "path change"? Hop, CHop or ARHop?
 
33) mplsTunnelCreationTime
 
Please be more specific. What does "came into existence" mean?
 
34) mplsTunnelStateTransisitions
 
Please say which "state" you are refering to.
 
35) mplsTunnelOperStatus (and probably all operStatus objects)
 
At the MIB Meeting (TM) we took an action that "unknown"
would always have value (1) unless there was good reason in
which case it must be stated in the MIB modules.
 
36) mplsTunnelRowStatus
 
        "This variable is used to create, modify, and/or
<         delete a row in this tabole.  When a row in this
>         delete a row in this table. 
 
37) mplsTunnelRowStatus
 
           When a row in this
          table is in active(1) state, no objects in that row
          can be modified except mplsTunnelRowStatus and
          mplsTunnelStorageType."
Can be modified by whom/what? Presumably a dynamic signaling
protocol could modifiy this table regardless of the rowStatus.
 
Can a user not change the adminStatus when rowStatus is
active?
 
38) mplsTunnelStorageType (and all similar fields).
 
The text here is confusing.
 
        "This variable indicates the storage type for this
          object.  If this variable is set to readOnly(5),
          and the corresponding entry is removed, then the
          agent must remove this row shortly thereafter
          [RFC2579].
What is the difference between an "entry" and a "row"?
Where you say "entry", do you mean "the managed object
represented by this entry in the table"?
 
        Setting this object to permanent(4) indicates that
          this object should be restored automatically after
          failures.
 
What do you mean by "this object"?
Do you mean the "managed object represented by this entry
in the table"?
 
39) mplsTunnelHopListIndexNext
 
Shouldn't the syntax be MplsPathIndexOrZero?
 
40) All IndexNext objects
 
I recall an email discussion with Bert about how these
objects should be managed and described. The concern is
with producing unnecessary lacunae in the table.
 
I think the position "agreed" upon was to cut over to
using the IndexInteger and IndexIntegerNextFree TCs
from RFC3289.
 
41) mplsTunnelHopTable
 
Please explicitly state the meaning of this table for
LSRs that are not the ingress of the tunnel instance.
 
This text should also be placed in the description of
mplsTunnelHopTableIndex.
 
41) mplsTunnelHopTable
 
        "The mplsTunnelHopTable is used to indicate the hops,
<         strict or loose, for an MPLS tunnel defined in
<         mplsTunnelTable,
>         strict or loose, for an instance of an MPLS tunnel
>         defined in mplsTunnelTable,
 
42) mplsTunnelHopTable
 
                           when it is established via
          signalling, for the outgoing direction of the
          tunnel.  
 
What does this mean?
i)  Why is it limited to signaling? This is a convenient
    place to record the path of a manula tunnel instance
    if it is known.
ii) Are you trying to say that the only hops present are
    the downstream hops? Thus in RSVP-TE terms, at
    transit LSRs, this matches the received ERO. If so,
    please say so.
 
43) mplsTunnelHopTable
 
                                                      The
          first row in the table is the first hop after the
          origination point of the tunnel.  
 
In which case your example in section 9 is broken.
 
44) mplsTunnelHopAddressType
 
          mplsTunnelHopAddrUnnum should be referred to. If
          the object is set to lspid(5), then all but the
          mplsTunnelHopLspId should be referred to. Note that
          lspid(5) is a valid option only for tunnels
          signaled via CRLDP"
What do you mean by "all but the mplsTunnelHopLspId should
be referred to"?
 
45) mplsTunnelHopAddress
 
I am confused by this object and the associated textual
convention.
 
i)  Why are 32 octets required to carry a hop address?
ii) Is there not already a standard TC for carrying IP
     addresses?
iii) If you are going to use a "free-form" octet string
     (not my favorite) then why is it necessary to
     have a separate object and TC for AS number?
 
46) mplsTunnelHopAddrUnnum
 
If this only holds the interface id, where is the
router id?
 
47) mplsTunnelHopType and mplsTunnelHopInclude
 
I believe you should combine these since strict/loose
has no meaning for exclusion.
 
This gives...
 
mplsTunnelHopType OBJECT-TYPE
   SYNTAX        INTEGER {
                      strict(1),
                      loose(2),
                      exclude(3)
                     }
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
        "Denotes whether this tunnel hop is routed in a
          strict or loose fashion, or is to be excluded
          from the computed and actual paths."
   ::= { mplsTunnelHopEntry 10 }
 
48) mplsTunnelHopPathOptionName
 
Must this be present for every hop with the same
mplsTunnelHopListIndex and mplsTunnelHopPathOptionIndex?
 
If so, must it be identical?
 
49) mplsTunnelHopEntryPathComp
 
So many questions!
 
i)   This is not a per hop piece of information. This
     and point 48) suggest that you need a PathOption
     table.
ii)  How is this useful? It seems you are mixing two
     issues. a) the need to control whether CSPF or
     simple next-hop routing should be invoked at the
     ingress, b) whether the user is allowed to
     specify other than the ingress and egress
     addresses.
iii) Note that the user cannot specify the ingress
     since the source is not in the hop table!
 
50) mplsTunnelHopRowStatus
 
"tabole"
 
51) mplsTunnelResourceTable
 
An old chestnut, this one...
 
Does this table hold the requested values or the actual
values? In other words, what effect does Admisssion
Control and Resv have on the objects in this table?
 
What does the table betoken at non-ingress nodes? The
values received on the setup request?
 
When you say the values are copied into LSR MIB module
objects, are you implying that the two objects always
contain the same values?
 
52) mplsTunnelResourceExBurstSize,
    mplsTunnelResourceFrequency and
    mplsTunnelResourceWeight
 
These seem to be duplicated by...
    mplsTunnelCRLDPResExBurstSize,
    mplsTunnelCRLDPResFrequency and
    mplsTunnelCRLDPResWeight
 
Must I use both?
 
53) mplsTunnelResourceRowStatus
 
"tabole"
 
54) mplsTunnelARHopTable
 
Need a description of the menaing of this table at
non-ingress nodes.
 
The question is whether this reflects the RRO from
the Resv, or the splice of the RRO from the Path
and the Resv.
55) mplsTunnelARHopTable
 
        "The mplsTunnelARHopTable is used to indicate the
          hops, strict or loose, for an MPLS tunnel defined
How can there be a loose hop in the ARHopTable? Fortunately
you don't have an object for this.
 
56) mplsTunnelARHopTable
 
         Please note that since the information necessary to
<         build entries within this table are not provided by
>         build entries within this table is not provided by
56) mplsTunnelARHopTable
 
I believe it is important to add a note to point out that the
contents of this table may change while you are walking it.
This may lead to the NMS perceiving a path which appears to
include loops.
 
You should mention that the mplsTunnelLastPathChange object
can be used to verify that the AR read is valid.
 
57) mplsTunnelARHopEntry
 
        "An entry in this table represents a tunnel hop.  An
          entry is created by a network administrator for
          signaled ERLSP set up by an MPLS signalling
          protocol."
Huh? Surely it is created by the signaling protocol.
 
58) mplsTunnelARHopAddrUnnum (and all unnum addresses)
 
I just noticed the TC for this is an OctetString.
Why? What is wrong with putting 32 bit values in 32 bit
objects?
 
59) mplsTunnelARHopIpPrefixLen
 
How would this ever be other than a full prefix?
In other words, this object is redundant.
 
60) mplsTunnelARHopAsNumber
 
How do you expect this to be present in the AR?
There is no way to signal it.
 
61) mplsTunnelARHopTable
 
What about labels and local protection flags (both in
the RRO in RFC3209)? Are we defering these only to the
GMPLS MIB?
 
62) mplsTunnelCHopTable
 
        "The mplsTunnelCHopTable is used to indicate the
          hops, strict or loose, for an MPLS tunnel defined
          in mplsTunnelTable, as computed by a constraint-
          based routing protocol, based on the
          mplsTunnelHopTable for the outgoing direction of
          the tunnel.  Each row in this table is indexed by
What do you mean by the "outgoing direction of the tunnel"?
Are you trying to say that this table only holds information
for LSRs downstream of this LSR (which would make it
behave as the mplsTunnelHopTable, so seems reasonable) please
use standard terms.
 
This ties to the question: what is the menaing of this table
at non-ingress LSRs? It clearly could have value everywhere
except the egress.
 
63) mplsTunnelCHopTable
 
          table is optional. Furthermore, since the
          information in this table is actually provided by
          routing protocol after the path has been computed,
          the entries in this table are provided only for
          observation, and hence, all variables in this table
          are accessible exclusively as read-only."
I think this could be reworded.
 
          Furthermore, since the information in this table
          describes the path computed by the CSPF engine
          the entries in this table are read-only."
64) mplsTunnelCHopEntry
 
        "An entry in this table represents a tunnel hop.  An
          entry in this table is created by a constraint-
          based routing protocol based on the hops specified
          in the corresponding mplsTunnelHopTable."
Hmmm. A new and wonderful use for a routing protocol!
Reword...
 
        "An entry in this table represents a tunnel hop.  An
          entry in this table is created by a path computation
          engine using CSPF techniques applied to the
          information collected routing protocols and the hops
          specified in the corresponding mplsTunnelHopTable."
 
65) mplsTunnelPerfTable
 
<       "This table provides per-tunnel MPLS performance
<         information."
>       "This table provides per-tunnel instance MPLS
>         performance information."
66) mplsTunnelPerfTable
 
Should we not also measure the signaling protocol?
 
67) mplsTunnelPerfTable
 
What about packets dropped because of local resource
constraints? Such packets are received successfully and are
not packets with errors, but may be discarded through queuing
precidence or whatever.
 
68) mplsTunnelCRLDPResMeanBurstSize
 
Isn't this a duplicate of mplsTunnelResourceMeanBurstSize
which is not specifc to CR-LDP?
 
69) mplsTunnelCRLDPResEntry
 
Please state rules to prevent one of these entries being
orphaned.
 
70) mplsTunnelCRLDPResRowStatus and
    mplsTunnelCRLDPResStorageType
 
Why not inherrit from mplsTunnelResourceEntry?
 
71) mplsTunnelDown
 
mplsTunnelRowStatus is needed too since it may explain why
operStatus has gone down even though adminStatus is up.
 
72) mplsTunnelRerouted
 
        "This notification is generated when a tunnel is
          rerouted. If the actual path is used, then this
          tunnel's entry MAY contain the new path for this
          tunnel some time after this trap is issued by the
          agent."
What is meant by "If the actual path is used"? Are you
saying...
 
        "This notification is generated when a tunnel is
          rerouted. If the mplsTunnelARHopTable is used,
          then this tunnel instance's entry in the
          mplsTunnelARHopTable will contain the new path
          for this tunnel some time after this trap is
          issued by the agent."
73) mplsTunnelReoptimized
 
ditto
 
74) Section 12   First bullet
 
mplsTunnelARHopTable and mplsTunnelCHopTable are read-only
and so should not appear at this point.
 
75) Section 16
 
It is no longer 2001 (although it may still feel like it :-)