Subject: TE Mib, tunnel interfaces, ifstack layering?

From: John Muston <[email-masked]>
Date: Tue, 24 Jul 2001 11:03:22 -0500

In section 7 of draft-ietf-mpls-te-mib-06.txt the interface
stack is shown as:

        +------------------------------------------------+
        | MPLS-Tunnel-interface ifType = mplsTunnel(150) |
        +------------------------------------------------+
        |        MPLS-interface ifType = mpls(166)       |
        +------------------------------------------------+
        |               Underlying Layer                 |
        +------------------------------------------------+

It is not clear to me how the particular lower layer of the tunnel
interface is chosen.

In the case of a tunnel interface created but not yet signalled, I
imagine it would be layered over nothing (ifindex 0).

Once signalled, would it be the mplsOutSegmentIfIndex of the
tunnel's underlying cross connect?

If so, I assume a rerouted tunnel, since it might have a different egress
interface, might need to be restacked onto a different interface.

Should a tunnel also be layered over the mplsInSegmentIfIndex (if
nonzero)?

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Tue, 24 Jul 2001 15:22:50 -0400

>In section 7 of draft-ietf-mpls-te-mib-06.txt the interface

         Sorry for the confusion. The text in the draft needs
a few sentences to clarify. Something like this:

         In the case where the tunnel interface is
present at the head-end of the tunnel, the
tunnel interface should be stacked upon the
outgoing MPLS interface.  In the case where
the tunnel interface is optionally represented
at the egress of the tunnel as well, it
should be stacked upon the incoming MPLS
interface. If the tunnel interface has been created,
but no LSP has been signaled for the tunnel,
the tunnel should not be stacked upon any underlying
interface. If the tunnel's underlying LSP is
changed, then the interface stacking should be
changed accordingly to the new MPLS interface
as described above.

         --Tom

---

From: John Muston <[email-masked]>
Date: Tue, 24 Jul 2001 17:29:16 -0500

> interface. If the tunnel interface has been created,

In the optional "egress of the tunnel" interface case where the
mplsInSegmentIfIndex is 0 because it is in the platform label space, I
assume the interface would have no lower layer.

> changed accordingly to the new MPLS interface

Speaking of LSP changes on a tunnel, is it correct that a tunnel
interface's ifTable and MplsTunnelPerfEntry statistics are expected to
continue to increase rather than reset to 0 after an LSP change?

Thanks.

-John

---

From: Joan Cucchiara <[email-masked]>
Date: Tue, 24 Jul 2001 19:30:33 -0400

> >In section 7 of draft-ietf-mpls-te-mib-06.txt the interface

Hi Tom,

Is it possible to have more than one Underlying Layer?
Should the above be changed to "Underlying Layer(s)"?

> interface. If the tunnel interface has been created,

Does this imply that in a cross-connect where 
mplsInSegment and mplsOutSegment have non-zero ifIndices
that the mpls tunnel's ifIndex will appear twice in the
stacking?  (so once on the ifStack representing
the interface layers for the inSegment stacking and 
once on the ifStack representing
the interface layers for the outSegment stacking?)

  thanks, Joan

---

From: abhay <[email-masked]>
Date: Wed, 25 Jul 2001 10:07:19 +0530

Tom,

    This new explanation would have helped me sometime ago,

    It did take a while for me to get  what you were saying then.

    Better late than never..8)

    Thanks

    Regards,

    Abhay

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Wed, 25 Jul 2001 09:19:03 -0400

>assume the interface would have no lower layer.

         Yes.

>continue to increase rather than reset to 0 after an LSP change?

         Yes. The reason being that the interface itself has not
been reset. This is similar to say an IP interface being moved
from eth0 to eth1 without being disabled first. Another
similar situation is if you did load balancing over two
interfaces eth0 and eth1, and one of them went away. The
IP interface would continue to roll upwards.

         --Tom

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Wed, 25 Jul 2001 09:25:07 -0400

>Should the above be changed to "Underlying Layer(s)"?

         Yes. You are correct. Nice catch. Since it is
possible to have more than one LSP servicing
the tunnel, there could be multiple underlying interfaces.

>the interface layers for the outSegment stacking?)

         No, I don't think so. The reason being that you
would be referring to a midpoint in that case, and
there are no tunnel interfaces at midpoints.
I think that you have one or the other if you only
consider the ingress/egress cases. I personally think that
you only have this at the head of the tunnel, and thus
a single outgoing XC and ifIndex to stack upon. However,
there are some who feel that we should include the
case at the egress.

         --Tom

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Wed, 25 Jul 2001 09:35:08 -0400

Hi,

>     Better late than never..8)

         Glad to have helped. In the future, please speak up if
something is unclear, since if it is unclear to you, there
are probably lots of others that it is unclear to as well. 8)

         --Tom

---

From: John Muston <[email-masked]>
Date: Wed, 25 Jul 2001 13:16:03 -0500

> the tunnel, there could be multiple underlying interfaces.

I thought that an mplsTunnelEntry refers to a single mplsXCTable row
(via the mplsTunnelXCPointer), which in turn describes a single LSP.
What am I missing?

If there were multiple LSPs under a tunnel, wouldn't that mean multiple
MPLS-iftype interfaces under an mplsTunnel-iftype interface, not
necessarily multiple layers below the MPLS-iftype interface?

Though I can see having multiple layers below the MPLS-iftype interface
in cases like TE Link Bundling though.

-John

---

From: "Thomas D. Nadeau" <[email-masked]>
Date: Wed, 25 Jul 2001 14:32:02 -0400

>(via the mplsTunnelXCPointer), which in turn describes a single LSP.

         Not necessarily. Remember that the XC pointer can refer to a
"group" of in/out segments. For example, if you were doing some
sort of load sharing with your LSP, so that multiple paths met
the constraints of the tunnel, it would be possible to share
these paths. These paths might run over different outgoing
interfaces (mpls) or physical (underlying layer), depending on
how the mpls interfaces are stacked upon what lies under them.
For example, the tunnel1 below uses 1 XC pointer, but this
XC index specifies 2 outgoing labels which run over two
different outgoing MPLS interfaces, which in-turn run
over two different ethernet interfaces:

         mplsTunnel1->mplsInterface1->enet3
                    ->mplsInterface2->enet4

You can also have a case where the tunnel1 uses 1 XC pointer,
its XC index specifies 2 outgoing labels which run over ONE
outgoing MPLS interface, which in-turn runs over
one ethernet interface:

         mplsTunnel1->mplsInterface1->enet3
                    ->mplsInterface2->enet3

         I think that in the majority of cases, however, the
stacking situation will be the intuitive, one-to-one
scenario:

         mplsTunnel1->mplsInterface1->enet

         Yes.

         --Tom

---

From: abhay <[email-masked]>
Date: Thu, 26 Jul 2001 10:04:51 +0530

Tom,

    Thanks for the assurance...

    Reminds me of after sales service....LOL,;)

    Regards,

    Abhay