Subject: Question on T.E. MIB mplsTunnelTable indices.

From: Eric Verhoen <[email-masked]>
Date: Wed, 12 Sep 2001 13:25:09 -0700 (PDT)

What is the exact usage of the 4 indices of the
mplsTunnelTable ?
My understanding of SNMP tables is that all the fields
of a table are uniquely applicable to all the rows.
That does not seem to be the case with this table,
there are some entries for example
mplsTunnelTotalUpTime which is going to be the same
for all instances of a tunnel (meaning this value will
be repeated for all the rows for which the three
indices not including the instance index are the
same). I suppose that is OK because the  MIB
description for mplsTunnelTotalUpTime is very
unambiguous in stating the usage.
However, it is not very clear on reading the MIB table
what ojects are applicable to what row/s. For example,
does mplsTunnelDescr uniqely apply to all rows in the
the mplsTunnelTable ? meaning for every possible
combination of the indices (mplsTunnelIndex,
mplsTunnelInstance, mplsTunnelIngressLSRId,
mplsTunnelEgressLSRId). The same question can be asked
of several object. There are only a few objects with a
clear description.
Let us take the example of mplsTunnelSetupPrio, again
it is not clear whether it applies to all tunnel
instances or just to the corresponding tunnel
instance.
Given that the table has 4 indices I think it would
have been better if the Description of the objects
clearly identified the ones that do not follow the
typical SNMP usage.
In any case I would appreciate some input on which
ones apply to all tunnel instances and which ones
apply to specific instances.

I have a feeling that this topic must have already
been discussed in which case all I need is a pointer
to the discussion thread in the archives.

Thanks
-ev- 

__________________________________________________
Do You Yahoo!?
Get email alerts & NEW webcam video instant messaging with Yahoo! Messenger
http://im.yahoo.com

---

From: Thomas Nadeau <[email-masked]>
Date: Wed, 12 Sep 2001 16:45:24 -0400

>same).

         This is not the case. The TunnelTotalUpTime
indicates the total time that the tunnel head or instance
(i.e.: LSP) has been active. Different tunnels can
(and probably have been) up for different amounts of
time.

>I suppose that is OK because the  MIB
>mplsTunnelEgressLSRId).

         I think that you are a bit confused about how
SNMP tables are indexed. The 4 indexes provide
a unique key to a specific (column, row) of the table,
thus the description for that is probably going to be
unique. I certainly wouldn't name every entry in the
table "te tunnel".

>The same question can be asked

         Again, you seem confused about how SNMP
indexing works. The tunnelSetupProtocol can be
different depending on the implementation. Some
tunnels can be set up using CR-LDP or others
RSVP-TE. Clearly, there is a need to uniquely
peg which is used for which tunnel/instance of
that tunnel.

>clearly identified the ones that do not follow the

         That may be a fair criticism. However, if
you have specific comments as to how we
could make it better, that might be more
constructive. This text has been updated/augmented
several times. I am not saying that what is there
is perfect, but for most, it has sufficed. If you
can suggest how to make it better, or what
specifically it is missing, this would help us
a great deal in improving it.

         --Tom

---

From: Eric Verhoen <[email-masked]>
Date: Wed, 12 Sep 2001 15:51:25 -0700 (PDT)

I think I misinterpreted the usage of the word
"instance" for the mplsTunnelTotalUpTime object.
So when it says "This value represents the aggregate
up time for all instances of this tunnel..." the
"instance" is not really the mplsTunnelInstance.
My mistake.

Based on your comments, am I correct in saying that
all the objects in the mplsTunnelTable can have unique
values for each tunnel (identified by the 4 indices).
This would include things like the description, name,
isIf, ifIndex, signallingProtocol etc.
The exception to this would be the following two
objects:
1. mplsTunnelPrimaryInstance
2. mplsTunnelPrimaryTimeUp 
these two objects will have the same value for all the
tunnel instances with the same set of (3) indices not
including the mplsTunnelInstance.
Please correct me if this is not an accurate
statement.

Now, to the next question:
What is a "primary" instance ?. It cannot possibly be
the tunnel instance with the highest
mplsTunnelInstancePriority because you can have
multiple tunnel instances with the same instance
priority (for load sharing).

-ev-

---

From: Thomas Nadeau <[email-masked]>
Date: Wed, 12 Sep 2001 20:09:59 -0400

>isIf, ifIndex, signallingProtocol etc.

         Yes.

>including the mplsTunnelInstance.

         Only for mplsTunnelPrimaryTimeUp.
The four indexes in combination will UNIQUELY
identify a particular tunnel instance. For example,
the tunnel table might look like:

         1,1,1,0
         1,1,1,1
         2,1,1,0
         2,1,1,4

         This would represent two tunnel heads (instance
of 0) and two signaled instances of the tunnels: for
tunnel 1, instance 1, and for tunnel 2, instance 4.
So, to answer your question about uptime, tunnel
1 would have two uptimes, one for each instance,
and the same would be true for tunnel 2. In both
cases, the upTime value *could* be different depending
on when each was signaled. The same is true for
tunnelPrimaryTimeUp. It depends on how long the primary
instance of the tunnel was up. In the example above,
lets say that instance 0 corresponds to the primary
instance of both tunnels. Then primaryTimeUp would
correspond to these tunnels' upTimes. The
value of that variable on the secondary (non-primary)
instances of the tunnels should also reflect this
same value, but I believe that support for this
value on instances is not mandatory.

         Hope this helps.

         --Tom

---

From: Eric Verhoen <[email-masked]>
Date: Wed, 12 Sep 2001 17:56:21 -0700 (PDT)

In your example you are talking about "tunnel heads"
with instance index = 0. Is this a documented special
value for instance index ?.
If you were talking about tunnel "head" in terms of
the value of the mplsTunnelRole object then all 4
tunnels would be tunnel heads correct ?

>priority (for load sharing).

I appreciate your responses.
-ev-

--- Thomas Nadeau <[email-masked]> wrote:
> > > >for all instances of a tunnel (meaning this
> value
> > > will
> > > >However, it is not very clear on reading the
> MIB
> > > table
> > > >does mplsTunnelDescr uniqely apply to all rows
> in
> > > the
> > >          I think that you are a bit confused
> about
> > > how
> > > thus the description for that is probably going
> to
> > > be
=== message truncated ===

---

From: Eric Verhoen <[email-masked]>
Date: Wed, 12 Sep 2001 17:56:08 -0700 (PDT)

---

From: Thomas Nadeau <[email-masked]>
Date: Wed, 12 Sep 2001 21:24:33 -0400

Sorry, missed the last question.

> >priority (for load sharing).

         The primary instance is whatever the
operator/implementation specifies it as. The
actual instance id is irrelevant in this regard.
It is the tunnel instance(s) that is/are being used
to actively forward traffic for that tunnel.
I used plural because there are some
implementations where parallel LSPs
can be created for the same tunnel head.

         --Tom

---

From: Thomas Nadeau <[email-masked]>
Date: Wed, 12 Sep 2001 21:22:14 -0400

>value for instance index ?.

         Nope. It is just a convention that one implementation
might use.

         Yes.

         --Tom