Skip to main content

Segment Routing Proxy Forwarding
draft-hu-spring-segment-routing-proxy-forwarding-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Zhibo Hu, Huaimo Chen , Junda Yao
Last updated 2018-10-22
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-hu-spring-segment-routing-proxy-forwarding-00
Network Working Group                                              Z. Hu
Internet-Draft                                                   H. Chen
Intended status: Standards Track                                  J. Yao
Expires: April 25, 2019                              Huawei Technologies
                                                        October 22, 2018

                    Segment Routing Proxy Forwarding
          draft-hu-spring-segment-routing-proxy-forwarding-00

Abstract

   Segment Routing Traffic Engineering (SR-TE) supports the creation of
   explicit paths using adjacency-sids, node-sids, and binding-sids.  In
   the SR-TE path, by providing proxy forwarding to the neighbor nodes
   of the faulty node, it is ensured that the traffic can reach the
   neighbor node of the faulty node normally in the case of the SR-TE of
   the loose path or strict path.  If the failed node is a node that
   provides the Binding-sids service, the neighbor node can perform the
   binding-sids forwarding behavior to swap the corresponding label
   stack through the proxy forwarding of the neighbor node.
   [I-D.bashandy-rtgwg-segment-routing-ti-lfa] defines the usecase of
   protecting the node failure of segment list.  This document describes
   how to implement the proxy forwarding mechanism of a faulty node at
   the neighbor node of the faulty node on the SR-TE path .

Requirements Language

   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 [RFC2119].

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on April 25, 2019.

Hu, et al.               Expires April 25, 2019                 [Page 1]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  IGP extended for proxy forwarding . . . . . . . . . . . . . .   3
     2.1.  ISIS proxy forwarding Prefix-SID  . . . . . . . . . . . .   3
     2.2.  ISIS Path Binding TLV . . . . . . . . . . . . . . . . . .   4
   3.  Building proxy forwarding table . . . . . . . . . . . . . . .   5
     3.1.  Advertise proxy forwarding TLV  . . . . . . . . . . . . .   7
     3.2.  Calculate the proxy forwarding table  . . . . . . . . . .   7
   4.  Node Protection for Segment List  . . . . . . . . . . . . . .   8
     4.1.  Next segment is an adjacency segment  . . . . . . . . . .   9
     4.2.  Next segment is a node segment  . . . . . . . . . . . . .  11
     4.3.  Next segment is a binding segment . . . . . . . . . . . .  13
   5.  Other scenario considerations . . . . . . . . . . . . . . . .  15
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  15
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  15
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  16
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  16
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  16
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  16
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  17

1.  Introduction

   Segment Routing Traffic Engineering (SR-TE) is a technology that
   implements traffic engineering using Segment Routing.  Segment
   Routing-Traffic Engineering supports the creation of explicit paths
   using adjacency-sids, node-sids, and binding-sids.  After a node
   failure causes the network to reconverge, the node in the network
   deletes the forwarding entry generated for the faulty node locally.
   In the case of SR-TE loose path, traffic cannot reach to the neighbor
   node of the faulty node because the forwarding entry is deleted.  Any
   traffic protection policy of the neighbor node cannot take effect.

Hu, et al.               Expires April 25, 2019                 [Page 2]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   If the faulty node is a label adhesion node, the Binding-sids cannot
   be exchanged to the label stack for its identity, and the traffic
   will be lost before it reaches the faulty node.

   In this document, the proxy mechanism is provided in the neighbor
   node of the faulty node of the forwarding path to implement traffic
   forwarding after the node fault on the SR-TE loose path and the label
   adhesion scenario.

2.  IGP extended for proxy forwarding

   When a node has segment routing proxy forwarding capability, it must
   advertise the proxy global sid of the neighbor node.Unless this node
   has an anycast sid same as the neighbor node.It is used to announce
   that the node has the ability to proxy forward the sid.  When the
   node who advertises this global sid fails, the traffic can be
   forwarded to the proxy node.

2.1.  ISIS proxy forwarding Prefix-SID

   The ISIS SID/Label Binding TLV (suggested value 149) is defined in
   [I-D.ietf-isis-segment-routing-extensions] . A proxy node uses the
   SID/Label Binding TLV to advertise the Prefix-Sid of its neighbor
   node.  The reserved bit of the Flags field of the SID/Label Binding
   TLV is extended by a P flag, and the Prefix-Sid is identified as a
   proxy forwarding Prefix-SID.

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |      Type     |     Length    |     Flags     |     RESERVED  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            Range              | Prefix Length |     Prefix    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       //               Prefix (continued, variable)                  //
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    SubTLVs (variable)                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Flags: 1 octet field of following flags:
      0 1 2 3 4 5 6 7
     +-+-+-+-+-+-+-+-+
     |F|M|S|D|A|P|   |
     +-+-+-+-+-+-+-+-+

   Where:

Hu, et al.               Expires April 25, 2019                 [Page 3]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   P-Flag: Proxy forwarding flag.  If set, this Prefix-Sid is advertised
   by the proxy node.This TLV is used to announce that the node has the
   ability to proxy forward the Prefix-Sid.

2.2.  ISIS Path Binding TLV

   TE-PATH-BINDING TLV is defined in
   [I-D.sivabalan-pce-binding-label-sid], For supporting Binding sid
   proxy forwarding.  This document introduces TE-PATH-BINDING TLV to
   the ISIS.  [I-D.ietf-spring-segment-routing-policy] has defined the
   usage of binding-sid.  In the ISIS, the format of Path Binding TLV is
   as follows:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |      Type     |     Length    |        Binding Type (BT)      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                   Binding Value (variable)                    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

   Type:TBD, to be assigned by IANA.

   Length: variable.

   Binding Type (BT): identify the type of binding included in the TLV.
   This document specifies the following BT values:

   o BT = 0: The binding value is an MPLS label carried in the format
   specified in [RFC5462] where only the label value is valid, and other
   fields (TC, S, and TTL) MUST be considered invalid.  The Length MUST
   be set to 6.

   o BT = 1: Similar to the case for BT = 0 except that all the fields
   on the MPLS label entry are set on transmission.  However, the
   receiver MAY choose to override TC, S, and TTL values according its
   local policy.

   Binding Value: A variable length field, padded with trailing zeros to
   a 4-byte boundary.  For the BT = 0, the 20 bits represents the MPLS
   label.  For the BT = 1, the 32-bits represents the label stack entry
   as per [RFC5462].

Hu, et al.               Expires April 25, 2019                 [Page 4]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

3.  Building proxy forwarding table

Hu, et al.               Expires April 25, 2019                 [Page 5]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

             Node Sid:2      Node Sid:3
             +-----+          +-----+
             |     |----------+     |
           / |RT2  |          | RT3 |\
          /  +-----+          +-----+ \
         /      | \             /|     \
        /       |  \           / |      \
       /        |   \         /  |       \
      /         |    \       /   |        \
     /          |     \     /    |         \
 Node Sid:1     |      \   /     |          \Node Sid:4    Node Sid:5
+-----+         |       \ /      |           +-----+       +-----+
|     |         |        X       |           |     |-------|     |
| RT1 |         |       / \      |           | RT4 |       | RT5 |
+-----+         |      /   \     |           +-----+       +-----+
   \            |     /     \    |           /
    \           |    /       \   |          /
     \          |   /         \  |         /
      \         |  /           \ |        /
       \        | /             \|       /
        \       |/               |      /
         \   +-----+           +-----+ /
          \  |     |           |     |/
           \ | RT6 |-----------| RT7 |
             +-----+           +-----+
             Node Sid:6        Node Sid:7

 +------------------+                                 +----------------+
 |    Node SRGB     |                                 |  label stack   |
 +------------------+                                 +----------------+
 | RT1:[1000-1999]  |                                 |  1003          |
 +------------------+  +-----------------+            +----------------+
 | RT2:[2000-2999]  |  | Adj-Sid         |            |  3004          |
 +------------------+  +-----------------+            +----------------+
 | RT3:[3000-3999]  |  |RT3->RT6:3036    |            |  4005          |
 +------------------+  +-----------------+            +----------------+
 | RT4:[4000=4999]  |  |RT3->RT7:3037    |
 +------------------+  +-----------------+
 | RT5:[5000-5999]  |  |RT3->RT4:3034    |
 +------------------+  +-----------------+
 | RT6:[6000-6999]  |  |RT7->RT4:7074    |
 +------------------+  +-----------------+
 | RT7:[7000-7999]  |  |RT4->RT5:4045    |
 +------------------+  +-----------------+

 Figure 1. Topolocy of SR-TE path

Hu, et al.               Expires April 25, 2019                 [Page 6]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   We use Figure 1 to illustrate the SR proxy forwarding approach.  Each
   node N has SRGB = [N000-N999], RT1 is an ingress node of SR domain .
   A label stack that represents the path R1->R3->R4->R5 is shown as
   well.  In the figure,RT3 is a failure node , RT2 is a Point of Local
   Repair (PLR) node.

3.1.  Advertise proxy forwarding TLV

   If the Point of Local Repair (PLR) has proxy forwarding ability, for
   example, RT2.  When node RT2 learns the prefix-sid of the direct
   neighbor RT3, it must use the proxy forwarding TLV to advertise the
   prefix-sid learned from RT3.  When RT3 fails, RT2 needs to maintain
   proxy forwarding TLV for a period of time.  When the proxy forwarding
   table corresponding to the fault node is deleted (see section 3.2),
   the proxy forwarding TLV is withdrawn.  The nodes in the network (for
   example, RT1) learn the Prefix-Sid TLV advertised by RT3 and the
   proxy forwarding TLV advertised by RT2, when RT3 is normal, the nodes
   prefer Prefix-Sid TLV.  When the RT3 fails, the proxy forwarding TLV
   advertised by RT2 is preferred.

3.2.  Calculate the proxy forwarding table

   The SR proxy node needs to calculate a proxy forwarding table for
   each neighbor, each neighbor has an independent proxy forwarding
   table.  The Node P (PLR) generates a proxy forwarding table for Node
   N, and P needs to contain the following information:

   1: Node N's SRGB range and the difference between the SRGB start
   value of node P and that of node N;

   2: All adjacency-SID of N and Node-SID of the node pointed to by NODE
   N's adjacency-SID.

   3: The binding-SID of N and the label stack associated with binding-
   SID of N.

   NODE P (PLR) uses a proxy forwarding table based on the next segment
   to find a node N as a backup forwarding entry to the adj-SID and
   Node-SID of the N.  When the N fails, the proxy forwarding table
   needs to be maintained for a period of time, which is recommended for
   30 minutes.

   Node RT3 in the topology of Figure 1 is the node N, and the node RT2
   is the P (PLR).  RT2 calculates the proxy forwarding table for RT3,
   as shown in Figure 2.

Hu, et al.               Expires April 25, 2019                 [Page 7]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

       RT2's Routing Table (partial)
      +==========+====================================+===========+=======+
      | In-Label |                  Action            | Out-Label |  TYPE |
      +==========+====================================+===========+=======+
      | 2003     | pop, fwd to RT3                    |   3003    |Primary|
      |          | pop, lookup Proxy Forwarding table |           |Backup |
      +----------+--------------------------------------------------------+
      | 2004     |pop, fwd to RT3                     |   3004    |Primary|
      |          |pop, fwd to RT7                     |   7004    |Backup |
      +----------+--------------------------------------------------------+

       RT2's Proxy Forwarding Table for RT3 (partial)
      +==========+===============+============+=============+==============+
      | In-label | SRGBDiffValue | Next Label |   Action    |   Map Label  |
      +==========+===============+============+=============+==============+
      | 2003     |    -1000      |    3034    |  Fwd to RT4 |    2004      |
      +----------+---------------+------------+-------------+--------------+
                                 |    3036    |  Fwd to RT6 |    2006      |
                                 +------------+-------------+--------------+
                                 |    3037    |  Fwd to RT7 |    2007      |
                                 +------------+-------------+--------------+
                                 |    100     |    Swap to { 3034, 4045 }  |
                                 +------------+-------------+--------------+

 Figure 2. RT2's Routing Table and Proxy Forwarding Table for RT3 (partial)

   Where:

   In-Lable: Local Node SRGB starting value + Node-Sid of protected node
   RT3.

   SRGBDiffValue: Local node(RT2) SRGB starting value - Protected
   node(RT3) SRGB starting value.

   Next Label: Generate forwarding entries for adj-Sids and binding-sids
   of Protected node(RT3).

   Map Label: the PLR swaps the Next Label to the Map Label, and then
   queries the PLR Routing Table again according to the Map Label to
   obtain the out-label.

4.  Node Protection for Segment List

   Segment Routing Traffic Engineering supports the creation of explicit
   paths using adjacency-sids, node-sids, and binding-sids.  The label
   stack is a combination of one or more of adjacency-sids, node-sids,
   and binding-sids.  This Section shows how the P-node uses the SR

Hu, et al.               Expires April 25, 2019                 [Page 8]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   proxy forwarding mechanism to protect traffic to the destination node
   when the next segment of label stack is adjacency-sids, node-sids, or
   binding-sids, respectively.

4.1.  Next segment is an adjacency segment

Hu, et al.               Expires April 25, 2019                 [Page 9]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

             Node Sid:2      Node Sid:3
             +-----+          +-----+
             |     |----------+     |
           / |RT2  |          | RT3 |\
          /  +-----+          +-----+ \
         /      | \             /|     \
        /       |  \           / |      \
       /        |   \         /  |       \
      /         |    \       /   |        \
     /          |     \     /    |         \
 Node Sid:1     |      \   /     |          \Node Sid:4    Node Sid:5
+-----+         |       \ /      |           +-----+       +-----+
|     |         |        X       |           |     |-------|     |
| RT1 |         |       / \      |           | RT4 |       | RT5 |
+-----+         |      /   \     |           +-----+       +-----+
   \            |     /     \    |           /
    \           |    /       \   |          /2
     \          |   /         \  |         /ru
      \         |  /           \ |        /
       \        | /             \|       /
        \       |/               |      /
         \   +-----+           +-----+ /
          \  |     |           |     |/
           \ | RT6 |-----------| RT7 |
             +-----+           +-----+
             Node Sid:6        Node Sid:7

 +------------------+       +-----------------+       +----------------+
 |    Node SRGB     |       |     Adj-Sid     |       |  Label Stack   |
 +------------------+       +-----------------+       +----------------+
 | RT1:[1000-1999]  |       |RT1->RT2:1012    |       |     1012       |
 +------------------+       +-----------------+       +----------------+
 | RT2:[2000-2999]  |       |RT2->RT3:2023    |       |     2023       |
 +------------------+       +-----------------+       +----------------+
 | RT3:[3000-3999]  |       |RT3->RT6:3036    |       |     3034       |
 +------------------+       +-----------------+       +----------------+
 | RT4:[4000=4999]  |       |RT3->RT7:3037    |       |     4045       |
 +------------------+       +-----------------+       +----------------+
 | RT5:[5000-5999]  |       |RT3->RT4:3034    |
 +------------------+       +-----------------+
 | RT6:[6000-6999]  |       |RT7->RT4:7074    |
 +------------------+       +-----------------+
 | RT7:[7000-7999]  |       |RT4->RT5:4045    |
 +------------------+       +-----------------+

 Figure 3. Next Segment is adj-SID for Node Protection

Hu, et al.               Expires April 25, 2019                [Page 10]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   As shown in Figure 3, the SR-TE strict explicit path is
   RT1->RT2->RT3->RT4->RT5, identified by the label stack { 1012, 2023,
   3034, 4045 }. The adj-sid: 3034, which is used to identify the
   traffic forwarding path of the RT3->RT4.  Node RT2 acts as a PLR
   node, and uses next adj-SID of the label stack to lookup the proxy
   forwarding table calculated by RT2 locally for RT3.  The queried path
   is the label forwarding path of the next hop node of RT3, which
   bypasses RT3.  The specific steps are as follows:

   a.  RT1 pops top adj-SID 1012, and forwards packets to RT2;

   b.  RT2 identifies the next hop node RT3 fault, pops top adj-SID
   2023, and queries Proxy Forwarding Table with the next sid (3034).
   The query result is forwarding packets to RT4, the map label is 2004;

   c.  RT2 swaps the label 3034 to map label 2004, and then uses the map
   label 2004 to query RT2's Routing Table.  Due to RT3 failure, the
   result of the query is forwarding the packets to RT7 (backup path) ,
   and the out-label is 7004.

   d.  RT2 swaps the label 2004 to out-label 7004, and forwards packets
   to RT7.  RT7 queries the local routing table to forward to RT4.

4.2.  Next segment is a node segment

Hu, et al.               Expires April 25, 2019                [Page 11]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

             Node Sid:2      Node Sid:3
             +-----+          +-----+
             |     |----------+     |
           / |RT2  |          | RT3 |\
          /  +-----+          +-----+ \
         /      | \             /|     \
        /       |  \           / |      \
       /        |   \         /  |       \
      /         |    \       /   |        \
     /          |     \     /    |         \
 Node Sid:1     |      \   /     |          \Node Sid:4    Node Sid:5
+-----+         |       \ /      |           +-----+       +-----+
|     |         |        X       |           |     |-------|     |
| RT1 |         |       / \      |           | RT4 |       | RT5 |
+-----+         |      /   \     |           +-----+       +-----+
   \            |     /     \    |           /
    \           |    /       \   |          /
     \          |   /         \  |         /
      \         |  /           \ |        /
       \        | /             \|       /
        \       |/               |      /
         \   +-----+           +-----+ /
          \  |     |           |     |/
           \ | RT6 |-----------| RT7 |
             +-----+           +-----+
             Node Sid:6        Node Sid:7

 +------------------+       +-----------------+       +----------------+
 |    Node SRGB     |       |     Adj-Sid     |       |  Label Stack   |
 +------------------+       +-----------------+       +----------------+
 | RT1:[1000-1999]  |       |RT1->RT2:1012    |       |     1003       |
 +------------------+       +-----------------+       +----------------+
 | RT2:[2000-2999]  |       |RT2->RT3:2023    |       |     3004       |
 +------------------+       +-----------------+       +----------------+
 | RT3:[3000-3999]  |       |RT3->RT6:3036    |       |     4005       |
 +------------------+       +-----------------+       +----------------+
 | RT4:[4000=4999]  |       |RT3->RT7:3037    |
 +------------------+       +-----------------+
 | RT5:[5000-5999]  |       |RT3->RT4:3034    |
 +------------------+       +-----------------+
 | RT6:[6000-6999]  |       |RT7->RT4:7074    |
 +------------------+       +-----------------+
 | RT7:[7000-7999]  |       |RT4->RT5:4045    |
 +------------------+       +-----------------+

 Figure 4. Next Segment is node-SID for Node Protection

Hu, et al.               Expires April 25, 2019                [Page 12]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   As shown in Figure 4, the SR-TE loose path is RT1->RT3->RT4->RT5,
   which is identified by the label stack {1003, 3004, 4005}.

   When the node RT3 fails, the proxy forwarding TLV advertised by the
   RT2 is preferred to direct the traffic of the RT1 to the PLR node
   RT2.  Node RT2 acts as a PLR node and queries the proxy forwarding
   table locally calculated for RT3.  The queried path is the label
   forwarding path of the next hop node of RT3, which bypasses RT3.  The
   specific steps are as follows:

   a.  RT1 swaps label 1003 to out-label 2003 to RT3.

   b.  RT2 receives the label forwarding packet whose top label of label
   stack is 2003, and searches for the local Routing Table, the behavior
   found is lookup Proxy Forwarding table due to RT3 failure.

   c.  RT2 uses 2003 as the in-label to lookup Proxy Forwarding tabel,
   and finds that the SRGB difference between local node and the faulty
   node is -1000.  The next label(3004) of the label stack (top label
   2003 pop) and the SRGB difference are used to recalculated the new
   in-label[ 3004+(-1000)= 2004 ].

   d.  Uses the new in-label(2004) to lookup the RT2's Routing Table.
   because of RT3 failure, the backup path is searched directly, and the
   behavior of backup path is forwarded to RT7, out-label is 7004.

   e.  RT2 swaps the label 2004 to out-label 7004, and forwards packets
   to RT7.  RT7 queries the local routing table to forward to RT4.

4.3.  Next segment is a binding segment

Hu, et al.               Expires April 25, 2019                [Page 13]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

             Node Sid:2      Node Sid:3
             +-----+          +-----+
             |     |----------+     |
           / |RT2  |          | RT3 |\
          /  +-----+          +-----+ \
         /      | \             /|     \
        /       |  \           / |      \
       /        |   \         /  |       \
      /         |    \       /   |        \
     /          |     \     /    |         \
 Node Sid:1     |      \   /     |          \Node Sid:4    Node Sid:5
+-----+         |       \ /      |           +-----+       +-----+
|     |         |        X       |           |     |-------|     |
| RT1 |         |       / \      |           | RT4 |       | RT5 |
+-----+         |      /   \     |           +-----+       +-----+
   \            |     /     \    |           /
    \           |    /       \   |          /
     \          |   /         \  |         /
      \         |  /           \ |        /
       \        | /             \|       /
        \       |/               |      /
         \   +-----+           +-----+ /
          \  |     |           |     |/
           \ | RT6 |-----------| RT7 |
             +-----+           +-----+
             Node Sid:6        Node Sid:7

 +------------------+       +-----------------+       +----------------+
 |    Node SRGB     |       |     Adj-Sid     |       |  Label Stack   |
 +------------------+       +-----------------+       +----------------+
 | RT1:[1000-1999]  |       |RT1->RT2:1012    |       |      1003      |
 +------------------+       +-----------------+       +----------------+
 | RT2:[2000-2999]  |       |RT2->RT3:2023    |       |      100       |
 +------------------+       +-----------------+       +----------------+
 | RT3:[3000-3999]  |       |RT3->RT6:3036    |
 +------------------+       +-----------------+
 | RT4:[4000=4999]  |       |RT3->RT7:3037    |
 +------------------+       +-----------------+
 | RT5:[5000-5999]  |       |RT3->RT4:3034    |
 +------------------+       +-----------------+
 | RT6:[6000-6999]  |       |RT7->RT4:7074    |
 +------------------+       +-----------------+
 | RT7:[7000-7999]  |       |RT4->RT5:4045    |
 +------------------+       +-----------------+

 Figure 5. Next Segment is Binding-SID for Node Protection

Hu, et al.               Expires April 25, 2019                [Page 14]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

   As shown in Figure 4, the SR-TE loose path is RT1->RT3->RT4->RT5,
   which is identified by the label stack { 1003,100 },where 100 is a
   Binding-Sid, which represents the label combination of { 3034, 4045}.

   When the node RT3 fails, the proxy forwarding TLV advertised by the
   RT2 is preferred to direct the traffic of the RT1 to the PLR node
   RT2.  Node RT2 acts as a PLR node and uses Binding-SID to query the
   proxy forwarding table locally calculated for RT3.  The queried path
   is the label forwarding path of the next hop node of RT3, which
   bypasses RT3.  The specific steps are as follows:

   a.  RT1 swaps label 1003 to out-label 2003 to RT3.

   b.  RT2 receives the label forwarding packet whose top label of label
   stack is 2003, and searches for the local Routing Table, the behavior
   found is lookup Proxy Forwarding table due to RT3 failure.

   c.  RT2 uses Binding-sid:100(label 2003 has pop) as the in-label to
   lookup the Next Label record of the Proxy Forwarding Tabel, the
   behavior found is swap to Segment list { 3034, 4045 }.

   d.  RT2 swaps Binding-sid:100 to Segment list { 3034, 4045 }, and RT2
   Uses the 3034 to lookup the Next Label record of the Proxy Forwarding
   table again.  The behavior found is Forward to RT4, and the map label
   is 2004.

   e.  Uses the new in-label(2004) to lookup the RT2's Routing Table.
   because of RT3 failure, the backup path is searched directly, and the
   behavior of backup path is forwarded to RT7, out-label is 7004.

   f.  RT2 swaps the label 2004 to out-label 7004, and forwards packets
   to RT7.  RT7 queries the local routing table to forward to RT4.

5.  Other scenario considerations

   The implementation for SRv6 and egress protection will be added in
   subsequent documentation.

6.  IANA Considerations

   TBD

7.  Security Considerations

   TBD

Hu, et al.               Expires April 25, 2019                [Page 15]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

8.  Acknowledgements

   TBD

9.  References

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

9.2.  Informative References

   [I-D.bashandy-rtgwg-segment-routing-ti-lfa]
              Bashandy, A., Filsfils, C., Decraene, B., Litkowski, S.,
              Francois, P., daniel.voyer@bell.ca, d., Clad, F., and P.
              Camarillo, "Topology Independent Fast Reroute using
              Segment Routing", draft-bashandy-rtgwg-segment-routing-ti-
              lfa-05 (work in progress), October 2018.

   [I-D.ietf-isis-segment-routing-extensions]
              Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A.,
              Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura,
              "IS-IS Extensions for Segment Routing", draft-ietf-isis-
              segment-routing-extensions-19 (work in progress), July
              2018.

   [I-D.ietf-spring-segment-routing-policy]
              Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d.,
              bogdanov@google.com, b., and P. Mattes, "Segment Routing
              Policy Architecture", draft-ietf-spring-segment-routing-
              policy-01 (work in progress), June 2018.

   [I-D.sivabalan-pce-binding-label-sid]
              Sivabalan, S., Filsfils, C., Tantsura, J., Hardwick, J.,
              Previdi, S., and D. Dhody, "Carrying Binding Label/
              Segment-ID in PCE-based Networks.", draft-sivabalan-pce-
              binding-label-sid-05 (work in progress), October 2018.

   [RFC5462]  Andersson, L. and R. Asati, "Multiprotocol Label Switching
              (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic
              Class" Field", RFC 5462, DOI 10.17487/RFC5462, February
              2009, <https://www.rfc-editor.org/info/rfc5462>.

Hu, et al.               Expires April 25, 2019                [Page 16]
Internet-Draft      Segment Routing Proxy Forwarding        October 2018

Authors' Addresses

   Zhibo Hu
   Huawei Technologies
   Huawei Bld., No.156 Beiqing Rd.
   Beijing  100095
   China

   Email: huzhibo@huawei.com

   Huaimo Chen
   Huawei Technologies
   Boston, MA
   USA

   Email: Huaimo.chen@huawei.com

   Junda Yao
   Huawei Technologies
   Huawei Bld., No.156 Beiqing Rd.
   Beijing  100095
   China

   Email: yaojunda@huawei.com

Hu, et al.               Expires April 25, 2019                [Page 17]