IP Library Granted Patent US 10,187,263
Granted Patent B2
US 10,187,263 · App. 15/350,966 · Granted Jan 22, 2019

Integrating physical and virtual network functions in a service-chained network environment

Inventors: Farhad P Sunavala (San Jose, CA); Hong Zhang (Palo Alto, CA); Henry L Fourie (Livermore, CA)
Assignee: Futurewei Technologies, Inc.
H04L41/12H04L41/0816
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 10,187,263
App. No.
15/350,966
Granted
Jan 22, 2019
Kind
B2
Abstract

Packets of data can be processed by a chain or sequence of service functions which include both virtual and physical service functions. In one approach, the original header and/or payload of a packet is analyzed at a software switch to determine whether the packet should be processed by the chain. If such processing is indicated, a next service function to process the packet is identified. The packet is then forwarded to a virtualized or physical device which implements the next service function. A portion of the header, such as a MAC destination address, may be modified to direct the packet to the next function. Further, in some cases, a service function chain (SFC) header with a chain identifier may be added to, or removed from, the packet.

Claims (66)

1. A device, comprising:

a non-transitory memory storage comprising instructions; and

one or more processors in communication with the memory, wherein the one or more processors execute the instructions at a software switch to:

determine from an original header and/or payload of a packet the packet is subject to processing by a chain of functions, the chain of functions comprising one or more virtual network functions and one or more physical network functions;

identify a first next function in the chain of functions;

add a service function chain (SFC) header comprising an identifier of the chain of functions to the packet before forwarding the packet to the first next function in response to determining the first next function is a virtual network function among the one or more virtual network functions;

identify a second next function in the chain of functions;

remove the SFC header from the packet before forwarding the packet to the second next function without the SFC header in response to determining the second next function is a physical network function among the one or more physical network functions;

re-determine from the original header and/or payload of the packet the packet is subject to processing by the chain of functions and identify a third next function in the chain of functions; and

add the SFC header to the packet before forwarding the packet to the third next function in the chain of functions in response to determining the third next function is another virtual network function.

2. The device of claim 1 , wherein the one or more processors execute the instructions at the software switch to:

set a destination medium access control (MAC) address of the packet to an address of an input port of the first next function before forwarding the packet to the first next function.

3. The device of claim 2 , wherein the one or more processors execute the instructions at the software switch to:

determine that the first next function is a virtual network function based on receiving the packet from a preceding virtual network function in the chain of functions.

4. The device of claim 1 , wherein the one or more processors execute the instructions at the software switch to:

set a destination Medium Access Control (MAC) address of the packet to an address of an input port of the second next function before forwarding the packet to the second next function.

5. The device of claim 1 , wherein:

to determine that the packet is subject to processing by the chain of functions, the one or more processors execute the instructions at the software switch to determine that fields in an original header and/or payload of the packet match a specified set of fields.

6. The device of claim 5 , wherein:

the specified set of fields indicate the packet is from a specified source and is being sent to a specified destination.

7. The device of claim 6 , wherein:

the specified source comprises at least one of an Internet Protocol (IP) address, Medium Access Control (MAC) address or port; and

the specified destination comprises at least one of an Internet Protocol (IP) address, Medium Access Control (MAC) address or port.

8. The device of claim 5 , wherein:

the specified set of fields indicate the packet is transmitted using a specified protocol.

9. The device of claim 8 , wherein:

the specified protocol comprises at least one of Transmission Control Protocol (TCP), User Datagram Protocol (UDP) or Internet Control Message Protocol (ICMP).

10. The device of claim 1 , wherein:

the one or more virtual network functions are hosted on one or more virtualized devices; and

the one or more physical network functions are hosted on one or more physical devices but not on a virtualized device.

11. A computer-implemented method for accessing data, comprising:

with one or more processors:

determining from an original header and/or payload of a packet that the packet is to be processed by a chain of functions;

in response to the determining that the packet is to be processed by the chain of functions, determining that a next function in the chain of functions is a virtual network function;

in response to the determining that the next function is the virtual network function, adding a service function chain (SFC) header comprising an identifier of the chain of functions to the packet, and forwarding the packet to the virtual network function with the SFC header;

after the forwarding the packet to the virtual network function with the SFC header, determining that a next function in the chain of functions is a physical network function;

in response to the determining that the next function is the physical network function, removing the SFC header and forwarding the packet to the physical network function without the SFC header;

after the forwarding the packet to the physical network function without the SFC header, receiving the packet from the physical network function and re-determining from the original header and/or payload that the packet is to be processed by the chain of functions;

in response to the re-determining that the packet is to be processed by the chain of functions, determining that a next function in the chain of functions is another physical network function; and

in response to the determining that the next function is the another physical network function, forwarding the packet to the another physical network function without the SFC header.

12. The computer-implemented method of claim 11 , wherein:

the re-determining from the original header and/or payload that the packet, which is received by a software switch from the physical network function, is to be processed by the chain of functions comprises matching on a source MAC address in the original header of the packet.

13. A non-transitory computer-readable medium storing computer instructions for accessing data, that when executed by one or more processors, cause the one or more processors to perform the steps of:

receiving a packet from a physical network function;

determining from an original header and/or payload of the packet that the packet is to be processed by a chain of functions which includes the physical network function;

in response to the determining that the packet is to be processed by the chain of functions, determining that a first next function in the chain of functions is a virtual network function;

in response to the determining that the first next function is the virtual network function, forwarding the packet to the first next function with a service function chain (SFC) header;

after the forwarding the packet to the first next function with the SFC header, determining that a second next function in the chain of functions is a physical network function;

in response to the determining that the second next function is the physical network function, removing the SFC header and forwarding the packet to the second next function without the SFC header;

after the forwarding the packet to the second next function without the SFC header, receiving the packet from the second next function and re-determining from the original header and/or payload that the packet is to be processed by the chain of functions;

in response to the re-determining that the packet is to be processed by the chain of functions, determining that the packet has concluded processing by the chain of functions; and

in response to the determining that the packet has concluded processing by the chain of functions, forwarding the packet to a destination which is identified in the original header.

14. The non-transitory computer-readable medium of claim 13 , wherein:

the destination of the packet is a virtualized device in a network; and

the forwarding of the packet to the destination uses a software switch.

15. The non-transitory computer-readable medium of claim 13 , wherein:

the determining that the packet has concluded processing by the chain of functions occurs at a software switch at a network node of a network;

the destination of the packet is external to the network; and

the forwarding of the packet to the destination uses a software router at the network node.

16. The non-transitory computer-readable medium of claim 13 , wherein:

the determining that the packet has concluded processing by the chain of functions occurs at a software switch at a network node of a network;

the virtual network function is hosted in a virtualized device in one subnet of the network;

the destination of the packet is in another subnet of the network; and

the forwarding of the packet to the destination uses a software router at the network node.

17. The non-transitory computer-readable medium of claim 13 , wherein:

the re-determining from the original header and/or payload that the packet is to be processed by the chain of functions comprises matching on a source MAC address in the original header.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2022
From: FUTUREWEI TECHNOLOGIES, INC.
To: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
Reel/Frame 059682/0738 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2016
From: SUNAVALA, FARHAD P.; ZHANG, HONG; FOURIE, HENRY L.
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 040326/0681 →
Continuity (1)
Related Publication 20180139098A1 · May 17, 2018
Cited By (2)
US 12,294,521 US 12,413,523