IP Library Granted Patent US 12,289,235
Granted Patent B2
US 12,289,235 · App. 18/329,873 · Granted Apr 29, 2025

Distributing service function chain data and service function instance data in a network

Inventors: Eric C. Rosen (Arlington, MA); John E. Drake (Pittsburgh, PA); William Stuart Mackie (Carmel, NY); Adrian John Farrel (Llangollen, GB)
Assignee: Juniper Networks, Inc.
H04L45/74H04L45/00H04L45/306H04L45/38H04L45/64H04L67/10H04L67/63H04L69/325H04L41/5054H04L2212/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,289,235
App. No.
18/329,873
Granted
Apr 29, 2025
Kind
B2
Abstract

In some examples, a computing device comprises a first service function instance to apply a service function and a service function forwarder to: receive a first layer 3 routing protocol route advertisement that includes service function instance data for a second service function instance, the service function instance data indicating a service function type and a service identifier for the service function instance; receive a second layer 3 routing protocol route advertisement that includes service function chain data for a service function chain, the service function chain data indicating a service path identifier and one or more service function items; and send, to the second service function instance and based at least on determining a service function item of the one or more service function items indicates the second service function instance, a packet classified to the service function chain.

Claims (54)

1. A first computing device comprising processing circuitry having access to memory, the processing circuitry configured to:

receive a first route advertisement comprising a service identifier that indicates an instance of a service function among one or more instances of the service function and a service function type for the instance of the service function;

receive a second route advertisement that defines a specific path for a service function chain, wherein the second route advertisement specifies:

a service path identifier identifying the specific path for the service function chain; and

one or more service indexes, wherein each of the one or more service indexes is associated with one or more service function instances, and wherein a first service index of the one or more service indexes comprises a service function type and a service identifier that, in combination, indicate the instance of the service function;

map the service function type and the service identifier to the instance of the service function indicated in the first route advertisement; and

send, based at least in part on the mapping, to a second computing device that hosts the instance of the service function, a packet having a header that includes the service path identifier.

2. The first computing device of claim 1 , wherein the service identifier of the first route advertisement comprises a route distinguisher (RD).

3. The first computing device of claim 1 , wherein the first route advertisement comprises data indicating that any instance of the one or more instances of the service function may be selected to send the packet.

4. The first computing device of claim 1 , wherein the first route advertisement comprises a service function instance route advertisement.

5. The first computing device of claim 1 , wherein the second route advertisement comprises a service function chain route advertisement.

6. The first computing device of claim 1 , wherein the one or more service indexes indicate an order of application of respective one or more service functions to the packet.

7. The first computing device of claim 1 ,

wherein a first Border Gateway Protocol (BGP) UPDATE message comprises a first BGP path attribute that specifies the first route advertisement, and

wherein a second BGP UPDATE message comprises a second BGP path attribute that specifies the second route advertisement.

8. A first computing device comprising processing circuitry having access to memory, the processing circuitry configured to:

receive a first route advertisement comprising a service identifier that indicates an instance of a service function among one or more instances of the service function;

receive a second route advertisement that defines a specific path for a service function chain, wherein the second route advertisement specifies:

a service path identifier identifying the specific path for the service function chain; and

one or more service indexes, wherein each of the one or more service indexes is associated with one or more service function instances;

determine that a service index of the one or more service indexes of the second route advertisement indicates a service function of the one or more service functions that is a same type as a type of the service function of the instance indicated by the first route advertisement; and

identify, based on the determination, the instance of the service function; and

send, to the identified instance of the service function hosted by a second computing device, a packet having a header that includes the service path identifier.

9. A method comprising:

receiving, by a first computing device, a first route advertisement comprising a service identifier that indicates an instance of a service function among one or more instances of the service function and a service function type for the instance of the service function;

receiving, by the first computing device, a second route advertisement that defines a specific path for a service function chain, wherein the second route advertisement specifies:

a service path identifier identifying the specific path for the service function chain; and

one or more service indexes, wherein each of the one or more service indexes is associated with one or more service function instances, and wherein a first service index of the one or more service indexes comprises a service function type and a service identifier that, in combination, indicate the instance of the service function;

mapping, by the first computing device, the service function type and the service identifier to the instance of the service function indicated in the first route advertisement; and

sending, by the first computing device, based at least in part on the mapping, to a second computing device that hosts the instance of the service function, a packet having a header that includes the service path identifier.

10. The method of claim 9 , wherein the service identifier of the first route advertisement comprises a route distinguisher (RD).

11. The method of claim 9 , wherein the first route advertisement comprises data indicating that any instance of the one or more instances of the service function may be selected to send the packet.

12. The method of claim 9 , wherein the first route advertisement comprises a service function instance route advertisement.

13. The method of claim 9 , wherein the second route advertisement comprises a service function chain route advertisement.

14. The method of claim 9 , wherein the one or more service indexes indicate an order of application of respective one or more service functions to the packet.

15. The method of claim 9 ,

wherein a first Border Gateway Protocol (BGP) UPDATE message comprises a first BGP path attribute that specifies the first route advertisement, and

wherein a second BGP UPDATE message comprises a second BGP path attribute that specifies the second route advertisement.

16. A non-transitory, computer-readable medium comprising instructions that, when executed, are configured to cause processing circuitry of a first computing device to:

receive a first route advertisement comprising a service identifier that indicates an instance of a service function among one or more instances of the service function and a service function type for the instance of the service function;

receive a second route advertisement that defines a specific path for a service function chain, wherein the second route advertisement specifies:

a service path identifier identifying the specific path for the service function chain; and

one or more service indexes, wherein each of the one or more service indexes is associated with one or more service function instances, and wherein a first service index of the one or more service indexes comprises a service function type and a service identifier that, in combination, indicate the instance of the service function;

map the service function type and the service identifier to the instance of the service function indicated in the first route advertisement;

map the service function type and the service identifier to the instance of the service function indicated in the first route advertisement; and

send, based at least in part on the mapping, to a second computing device that hosts the instance of the service function, a packet having a header that includes the service path identifier.

17. The first computing device of claim 8 , wherein the service identifier of the first route advertisement comprises a route distinguisher (RD).

18. The first computing device of claim 8 , wherein the first route advertisement comprises data indicating that any instance of the one or more instances of the service function may be selected to send the packet.

19. The first computing device of claim 8 ,

wherein the first route advertisement comprises a service function instance route advertisement, and

wherein the second route advertisement comprises a service function chain route advertisement.

20. The first computing device of claim 8 ,

wherein a first Border Gateway Protocol (BGP) UPDATE message comprises a first BGP path attribute that specifies the first route advertisement, and

wherein a second BGP UPDATE message comprises a second BGP path attribute that specifies the second route advertisement.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT Recorded May 6, 2026
From: JUNIPER NETWORKS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 075513/0034 →
Continuity (4)
Continuation 17527864 · Nov 16, 2021
Continuation 15368282 · Dec 2, 2016
Provisional Application 62399934 · Sep 26, 2016
Related Publication 20230318973A1 · Oct 5, 2023
References Cited (49)
US 8117440B2 · Pei et al. · 2012 [cited by applicant]
US 8468271B1 · Panwar et al. · 2013 [cited by applicant]
US 8806606B2 · Ahmad et al. · 2014 [cited by applicant]
US 8909736B1 · Bosch · 2014 [cited by applicant]
US 9100213B1 · Ramanathan · 2015 [cited by examiner]
US 9571394B1 · Sivaramakrishnan et al. · 2017 [cited by applicant]
US 9942148B1 · Sivaramakrishnan et al. · 2018 [cited by applicant]
US 10084685B2 · Tomotaki et al. · 2018 [cited by applicant]
US 10142254B1 · Olofsson · 2018 [cited by examiner]
US 11277338B2 · Drake et al. · 2022 [cited by applicant]
US 20080198849A1 · Guichard · 2008 [cited by examiner]
US 20090116483A1 · Anumala · 2009 [cited by examiner]
US 20100124225A1 · Fedyk · 2010 [cited by applicant]
US 20130195111A1 · Allan et al. · 2013 [cited by applicant]
US 20140086253A1 · Yang · 2014 [cited by applicant]
US 20140307744A1 · Dunbar et al. · 2014 [cited by applicant]
US 20140334488A1 · Guichard et al. · 2014 [cited by applicant]
US 20140351452A1 · Bosch · 2014 [cited by examiner]
US 20160050141A1 · Wu · 2016 [cited by examiner]
US 20180069780A1 · Dhanabalan · 2018 [cited by examiner]
US 20180091420A1 · Drake et al. · 2018 [cited by applicant]
US 20180131590A1 · Penno · 2018 [cited by examiner]
US 20220078113A1 · Rosen et al. · 2022 [cited by applicant]
CN 102217238A · 2011 [cited by applicant]
CN 104067566A · 2014 [cited by applicant]
EP 2963866A2 · 2016 [cited by applicant]
EP 3148149A1 · 2017 [cited by applicant]
WO 2013184846A1 · 2013 [cited by applicant]
Bates, et al., “Multiprotocol Extensions for BGP-4,” Network Working Group, RFC 4760, Jan. 2007, 12 pp. [cited by applicant]
Extended Search Report from counterpart European Application No. 17193314.6, dated Feb. 13, 2018, 10 pp. [cited by applicant]
Extended Search Report from counterpart European Application No. 19191630.3, dated Nov. 21, 2019, 9 pp. [cited by applicant]
Farrel, et al., “BGP Control Plane for NSH SFC,” draft-mackie-bess-nsh-bgp-control-plane-00, BESS Working Group, Internet-Draft, Oct. 14, 2016, 36 pp. [cited by applicant]
Farrel, et al., “BGP Control Plane for NSH SFC,” draft-mackie-bess-nsh-bgp-control-plane-01, BESS Working Group, Internet-Draft, Oct. 30, 2016, 37 pp. [cited by applicant]
Fernando et al., “Service Chaining using Virtual Networks with BGP VPNs, draft-fm-bess-service-chaining-02,” Internet Engineering Task Force, Dec. 7, 2015, 42 pp. [cited by applicant]
First Office Action and Search Report, and translation thereof, from counterpart Chinese Application No. 201710886475.9, dated Mar. 23, 2020, 24 pp. [cited by applicant]
Halpern, et al., “Service Function Chaining (SFC) Architecture,” Internet Engineering Task Force, RFC 7665, Oct. 2015, 32 pp. [cited by applicant]
Notice of Intent to Grant and Text Intended to Grant from counterpart European Application No. 17193314.6, dated Mar. 26, 2019, 69 pp. [cited by applicant]
Notice of Intent to Grant and Text Intended to Grant from counterpart European Application No. 19191630.3, dated Jan. 13, 2021, 67 pp. [cited by applicant]
Patel, et al., “Service Advertisement using BGP,” Network Working Group, Internet-Draft, Apr. 26, 2013, 12 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 15/368,282, dated Jul. 27, 2018 through Nov. 19, 2021, 191 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 17/527,864, dated Nov. 10, 2022 through Mar. 7, 2023, 29 pp. [cited by applicant]
Quinn, et al., “Problem Statement for Service Function Chaining,” Internet Engineering Task Force, RFC 7498, Apr. 2015, 13 pp. [cited by applicant]
Raszuk, et al., “BGP vector routing.” Network Working Group, Internet-Draft, May 31, 2016, 12 pp. [cited by applicant]
Rekhter, et al., “A Border Gateway Protocol 4 (BGP-4),” Network Working Group, RFC 4271, Jan. 2006, 104 pp. [cited by applicant]
Response to Extended Search Report dated Feb. 13, 2018, from counterpart European Application No. 17193314.6, filed Sep. 26, 2018, 12 pp. [cited by applicant]
Response to Extended Search Report dated Nov. 21, 2019 from counterpart European Application No. 19191630.3, filed Jun. 22, 2020, 23 pp. [cited by applicant]
Rosen, et al., “The BGP Tunnel Encapsulation Attribute,” IDR Working Group Internet-Draft, May 31, 2016, 40 pp. [cited by applicant]
Rosen, et al., “BGP/MPLS IP Virtual Private Networks (VPNs),” Network Working Group, RFC 4364, Feb. 2006, 47 pp. [cited by applicant]
Second Office Action and Search Report, and translation thereof, from counterpart Chinese Application No. 201710886475.9, dated Dec. 11, 2020, 8 pp. [cited by applicant]