Subject: WG Last Call: draft-ietf-tewg-mib-05.txt

From: Jim Boyle <[email-masked]>
Date: Mon, 18 Aug 2003 15:46:08 -0400 (EDT)

This message begins a WG last call for the TE-MIB, 

	draft-ietf-tewg-mib-05.txt

The last call will end 9/1/2003.

Thanks,

Jim

---------- Forwarded message ----------
Date: Mon, 11 Aug 2003 15:46:32 -0400
From: [email-masked]
To: IETF-Announce:  ;
Cc: [email-masked]
Subject: I-D ACTION:draft-ietf-tewg-mib-05.txt

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Internet Traffic Engineering Working Group of the IETF.

	Title		: A Traffic Engineering MIB
	Author(s)	: K. Kompella
	Filename	: draft-ietf-tewg-mib-05.txt
	Pages		: 38
	Date		: 2003-8-11
	
This memo defines a portion of the Management Information Base (MIB)
for use with network management protocols in the Internet community.
In particular, it describes managed objects for Traffic Engineered
Tunnels, for example, Multi-Protocol Label Switched Paths.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-tewg-mib-05.txt

To remove yourself from the IETF Announcement list, send a message to 
ietf-announce-request with the word unsubscribe in the body of the message.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-tewg-mib-05.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-tewg-mib-05.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

---

From: "Adrian Farrel" <[email-masked]>
Date: Fri, 22 Aug 2003 14:12:41 +0100

Kireeti,
Good job. 

A few comments embedded in the extracted text of the draft below. Mainly typos.

But a couple of questions/issues first.

Cheers,
Adrian

1. Could you explicitly clarify in the introduction that the MIB applies
    only at the ingress of tunnels. That is that it cannot be used to
    monitor tunnels at transit nodes or at their egresses.

2. The introduction makes (correctly) much of the fact that the MIB
    module can be used to model and manage any tunnel. Yet when
    we get to teSignalingProto we discover that the options are only
    'other', rsvpte' and 'crldp'. This seems to make it very MPLS-centric.

    I appreciate that 'other' covers a lot of possibilities, but aren't there
    some other tunneling protocols/techniques you'd like to list here?

    In particular, I'd like to see 'none' added to the list to cover statically
    configured (unsignaled) tunnels.

3. teNextPathIndex seems to be in contradiction with the indexes to
    tePathTable. 

    tePathTable has paths listed under the primary index of 
    teTunnelIndex so that you can find all of the paths for a given
    tunnel. The secondary index is tePathIndex and is described as
    being unique within the context of a tunnel. The use of 
    teNextPathIndex would give a tePathIndex value that was unique 
    across the whole table.

    Admitedly one of these statements is a subset of the other, but
    it is not immediately clear how you expect teNextPathIndex to be 
    used.

4.  Could you supply a means to enable/disable notifications?
     Something like...
     teNotificationEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
             "If this object is true, then it enables the generation of notifications
              from this MIB module. Otherwise notifications are not generated."
        DEFVAL { false }
        ::= { teMIBObjects 5 }

5. It is not clear (to me) how you activate a tunnel (i.e. cause it to begin to be
    signaled). I presume you use are using the rowStatus transitions to active
    event. Could you clarify this (and how to initiate tear-down) either in the
    description of teTunnelEntry or in the descriptive text before the MIB module
    definition.

Nits...

< 3. Overview of the MIB
> 3. Overview of the MIB Module

<   The Traffic Engineering MIB consists of four parts:
>   The Traffic Engineering MIB module consists of four parts:
      1) Traffic Engineering information;
      2) a table of Traffic Tunnels;
      3) a table of Paths that tunnels take;
      4) a table of Hops that make up a tunnel path.

<  The MIB also has statements for minimal and full compliance.
>  The MIB module also has statements for minimal and full compliance.

   teAdminGroupTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF TeAdminGroupEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "A mapping of configured administrative groups.  Each
                    entry represents an Administrative Group, and
                    provides a name and index for the group.
                    Administrative groups are used to label links in the
                    Traffic Engineering topology in order to place
                    constraints (include and exclude) on Tunnel paths.

                    A groupName can only be linked to one group number.
                    The groupNumber is the number assigned to the
<                   administrative group which are used in constraints,
>                   administrative group which is used in constraints,
                    like tePathIncludeAny, tePathIncludeAll, etc.
                   "
       ::= { teInfo 9 }

   teTunnelIndex    OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "A unique index that identifies a Tunnel.  This
                    index MUST be unique across Tunnels and interfaces
                    on this host.
# Unclear. Are you saying that a tunnel index must not have the same value as
# an interface index? Or are you saying "MUST be unique across Tunnels on all
# interfaces on this host"
                   "
       ::= { teTunnelEntry 1 }

   teTunnelName     OBJECT-TYPE
       SYNTAX       SnmpAdminString (SIZE (1..32))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "Name of the Traffic Tunnel.

<                   Note that the name of a Tunnel must be unique.
>                   Note that the name of a Tunnel MUST be unique across
>                   all Tunnels on this host.
                    When a SET request contains a name that is already
                    in use for another entry, then the implementation
                    must return an inconsistentValue error.

                    The value of this object cannot be changed if the
                    if the value of the corresponding teTunnelRowStatus
                    object is 'active'.
                   "
       ::= { teTunnelEntry 2 }

   teTunnelSourceAddressType OBJECT-TYPE
       SYNTAX       TeHopAddressType
       MAX-ACCESS   read-create
       STATUS       current
<      DESCRIPTION "Traffic Engineered Tunnel hop Address for the source
<                   this Tunnel.
>      DESCRIPTION "The type of the Traffic Engineered Tunnel hop address 
>                   for the source this Tunnel.

                    The value of this object cannot be changed if the
                    if the value of the corresponding teTunnelRowStatus
                    object is 'active'.
                   "
       ::= { teTunnelEntry 5 }

   teTunnelSourceAddress OBJECT-TYPE
       SYNTAX       TeHopAddress
       MAX-ACCESS   read-create
       STATUS       current
<      DESCRIPTION "Source Traffic Engineered Tunnel hop Address of
>      DESCRIPTION "Source Traffic Engineered Tunnel hop address of
                    this Tunnel.

                    The type of this address is determined by the value
                    of the corresponding teTunnelSourceAddressType.

                    Note that source and destination addresses of a
                    Tunnel can be different address types.

                    The value of this object cannot be changed if the
                    if the value of the corresponding teTunnelRowStatus
                    object is 'active'.
                   "
       ::= { teTunnelEntry 6 }

   teTunnelDestinationAddressType OBJECT-TYPE
       SYNTAX       TeHopAddressType
       MAX-ACCESS   read-create
       STATUS       current
<      DESCRIPTION "The type of Traffic Engineered Tunnel hop Address
>      DESCRIPTION "The type of Traffic Engineered Tunnel hop address
>                   for the destination of this Tunnel.

                    The value of this object cannot be changed if the
                    if the value of the corresponding teTunnelRowStatus
                    object is 'active'.
                   "
       ::= { teTunnelEntry 7 }

   teTunnelDestinationAddress OBJECT-TYPE
       SYNTAX       TeHopAddress
       MAX-ACCESS   read-create
       STATUS       current
<      DESCRIPTION "Destination Traffic Engineered Tunnel hop Address
>      DESCRIPTION "Destination Traffic Engineered Tunnel hop address
                    of this Tunnel.

                    The type of this address is determined by the value
                    of the corresponding teTunnelDestinationAddressType.

                    Note that source and destination addresses of a
                    Tunnel can be different address types.

                    The value of this object cannot be changed if the
                    if the value of the corresponding teTunnelRowStatus
                    object is 'active'.
                   "
       ::= { teTunnelEntry 8 }

   teTunnelAge      OBJECT-TYPE
       SYNTAX       TimeTicks
       MAX-ACCESS   read-only
       STATUS       current
<      DESCRIPTION "The age (i.e., time from creation till now) of
<                   this Tunnel in hundredths of a second.
>      DESCRIPTION "The age (i.e., time from creation of this conceptual 
>                   row till now) of this Tunnel in hundredths of a 
>                   second.
                   "
       ::= { teTunnelEntry 15 }

   teTunnelTransitions OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
<      DESCRIPTION "The number of state transitions (up -> down and
<                   down -> up) this Tunnel has undergone.
>      DESCRIPTION "The number of operational state transitions 
>                   (up -> down and down -> up) this Tunnel has
>                   undergone.
                   "
       ::= { teTunnelEntry 18 }

   teTunnelLastTransition OBJECT-TYPE
       SYNTAX       TimeTicks
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The time in hundredths of a second since the last
<                   transition occurred on this Tunnel.
>                   operational state transition occurred on this 
>                   Tunnel.
                   "
       ::= { teTunnelEntry 19 }

   teTunnelLastPathChange OBJECT-TYPE
       SYNTAX       TimeTicks
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION "The time in hundredths of a secondsince the last
<                   change occurred on this Tunnel.
>                   path change occurred on this Tunnel.
                   "
       ::= { teTunnelEntry 21 }

   tePathRowStatus  OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The status of this conceptual row.

                    When the value of this object is 'active', then
                    the value of tePathName cannot be changed.  All
<                   other writable may be changed; however, these
<                   changes may affect traffic going over the TE
>                   other writable objects may be changed; however, 
>                   these changes may affect traffic going over the TE
                    tunnel, or require the path to be computed and/or
                    re-signalled.
                   "
       ::= { tePathEntry 3 }

   tePathBandwidth  OBJECT-TYPE
       SYNTAX       Unsigned32
# You could use the MPLS TC MplsBitRate
       UNITS       "Kilobits per second"
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION "The configured bandwidth for this Tunnel,
                    in units of thousands of bits per second (Kbps).
                   "
       DEFVAL      { 0 }
       ::= { tePathEntry 7 }

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Mon, 25 Aug 2003 15:41:18 -0400

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Adrian Farrel
Sent: Friday, August 22, 2003 9:13 AM
To: 'Kireeti Kompella'
Cc: [email-masked]
Subject: Re: WG Last Call: draft-ietf-tewg-mib-05.txt 

Kireeti,
Good job. 

A few comments embedded in the extracted text of the draft below. Mainly
typos.

Cheers,
Adrian

  1. Could you explicitly clarify in the introduction that the MIB
applies
    only at the ingress of tunnels. That is that it cannot be used to
    monitor tunnels at transit nodes or at their egresses.
 
2. The introduction makes (correctly) much of the fact that the MIB
    module can be used to model and manage any tunnel. Yet when
    we get to teSignalingProto we discover that the options are only
    'other', rsvpte' and 'crldp'. This seems to make it very
MPLS-centric.
 
    I appreciate that 'other' covers a lot of possibilities, but aren't
there
    some other tunneling protocols/techniques you'd like to list here?
 
    In particular, I'd like to see 'none' added to the list to cover
statically
    configured (unsignaled) tunnels. 
 
TOM:     When the type is set to 'other' you should also note clearly
which
            objects in the table do and do not apply. The same for when
the type
            is set to 'mpls' or 'crldp'.

 

4.  Could you supply a means to enable/disable notifications?
     Something like...
     teNotificationEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
             "If this object is true, then it enables the generation of
notifications
              from this MIB module. Otherwise notifications are not
generated."
        DEFVAL { false }
        ::= { teMIBObjects 5 } 
 
TOM:    You should also provide a means by which to specify a
            rate of notifications that the device should not exceed per
            second.  This allows implementations that can do
notification
            throttling to have a convienent place to have this
configured. 

    --Tom

5. It is not clear (to me) how you activate a tunnel (i.e. cause it to
begin to be
    signaled). I presume you use are using the rowStatus transitions to
active
    event. Could you clarify this (and how to initiate tear-down) either
in the
    description of teTunnelEntry or in the descriptive text before the
MIB module
    definition.

Nits...
 
< 3. Overview of the MIB

 

   teTunnelIndex    OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION "A unique index that identifies a Tunnel.  This
                    index MUST be unique across Tunnels and interfaces
                    on this host.
# Unclear. Are you saying that a tunnel index must not have the same
value as
# an interface index? Or are you saying "MUST be unique across Tunnels
on all
# interfaces on this host"
                   "
       ::= { teTunnelEntry 1 }
 
   teTunnelName     OBJECT-TYPE

 
 
                    this Tunnel.

 

 
                    of this Tunnel.

 

   teTunnelAge      OBJECT-TYPE
       SYNTAX       TimeTicks
       MAX-ACCESS   read-only
       STATUS       current

                   "
       ::= { teTunnelEntry 15 }

                   "
       ::= { teTunnelEntry 18 }
 
                   "
       ::= { teTunnelEntry 19 }

                   "
       ::= { teTunnelEntry 21 }