Network Working Group                                      F. Brockners
                                                            I. Wijnands
Internet Draft                                               A. Sajassi
Intended status: Standards Track                          Cisco Systems
Expires: August 22, 2008                              February 22, 2008


          Label Distribution Protocol Extensions for Half-Duplex
               Multipoint-to-Multipoint Label Switched Paths
               draft-brockners-ldp-half-duplex-mp2mp-02.txt


Status of this Memo

   By submitting this Internet-Draft, each author represents that
   any applicable patent or other IPR claims of which he or she is
   aware have been or will be disclosed, and any of which he or she
   becomes aware will be disclosed, in accordance with Section 6 of
   BCP 79.

   This document may only be posted in an Internet-Draft.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on August 22, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2008).










Brockners              Expires August 22, 2008                 [Page 1]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


Abstract

   This document describes a mechanism to construct Label Switched Paths
   (LSP) over MPLS using an extended version of the Label Distribution
   Protocol (LDP) between a set of clients and servers. This
   communication mechanism has the capability that servers can
   communicate with other servers and clients, whereas clients can only
   communicate with servers but not with other clients.

Conventions used in this document

   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 RFC-2119.

Table of Contents


   1. Introduction...................................................3
      1.1. Service Connectivity Categorization.......................3
      1.2. Problem Statement and Motivation..........................4
      1.3. Terminology (for reference only)..........................5
   2. Half duplex MP2MP (HD-MP2MP) Service with LDP..................6
      2.1. FEC elements for HD-MP2MP.................................7
      2.2. Using the HD-MP2MP FEC elements: Notation.................8
      2.3. HD-MP2MP Label Mapping...................................10
         2.3.1. Determining one's upstream MP2MP LSR................10
         2.3.2. Determining one's downstream MP2MP LSR..............10
         2.3.3. HD-MP2MP client leaf node operation.................10
         2.3.4. HD-MP2MP server leaf node operation.................11
         2.3.5. Transit node operation..............................12
            2.3.5.1. Transit node operation overview................12
            2.3.5.2. Client Downstream Label Map received...........13
            2.3.5.3. Server Downstream Label Map received...........14
         2.3.6. HD-MP2MP root node operation........................15
            2.3.6.1. Client Downstream Label Map received...........15
            2.3.6.2. Server Downstream Label Map received...........16
         2.3.7. HD-MP2MP Label Withdraw.............................17
            2.3.7.1. HD-MP2MP Client operation......................17
            2.3.7.2. HD-MP2MP Server operation......................17
            2.3.7.3. HD-MP2MP transit node operation................18
            2.3.7.4. HD-MP2MP root node operation...................18
            2.3.7.5. HD-MP2MP Upstream LSR Change...................18
   3. Security Considerations.......................................19
   4. IANA Considerations...........................................19
   5. References....................................................19
      5.1. Normative References.....................................19


Brockners              Expires August 22, 2008                 [Page 2]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


      5.2. Informative References...................................19
   Author's Addresses...............................................20
   Intellectual Property Statement..................................20
   Disclaimer of Validity...........................................21

1. Introduction

   The LDP protocol is described in [1].  It defines mechanisms for
   setting up point-to-point (P2P) and multipoint-to-point (MP2P) LSPs
   in the network. This document describes a mechanism to construct
   Half-Duplex Multipoint to Multipoint LSPs (HD-MP2MP LSPs) over an
   MPLS infrastructure using LDP.

1.1. Service Connectivity Categorization

   The following general types of connectivity using some transport
   vehicle (e.g. a LSP) are acknowledged within the industry (see e.g.
   [8]) between a set of User to Network (UNI) interfaces:

   o  Point to Point Connectivity: For Point-to-Point connectivity,
      exactly two UNIs are associated with one another. An ingress
      service frame mapped to the transport vehicle at one UNI shall not
      result in an egress service frame at a UNI other than the other
      UNI associated with the transport vehicle.

   o  Multipoint Connectivity: For Multipoint connectivity two or more
      UNIs are associated with one another. An ingress service frame
      mapped to the transport vehicle at one of the UNIs shall not
      result in an egress service frame at a UNI that is not associated
      with the transport vehicle. Multipoint connectivity can further be
      differentiated into multipoint to multipoint connectivity as well
      as rooted-multipoint connectivity.

       * Multipoint to Multipoint Connectivity: An ingress service frame
          at a given UNI would be replicated in the network and a single
          copy would be delivered to each of the other UNIs associated
          with the transport vehicle.

       * Rooted-Multipoint Connectivity: For rooted multipoint
          connectivity, one or more of the UNIs shall be designated as a
          servers and each of the other UNIs shall be designated as a
          clients. An ingress service frame mapped to the transport
          vehicle at a server UNI should be delivered to one or more of
          the other UNIs. An ingress service frame mapped to the
          transport vehicle at a client UNI shall not result in an
          egress service frame at another client UNI but can result in
          an egress service frame at some or all of the server UNIs.


Brockners              Expires August 22, 2008                 [Page 3]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   Using the LDP Protocol [1], one can establish point to point as well
   as multipoint connectivity using LSPs. For multipoint operation,
   multipoint to multipoint, point to multipoint as well as multipoint
   to point connectivity models are supported. While rooted-multipoint
   connectivity can be established by combining point to multipoint with
   multipoint to point LSPs, a more efficient mechanism to establish
   rooted-multipoint connectivity (which could be understood as a
   generalized version of point to multipoint connectivity) is
   desirable. Half-Duplex MDT with LDP can be leveraged to establish
   rooted multipoint connectivity.

1.2. Problem Statement and Motivation

   Some deployment scenarios, such as broadcast TV delivery over
   aggregation networks or broadcast/multicast wholesale require
   efficient mechanisms to transport multicast/broadcast type of data
   from a set of sources to many receivers over an MPLS network, while
   isolating the receivers from each other. Achieving such a
   connectivity model with a limited amount of configuration on the leaf
   nodes is seen as beneficial.

   The desired behavior is as follows:

   o  The set of users can be divided into two non-overlapping sets:
      Client nodes (or short "Clients") and server nodes (or short
      "Servers").

   o  Servers can communicate with each other and with the clients, i.e.
      Servers can send data to each other as well as to clients and can
      receive data from each other as well as from clients.

   o  Clients can only communicate with servers, i.e. Clients can send
      data to servers and can receive data from servers but cannot send
      data to other clients nor can receive data from other clients.

   o  All data is transported as broadcast: Any data sent by a server is
      received by all other servers and all clients. Any data sent by a
      client is received by all servers.

   o  The setup of the forwarding behavior between clients and servers
      should be automatic, i.e. should not require any configuration on
      network elements other than the client and server nodes.
      Provisioning a new client should not require any manual
      reconfiguration but on the client itself.

   As a result of this behavior, a local connectivity between clients is
   prevented and it is ensured that connectivity between clients can


Brockners              Expires August 22, 2008                 [Page 4]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   only be provided through server sites. This ensures that in a
   broadband aggregation deployment case, individual subscribers cannot
   directly connect with each other, bypassing functions implemented on
   the edge router such as accounting or admission control.

   One way to achieve the desired communication behavior with restricted
   connectivity between clients is to use a combination of LDP P2MP LSPs
   and LDP MP2P LSPs: One P2MP LSP per server (with the server forming
   the root of the P2MP LSP and the clients other servers forming the
   leaves) would be established for server to client (and other servers)
   communication. One MP2P LSP per server (forming the root of the MP2P
   tree) would be used to enable clients and other servers to
   communicate with the server forming the root. As a result, each
   client is connected to N P2MP LSPs and N MP2P LSPs, with N
   representing the number of servers.

   The major advantage of this approach is that no further protocol
   mechanisms beyond the ones already defined in [1] and [7] would be
   required.

   A property of this approach is that clients need to handle send and
   receive operations across multiple LSPs for the same service
   instance. Clients wishing to send traffic to the set of servers are
   required to send the data multiple times (once per server, or in
   other words once per MP2P LSP). Furthermore, the addition or removal
   of a server from the overall configuration would also require
   configuration changes on all connected servers and clients.

   HD-MP2MP LSP described here aim at reducing the configuration
   requirements on the leaf nodes, so that clients or servers can be
   added without a reconfiguration on other clients or servers and at
   simplifying traffic handling by using only a single LSP to send data
   to and a single LSP to receive data from.

1.3. Terminology (for reference only)

   The following terminology is taken from [4] and is repeated here to
   ease readability of the document.

   o  P2P LSP: An LSP that has one Ingress LSR and one Egress LSR.

   o  P2MP LSP: An LSP that has one Ingress LSR and one or more Egress
      LSRs.

   o  MP2P LSP: A LSP that has one or more Ingress LSRs and one unique

   o  Egress LSR.


Brockners              Expires August 22, 2008                 [Page 5]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   o  MP2MP LSP: A LSP that connects a set of leaf nodes, acting
      indifferently as ingress or egress.

   o  MP LSP: A multipoint LSP, either a P2MP or an MP2MP LSP.

   o  Ingress LSR: Source of the P2MP LSP, also referred to as root
      node.

   o  Egress LSR: One of potentially many destinations of an LSP, also
      referred to as leaf node in the case of P2MP and MP2MP LSPs.

   o  Transit LSR: An LSR that has one or more directly connected
      downstream LSRs.

   o  Bud LSR: An LSR that is an egress but also has one or more
      directly connected downstream LSRs.

   To ease readability of this document this section briefly lists the
   notation for the P2MP FEC element as they are described in [7].
   Please refer to [7] for a comprehensive description.

   o  P2MP FEC Element <X, Y>: a FEC Element with Root Node Address X
      and Opaque Value Y.

   o  P2MP Label Map <X, Y, L>: a Label Map message with a FEC TLV with
      a single P2MP FEC Element <X, Y> and Label TLV with label L.

   o  P2MP Label Withdraw <X, Y, L>: a Label Withdraw message with a FEC
      TLV with a single P2MP FEC Element <X, Y> and Label TLV with label
      L.

   o  P2MP LSP <X, Y> (or simply <X, Y>): a P2MP LSP with Root Node
      Address X and Opaque Value Y.

   o  The notation L' -> {<I1, L1> <I2, L2> ..., <In, Ln>} on LSR X
      means that on receiving a packet with label L', X makes n copies
      of the packet.  For copy i of the packet, X swaps L' with Li and
      sends it out over interface Ii.



2. Half duplex MP2MP (HD-MP2MP) Service with LDP

   An HD-MP2MP combines two LSPs. The LSPs used to construct a HD-MP2MP
   service are similar to a MP2MP LSP in that it consists of a single
   root node, zero or more transit nodes and one or more leaf LSRs
   acting equally as Ingress or Egress LSR. Leaf LSRs fulfill either the


Brockners              Expires August 22, 2008                 [Page 6]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   role of a client or a server. Correspondingly they are called "Client
   LSR" and "Server LSR".

   For HD-MP2MP operation, two trees will be combined: A "Client Tree"
   which allows communication from all Clients to all Servers and a
   "Server Tree" allows communication from all servers to all clients
   and all servers.

   A leaf node participates in the setup of a HD-MP2MP LSP by
   establishing both a downstream LSP, which is much like a P2MP LSP
   from the root, and an upstream LSP which is used to send traffic
   toward the root and other leaf nodes. Depending on the type of the
   leaf (Client or Server), traffic sent by a leaf will either be
   forwarded to all leafs (which means clients and servers - this is in
   case of a leaf being a server), or only to servers (in case of a leaf
   being a client).

   Transit nodes support the setup by propagating the upstream and
   downstream LSP setup toward the root and installing the necessary
   MPLS forwarding state.

   Traffic from a client leaf node follows the upstream LSP towards the
   root node and branches downward along the downstream LSP as required
   to reach other server nodes (but no other client nodes). Similarly,
   traffic from a server leaf node follows the upstream LSP toward the
   root node and branches downward along the downstream LSP as required
   to reach client nodes and server nodes.

   Mapping traffic to the HD-MP2MP LSP may happen at any leaf node (the
   root may be a leaf node as well).  How that mapping is established is
   outside the scope of this document.

   Due to how a HD-MP2MP LSP is built a leaf LSR that is sending packets
   on the HD-MP2MP LSP does not receive its own packets.  There is also
   no additional mechanism needed on the root or transit LSR to match
   upstream traffic to the downstream forwarding state.

   For the setup of a HD-MP2MP LSP with LDP we expand the definition of
   downstream FEC elements (as defined in [7]) to differentiate leaf
   notes into servers and clients. Both elements will be used in the FEC
   TLV.  The descriptions of the HD-MP2MP FEC elements follow.

2.1. FEC elements for HD-MP2MP

   HD-MP2MP leverages the structure, encoding and error handling of the
   P2MP FEC elements as described in [7]. This means that the P2MP FEC
   element, which consists of the address of the root of the P2MP LSP


Brockners              Expires August 22, 2008                 [Page 7]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   and an opaque value are being used as defined in [7]. The opaque
   value is unique within the context of the root node and can for
   example be interpreted as a service instance identifier. The
   combination of (Root Node Address, Opaque Value) uniquely identifies
   a P2MP LSP within the MPLS network.

   Four new FEC types are introduced for HD-MP2MP operation:

   o  C-FEC-UP: HD-MP2MP Client Upstream Type (TBD)

   o  C-FEC-DOWN: HD-MP2MP Client Downstream Type (TBD)

   o  S-FEC-UP: HD-MP2MP Server Upstream Type (TBD)

   o  S-FEC-DOWN: HD-MP2MP Server Downstream Type (TBD)

   If a FEC TLV contains one of the HD-MP2MP FEC elements, the HD-MP2MP
   FEC Element MUST be the only FEC Element in the FEC TLV.

2.2. Using the HD-MP2MP FEC elements: Notation

   The following notation is used in the processing rules:

   1. HD-MP2MP client downstream LSP <X, I> (or simply client downstream
      <X, I>): a MP LSP downstream path with root node address X and
      opaque value I.

   2. HD-MP2MP server downstream LSP <X, I> (or simply server downstream
      <X, I>): a MP LSP downstream path with root node address X and
      opaque value I.

   3. HD-MP2MP client upstream LSP <X, I, D> (or simply client upstream
      <X, I, D>): a MP LSP upstream path for downstream node D with root
      node address X and opaque value I.

   4. HD-MP2MP server upstream LSP <X, I, D> (or simply server upstream
      <X, I, D>): a MP LSP upstream path for downstream node D with root
      node address X and opaque value I.

   5. HD-MP2MP Client Downstream FEC element <X, I>: a FEC element with
      root node address X and opaque value I used for a client type
      downstream HD-MP2MP LSP.

   6. HD-MP2MP Server Downstream FEC element <X, I>: a FEC element with
      root node address X and opaque value I used for a server type
      downstream HD-MP2MP LSP.



Brockners              Expires August 22, 2008                 [Page 8]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   7. HD-MP2MP Client Upstream FEC element <X, I>: a FEC element with
      root node address X and opaque value I used for a client type
      downstream HD-MP2MP LSP.

   8. HD-MP2MP Server Upstream FEC element <X, I>: a FEC element with
      root node address X and opaque value I used for a server type
      downstream HD-MP2MP LSP.

   9. HD-MP2MP Client Downstream Label Map <X, I, L>: A Label Map
      message with a FEC TLV with a single HD-MP2MP Client Downstream
      FEC element <X, I> and label TLV with label L.

   10.HD-MP2MP Server Downstream Label Map <X, I, L>: A Label Map
      message with a FEC TLV with a single HD-MP2MP Server Downstream
      FEC element <X, I> and label TLV with label L.

   11.HD-MP2MP Client Upstream Label Map <X, I, Lu>: A Label Map message
      with a FEC TLV with a single HD-MP2MP Client Upstream FEC element
      <X, I> and label TLV with label L.

   12.HD-MP2MP Server Upstream Label Map <X, I, Lu>: A Label Map message
      with a FEC TLV with a single HD-MP2MP Server Upstream FEC element
      <X, I> and label TLV with label Lu.

   13.HD-MP2MP Client Downstream Label Withdraw <X, I, L>: A Label
      Withdraw message with a FEC TLV with a single HD-MP2MP Client
      Downstream FEC element <X, I> and label TLV with label L.

   14.HD-MP2MP Server Downstream Label Withdraw <X, I, L>: A Label
      Withdraw message with a FEC TLV with a single HD-MP2MP Server
      Downstream FEC element <X, I> and label TLV with label L.

   15.HD-MP2MP Client Upstream Label Withdraw <X, I, Lu>: A Label
      Withdraw message with a FEC TLV with a single HD-MP2MP Client
      Upstream FEC element <X, I> and label TLV with label L.

   16.HD-MP2MP Server Upstream Label Withdraw <X, I, Lu>: A Label
      Withdraw message with a FEC TLV with a single HD-MP2MP Server
      Upstream FEC element <X, I> and label TLV with label Lu.

   The procedures below are organized by the role which the node plays
   in the HD-MP2MP LSP: Leaf nodes, transit nodes and server node.

   A leaf node is identified by a discovery process which is outside the
   scope of this document.  During the course of the protocol operation,
   the root node recognizes its role because it owns the root node
   address.  A transit node is any node (other then the root node) that


Brockners              Expires August 22, 2008                 [Page 9]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   receives a HD-MP2MP Label Map message (i.e., one that has leaf nodes
   downstream of it).

   Note that a transit node (as well as the root node) may also be a
   leaf node.

2.3. HD-MP2MP Label Mapping

   The following lists procedures for generating and processing HD-MP2MP
   Label Map messages for nodes that participate in a HD-MP2MP LSP.
   Based on its role in the HD-MP2MP LSP a LSR should apply the
   procedures associated to its role.

   Optimization procedures for multiple receivers on a LAN are not
   considered in this document. This is a subject for further study, see
   [5].

   The following notation is used in the descriptions below:


                         U
                         |
                         |
                         Z (transit node)
                         |
                         |
                         D (e.g. leaf)


2.3.1. Determining one's upstream MP2MP LSR

   Determining the upstream LDP peer U for a HD-MP2MP LSP <X, I> follows
   the procedure for a P2MP LSP described in [7].

2.3.2. Determining one's downstream MP2MP LSR

   A LDP peer U which receives a HD-MP2MP Label Map downstream from a
   LDP peer D will treat D as downstream MP2MP LSR.

2.3.3. HD-MP2MP client leaf node operation

   Generally speaking, a client LSR joins the server tree for receive
   operations and the client tree for send operations.

   A client leaf node D determines its upstream LSR Z for server
   downstream <X, I> as per the procedures described in [7], allocates a
   label L, and sends a server downstream label map <X, I, L> to Z.


Brockners              Expires August 22, 2008                [Page 10]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   Traffic received with Label L represents traffic which another server
   had sent.

   Leaf node D expects a client upstream label map <X, I, Lz> from node
   Z in response to the HD-MP2MP server label map downstream it sent to
   node Z. This will allow the client to send data to servers.

   In case D does not already have forwarding state for client upstream
   <X, I>, D creates forwarding state to push label Lz onto the traffic
   that D wants to forward to servers.  How it determines what traffic
   to forward on this HD-MP2MP LSP is outside the scope of this
   document.

   In summary, a client uses

   o  Client upstream <X, I> and label Lz to send data to servers

   o  Server downstream <X, I> and label L to receive data from servers

2.3.4. HD-MP2MP server leaf node operation

   Generally speaking, a server LSR joins the client tree for receive
   operations and the server tree for send operations. Transit LSR and
   the root LSR will perform appropriate label mappings to ensure that
   traffic sourced by server LSR is received via the client tree.

   A server leaf node D determines its upstream LSR Z for client
   downstream <X, I> as per the procedures described in [7], allocates a
   label L, and sends a client downstream label map <X, I, L> to Z.
   Traffic received with Label L represents traffic which another server
   or client had sent.

   Leaf node D expects a server upstream label map <X, I, Lz> from node
   Z in response to the HD-MP2MP client label map downstream it sent to
   node Z. This will allow the server to send data to servers and
   clients.

   In case D does not already have forwarding state for server upstream
   <X, I>, D creates forwarding state to push label Lz onto the traffic
   that D wants to forward to servers and clients.  How it determines
   what traffic to forward on this HD-MP2MP LSP is outside the scope of
   this document.

   In summary, a server uses

   o  Server upstream <X, I> and label Lz to send data to servers and
      clients.


Brockners              Expires August 22, 2008                [Page 11]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   o  Client downstream <X, I> and label L to receive data from servers
      and clients.

2.3.5. Transit node operation

2.3.5.1. Transit node operation overview

   This section provides a high-level overview of the operation of a
   transit node.

   Label Map signaling:

   o  On receipt of a "client downstream" label map, transit nodes
      respond with a "server upstream" label map. This is commonly the
      case if a server joins the HD-MDT. If the transit node does not
      have forwarding state towards the root for the corresponding HD-
      MDT, it will also send a "client downstream" label map towards the
      root.

   o  On receipt of a "server downstream" label map, transit nodes
      respond with a "client upstream" label map. This is commonly the
      case if a client joins the HD-MDT. If the transit node does not
      have forwarding state for towards the root for the corresponding
      HD-MDT, it will also send a "server downstream" label map towards
      the root.

   Forwarding state establishment:

   o  Transit nodes update their forwarding state according to the
      client downstream / server downstream label map messages.

   o  In order to ensure that servers receive traffic from clients (i.e.
      ensure that traffic from clients is sent down the tree towards
      servers while omitting the interface the traffic is received on),
      transit nodes copy forwarding state from client downstream to
      client upstream state tables - except for the interfaces these
      state tables are associated with.

   o  In order to ensure that clients receive traffic from servers (i.e.
      ensure that traffic from servers is sent down the tree towards
      clients while omitting the interface the traffic is received on),
      transit nodes copy forwarding state from server downstream to
      server upstream state tables - except for the interfaces these
      state tables are associated with.





Brockners              Expires August 22, 2008                [Page 12]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   o  In order to ensure that servers receive traffic from servers (i.e.
      ensure that traffic from servers is sent down the tree towards
      servers while omitting the interface the traffic is received on),
      transit nodes copy forwarding state from client downstream to
      server upstream state tables - except for the interfaces these
      state tables are associated with.

2.3.5.2. Client Downstream Label Map received

   Transit nodes receive a client downstream label map as the result of
   a server joining the HD-MDT.

   When node Z receives a HD-MP2MP client downstream label map <X, I, L>
   over interface Q from node D it checks whether it has forwarding
   state for client downstream <X, I>. If not, Z allocates a label L'
   and installs downstream forwarding state to swap label L' with label
   L over interface Q towards node D. Z also determines its upstream LSR
   U for <X, I> as per [7] and sends a client label map downstream <X,
   I, L') upstream to U.

   If Z already has forwarding state for client downstream <X, I>, Z
   needs to update its forwarding state. Assuming its old forwarding
   state was L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>}, its new forwarding
   state becomes L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>, <Q, L>}.
   Node Z checks whether it has forwarding state(s) for client upstream
   <X, I, D(i)>. If so node Z will update the forwarding state(s) for
   client upstream <X, I, D(i)> to include the forwarding state from
   client downstream <X, I> omitting the swap on the interfaces
   associated with node D(i). This allows client upstream traffic to
   follow the client downstream tree to other servers while omitting the
   case that traffic is sent out on the same interface it was received
   from.

   Node Z checks whether it already has forwarding state server upstream
   <X, I , D> over interface Q. If it does, no further action needs to
   happen. Otherwise, Z allocates a label Lz and creates a new label
   swap for Lz from the label swap(s) from the forwarding state for
   server downstream <X, I>, omitting the swap on interface Q for node
   D. This allows server upstream traffic to follow the server
   downstream tree down to other node(s) except the node from which Z
   received the client downstream label map <X, I, L>.
   In addition Z will update the forwarding state(s) for server upstream
   <X, I, D(i)> to include the forwarding state from client downstream
   <X, I> omitting label swaps on interfaces Q(i) for nodes D(i), i.e.
   omitting receive and forwarding label swaps referring to the same
   interface. This is to avoid traffic being sent out the same interface
   it was received from. This allows server upstream traffic to follow


Brockners              Expires August 22, 2008                [Page 13]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   the client downstream tree to other servers.
   Z sends a server upstream label map <X, I, Lz) over Interface Q to
   node D.

   Transit node Z will also receive a server upstream label map <X, I,
   Lu) in response to the client downstream label map <X, I, L') sent
   upstream to node U over interface Qu. Node Z will add a label swap Lu
   over interface Qu to the forwarding state for server upstream <X, I,
   D>. This allows packets to go up the server tree towards the root
   node.

2.3.5.3. Server Downstream Label Map received

   Transit nodes receive a server downstream label map as the result of
   a client joining the HD-MDT.

   When node Z receives a HD-MP2MP server downstream label map <X, I, L>
   over Interface Q from node D it checks whether it has forwarding
   state for server downstream <X, I>. If not, Z allocates a label L'
   and installs downstream forwarding state to swap label L' with label
   L over interface Q. Z also determines its upstream LSR U for <X, I>
   as per [7] and sends a server label map downstream <X, I, L')
   upstream to U.

   If Z already has forwarding state for server downstream <X, I>, all
   that Z needs to do is to update its forwarding state. Assuming its
   old forwarding state was L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>}, its
   new forwarding state becomes L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>,
   <Q, L>}.

   Node Z checks whether it already has forwarding state for client
   upstream <X, I, D> over interface Q. If it does, no further action
   needs to happen. Otherwise, Z allocates a label Lz and creates a new
   label swap for Lz from the label swap(s) from the forwarding state
   for client downstream <X, I>, omitting the swap on interface Q for
   node D. This allows client upstream traffic to follow the client
   downstream tree down to other node(s) (i.e. servers) except to the
   node from which Z received the server downstream label map <X, I, L>.
   In addition, Z sends a client upstream label map <X, I, Lz) over
   Interface Q to node D.

   Node Z checks whether it has forwarding state for server upstream <X,
   I, D(i)>. If so node Z will update the forwarding state(s) for server
   upstream <X, I, D(i)> to include the newly added forwarding state for
   server downstream, i.e. to include <Q, L>, omitting the swap on
   interface Q for node D. This allows server upstream traffic to follow
   the server downstream tree down to other node(s) (i.e. clients).


Brockners              Expires August 22, 2008                [Page 14]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   Transit node Z will also receive a client upstream label map <X, I,
   Lu) in response to the server downstream label map <X, I, L') sent
   upstream to node U over interface Qu. Node Z will add a label swap Lu
   over interface Qu to the forwarding state client upstream <X, I, D>.
   This allows packets to go up towards the root node.

2.3.6. HD-MP2MP root node operation

2.3.6.1. Client Downstream Label Map received

   Operation of a root node is similar to the operation of a transit
   node with the main difference that by definition the root node does
   not have an upstream neighbor. As such there is no need for the root
   to send any (client or server) downstream label map.

   When root R receives a HD-MP2MP client downstream label map <X, I, L>
   over interface Q from node D it checks whether it has forwarding
   state for client downstream <X, I>. If not, R creates downstream
   forwarding state and installs an outgoing label L over interface Q.
   If R already has forwarding state for client downstream <X, I>, R
   needs to update its forwarding state. Assuming its old forwarding
   state was L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>}, its new forwarding
   state becomes L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>, <Q, L>}.


   Root node R checks whether it has forwarding state for client
   upstream <X, I, D(i)>. If so root node R will update the forwarding
   state for client upstream <X, I, D(i)> to include the forwarding
   state from client downstream <X, I> omitting the swap on the
   interfaces associated with node D(i). This allows client upstream
   traffic to follow the client downstream tree to other servers while
   omitting the case that traffic is sent out on the same interface it
   was received on.Root node R checks whether it already has forwarding
   state server upstream <X, I , D> over interface Q. If it does, no
   further action needs to happen. Otherwise, R allocates a label Lr and
   creates a new label swap for Lr from the label swap(s) from the
   forwarding state for server downstream <X, I>, omitting the swap on
   interface Q for node D. This allows server upstream traffic to follow
   the server downstream tree down to other node(s) except the node from
   which Z received the client downstream label map <X, I, L>. In
   addition Z will update the forwarding state(s) for server upstream
   <X, I, D(i)> to include the forwarding state from client downstream
   <X, I> omitting label swaps on interfaces Q(i) for nodes D(i), i.e.
   labels swaps referring to the same interface. This is to avoid
   traffic being sent out the same interface it was received from. This
   allows server upstream traffic to follow the client downstream tree



Brockners              Expires August 22, 2008                [Page 15]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   to other servers.


   Root node R determines the downstream LSR D as per the procedures
   described in [7], and sends a server upstream label map <X, I, Lu) to
   node D.

   Since R is the root node, there is no need to send any client
   downstream label map.

2.3.6.2. Server Downstream Label Map received

   When root node R receives a server downstream label map <X, I, L>
   over Interface Q from node D it checks whether it has forwarding
   state for server downstream <X, I>. If not, R creates server
   downstream forwarding state and installs an outgoing label L over
   interface Q. If R already has forwarding state for server downstream
   <X, I>, the R will add label L over interface Q to the existing
   state.

   Node R checks if it has forwarding state for server upstream <X, I,
   D>. If not, R allocates a label Lu and creates forwarding state to
   swap Lu with the label swap(s) from the forwarding state downstream
   (X, I), except the swap for node D. This allows server upstream
   traffic to go down the server tree to other node(s), except the node
   it was received from.

   When root node R receives a server downstream label map <X, I, L>
   over Interface Q from node D it checks whether it has forwarding
   state for server downstream <X, I>. If not, R creates server
   downstream forwarding state and installs an outgoing label L over
   interface Q.

   If R already has forwarding state for server downstream <X, I>, R
   updates its forwarding state. Assuming its old forwarding state was
   L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>}, its new forwarding state
   becomes L'-> {<Q1, L1> <Q2, L2> ..., <Qn, Ln>, <Q, L>}.

   Node R checks whether it already has forwarding state for client
   upstream <X, I, D> over interface Q. If it does, no further action
   needs to happen. Otherwise, R allocates a label Lr and creates a new
   label swap for Lr from the label swap(s) from the forwarding state
   for client downstream <X, I>, omitting the swap on interface Q for
   node D. This allows client upstream traffic to follow the client
   downstream tree down to other node(s) (i.e. servers) except to the
   node from which R received the server downstream label map <X, I, L>.



Brockners              Expires August 22, 2008                [Page 16]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   Root node R checks whether it has forwarding state for server
   upstream <X, I, D>. If so node R will update the forwarding state(s)
   for server upstream <X, I, D(i)> to include the newly added
   forwarding state for server downstream, i.e. to include <Q, L>,
   omitting the swap on interface Q for node D. This allows server
   upstream traffic to follow the server downstream tree down to other
   node(s) (i.e. clients).

   Root node R determines the downstream LSR D as per the procedures
   described in [7], and sends a client upstream label map <X, I, Lu) to
   node D.

2.3.7. HD-MP2MP Label Withdraw

   The following lists procedures for generating and processing HD-MP2MP
   Label Withdraw messages for nodes that participate in a HD-MP2MP LSP.
   These procedures are similar to those for MP2MP described in [7].

   An LSR should apply those procedures that apply to it, based on its
   role in the HD-MP2MP LSP.

2.3.7.1. HD-MP2MP Client operation

   Client label withdraw procedures are similar to those for leaf nodes
   in MP2MP operation, described in [7].

   If a client node Z discovers (by means outside the scope of this
   document) that it is no longer a client, it SHOULD send a server
   downstream label withdraw <X, I, L> to its upstream LSR U for <X, I>,
   where L is the label it had previously advertised to U for <X, I>.

   Client node Z expects the upstream router U to respond by sending a
   downstream label release for L and a client upstream label withdraw
   <X, I, Lu> to remove Lu from the upstream state. Node Z will remove
   label Lu from its upstream state and send a label release message
   with label Lu to U.

2.3.7.2. HD-MP2MP Server operation

   If a server node Z discovers that it is no longer a server it SHOULD
   send a client downstream label withdraw <X, I, L> to its upstream LSR
   U for <X, I>, where L is the label it had previously advertised to U
   for <X, I>.

   Server node Z expects the upstream router U to respond by sending a
   downstream label release for L and a server upstream label withdraw
   <X, I, Lu> to remove Lu from the upstream state. Node Z will remove


Brockners              Expires August 22, 2008                [Page 17]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   label Lu from its upstream state and send a label release message
   with label Lu to U.

2.3.7.3. HD-MP2MP transit node operation

   Leaf label withdraw procedures are similar to those for MP2MP
   operation, described in [7].

   If a transit node Z receives a server downstream label withdraw
   message <X, I, L> from node D, it deletes label L from its forwarding
   state for server downstream <X, I> and from all its upstream states
   for <X, I>. Node Z sends a label release message with label L to D.
   Since D is no longer part of the server downstream forwarding state,
   Z cleans up the forwarding state upstream <X, I, D> and sends a
   client upstream label withdraw for <X, I, Lu) to node D.

   If deleting L from node Z's forwarding state for server downstream
   <X, I> results in no state remaining for <X, I> then Z propagates the
   server downstream label withdraw <X, I, L> to its upstream node U for
   <X, I>.

   Similarly, if a transit node Z receives a client downstream label
   withdraw message <X, I, L> from node D, it deletes label L from its
   forwarding state for client downstream <X, I> and from all its
   upstream states for <X, I>. Node Z sends a label release message with
   label L to D. Since D is no longer part of the client downstream
   forwarding state, Z cleans up the forwarding state upstream <X, I, D>
   and sends a server upstream label withdraw for <X, I, Lu) to node D.

   If deleting L from node Z's forwarding state for client downstream
   <X, I> results in no state remaining for <X, I> then Z propagates the
   client downstream label withdraw <X, I, L> to its upstream node U for
   <X, I>.

2.3.7.4. HD-MP2MP root node operation

   The procedure when the root node of a MP2MP LSP receives a label
   withdraw message is the same as for transit nodes, except that the
   root node would not propagate the Label Withdraw upstream (as it has
   no upstream).

2.3.7.5. HD-MP2MP Upstream LSR Change

   The procedure for changing the upstream LSR is the same as documented
   in [7], except it is applied to HD-MP2MP FECs using the procedures
   described in the earlier sections of this document.



Brockners              Expires August 22, 2008                [Page 18]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


3. Security Considerations

   The same security considerations apply as for the base LDP
   specification, as described in [1].

4. IANA Considerations

   This document leverages the new name space (the LDP MP Opaque Value
   Element type) introduced in [7] that is to be managed by IANA.

5. References

5.1. Normative References

   [1]   Andersson, L., Doolan, P., Feldman, N., Fredette, A., and B.
         Thomas, "LDP Specification", RFC 3036, January 2001.

   [2]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [3]   Reynolds, J. and J. Postel, "Assigned Numbers", RFC 1700,
         October 1994.

   [4]   Roux, J., "Requirements for Point-To-Multipoint Extensions to
         the Label Distribution Protocol ", draft-ietf-mpls-mp-ldp-reqs-
         03 (work in progress), November 2007.

   [5]   Aggarwal, R., "MPLS Upstream Label Assignment and Context
         Specific Label Space", draft-ietf-mpls-upstream-label-03 (work
         in progress), November 2007.

   [6]   Aggarwal, R. and J. Roux, "MPLS Upstream Label Assignment for
         RSVP-TE", draft-ietf-mpls-rsvp-upstream-02 (work in progress),
         November 2007.

   [7]   Minei, I., "Label Distribution Protocol Extensions for Point-
         to-Multipoint and Multipoint-to-Multipoint Label Switched
         Paths", draft-ietf-mpls-ldp-p2mp-03 (work in progress), July
         2007.

   [8]   Metro Ethernet Forum, Technical Specification MEF 10.1,
         "Ethernet Services Attributes Phase 2", November 2006.

5.2. Informative References

   [9]   Andersson, L. and E. Rosen, "Framework for Layer 2 Virtual
         Private Networks (L2VPNs)", RFC 4664, September 2006.


Brockners              Expires August 22, 2008                [Page 19]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   [10]  Aggarwal, R., "Extensions to RSVP-TE for Point to Multipoint TE
         LSPs", RFC 4875, May 2007.

   [11]  Rosen, E. and R. Aggarwal, "Multicast in MPLS/BGP IP VPNs",
         draft-ietf-l3vpn-2547bis-mcast-06 (work in progress), January
         2008.



Author's Addresses

   Frank Brockners
   Cisco Systems, Inc.
   Hansaallee 249
   40549 Duesseldorf
   Germany
   Email: fbrockne@cisco.com

   Ijsbrand Wijnands
   Cisco Systems, Inc.
   Pegasus Parc, De Kleetlaan 6a
   1831 Diegem
   Belgium
   Email: iwijnand@cisco.com

   Ali Sajassi
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, CA  95134
   Email: sajassi@cisco.com



Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of


Brockners              Expires August 22, 2008                [Page 20]


Internet-Draft   Half-Duplex Multipoint LSPs with LDP     February 2008


   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

















Brockners              Expires August 22, 2008                [Page 21]