Internet-Draft Advertising Service Functions Using IS-I March 2023
Xu, et al. Expires 10 September 2023 [Page]
LSR Working Group
Intended Status:
Standards Track
X. Xu
China Mobile
H. Huang
H. Shah
L. Contreras
Telefonica I+D

Advertising Service Functions Using IS-IS


The MPLS source routing mechanism developed by Source Packet Routing in Networking (SPRING) WG can be leveraged to realize a unified source routing instruction which works across both IPv4 and IPv6 underlays in addition to the MPLS underlay. The unified source routing instruction can be used to realize a transport-independent service function chaining by encoding the service function path information or service function chain information as an MPLS label stack. This document describes how to advertise service functions and their corresponding attributes (e.g., service function label) using IS-IS.

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

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 10 September 2023.

1. Introduction

[I-D.draft-ietf-spring-sr-service-programming] describes how to leverage the unified source routing instruction [RFC8663] to realize a transport-independent service function chaining by encoding the Service Function Path (SFP) or Service Function Chain (SFC) information as an MPLS label stack. To allow a service classifier to attach the MPLS label stack which represents a particular SFP or SFC to the selected traffic, the service classifier needs to know on which Service Function Forwarder (SFF) a given Service Function (SF) is located and what service function label is used to indicate that SF. This document describes how to advertise SFs and their corresponding attributes (e.g., service function label) using IS-IS.

2. Terminology

This memo makes use of the terms defined in [I-D.draft-ietf-spring-sr-service-programming] and [RFC7981].

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

3. Solution Description

SFFs within the SFC domain need to advertise each SF they are offering by using a new sub-TLV of the IS-IS Router CAPABILITY TLV [RFC7981]. This new sub-TLV is called as Service Function sub-TLV. The Service Function sub-TLV could appear multiple times within a given IS-IS Router CAPABILITY TLV when more than one SF needs to be advertised. The scope of the advertisement depends on the application but it is recommended that it SHOULD be domain-wide. To support the approach of encoding SFP information in the form of an MPLS label stack as described in [I-D.draft-ietf-spring-sr-service-programming], SFFs SHOULD allocate a locally significant MPLS label to each SF they are offering. Therefore, SFFs need to advertise the corresponding service function label to each SF they are offering by using a sub-TLV of the above Service Function sub-TLV, called SF Label sub-TLV.

3.1. Service Function Sub-TLV

      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=TBD1   |    Length     |
     |                  Service Function Identifier                  |
     ~                          Sub-TLVs                             ~
  • Type: TBD1.

  • Length: variable.

  • Service Function Identifier: A unique identifier that represents an SF within an SFC-enabled domain.

  • Sub-TLVs: contains zero or more sub-TLVs corresponding to the particular attributes of a given SF. The SF Label sub-TLV as defined in Section 3.2 is one such sub-TLV. Other sub-TLVs are to be defined in the future.

3.2. SF Label Sub-TLV

      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=TBD2   |    Length     |
     |  Resv |                  SF Label             |
  • Type: TBD2.

  • Length: 3.

  • Value: The rightmost 20 bits represent an MPLS label which is the SF Label of the corresponding SF.

4. IANA Considerations

This document includes a request to IANA for allocating type codes for the Service Function sub-TLV and the SF Label sub-TLV.

5. Security Considerations

This document does not introduce any new security risk.

7. Contributors

Nan Wu

8. References

8.1. Normative References

Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <>.
Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions for Advertising Router Information", RFC 7981, DOI 10.17487/RFC7981, , <>.
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <>.

8.2. Informative References

Clad, F., Xu, X., Filsfils, C., Bernier, D., Li, C., Decraene, B., Ma, S., Yadlapalli, C., Henderickx, W., and S. Salsano, "Service Programming with Segment Routing", Work in Progress, Internet-Draft, draft-ietf-spring-sr-service-programming-07, , <>.
Halpern, J., Ed. and C. Pignataro, Ed., "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, , <>.
Xu, X., Bryant, S., Farrel, A., Hassan, S., Henderickx, W., and Z. Li, "MPLS Segment Routing over IP", RFC 8663, DOI 10.17487/RFC8663, , <>.

Authors' Addresses

Xiaohu Xu
China Mobile
Hongyi Huang
Himanshu Shah
Luis M. Contreras
Telefonica I+D