<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4984 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4984.xml">
<!ENTITY RFC3031 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3031.xml">
<!ENTITY RFC4364 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4364.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc rfcedstyle="yes" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc number="7140" category="std" ipr="trust200902" submissionType="IETF"
  consensus="yes">

 <front>

  <title abbrev="LDP Extensions for HSMP LSP">LDP Extensions for Hub and Spoke Multipoint Label Switched Path</title>

  <author initials="L" surname="Jin" fullname="Lizhong Jin">
      <organization></organization>
      <address>
	<postal>
	<street></street>
        <region>Shanghai</region>
        <country>China</country>
	  </postal>
	<email>lizho.jin@gmail.com</email>
      </address>
    </author>

  <author initials="F" surname="Jounay" fullname="Frederic Jounay">
      <organization>Orange CH</organization>
      <address>
	<postal>
	<street>4 rue du Caudray</street>
        <region>1007 Lausanne</region>
        <country>Switzerland</country>
	  </postal>
	<email>frederic.jounay@orange.ch</email>
      </address>
    </author>

  <author initials="IJ" surname="Wijnands" fullname="IJsbrand Wijnands">
      <organization>Cisco Systems, Inc</organization>
      <address>
	<postal>
	<street>De kleetlaan 6a</street>
        <region>Diegem  1831</region>
        <country>Belgium</country>
	  </postal>
	<email>ice@cisco.com</email>
      </address>
    </author>

  <author initials="N" surname="Leymann" fullname="Nicolai Leymann">
      <organization>Deutsche Telekom AG</organization>
      <address>
	<postal>
	<street>Winterfeldtstrasse 21</street>
        <region>Berlin  10781</region>
        <country>Germany</country>
	  </postal>
	<email>N.Leymann@telekom.de</email>
      </address>
    </author>
	
    <date month="February" year="2014"/>
  
    <area>Internet</area>

<keyword>P2MP LSP, MP2MP LSP</keyword>

    <abstract>

     <t>This document introduces a hub and spoke multipoint (HSMP) Label
Switched Path (LSP), which allows traffic from root to leaf through
point-to-multipoint (P2MP) LSPs and also leaf to root along the reverse path.
That means traffic entering the HSMP LSP from the application/customer at the
root node travels downstream to each leaf node, exactly as if it were traveling downstream along a P2MP LSP to each leaf node.  Upstream traffic entering the HSMP LSP at any leaf node travels upstream along the tree to the root, as if it were unicast to the root. Direct communication among the leaf nodes is not allowed.
</t>
    </abstract>
</front>
    
  <middle>
    <section title="Introduction">
<t>The point-to-multipoint (P2MP) Label Switched Path (LSP) defined in <xref
target="RFC6388" /> allows traffic to transmit from root to several leaf nodes,
and multipoint-to-multipoint (MP2MP) LSP allows traffic from every node to
transmit to every other node.  This document introduces a hub and spoke
multipoint (HSMP) LSP, which has one root node and one or more leaf nodes. An HSMP
LSP allows traffic from root to leaf through downstream LSP and also leaf to
root along the upstream LSP. That means traffic entering the HSMP LSP at the
root node travels along the downstream LSP, exactly as if it were traveling
along a P2MP LSP, and traffic entering the HSMP LSP at any other leaf nodes
travels along the upstream LSP toward only the root node.  The upstream LSP
should be thought of as a unicast LSP to the root node, except that it follows
the reverse direction of the downstream LSP, rather than the unicast path based
on the routing protocol.  The combination of upstream LSPs initiated from all leaf nodes forms a multipoint-to-point LSP.

</t>

 </section>
 
<section title="Terminology">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document
are to be interpreted as described in <xref target="RFC2119"/>.</t>
<t>This document uses the following terms and acronyms:
<list style="empty">
      <t>mLDP: Multipoint extensions for Label Distribution Protocol (LDP) defined in <xref target="RFC6388" />.</t>
      <t>P2MP LSP: point-to-multipoint Label Switched Path. An LSP that has one Ingress Label Switching Router (LSR) and one or more Egress LSRs.</t>
      <t>MP2MP LSP: multipoint-to-multipoint Label Switched Path. An LSP that connects a set of nodes, such that traffic sent by any node in the LSP is delivered to all others.</t>
      <t>HSMP LSP:  hub and spoke multipoint Label Switched Path.  An LSP that
has one root node and one or more leaf nodes, allows traffic from the root to
all leaf nodes along the downstream P2MP LSP and also leaf to root node along the upstream unicast LSP.</t> 
	  <t>FEC: Forwarding Equivalence Class</t>
</list>
</t>
</section>

 
<section title="Setting Up HSMP LSP with LDP">

<t>An HSMP LSP is similar to MP2MP LSP described in <xref target="RFC6388" />, with the difference being that, when the leaf LSRs send traffic on the LSP, the traffic is first delivered only to the root node and follows the upstream path from the leaf node to the root node. The root node then distributes the traffic on the P2MP tree to all of the leaf nodes.</t> 
<t>An HSMP LSP consists of a downstream path and upstream path.  The downstream
path is the same as P2MP LSP, while the upstream path is only from leaf to root
node, without communication between the leaf nodes themselves.  The transmission of
packets from the root node of an HSMP LSP to the receivers (the leaf nodes) is
identical to that of a P2MP LSP. Traffic from a leaf node to the root follows
the upstream path that is the reverse of the path from the root to the
leaf. Unlike an MP2MP LSP, traffic from a leaf node does not branch toward
other leaf nodes, but it is sent direct to the root where it is placed on the P2MP path and distributed to all leaf nodes including the original sender.</t> 
<t>To set up the upstream path of an HSMP LSP, ordered mode MUST be used.
Ordered mode can guarantee that a leaf will start sending packets to the root immediately after the upstream path is installed, without being dropped due to an incomplete LSP.</t> 

 <section title="Support for HSMP LSP Setup with LDP">

<t>An HSMP LSP requires the LDP capabilities <xref target="RFC5561" /> for nodes to indicate that they support setup of HSMP LSPs.  An implementation supporting the HSMP LSP procedures specified in this document MUST implement the procedures for Capability Parameters in Initialization messages.  Advertisement of the HSMP LSP Capability indicates support of the procedures for HSMP LSP setup.
</t>
<t>A new Capability Parameter TLV is defined, the HSMP LSP Capability Parameter.  Below is the format of the HSMP LSP Capability Parameter.

<figure title="HSMP LSP Capability Parameter Encoding" anchor="format">
<artwork> 
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |U|F|   HSMP LSP Cap (0x0902)     |           Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |S|  Reserved   |
 +-+-+-+-+-+-+-+-+
 </artwork> 
</figure> 
</t>
    <t> 
<list style="hanging" hangIndent="8">
<t hangText="U-bit:">
        Unknown TLV bit, as described in <xref target="RFC5036" />.  The value MUST be 1. The unknown TLV MUST be silently ignored and the rest of the message processed as if the unknown TLV did not exist.</t>

<t hangText="F-bit:">
        Forward unknown TLV bit, as described in <xref target="RFC5036" />.  The value of this bit MUST be 0 since a Capability Parameter TLV is sent only in Initialization and Capability messages, which are not forwarded.</t>

<t hangText="Length:">
   SHOULD be 1.</t>

<t hangText="S-bit:"> 
  As defined in Section 3 of <xref target="RFC5561" />.</t>

<t hangText="Reserved:">
  As defined in Section 3 of <xref target="RFC5561" />.</t>

<t hangText="HSMP LSP Capability Parameter type:">
   0x0902.</t>
</list>
</t>
   <t>   If the peer has not advertised the corresponding capability, then
label messages using the HSMP Forwarding Equivalence Class (FEC) Element SHOULD
NOT be sent to the peer (as described in Section 2.1 of <xref target="RFC6388" />). Since ordered mode is applied for HSMP LSP signaling, the label message break would ensure that the initiating leaf node is unable to establish the upstream path to root node.
</t>
</section>

 <section title="HSMP FEC Elements">

<t>
   We define two new protocol entities: the HSMP
   Downstream FEC Element and Upstream FEC Element.
  If a FEC TLV contains one of
the HSMP FEC Elements, the HSMP FEC Element MUST be the only FEC Element in the
FEC TLV.  The structure, encoding, and error handling for the HSMP-downstream
FEC Element and HSMP-upstream FEC Element are the same as for the P2MP FEC Element
described in Section 2.2 of <xref target="RFC6388" />.  The difference is that two additional new FEC types are defined: HSMP-downstream FEC (10) and HSMP-upstream FEC (9).
</t>

</section>

 <section title="Using the HSMP FEC Elements" anchor="using_HSMP_FEC">

<t>
   The entries in the list below describe the processing of the HSMP FEC
   Elements. Additionally, the
entries defined in Section 3.3 of <xref target="RFC6388" /> are also reused in the
following sections.
<list style="numbers">

   <t>HSMP downstream LSP &lt;X, Y> (or simply downstream &lt;X, Y>): an HSMP LSP downstream path with root node address X and opaque value Y.</t>

   <t>HSMP upstream LSP &lt;X, Y> (or simply upstream &lt;X, Y>): an HSMP LSP upstream path for root node address X and opaque value Y that will be used by any downstream node to send traffic upstream to root node.
</t>
   
   <t>HSMP-downstream FEC Element &lt;X, Y>: a FEC Element with root node address X and opaque value Y used for a downstream HSMP LSP.
</t>

   <t>HSMP-upstream FEC Element &lt;X, Y>: a FEC Element with root node address X and opaque value Y used for an upstream HSMP LSP.
</t>
   
   <t>HSMP-D Label Mapping &lt;X, Y, L>: A Label Mapping message with a single HSMP-downstream FEC Element &lt;X, Y> and label TLV with label L. &nbsp;Label L MUST be allocated from the per-platform label space of the LSR sending the Label Mapping Message.
</t>
   
   <t>HSMP-U Label Mapping &lt;X, Y, Lu>: A Label Mapping message with a single HSMP upstream FEC Element &lt;X, Y> and label TLV with label Lu.  Label Lu MUST be allocated from the per-platform label space of the LSR sending the Label Mapping Message.</t>
   
   <t>HSMP-D Label Withdraw &lt;X, Y, L>: a Label Withdraw message with a FEC TLV with a single HSMP-downstream FEC Element &lt;X, Y> and label TLV with label L.</t>

   <t>HSMP-U Label Withdraw &lt;X, Y, Lu>: a Label Withdraw message with a FEC TLV with a single HSMP-upstream FEC Element &lt;X, Y> and label TLV with label Lu.</t>

   <t>HSMP-D Label Release &lt;X, Y, L>: a Label Release message with a FEC TLV with a single HSMP-downstream FEC Element &lt;X, Y> and Label TLV with label L.</t>

   <t>HSMP-U Label Release &lt;X, Y, Lu>: a Label Release message with a FEC TLV with a single HSMP-upstream FEC Element &lt;X, Y> and label TLV with label Lu.</t>
   
</list>
</t>
</section>

<section title="HSMP LSP Label Map" anchor="label_map">

<t>This section specifies the procedures for originating HSMP Label Mapping
messages and processing received HSMP Label Mapping messages for a particular
HSMP LSP.  The procedure of a downstream HSMP LSP is similar to that of a
downstream MP2MP LSP described in <xref target="RFC6388" />.  When LDP operates
in Ordered Label Distribution Control mode <xref target="RFC5036" />, the
upstream LSP will be set up by sending an HSMP LSP LDP Label Mapping message
with a label that is allocated by the upstream LSR to its downstream LSR
hop-by-hop from root to leaf node, installing the upstream forwarding table by
every node along the LSP.  The detailed procedure of setting up upstream HSMP
LSP is different than that of upstream MP2MP LSP, and it is specified in the
remainder of this section.</t>

<t>All labels discussed here are downstream-assigned <xref target="RFC5332"
/> except those that are assigned using the procedures described in <xref target="on_a_LAN"/>.</t>

<t>Determining the upstream LSR for the HSMP LSP &lt;X, Y> follows the
procedure for a P2MP LSP described in Section 2.4.1.1 of <xref target="RFC6388"
/>. That is, a node Z that wants to join an HSMP LSP &lt;X, Y> determines the
LDP peer U that is Z's next hop on the best path from Z to the root node X. &nbsp;If
there are multiple upstream LSRs, a local algorithm should be applied to ensure
that there is exactly one upstream LSR for a particular LSP.</t>

<t>To determine one's HSMP downstream LSR, an upstream LDP peer that receives a
Label Mapping with the HSMP-downstream FEC Element from an LDP peer D will treat D as HSMP downstream LDP peer.</t>

<section title="HSMP LSP Leaf Node Operation">
<t>The leaf node operation is much the same as the operation of MP2MP LSP
defined in Section 3.3.1.4 of <xref target="RFC6388" />.  The only difference is the FEC elements as specified below.</t>
<t>A leaf node Z of an HSMP LSP &lt;X, Y> determines its upstream LSR U for
&lt;X, Y> as per <xref target="using_HSMP_FEC"/>, allocates a label L, and sends an HSMP-D Label Mapping &lt;X, Y, L> to U. &nbsp;Leaf node Z expects an HSMP-U Label Mapping &lt;X, Y, Lu> from node U and checks whether it already has forwarding state for upstream &lt;X, Y>.  If not, Z creates forwarding state to push label Lu onto the traffic that Z wants to forward over the HSMP LSP.  How it determines what traffic to forward on this HSMP LSP is outside the scope of this document.</t>
</section>


<section title="HSMP LSP Transit Node Operation">
<t>
The procedure for processing an HSMP-D Label Mapping message is much
the same as that for an MP2MP-D Label Mapping message defined in
 Section 3.3.1.5 of <xref target="RFC6388" />. The processing of an HSMP-U Label Mapping message is
different from that of an MP2MP-U Label Mapping message as specified below.</t>
<t>Suppose node Z receives an HSMP-D Label Mapping &lt;X, Y, L> from LSR D.  Z
checks whether it has forwarding state for downstream &lt;X, Y>. If not, Z
determines its upstream LSR U for &lt;X, Y> as per <xref target="using_HSMP_FEC"/>.  Using
this Label Mapping to update the label forwarding table MUST NOT be done as
long as LSR D is equal to LSR U. &nbsp;If LSR U is different from LSR D, Z will
allocate a label L' and install downstream forwarding state to swap label L'
with label L over interface I associated with LSR D and send an HSMP-D Label
Mapping &lt;X, Y, L'> to U. &nbsp;Interface I is determined via the procedures in
<xref target="determining_FI"/>.</t>
<t>If Z already has forwarding state for downstream &lt;X, Y>, all that Z needs to do in this case is check that LSR D is not equal to the upstream LSR of &lt;X, Y> and update its forwarding state.  Assuming its old forwarding state was L'-> {&lt;I1, L1> &lt;I2, L2> ..., &lt;In, Ln>}, its new forwarding state becomes L'-> {&lt;I1, L1> &lt;I2, L2> ..., &lt;In, Ln>, &lt;I, L>}.  If the LSR D is equal to the installed upstream LSR, the Label Mapping from LSR D MUST be retained and MUST NOT update the label forwarding table.</t>

<t>Node Z checks if the upstream LSR U already has assigned a label Lu to upstream
&lt;X, Y>.  If not, transit node Z waits until it receives an HSMP-U Label
Mapping &lt;X, Y, Lu> from LSR U. &nbsp;Once the HSMP-U Label Mapping is received
from LSR U, node Z checks whether it already has forwarding state upstream
&lt;X, Y> with incoming label Lu' and outgoing label Lu. If it does not, it
allocates a label Lu' and creates a new label swap for Lu' with Label Lu over
interface Iu. Interface Iu is determined via the procedures in <xref
target="determining_FI"/>.  


Node Z determines the downstream HSMP LSR as per <xref target="label_map"/> and sends an HSMP-U Label Mapping &lt;X, Y, Lu'> to node D.</t>

<t>Since a packet from any downstream node is forwarded only to the upstream
node, the same label (representing the upstream path) SHOULD be distributed to
all downstream nodes.  This differs from the procedures for MP2MP LSPs <xref
target="RFC6388" />, where a distinct label must be distributed to each
downstream node.  The forwarding state upstream &lt;X, Y> on node Z will be
like this: {&lt;Lu'>, &lt;Iu Lu>}.  Iu means the upstream interface over which Z receives HSMP-U Label Map &lt;X, Y, Lu> from LSR U. &nbsp;Packets from any downstream interface over which Z sends HSMP-U Label Map &lt;X, Y, Lu'> with label Lu' will be forwarded to Iu with label Lu' swapped to Lu.</t>

</section>

<section title="HSMP LSP Root Node Operation">
<t>The procedure for an HSMP-D Label Mapping message is much the same as
processing an MP2MP-D Label Mapping message defined in Section 3.3.1.6 of <xref
target="RFC6388" />. The processing of an HSMP-U Label Mapping message is
different from that of an MP2MP-U Label Mapping message as specified below.</t>
<t>Suppose the root node Z receives an HSMP-D Label Mapping &lt;X, Y, L> from
node D. &nbsp;Z checks whether it already has forwarding state for downstream
&lt;X, Y>.  If not, Z creates downstream forwarding state and installs an
outgoing label L over interface I. &nbsp;Interface I is determined via the
procedures in <xref target="determining_FI"/>.  If Z already has forwarding
state for downstream &lt;X, Y>, then Z will add label L over interface I to the
existing state.</t>

<t>Node Z checks if it has forwarding state for upstream &lt;X, Y>.  If not, Z
creates a forwarding state for incoming label Lu' that indicates that Z is the
HSMP LSP egress Label Edge Router (LER).  For example, the forwarding state might specify that the label
stack is popped and the packet passed to some specific application.  Node Z
determines the downstream HSMP LSR as per <xref target="using_HSMP_FEC"/> and sends an HSMP-U Label Map &lt;X, Y, Lu'> to node D.</t>
<t>Since Z is the root of the tree, Z will not send an HSMP-D Label Map and will not receive an HSMP-U Label Mapping.</t>
<t>The root node could also be a leaf node, and it is able to determine what
traffic to forward on this HSMP LSP; that determination is outside the scope of this document.</t>

</section>

</section>

<section title="HSMP LSP Label Withdraw" anchor="label_withdraw">

<section title="HSMP Leaf Operation">
<t>If a leaf node Z discovers that it has no need to be an Egress LSR for that
LSP (by means outside the scope of this document), then it SHOULD send an
HSMP-D Label Withdraw &lt;X, Y, L> to its upstream LSR U for &lt;X, Y>, where L
is the label it had previously advertised to U for &lt;X, Y>.  Leaf node Z will also send an unsolicited HSMP-U Label Release &lt;X, Y, Lu> to U to indicate that the upstream path is no longer used and that label Lu can be removed.</t>

<t>Leaf node Z expects the upstream router U to respond by sending a downstream Label Release for L.</t>
</section>
<section title="HSMP Transit Node Operation">

<t>If a transit node Z receives an HSMP-D Label Withdraw message &lt;X,&nbsp;Y,&nbsp;L> from node D, it deletes label L from its forwarding state downstream &lt;X, Y>.  Node Z sends an HSMP-D Label Release message with label L to D. &nbsp;There is no need to send an HSMP-U Label Withdraw &lt;X, Y, Lu> to D because node D already removed Lu and sent a label release for Lu to Z.</t>
   
<t>If deleting L from Z's forwarding state for downstream &lt;X, Y> results in
no state remaining for &lt;X, Y>, then Z propagates the HSMP-D Label Withdraw
&lt;X, Y, L> to its upstream node U for &lt;X, Y>.  Z should also check if
there are any incoming interfaces in forwarding state upstream &lt;X, Y>.  If
all downstream nodes are released and there is no incoming interface, Z should
delete the forwarding state upstream &lt;X, Y> and send an HSMP-U Label Release message to its upstream node.  Otherwise, no HSMP-U Label Release message will be sent to the upstream node.</t>
</section>
<section title="HSMP Root Node Operation">

<t>When the root node of an HSMP LSP receives an HSMP-D Label Withdraw message
and an HSMP-U Label Release message, the procedure is the same as that for transit nodes, except that the root node will not propagate the Label Withdraw and Label Release upstream (as it has no upstream).</t>

</section>
</section>

<section title="HSMP LSP Upstream LSR Change">
<t>The procedure for changing the upstream LSR is the same as defined in
Section 2.4.3 of <xref target="RFC6388" />, only with different processing of
the FEC Element.</t>

<t>When the upstream LSR changes from U to U', node Z should set up the HSMP
LSP &lt;X, Y> to U' by applying the procedures in <xref target="label_map"/>. 

Z will also remove the HSMP LSP &lt;X, Y> to U by applying the procedure in
<xref target="label_withdraw"/>. </t>


<t>To set up an HSMP LSP to U' before/after removing the HSMP LSP to U is a
local matter. The recommended default behavior is to remove before adding.</t>
</section>

<section title="Determining Forwarding Interface" anchor="determining_FI">

<t>The upstream and downstream LSPs can be co-routed by applying the
procedures below. Both LSR U and LSR D would ensure that the same interface
sends traffic by applying some procedures. For a network with symmetric IGP
cost configuration, the following procedure MAY be used. To determine the
downstream interface, LSR U MUST do a lookup in the unicast routing table to
find the best interface and next hop to reach LSR D. &nbsp;If the next hop and
interface are also advertised by LSR D via the LDP session, it should be used
to transmit the packet to LSR D. &nbsp;The mechanism to determine the
upstream interface is the same as that used to determine the downstream
interface except the roles of LSR U and LSR D are switched. If symmetric IGP
cost could not be ensured, static route configuration on LSR U and D could also be a way to ensure a co-routed path.</t>

<t>If a co-routed path is not required for the HSMP LSP, the procedure defined in Section
2.4.1.2 of <xref target="RFC6388" /> could be applied. LSR U is free to
transmit the packet on any of the interfaces to LSR D. &nbsp;The algorithm it
uses to choose a particular interface is a local matter.   The mechanism to
determine the upstream interface is the same as that used to determine the downstream interface.</t>
</section>   
   
</section>

<section title="HSMP LSP on a LAN" anchor="on_a_LAN">

<t>The procedure to process the downstream HSMP LSP on a LAN is much the same
as for a downstream MP2MP LSP as described in Section 6.1.1 of <xref target="RFC6388" />. </t>

<t>When establishing the downstream path of an HSMP LSP, as defined in <xref
target="RFC6389" />, a Label Request message for an LSP label is sent to the
upstream LSR.  The upstream LSR should send a Label Mapping message that
contains the LSP label for the downstream HSMP FEC and the upstream LSR context
label defined in <xref target="RFC5331" />.  When the LSR forwards a packet
downstream on one of those LSPs, the packet's top label must be the
"upstream LSR context label" and the packet's second label is the "LSP label". The HSMP downstream path will be installed in the context-specific forwarding table corresponding to the upstream LSR label.  Packets sent by the upstream LSR can be forwarded downstream using this forwarding state based on a two-label lookup. </t>

<t>The upstream path of an HSMP LSP on a LAN is the same as the one on other
kinds of links. That is, the upstream LSR must send a Label Mapping message
that contains the LSP label for the upstream HSMP FEC to the downstream node.
Packets traveling upstream need to be forwarded in the direction of the root by
using the label allocated for the upstream HSMP FEC.</t>

</section>

<section title="Redundancy Considerations">

<t>In some scenarios, it is necessary to provide two root nodes for redundancy
purposes.  One way to implement this is to use two independent HSMP LSPs acting
as active and standby.  At a given time, only one HSMP LSP will be active;
the other will be standby.  After detecting the failure of the active HSMP LSP,
the root and leaf nodes will switch the traffic to the standby HSMP LSP, which
takes on the role as active HSMP LSP.  The details of the redundancy mechanism
are out of the scope of this document.</t>

</section>


<section title="Failure Detection of HSMP LSP">

<t>The idea of LSP ping for HSMP LSPs could be expressed as an intention to
test the LSP Ping Echo Request packets that enter at the root along a
particular downstream path of HSMP LSP and that end their MPLS path on the
leaf. The leaf node then sends the LSP Ping Echo Reply along the upstream path
of HSMP LSP, and it ends on the root that is the (intended) root node.</t>


<t>New sub-TLVs have been assigned by IANA in Target FEC Stack TLV and
Reverse-path Target FEC Stack TLV to define the corresponding HSMP-downstream
FEC type and HSMP-upstream FEC type.  In order to ensure that the leaf node
sends the LSP Ping Echo Reply along the HSMP upstream path, the R flag (Validate
Reverse Path) in the Global Flags field defined in <xref target="RFC6426" /> is
reused here.</t>

<t>The node-processing mechanism of LSP Ping Echo Request and Echo Reply for
the HSMP LSP is inherited from <xref target="RFC6425" /> and Section 3.4 of
<xref target="RFC6426" />, except for the following:
<list style="numbers">

<t>The root node sending the LSP Ping Echo Request message for the HSMP LSP
MUST attach the Target FEC Stack TLV with the HSMP-downstream FEC type, and set
the R flag to '1' in the Global Flags field.</t>

<t>When the leaf node receives the LSP Ping Echo Request, it MUST send the LSP
Ping Echo Reply to the associated HSMP upstream path. The Reverse-path Target
FEC Stack TLV attached by the leaf node in the Echo Reply message SHOULD
contain the sub-TLV of the associated HSMP-upstream FEC.</t>
</list>
</t>

</section>

<section title="Security Considerations">

<t>The same security considerations apply as for the MP2MP LSP described in <xref target="RFC6388" /> and <xref target="RFC6425" />.</t>
<t>Although this document introduces new FEC Elements and corresponding
procedures, the protocol does not bring any new security issues beyond those in <xref target="RFC6388" /> and <xref target="RFC6425" />.</t>
</section>
 
<section title="IANA Considerations">
<section title="New LDP FEC Element Types">

<t>Two new LDP FEC Element types have been allocated from the
"Label Distribution Protocol (LDP) Parameters" registry, under "Forwarding Equivalence Class (FEC) Type Name Space":

<list style="numbers">
<t>the HSMP-upstream FEC type - 9</t>

<t>the HSMP-downstream FEC type - 10</t>
</list>
</t>

<t>The values have been allocated from the "IETF Consensus" <xref target="RFC5226"/> range (0-127).
</t>
</section> 

<section title="HSMP LSP Capability TLV">

<t>One new code point has been allocated for the HSMP LSP
capability TLV from "Label Distribution Protocol (LDP) Parameters" registry, under "TLV Type Name Space":</t>

<t>HSMP LSP Capability Parameter - 0x0902</t>

<t>The value has been allocated from the"IETF Consensus" range (0x0901-0x3DFF).</t>
</section> 

<section title="New Sub-TLVs for the Target Stack TLV">
<t>Two new sub-TLV types have been allocated for inclusion within the LSP ping <xref target="RFC4379" /> Target FEC Stack TLV (TLV type 1),  Reverse-path Target FEC Stack TLV (TLV type 16), and Reply Path TLV (TLV type 21).
<list style="symbols">
<t>the HSMP-upstream LDP FEC Stack - 29</t>

<t>the HSMP-downstream LDP FEC Stack - 30</t>
</list>
</t>

<t>The value has been allocated from the "IETF Standards Action" range
  (0-16383) that is used for mandatory and optional sub-TLVs that
  requires a response if not understood.</t>
</section>

</section> 

<section title="Acknowledgements">
<t>The author would like to thank Eric Rosen, Sebastien Jobert, Fei Su, Edward,
Mach Chen, Thomas Morin, and Loa Andersson for their valuable comments.</t>
</section>
  
</middle>

  <back>

    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>
      <?rfc include='reference.RFC.5561'?>
      <?rfc include='reference.RFC.5332'?>
      <?rfc include='reference.RFC.5331'?>
      <?rfc include='reference.RFC.6388'?>
      <?rfc include='reference.RFC.6389'?>
      <?rfc include='reference.RFC.6425'?>
      <?rfc include='reference.RFC.6426'?>
      
</references>

   <references title="Informative References">
   	  <?rfc include='reference.RFC.4379'?>
   	  <?rfc include='reference.RFC.5036'?>
          <?rfc include='reference.RFC.5226'?>		  

          </references>

  </back>
</rfc>

