Internet DRAFT - draft-li-spring-segment-path-programming
draft-li-spring-segment-path-programming
Network Working Group Z. Li
Internet-Draft I. Milojevic
Intended status: Informational Z. Zhuang
Expires: April 19, 2016 Huawei Technologies
October 17, 2015
Segment Path Programming (SPP)
draft-li-spring-segment-path-programming-00
Abstract
Segment Routing for unicast traffic has been proposed to cope with
the usecases in traffic engineering, fast re-reroute, service chain,
etc. The document generalizes more use cases based on segment and
proposes the concept of Segment Path Programming. In the field of
Segment Path Programming: 1. The Segment used in the programmed
segment path is not only used in the forwarding plane, but also used
in the control plane. 2. The programmed segment path is not only
used in the transport layer, but also used in the service layer.
Accordingly this document proposes use cases, architecture and
protocol extension requirements for the Segment Path Programming
(SPP).
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 http://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 19, 2016.
Li, et al. Expires April 19, 2016 [Page 1]
Internet-Draft Segment Path Programming (SPP) October 2015
Copyright Notice
Copyright (c) 2015 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
(http://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. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Redefinition of Segment . . . . . . . . . . . . . . . . . . . 3
3.1. Application of Segment in Control Plane and Forwarding
Plane . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Application of Segment in Reachability and Service
Process . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Definition of Segment Path Programming Path . . . . . . . . . 6
5. Usecases of Segment Path Programming . . . . . . . . . . . . 7
5.1. Flexible Service Process Combination . . . . . . . . . . 7
5.2. Node Segment for Synonymous Flow Label . . . . . . . . . 8
5.3. Steering Traffic without Mapping Segment to Label . . . . 8
5.4. Centralized Mapping Service to Tunnels . . . . . . . . . 9
6. Framework of Service-Oriented MPLS Path Programming . . . . . 11
6.1. Central Control for MPLS Path Programming . . . . . . . . 11
6.2. Protocol Extensions Requirements . . . . . . . . . . . . 12
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.1. Normative References . . . . . . . . . . . . . . . . . . 13
9.2. Informative References . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction
Segment Routing [I-D.ietf-spring-segment-routing] for unicast traffic
has been proposed to cope with the usecases in traffic engineering,
fast re-reroute, service chain, etc. The document generalizes more
use cases based on segment and proposes the concept of Segment Path
Programming. In the field of Segment Path Programming: 1. The
Segment used in the programmed segment path is not only used in the
Li, et al. Expires April 19, 2016 [Page 2]
Internet-Draft Segment Path Programming (SPP) October 2015
forwarding plane, but also used in the control plane. 2. The
programmed segment path is not only used in the transport layer, but
also used in the service layer. Accordingly this document proposes
use cases, architecture and protocol extension requirements for the
Segment Path Programming (SPP).
2. Terminology
BGP: Border Gateway Protocol
L2VPN: Layer 2 VPN
L3VPN: Layer 3 VPN
SPP: Segment Path Programming
SR-path: Segment Routing Path
SRGB: SR Global Block
3. Redefinition of Segment
3.1. Application of Segment in Control Plane and Forwarding Plane
In the existing segment routing, the segment will be applied to the
MPLS forwarding plane directly. In the MPLS architecture, the global
segment such as node segment will be mapped to MPLS label since SRGB
will be defined as the set of local labels reserved for global
segments and the local segment will be a local label outside the
SRGB.
In fact, the segment can be only used in the control plane instead of
mapping to the forwarding plane. In the usecase, the segment is just
an indicator for specific process which can be used for the
application of Segment Path Programming.
For example, node segment in the Segment Routing mapped in the
control plane and forwarding plane in the MPLS architecture is shown
in the following figure.
Li, et al. Expires April 19, 2016 [Page 3]
Internet-Draft Segment Path Programming (SPP) October 2015
Control Plane:
+---------+ +------------+
| Segment | | |
| | = | Label |
| ID | | |
+---------+ +------------+
Forwarding Plane:
+--------+------------+ +------------+-------------------------+
| | Forwarding | | Forwarding | Forwarding Information |
| Label | | --> | | to |
| | Index | | Index | Specified Node |
+--------+------------+ +------------+-------------------------+
Figure 1: Node Segment in Segment Routing
In the Segment Path Programming, the node segment can be enhanced to
support following mapping in the control plane and forwarding plane
even in the MPLS architecture.
Control Plane:
+---------+ +------------+
| Segment | | Forwarding |
| | --> | |
| ID | | Index |
+---------+ +------------+
Forwarding Plane:
+------------+-------------------------+
| Forwarding | Forwarding Information |
| | to |
| Index | Specified Node |
+------------+-------------------------+
Figure 2: Enhanced Node Segment in Segment Path Programming
In this mapping, the Segment ID can map to the forwarding entry to
specific node. But it is only an indicator in the control plane
which can be used for possible applications. When receive the
mapping information between the application and the Segment ID, the
network node will install additional forwarding entry as follows
which map the application information to the forwarding information
specified by the segment ID.
Li, et al. Expires April 19, 2016 [Page 4]
Internet-Draft Segment Path Programming (SPP) October 2015
Control Plane:
Mapping Information
+--------+------------+
| App | Segment |
| | |
| Info | ID |
+--------+------------+
Forwarding Plane:
+----------+------------+ +------------+-------------------------+
| | Forwarding | | Forwarding | Forwarding Information |
| App Info | | --> | | to |
| | Index | | Index | Specified Node |
+----------+------------+ +------------+-------------------------+
Figure 3: Mapping App to Segment in Segment Path Programming
The application information in the forwarding entry should be derived
from the packet received by the network nodes such as the destination
IP/MAC address, the source IP/MAC address, the port number, the
protocol number, etc. It can also be the MPLS label.
In order to support the enhanced segment in the Segment Programming
Path, whether to map the Segment to MPLS label can be determined by
the local policy of the network node. Protocol extensions can also
be introduced to specify if the Segment maps to the MPLS label when
advertised the information of SRGBs or all kinds of Segments.
3.2. Application of Segment in Reachability and Service Process
In the existing Segment Routing, in the MPLS architecture the segment
will be mapped to the label which is always the indicator of
reachability to the specific node, the specific agency, etc. More
types of Segments which indicates the reachability can be introduced
according to existing MPLS forwarding plane. Since these segments
represent reachability in the network, they can be used for traffic
steering. These segments includes:
-- Node Segment
-- Agency Segment
-- AS (Autonomous System) Segment
-- Anycast Segment
-- Multicast Segment
Li, et al. Expires April 19, 2016 [Page 5]
Internet-Draft Segment Path Programming (SPP) October 2015
-- Tunnel Segment
-- VPN Segment
-- etc.
As the development of Segment Routing, the service segment is
introduced to represent the specific service process. It can be used
for some new application scenarios such qw the Service Function Chain
(SFC). For the service process in the traditional IP/MPLS fowarding
plane, it can also be indicated by different types of segments. This
provides the possibility to flexibly combine these segment to set up
a Segment Path to represent a series of service process in the
network on the specific flow instead of only steering traffic. These
Segments can represent different service process in the forwarding
plane as follows:
-- OAM Segment
-- ECMP (Equal Cost Multi-Path) Segment
-- QoS Segment
-- Bandwidth-Guarantee Segment
-- Security Segment
-- Multi-Topology Segment
-- etc.
4. Definition of Segment Path Programming Path
Owing to more types of segments and flexible application of segment
in the control plane and the forwarding plane, there will be powerful
capability to combine these segments which can be used to steering
traffic or provide flexible service process to satisfy different
service requirement for specific flows in the network. We call such
combination of segments as Segment Path and the flexible combining of
segments as Segment Path Programming.
Segment Routing ([I-D.ietf-spring-segment-routing]) is a typical
example of Segment Path Programming. There can be multiple layers
for Segment Path Programming which are shown in the following figure:
Li, et al. Expires April 19, 2016 [Page 6]
Internet-Draft Segment Path Programming (SPP) October 2015
+---+ +---+
+--+ | | +---+ +---+ +---+ | | +--+
|CE|----|PE1|----| P |----| P |----| P |----|PE2|----|CE|
+--+ | | +---+ +---+ +---+ | | +--+
+---+ +---+
Service-oriented Segment Path Programming
(SoSPP)
o--------o--------- Service Layer------------o--------o
o--------- Network Layer -----------o
Transport-oriented Segment Path Programming
(Segment Routing)
o-------o--------o---------o-------o Transport Layer
o-----o o-----o o-----o o-----o o-----o o-----o Link Layer
Figure 4: Multiple Layers of Segment Path Programming
Now the segment routing is to provide the source packet routing in
the transport layer or the link layer for traffic steering . We can
call such type of source packet routing as Transport-Oriented Segment
Path Programming. There can be more application scenarios which need
the segment path to respresent the service processes in the service
layer or network layer. We call these types of source packet routing
as Service-Oriented Segment Path Programming.
5. Usecases of Segment Path Programming
5.1. Flexible Service Process Combination
The following figure shows the usecase of Segment Path Programming to
combine service segments according to the service requirements on the
traffic which can be specified by the traditional BGP VPN prefix.
The combination of these service segments represent the required
ECMP, QoS and OAM process.
Li, et al. Expires April 19, 2016 [Page 7]
Internet-Draft Segment Path Programming (SPP) October 2015
Traditional Label Binding for VPN Prefix:
+----------+----------+
| VPN |VPN Prefix|
| Prefix | Label |
+----------+----------+
Additional Segment Path Information:
+----------+----------+----------+
| ECMP | QoS | OAM |
| Segment | Segment | Segment |
+----------+----------+----------+
If the network node maps the corresponding segment to MPLS label, the
forwarding entry can be as follows:
+----------+ +----------+----------+----------+----------+
|VPN Prefix| | Entropy | QoS | OAM |VPN Prefix| Transport Tunnel
| | --> | Label | Label | Label | Label | ---> determined by
+----------+ +----------+----------+----------+----------+ BGP Nexthop
5.2. Node Segment for Synonymous Flow Label
Synonymous flow label has been proposed by
[I-D.bryant-mpls-synonymous-flow-labels] to solve the issue of the
measurement of packet loss for multipoint-to-point LSP. Node segment
advertised in the Segment Routing can be used as the flow label. In
the scenario of performance measurement the flow label can only be
interpreted by network node to identify the source of the flow other
than set up the MPLS forwarding entry for the node segment in the
scenario of segment routing. So when advertise the node segment
information on the usage of the node segment can also be carried or
the local policy can be introduced to determine the application of
the node segment. Then the segment path can be set up based on such
node segment for the purpose of performance measurement.
5.3. Steering Traffic without Mapping Segment to Label
The following figure shows the usecase of Segment Path Programming to
steer traffic which can be specified by the traditional BGP prefix.
Li, et al. Expires April 19, 2016 [Page 8]
Internet-Draft Segment Path Programming (SPP) October 2015
Traditional BGP Prefix:
+----------+
| BGP |
| Prefix |
+----------+
Additional Segment Path Information:
+----------+----------+
| Agency | Node |
| Segment | Segment |
+----------+----------+
If these segments are not applied in the MPLS forwarding plane, the
Segment Path will be explained as steering traffic specified by the
BGP prefix to reach specific node (determined by the Node Segment)
through specific local link (determined by the Agency Segment). The
corresponding fowarding entry will be as follows:
+----------+------------+ +------------+---------------+--------------------+
| BGP | Forwarding | | Forwarding | Next Hop | Outgoing Interface |
| | | --> | | determined by | determine by |
| Prefix | Index | | Index | Node Segment | Link Segment |
+----------+------------+ +------------+---------------+--------------------+
5.4. Centralized Mapping Service to Tunnels
In the transport layers, there can be multiple tunnels with different
constraints to one specific destination. In the traditional way, the
tunnel is set up by the distributed forwarding nodes. As the PCE-
initiated LSP setup [I-D.ietf-pce-pce-initiated-lsp]is introduced,
the tunnel setup can be triggered by the central controlled way. In
order to satisfy the different service requirements, it is necessary
to provide the capability to flexibly map the service to different
tunnels. Since the central control point has enough information
based on the whole network view, it can be an effective way to map
the service to the tunnel by the central point and advertise the
mapping information to the end-points of the service to guide the
mapping in the forwarding node.
The method to implement mapping service to tunnels can directly
introduce the tunnel attribute to specify the tunnel proposed by
[I-D.li-idr-mpls-path-programming]. [I-D.li-spring-tunnel-segment]
proposes one new type of segment, Tunnel Segment, which can provide
an alternative way to implement mapping service to tunnels. In the
following figure, the central controller can trigger to set up the
MPLS TE tunnels through PCE-initiated LSP and allocate Segment ID for
the tunnel in the Node-1.
Li, et al. Expires April 19, 2016 [Page 9]
Internet-Draft Segment Path Programming (SPP) October 2015
+------------+
| Central |
| Controller |
+------------+
^ Tunnel Binding
| SID (Z)
| .-----.
| ( )
V .--( )--.
+-------+ ( ) +-------+
| |_( IP/MPLS Network )_| |
|Node-1 | ( ================> ) |Node-2 |
+-------+ (MPLS TE/IP Tunnel) +-------+
'--( )--'
( )
'-----'
Figure 5: Using Tunnel Segment for Mapping Service to Tunnel
Without applying the segment to MPLS label the Node-1 can set up the
following mapping for the tunnel segment:
Control Plane:
+---------+ +------------+
| Segment | | Forwarding |
| | --> | |
| ID | | Index |
+---------+ +------------+
Forwarding Plane:
+------------+-----------------------+
| Forwarding | Tunnel Forwarding |
| | |
| Index | Information |
+------------+-----------------------+
Figure 6: Enhanced Node Segment in Segment Path Programming
Then the central controller can advertise following Segment Path
information for the flow which can be specified by the traditional
BGP prefix.
Li, et al. Expires April 19, 2016 [Page 10]
Internet-Draft Segment Path Programming (SPP) October 2015
Traditional BGP Prefix:
+----------+
| BGP |
| Prefix |
+----------+
Additional Segment Path Information:
+----------+
| Tunnel |
| Segment |
+----------+
Then the following forwarding entry can be set up for the specified
BGP prefix to steer traffic to specific tunnel in the Noed-1.
+----------+------------+ +------------+----------------------+
| BGP | Forwarding | | Forwarding | Tunnel Forwarding |
| | | --> | | |
| Prefix | Index | | Index | Information |
+----------+------------+ +------------+----------------------+
6. Framework of Service-Oriented MPLS Path Programming
6.1. Central Control for MPLS Path Programming
Central control plays an important role in Segment Path Programming
shown in the figure 7. There are two important functionalities for
the central controller:
1. Central controlled Segment allocation/collection: Segment can be
allocated centrally for specific usage. Or central controller can
collect the segment binding information from the network nodes.
BGP/PCEP/IGP extensions can be introduced to distribute or collect
the segment binding information.
2. Central controlled Segment Path Programming: Central controller
can calculate path in a global network view and implement the Segment
Path Programming based on the collected information of segments to
satisfy different requirements of service flows. BGP/PCEP extensions
can be introduced to download the Segment Path for the Service/
Network layer or Transport/Link layer.
Li, et al. Expires April 19, 2016 [Page 11]
Internet-Draft Segment Path Programming (SPP) October 2015
+-------------------+
| Central |
| Controller |
|----------|(Path Calculation |--------|
| | /Path Programming)| |
| +-------------------+ |
| / | \ |
Segment Path / Segment \ Segment Path
| / | \ |
| Segment | Segment |
| / | \ |
| / | \ |
| / | \ |
+--------+ +--------+ +--------+
| CLIENT | | CLIENT | | CLIENT |
| | ...... | | ...... | |
| (PE) | | (P) | | (PE) |
| | | | | |
+--------+ +--------+ +--------+
Figure 7: Central Control for Segment Path Programming
6.2. Protocol Extensions Requirements
REQ 01: BGP/PCEP/IGP extensions should be introduced to distribute
Segment binding for specific usage from the central controller to
other client nodes.
REQ 02: BGP/PCEP/IGP extensions should be introduced to collect
Segment binding for specific usage from the client nodes to the
central controller.
REQ 03: BGP extensions should be introduced to download Segment
(stack) for Segment Path of the service/network layer.
REQ 04: PCE extensions should be introduced to download Segment
(stack) for Segment Path of the transport layer.
REQ 05: Protocol extensions should be introduced to specify the
application of SRGB or Segment which means if the segment is applied
to MPLS forwarding plane.
7. IANA Considerations
This document makes no request of IANA.
Li, et al. Expires April 19, 2016 [Page 12]
Internet-Draft Segment Path Programming (SPP) October 2015
8. Security Considerations
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,
<http://www.rfc-editor.org/info/rfc2119>.
9.2. Informative References
[I-D.bryant-mpls-synonymous-flow-labels]
Bryant, S., Swallow, G., Sivabalan, S., Mirsky, G., Chen,
M., and Z. Li, "RFC6374 Synonymous Flow Labels", draft-
bryant-mpls-synonymous-flow-labels-01 (work in progress),
July 2015.
[I-D.ietf-pce-pce-initiated-lsp]
Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "PCEP
Extensions for PCE-initiated LSP Setup in a Stateful PCE
Model", draft-ietf-pce-pce-initiated-lsp-04 (work in
progress), April 2015.
[I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Decraene, B., Litkowski, S.,
and r. rjs@rob.sh, "Segment Routing Architecture", draft-
ietf-spring-segment-routing-06 (work in progress), October
2015.
[I-D.li-idr-mpls-path-programming]
Li, Z., "BGP Extensions for Service-Oriented MPLS Path
Programming (MPP)", draft-li-idr-mpls-path-programming-01
(work in progress), March 2015.
[I-D.li-spring-tunnel-segment]
Li, Z. and N. Wu, "Tunnel Segment in Segment Routing",
draft-li-spring-tunnel-segment-00 (work in progress),
September 2015.
Authors' Addresses
Li, et al. Expires April 19, 2016 [Page 13]
Internet-Draft Segment Path Programming (SPP) October 2015
Zhenbin Li
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: lizhenbin@huawei.com
Igor Milojevic
Huawei Technologies
Poland-Warsaw-TULIPAN HOUSE, UL. DOMANI EWSKA 50, 02-672
Warsaw
Poland
Email: Igor.Milojevic@huawei.com
Shunwan Zhuang
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing 100095
China
Email: zhuangshunwan@huawei.com
Li, et al. Expires April 19, 2016 [Page 14]