Subject: RE: Question on MIB info for LSP tunneling

From: "Fang Hao" <[email-masked]>
Date: Fri, 19 Jul 2002 14:44:42 -0400

Adrian,

Thanks for your reply. But I am still missing something -
the tunnel creation part is fine, but when I need to
access information about L2 (the LSP tunnel), I have a problem.
What I would need is: given LSP L1 (i.e., knowing its
mplsTunnelIndex), I need to find out which tunnel it is
going through, how much bandwidth is left on this tunnel L2,
what is the ingress/egress LSR id, etc.  For those info
I would probably need the mplsTunnelIndex for L2.

If I am not misunderstanding the MIBs, this mplsTunnelIndex
(of L2) does not appear in either interface table or
out segment table. - any comments?

Thanks,
Fang

-----Original Message-----
From: Adrian Farrel [mailto:[email-masked]]
Sent: Friday, July 19, 2002 2:22 PM
To: Fang Hao
Subject: Re: Question on MIB info for LSP tunneling

Fang,

A common approach top this is to install the tunnel as an interface so it
shows
in the interfaces MIB.  The interface would also show in the TE MIB for the
tunnel.

The tunneled LSP can then be routed down the tunnel (i.e. out of the virtual
interface).  This would show up in the LSR MIB out segment.

Cheers,
Adrian
----- Original Message -----
From: "Fang Hao" <[email-masked]>
To: <[email-masked]>
Sent: Friday, July 19, 2002 12:07 PM
Subject: Question on MIB info for LSP tunneling

> Hi-
>
> My question is the following:
> Suppose LSP L1 uses LSP L2 as a tunnel for some intermediate
> hop between LSR Ru and Rd, is the correlation between L1 and
> L2 stored somewhere in one of MIBs (MPLS-TE, MPLS-LSR, etc.)
> of Ru? In other words, if I know the mplsTunnelIndex of L1, can I
> somehow get to know the mplsTunnelIndex of L2?
>
> Could someone shed some light on this?  Thanks.
>
> Fang

---

From: "Adrian Farrel" <[email-masked]>
Date: Sun, 21 Jul 2002 11:38:08 -0400

Hi Fang,

L1 is tunneled through L2.

L2 is installed in the TE MIB with an ifindex using mplsTunnelIsIf and
mplsTunnelIfIndex.  This means that it can be found within the implementation as
an interface and available bandwidth can be examined just as though it was a
physical interface.

L1 shows in the LSR MIB with an outsegment that contains mplsOutSegmentIfIndex.
This is the outgoing interface for L1 and is not the physical interface - it is
the interface index of L2.

So, from L1 you can get to L2.

Adrian

---

From: "Fang Hao" <[email-masked]>
Date: Mon, 22 Jul 2002 10:30:42 -0400

Hi Adrian,

Here is what I am still missing -
From L1, I may get mplsOutSegmentIfIndex(L1), which is the interface index
of L2, as you suggested.  Let's call this index i2.  Now the problem
is how to get the L2 entry in mplsTunnelTable in TE MIB, by using i2.
Look up the interface table does not help since this table only contains
the LSP name of L2, but not the mplsTunnelIndex.  It seems to me that
unless we scan the entire mplsTunnelTable and compare each mplsTunnelIfIndex
with i2, there is no way to "directly" access the entry of L2 - this
is what I was trying to avoid.

I hope this is not true. Otherwise it seems to be an unfortunate
consequence of the current MIB structure.

Thanks,
Fang

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]On Behalf Of Adrian
Farrel
Sent: Sunday, July 21, 2002 11:38 AM
To: Fang Hao
Cc: [email-masked]'
Subject: Re: Question on MIB info for LSP tunneling

Hi Fang,

L2 is installed in the TE MIB with an ifindex using mplsTunnelIsIf and
mplsTunnelIfIndex.  This means that it can be found within the
implementation as
an interface and available bandwidth can be examined just as though it was a
physical interface.

L1 shows in the LSR MIB with an outsegment that contains
mplsOutSegmentIfIndex.
This is the outgoing interface for L1 and is not the physical interface - it
is
the interface index of L2.

Adrian

---

From: "Adrian Farrel" <[email-masked]>
Date: Mon, 22 Jul 2002 11:37:47 -0400

I agree.
It is an unfortunate consequence.

There are some things you can do.
For example, you can use ifName in the interface MIB with something that makes
keying into the TE MIB more simple.  (Note that ifAlias is provided to give a
secondary name that is printable and convenient).

Adrian

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Wed, 24 Jul 2002 13:24:06 -0400

>I would probably need the mplsTunnelIndex for L2.

         What you are asking is for a reverse mapping from
XCEntry->TunnelEntry. This is not available directly. What you
would have to do is traverse your tunnel heads (we recommend
that the tunnelInstance = 0 for these for ease of look up). Then
for this set check the tunnelXCpointer.

>out segment table. - any comments?

         The tunnel's ifIndex (if implemented as an interface) is
specified in the tunnelEntry. The tunnel's ifIndex can (and must) appear
in the ifEntry if the tunnel is implemented as a ifIndex.  TunnelEntries
were not indexed by ifIndex because some implementations did not want
to implement them that way, which would have made the indexing
useless for them.

         --Tom

> > Could someone shed some light on this?  Thanks.

------------------------------------------------------------------------
Mathematics is the supreme nostalgia of our time.

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Wed, 24 Jul 2002 13:53:17 -0400

>is what I was trying to avoid.

         I think that if you follow the convention that the heads use
tunnelInstance = 0, that you can prune your search down quite a bit.
If the tunnelTable is implemented correctly, your searches should be
fairly quick.

>consequence of the current MIB structure.

         Unfortunately, putting in a back pointer for every application
that uses the TFIB would have been quite complicated for
implementations.

         --Tom