draft-ietf-bess-nsh-bgp-control-plane-09.txt   draft-ietf-bess-nsh-bgp-control-plane-10.txt 
BESS Working Group A. Farrel BESS Working Group A. Farrel
Internet-Draft Old Dog Consulting Internet-Draft Old Dog Consulting
Intended status: Standards Track J. Drake Intended status: Standards Track J. Drake
Expires: September 7, 2019 E. Rosen Expires: October 28, 2019 E. Rosen
Juniper Networks Juniper Networks
J. Uttaro J. Uttaro
AT&T AT&T
L. Jalil L. Jalil
Verizon Verizon
March 6, 2019 April 26, 2019
BGP Control Plane for NSH SFC BGP Control Plane for NSH SFC
draft-ietf-bess-nsh-bgp-control-plane-09 draft-ietf-bess-nsh-bgp-control-plane-10
Abstract Abstract
This document describes the use of BGP as a control plane for This document describes the use of BGP as a control plane for
networks that support Service Function Chaining (SFC). The document networks that support Service Function Chaining (SFC). The document
introduces a new BGP address family called the SFC AFI/SAFI with two introduces a new BGP address family called the SFC AFI/SAFI with two
route types. One route type is originated by a node to advertise route types. One route type is originated by a node to advertise
that it hosts a particular instance of a specified service function. that it hosts a particular instance of a specified service function.
This route type also provides "instructions" on how to send a packet This route type also provides "instructions" on how to send a packet
to the hosting node in a way that indicates that the service function to the hosting node in a way that indicates that the service function
skipping to change at page 1, line 49 skipping to change at page 1, line 49
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 September 7, 2019. This Internet-Draft will expire on October 28, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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 34 skipping to change at page 2, line 34
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Overview of Service Function Chaining . . . . . . . . . . 6 2.1. Overview of Service Function Chaining . . . . . . . . . . 6
2.2. Control Plane Overview . . . . . . . . . . . . . . . . . 7 2.2. Control Plane Overview . . . . . . . . . . . . . . . . . 7
3. BGP SFC Routes . . . . . . . . . . . . . . . . . . . . . . . 11 3. BGP SFC Routes . . . . . . . . . . . . . . . . . . . . . . . 11
3.1. Service Function Instance Route (SFIR) . . . . . . . . . 12 3.1. Service Function Instance Route (SFIR) . . . . . . . . . 12
3.1.1. SFI Pool Identifier Extended Community . . . . . . . 13 3.1.1. SFI Pool Identifier Extended Community . . . . . . . 13
3.1.2. MPLS Mixed Swapping/Stacking Extended Community . . . 14 3.1.2. MPLS Mixed Swapping/Stacking Extended Community . . . 14
3.2. Service Function Path Route (SFPR) . . . . . . . . . . . 14 3.2. Service Function Path Route (SFPR) . . . . . . . . . . . 14
3.2.1. The SFP Attribute . . . . . . . . . . . . . . . . . . 15 3.2.1. The SFP Attribute . . . . . . . . . . . . . . . . . . 15
3.2.2. General Rules For The SFP Attribute . . . . . . . . . 20 3.2.2. General Rules For The SFP Attribute . . . . . . . . . 21
4. Mode of Operation . . . . . . . . . . . . . . . . . . . . . . 21 4. Mode of Operation . . . . . . . . . . . . . . . . . . . . . . 22
4.1. Route Targets . . . . . . . . . . . . . . . . . . . . . . 21 4.1. Route Targets . . . . . . . . . . . . . . . . . . . . . . 22
4.2. Service Function Instance Routes . . . . . . . . . . . . 21 4.2. Service Function Instance Routes . . . . . . . . . . . . 22
4.3. Service Function Path Routes . . . . . . . . . . . . . . 21 4.3. Service Function Path Routes . . . . . . . . . . . . . . 22
4.4. Classifier Operation . . . . . . . . . . . . . . . . . . 23 4.4. Classifier Operation . . . . . . . . . . . . . . . . . . 24
4.5. Service Function Forwarder Operation . . . . . . . . . . 24 4.5. Service Function Forwarder Operation . . . . . . . . . . 25
4.5.1. Processing With 'Gaps' in the SI Sequence . . . . . . 25 4.5.1. Processing With 'Gaps' in the SI Sequence . . . . . . 26
5. Selection in Service Function Paths . . . . . . . . . . . . . 26 5. Selection in Service Function Paths . . . . . . . . . . . . . 27
6. Looping, Jumping, and Branching . . . . . . . . . . . . . . . 28 6. Looping, Jumping, and Branching . . . . . . . . . . . . . . . 29
6.1. Protocol Control of Looping, Jumping, and Branching . . . 28 6.1. Protocol Control of Looping, Jumping, and Branching . . . 29
6.2. Implications for Forwarding State . . . . . . . . . . . . 29 6.2. Implications for Forwarding State . . . . . . . . . . . . 30
7. Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . 29 7. Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . 30
7.1. Correlating Service Function Path Instances . . . . . . . 29 7.1. Correlating Service Function Path Instances . . . . . . . 30
7.2. Considerations for Stateful Service Functions . . . . . . 30 7.2. Considerations for Stateful Service Functions . . . . . . 31
7.3. VPN Considerations and Private Service Functions . . . . 31 7.3. VPN Considerations and Private Service Functions . . . . 32
7.4. Flow Spec for SFC Classifiers . . . . . . . . . . . . . . 32 7.4. Flow Spec for SFC Classifiers . . . . . . . . . . . . . . 33
7.5. Choice of Data Plane SPI/SI Representation . . . . . . . 33 7.5. Choice of Data Plane SPI/SI Representation . . . . . . . 34
7.5.1. MPLS Representation of the SPI/SI . . . . . . . . . . 34 7.5.1. MPLS Representation of the SPI/SI . . . . . . . . . . 35
7.6. MPLS Label Swapping/Stacking Operation . . . . . . . . . 34 7.6. MPLS Label Swapping/Stacking Operation . . . . . . . . . 35
7.7. Support for MPLS-Encapsulated NSH Packets . . . . . . . . 35 7.7. Support for MPLS-Encapsulated NSH Packets . . . . . . . . 36
8. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 35 8. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8.1. Example Explicit SFP With No Choices . . . . . . . . . . 37 8.1. Example Explicit SFP With No Choices . . . . . . . . . . 38
8.2. Example SFP With Choice of SFIs . . . . . . . . . . . . . 37 8.2. Example SFP With Choice of SFIs . . . . . . . . . . . . . 38
8.3. Example SFP With Open Choice of SFIs . . . . . . . . . . 38 8.3. Example SFP With Open Choice of SFIs . . . . . . . . . . 39
8.4. Example SFP With Choice of SFTs . . . . . . . . . . . . . 38 8.4. Example SFP With Choice of SFTs . . . . . . . . . . . . . 39
8.5. Example Correlated Bidirectional SFPs . . . . . . . . . . 39 8.5. Example Correlated Bidirectional SFPs . . . . . . . . . . 40
8.6. Example Correlated Asymmetrical Bidirectional SFPs . . . 39 8.6. Example Correlated Asymmetrical Bidirectional SFPs . . . 40
8.7. Example Looping in an SFP . . . . . . . . . . . . . . . . 40 8.7. Example Looping in an SFP . . . . . . . . . . . . . . . . 41
8.8. Example Branching in an SFP . . . . . . . . . . . . . . . 41 8.8. Example Branching in an SFP . . . . . . . . . . . . . . . 42
8.9. Examples of SFPs with Stateful Service Functions . . . . 41 8.9. Examples of SFPs with Stateful Service Functions . . . . 42
8.9.1. Forward and Reverse Choice Made at the SFF . . . . . 42 8.9.1. Forward and Reverse Choice Made at the SFF . . . . . 43
8.9.2. Parallel End-to-End SFPs with Shared SFF . . . . . . 43 8.9.2. Parallel End-to-End SFPs with Shared SFF . . . . . . 44
8.9.3. Parallel End-to-End SFPs with Separate SFFs . . . . . 45 8.9.3. Parallel End-to-End SFPs with Separate SFFs . . . . . 46
8.9.4. Parallel SFPs Downstream of the Choice . . . . . . . 47 8.9.4. Parallel SFPs Downstream of the Choice . . . . . . . 48
9. Security Considerations . . . . . . . . . . . . . . . . . . . 50 9. Security Considerations . . . . . . . . . . . . . . . . . . . 51
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52
10.1. New BGP AF/SAFI . . . . . . . . . . . . . . . . . . . . 51 10.1. New BGP AF/SAFI . . . . . . . . . . . . . . . . . . . . 52
10.2. New BGP Path Attribute . . . . . . . . . . . . . . . . . 51 10.2. New BGP Path Attribute . . . . . . . . . . . . . . . . . 52
10.3. New SFP Attribute TLVs Type Registry . . . . . . . . . . 51 10.3. New SFP Attribute TLVs Type Registry . . . . . . . . . . 52
10.4. New SFP Association Type Registry . . . . . . . . . . . 52 10.4. New SFP Association Type Registry . . . . . . . . . . . 53
10.5. New Service Function Type Registry . . . . . . . . . . . 53 10.5. New Service Function Type Registry . . . . . . . . . . . 54
10.6. New Generic Transitive Experimental Use Extended 10.6. New Generic Transitive Experimental Use Extended
Community Sub-Types . . . . . . . . . . . . . . . . . . 54 Community Sub-Types . . . . . . . . . . . . . . . . . . 55
10.7. New BGP Transitive Extended Community Types . . . . . . 54 10.7. New BGP Transitive Extended Community Types . . . . . . 55
10.8. SPI/SI Representation . . . . . . . . . . . . . . . . . 54 10.8. SPI/SI Representation . . . . . . . . . . . . . . . . . 55
11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 54 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 55
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 55 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 56
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 56
13.1. Normative References . . . . . . . . . . . . . . . . . . 55 13.1. Normative References . . . . . . . . . . . . . . . . . . 56
13.2. Informative References . . . . . . . . . . . . . . . . . 56 13.2. Informative References . . . . . . . . . . . . . . . . . 57
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 57
1. Introduction 1. Introduction
As described in [RFC7498], the delivery of end-to-end services can As described in [RFC7498], the delivery of end-to-end services can
require a packet to pass through a series of Service Functions (SFs) require a packet to pass through a series of Service Functions (SFs)
(e.g., WAN and application accelerators, Deep Packet Inspection (DPI) (e.g., WAN and application accelerators, Deep Packet Inspection (DPI)
engines, firewalls, TCP optimizers, and server load balancers) in a engines, firewalls, TCP optimizers, and server load balancers) in a
specified order: this is termed "Service Function Chaining" (SFC). specified order: this is termed "Service Function Chaining" (SFC).
There are a number of issues associated with deploying and There are a number of issues associated with deploying and
maintaining service function chaining in production networks, which maintaining service function chaining in production networks, which
skipping to change at page 16, line 24 skipping to change at page 16, line 24
o The SFP attribute contains a sequence of one or more Hop TLVs. o The SFP attribute contains a sequence of one or more Hop TLVs.
Each Hop TLV contains all of the information about a single hop in Each Hop TLV contains all of the information about a single hop in
the SFP. the SFP.
o Each Hop TLV contains an SI value and a sequence of one or more o Each Hop TLV contains an SI value and a sequence of one or more
SFT TLVs. Each SFT TLV contains an SFI reference for each SFT TLVs. Each SFT TLV contains an SFI reference for each
instance of an SF that is allowed at this hop of the SFP for the instance of an SF that is allowed at this hop of the SFP for the
specific SFT. Each SFI is indicated using the RD with which it is specific SFT. Each SFI is indicated using the RD with which it is
advertised (we say the SFIR-RD to avoid ambiguity). advertised (we say the SFIR-RD to avoid ambiguity).
Malformed SFP attributes, or those that are in error in some way, Section 6 of [RFC4271] describes the handling of malformed BGP
MUST be handled as described in Section 6 of [RFC4271]. attributes, or those that are in error in some way. [RFC7606]
revises BGP error handling specifically for the for UPDATE message,
provides guidelines for the authors of documents defining new
attributes, and revises the error handling procedures for a number of
existing attributes. This document introduces the SFP attribute and
so defines error handling as follows:
o When parsing a message, an unknown Attribute Type code or a length
that suggests that the attribute is longer than the remaining
message is treated as a malformed message and the "treat-as-
withdraw" approach used as per [RFC7606].
o When parsing a message that contains an SFP attribute, the
following cases constitute errors:
1. Optional bit is set to 0 in SFP attribute.
2. Transitive bit is set to 0 in SFP attribute.
3. Unknown TLV type field found in SFP attribute.
4. TLV length that suggests the TLV extends beyond the end of the
SFP attribute.
5. Association TLV contains an unknown SFPR-RD.
6. No Hop TLV found in the SFP attribute.
7. No SFT TLV found in a Hop TLV.
8. Unknown SFIR-RD found in a Hop TLV.
o The errors listed above are treated as follows:
1., 2., 6., 7.: The attribute MUST be treated as malformed and
the "treat-as-withdraw" approach used as per [RFC7606].
3.: Unknown TLVs SHOULD be ignored, and message processing SHOULD
continue.
4.: Treated as a malformed message and the "treat-as-withdraw"
approach used as per [RFC7606]
5., 8.: The absence of an RD with which to corollate is nothing
more than a soft error. The receiver SHOULD store the
information from the SFP attribute until a corresponding
advertisement is received. An implementation MAY time-out such
stored SFP attributes to avoid becoming over-loaded.
3.2.1.1. The Association TLV 3.2.1.1. The Association TLV
The Association TLV is an optional TLV in the SFP attribute. It MAY The Association TLV is an optional TLV in the SFP attribute. It MAY
be present multiple times. Each occurrence provides an association be present multiple times. Each occurrence provides an association
with another SFP as advertised in another SFPR. The format of the with another SFP as advertised in another SFPR. The format of the
Association TLV is shown in Figure 7 Association TLV is shown in Figure 7
+--------------------------------------------+ +--------------------------------------------+
| Type = 1 (1 octet) | | Type = 1 (1 octet) |
skipping to change at page 55, line 27 skipping to change at page 56, line 27
13.1. Normative References 13.1. Normative References
[I-D.ietf-idr-tunnel-encaps] [I-D.ietf-idr-tunnel-encaps]
Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel
Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-11 Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-11
(work in progress), February 2019. (work in progress), February 2019.
[I-D.ietf-mpls-sfc] [I-D.ietf-mpls-sfc]
Farrel, A., Bryant, S., and J. Drake, "An MPLS-Based Farrel, A., Bryant, S., and J. Drake, "An MPLS-Based
Forwarding Plane for Service Function Chaining", draft- Forwarding Plane for Service Function Chaining", draft-
ietf-mpls-sfc-05 (work in progress), February 2019. ietf-mpls-sfc-07 (work in progress), March 2019.
[I-D.ietf-mpls-sfc-encapsulation] [I-D.ietf-mpls-sfc-encapsulation]
Malis, A., Bryant, S., Halpern, J., and W. Henderickx, Malis, A., Bryant, S., Halpern, J., and W. Henderickx,
"MPLS Transport Encapsulation For The SFC NSH", draft- "MPLS Transport Encapsulation For The SFC NSH", draft-
ietf-mpls-sfc-encapsulation-03 (work in progress), March ietf-mpls-sfc-encapsulation-04 (work in progress), March
2019. 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271, Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006, DOI 10.17487/RFC4271, January 2006,
skipping to change at page 56, line 15 skipping to change at page 57, line 15
[RFC5575] Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J., [RFC5575] Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J.,
and D. McPherson, "Dissemination of Flow Specification and D. McPherson, "Dissemination of Flow Specification
Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009, Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009,
<https://www.rfc-editor.org/info/rfc5575>. <https://www.rfc-editor.org/info/rfc5575>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <https://www.rfc-editor.org/info/rfc7432>. 2015, <https://www.rfc-editor.org/info/rfc7432>.
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
Patel, "Revised Error Handling for BGP UPDATE Messages",
RFC 7606, DOI 10.17487/RFC7606, August 2015,
<https://www.rfc-editor.org/info/rfc7606>.
[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>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
 End of changes. 11 change blocks. 
59 lines changed or deleted 111 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/