draft-ietf-mpls-sfc-02.txt   draft-ietf-mpls-sfc-03.txt 
MPLS Working Group A. Farrel MPLS Working Group A. Farrel
Internet-Draft Juniper Networks Internet-Draft Juniper Networks
Intended status: Standards Track S. Bryant Intended status: Standards Track S. Bryant
Expires: February 6, 2019 Huawei Expires: April 16, 2019 Huawei
J. Drake J. Drake
Juniper Networks Juniper Networks
August 5, 2018 October 13, 2018
An MPLS-Based Forwarding Plane for Service Function Chaining An MPLS-Based Forwarding Plane for Service Function Chaining
draft-ietf-mpls-sfc-02 draft-ietf-mpls-sfc-03
Abstract Abstract
Service Function Chaining (SFC) is the process of directing packets Service Function Chaining (SFC) is the process of directing packets
through a network so that they can be acted on by an ordered set of through a network so that they can be acted on by an ordered set of
abstract service functions before being delivered to the intended abstract service functions before being delivered to the intended
destination. An architecture for SFC is defined in RFC7665. destination. An architecture for SFC is defined in RFC7665.
The Network Service Header (NSH) can be inserted into packets to The Network Service Header (NSH) can be inserted into packets to
steer them along a specific path to realize a Service Function Chain. steer them along a specific path to realize a Service Function Chain.
skipping to change at page 2, line 7 skipping to change at page 2, line 7
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 6, 2019. This Internet-Draft will expire on April 16, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 32 skipping to change at page 2, line 32
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4
3. Choice of Data Plane SPI/SI Representation . . . . . . . . . 4 3. Choice of Data Plane SPI/SI Representation . . . . . . . . . 4
4. Use Case Scenarios . . . . . . . . . . . . . . . . . . . . . 5 4. Use Case Scenarios . . . . . . . . . . . . . . . . . . . . . 5
4.1. Label Swapping for Logical NSH . . . . . . . . . . . . . 5 4.1. Label Swapping for Logical NSH . . . . . . . . . . . . . 5
4.2. Hierarchical Encapsulation . . . . . . . . . . . . . . . 5 4.2. Hierarchical Encapsulation . . . . . . . . . . . . . . . 5
4.3. Fine Control of Service Function Instances . . . . . . . 6 4.3. Fine Control of Service Function Instances . . . . . . . 5
4.4. Micro Chains and Label Stacking . . . . . . . . . . . . . 6 4.4. Micro Chains and Label Stacking . . . . . . . . . . . . . 6
4.5. SFC and Segment Routing . . . . . . . . . . . . . . . . . 6 4.5. SFC and Segment Routing . . . . . . . . . . . . . . . . . 6
5. Basic Unit of Representation . . . . . . . . . . . . . . . . 6 5. Basic Unit of Representation . . . . . . . . . . . . . . . . 6
6. MPLS Label Swapping . . . . . . . . . . . . . . . . . . . . . 8 6. MPLS Label Swapping . . . . . . . . . . . . . . . . . . . . . 7
7. MPLS Label Stacking . . . . . . . . . . . . . . . . . . . . . 10 7. MPLS Label Stacking . . . . . . . . . . . . . . . . . . . . . 10
8. Mixed Mode Forwarding . . . . . . . . . . . . . . . . . . . . 12 8. Mixed Mode Forwarding . . . . . . . . . . . . . . . . . . . . 12
9. A Note on Service Function Capabilities and SFC Proxies . . . 13 9. A Note on Service Function Capabilities and SFC Proxies . . . 13
10. Control Plane Considerations . . . . . . . . . . . . . . . . 13 10. Control Plane Considerations . . . . . . . . . . . . . . . . 13
11. Use of the Entropy Label . . . . . . . . . . . . . . . . . . 14 11. Use of the Entropy Label . . . . . . . . . . . . . . . . . . 14
12. Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . 15 12. Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . 15
12.1. Indicating Metadata in User Data Packets . . . . . . . . 15 12.1. Indicating Metadata in User Data Packets . . . . . . . . 15
12.2. Inband Programming of Metadata . . . . . . . . . . . . . 17 12.2. Inband Programming of Metadata . . . . . . . . . . . . . 17
13. Worked Examples . . . . . . . . . . . . . . . . . . . . . . . 20 13. Worked Examples . . . . . . . . . . . . . . . . . . . . . . . 20
14. Implementation Notes . . . . . . . . . . . . . . . . . . . . 24 14. Implementation Notes . . . . . . . . . . . . . . . . . . . . 24
skipping to change at page 5, line 33 skipping to change at page 5, line 33
with an MPLS encapsulation as described in Section 6. The MPLS with an MPLS encapsulation as described in Section 6. The MPLS
labels encode the same information as the NSH to form a logical NSH. labels encode the same information as the NSH to form a logical NSH.
The labels are modified (swapped per [RFC3031]) at each SFC hop along The labels are modified (swapped per [RFC3031]) at each SFC hop along
the chain to indicate the next hop. The processing and forwarding the chain to indicate the next hop. The processing and forwarding
state for a chain (i.e., the actions to take on a received label) are state for a chain (i.e., the actions to take on a received label) are
programmed in to the network using a control plane or management programmed in to the network using a control plane or management
plane. plane.
4.2. Hierarchical Encapsulation 4.2. Hierarchical Encapsulation
[I-D.ietf-sfc-hierarchical] describes an architecture for [RFC8459] describes an architecture for hierarchical encapsulation
hierarchical encapsulation using the NSH. It facilitates using the NSH. It facilitates partitioning of SFC domains for
partitioning of SFC domains for administrative reasons, and allows administrative reasons, and allows concatenation of service function
concatenation of service function chains under the control of a chains under the control of a service classifier.
service classifier.
The same function can be achieved in an MPLS network using an MPLS The same function can be achieved in an MPLS network using an MPLS
encoding of the logical NSH, and label stacking as defined in encoding of the logical NSH, and label stacking as defined in
[RFC3031] and described in Section 7. In this model, swapping is [RFC3031] and described in Section 7. In this model, swapping is
used per Section 4.1 to navigate one chain, and when the end of the used per Section 4.1 to navigate one chain, and when the end of the
chain is reached, the final label is popped revealing the label for chain is reached, the final label is popped revealing the label for
another chain. Thus, the primary mode is swapping, but stacking is another chain. Thus, the primary mode is swapping, but stacking is
used to enable the ingress classifier to control concatenation of used to enable the ingress classifier to control concatenation of
service function chains. service function chains.
skipping to change at page 27, line 26 skipping to change at page 27, line 26
DOI 10.17487/RFC8393, May 2018, DOI 10.17487/RFC8393, May 2018,
<https://www.rfc-editor.org/info/rfc8393>. <https://www.rfc-editor.org/info/rfc8393>.
19.2. Informative References 19.2. Informative References
[I-D.ietf-bess-nsh-bgp-control-plane] [I-D.ietf-bess-nsh-bgp-control-plane]
Farrel, A., Drake, J., Rosen, E., Uttaro, J., and L. Farrel, A., Drake, J., Rosen, E., Uttaro, J., and L.
Jalil, "BGP Control Plane for NSH SFC", draft-ietf-bess- Jalil, "BGP Control Plane for NSH SFC", draft-ietf-bess-
nsh-bgp-control-plane-04 (work in progress), July 2018. nsh-bgp-control-plane-04 (work in progress), July 2018.
[I-D.ietf-sfc-hierarchical]
Dolson, D., Homma, S., Lopez, D., and M. Boucadair,
"Hierarchical Service Function Chaining (hSFC)", draft-
ietf-sfc-hierarchical-11 (work in progress), June 2018.
[I-D.ietf-spring-segment-routing-mpls] [I-D.ietf-spring-segment-routing-mpls]
Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., Bashandy, A., Filsfils, C., Previdi, S., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing with MPLS Litkowski, S., and R. Shakir, "Segment Routing with MPLS
data plane", draft-ietf-spring-segment-routing-mpls-14 data plane", draft-ietf-spring-segment-routing-mpls-14
(work in progress), June 2018. (work in progress), June 2018.
[I-D.xuclad-spring-sr-service-chaining] [I-D.xuclad-spring-sr-service-chaining]
Clad, F., Xu, X., Filsfils, C., daniel.bernier@bell.ca, Clad, F., Xu, X., Filsfils, C., daniel.bernier@bell.ca,
d., Li, C., Decraene, B., Ma, S., Yadlapalli, C., d., Li, C., Decraene, B., Ma, S., Yadlapalli, C.,
Henderickx, W., and S. Salsano, "Segment Routing for Henderickx, W., and S. Salsano, "Segment Routing for
skipping to change at page 28, line 20 skipping to change at page 28, line 15
[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function
Chaining (SFC) Architecture", RFC 7665, Chaining (SFC) Architecture", RFC 7665,
DOI 10.17487/RFC7665, October 2015, DOI 10.17487/RFC7665, October 2015,
<https://www.rfc-editor.org/info/rfc7665>. <https://www.rfc-editor.org/info/rfc7665>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8459] Dolson, D., Homma, S., Lopez, D., and M. Boucadair,
"Hierarchical Service Function Chaining (hSFC)", RFC 8459,
DOI 10.17487/RFC8459, September 2018,
<https://www.rfc-editor.org/info/rfc8459>.
Authors' Addresses Authors' Addresses
Adrian Farrel Adrian Farrel
Juniper Networks Juniper Networks
Email: afarrel@juniper.net Email: adrian@olddog.co.uk
Stewart Bryant Stewart Bryant
Huawei Huawei
Email: stewart.bryant@gmail.com Email: stewart.bryant@gmail.com
John Drake John Drake
Juniper Networks Juniper Networks
Email: jdrake@juniper.net Email: jdrake@juniper.net
 End of changes. 10 change blocks. 
17 lines changed or deleted 16 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/