# US 2019/0379599 A1 · Method and system for service function chaining

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0379599 A1
- Document ID: US20190379599A1
- Status: Published application
- Kind: A1
- Application number: 16/479,934
- Filed: 2017-01-25
- Published: 2019-12-12
- Earliest claimed: 2017-01-25
- Assignees: NEC Laboratories Europe GmbH
- Applicants: NEC Laboratories Europe GmbH
- Inventors: Giuseppe Siracusano; Roberto Bifulco
- Web page: https://patentgrep.com/patent/US20190379599A1

## CPC

- H04L 45/34: {Source routing}
- H04L 41/342: between virtual entities, e.g. orchestrators, SDN or NFV entities
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- H04L 45/38: {Flow based routing}
- H04L 45/306: {Route determination based on the nature of the carried application}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for service function chaining in a network, comprises defining, for a flow of network packets sent from a source node (4) to a destination node, a chain of selected network service functions (1) to be traversed by the flow, wherein each of the selected network service functions (1) is attached or connected to a programmable switch (2) capable of operating as a packet forwarding element, generating a chain establishment packet that contains network identifier information about the selected network service functions (1) and that is configured as a regular network packet to be delivered to the destination node along a network path that includes the programmable switches (2) to which the selected network service functions (1) are attached or connected, wherein each of the programmable switches (2), upon receipt of the chain establishment packet and based on the network identifier information about the selected network service functions (1) contained in the chain establishment packet, performs installation of packet forwarding rules for the flow together with network address and port translation operations, and selects, on behalf of the respective attached or connected network service function (1), socket parameters to be used by the network service function (1) for processing the flow. Furthermore, the present invention relates to a network switch and a network addressable apparatus hosting a network service function.

## Claims

### Claim 1

A method for service function chaining in a network, the method comprising:
defining, for a flow of network packets sent from a source node to a destination node, a chain of selected network service functions to be traversed by the flow, wherein each of the selected network service functions is attached or connected to a programmable switch, of a plurality of programmable switches, capable of operating as a packet forwarding element, and
generating a chain establishment packet that contains network identifier information about the selected network service functions and that is configured as a regular network packet to be delivered to the destination node along a network path that includes the programmable switches to which the selected network service functions are attached or connected,
wherein each of the programmable switches, upon receipt of the chain establishment packet and based on the network identifier information about the selected network service functions contained in the chain establishment packet, performs installation of packet forwarding rules for the flow together with network address and port translation operations, and selects, on behalf of the respective attached or connected network service function, socket parameters to be used by the network service function for processing the flow.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the chain establishment packet is generated either by the source node or by an on-path proxy.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the chain establishment packet is configured to contain a list that includes network service function identifiers of the selected network service functions and an address of the destination node as a last entry of the list.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the chain establishment packet is configured to use indirection functions that map a network service function address to an address of the respective programmable switch to which the network service function is attached or connected.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the chain establishment packet is configured to include an additional identification element of the respective programmable switches.

### Claim 6 (depends on 1)

The method according to claim 1, comprising:
receiving, by one of the programmable switches, the chain establishment packet,
reading from the chain establishment packet a network identifier of the next network service function in the chain of selected network service functions, and
steering the flow towards the next network service function by installing appropriate packet forwarding rules for the flow.

### Claim 7 (depends on 1)

The method according to claim 1, comprising:
by one of the network service functions that, when processing the network packets of the flow, modifies the network packets' headers, executing a network identifier selection delegation operation that is configured to delegate to the programmable switch to which the network service function is attached or connected a task of defining a delegation network address or port number the network service function will use when sending network packets in response to the reception of network packets of the flow.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising:
by one of the programmable switches, generating either a delegation source address or port number or a delegation destination address or port number and, for the purpose of enabling usage, passing the generated delegation source address or port number or delegation destination address or port number to the respective network service function.

### Claim 9 (depends on 7)

The method according to claim 7, comprising:
pre-configuring one of the programmable switches with a pool of reserved addresses or port numbers the respective network service function does not assign in any other case, and
by one of the programmable switches, selecting a delegation network address or port number from the pool of reserved addresses or port numbers.

### Claim 10

A network switch, comprising:
network interfaces configured to receive and transmit packets of a network flow,
network service function interfaces configured to communicate with one or more attached or connected network service functions, and
a processing circuitry in communication with the network interfaces and the network service function interfaces, the service chain processing circuitry configured to:
read, from a chain establishment packet that is received via a network interface of the network interfaces, network identifier information about network service functions of a chain of network service functions selected for the network flow, and
perform, based on the network identifier information about the selected network service functions contained in the chain establishment packet, installation of packet forwarding rules for the flow together with network address and port translation operations.

### Claim 11 (depends on 10)

The network switch according to claim 10, wherein the service chain processing circuitry is configured to:
select, on behalf of a respective attached or connected network service function of the network service functions, socket parameters to be used by the network service function for processing the network flow.

### Claim 12 (depends on 10)

The network switch according to claim 10, wherein the service chain processing circuitry is configured to:
read from the chain establishment packet a network identifier of a next network service function in the chain of selected network service functions, and
steer the network flow towards the next network service function by installing appropriate packet forwarding rules for the network flow.

### Claim 13 (depends on 10)

The network switch according to claim 10, wherein the service chain processing circuitry is configured to:
determine that a network service function of the network service functions, when processing network packets of the network flow, modifies the network packets' headers,
execute a network identifier selection delegation operation with the network service function, and
generate either a delegation source address or port number or a delegation destination address or port number and pass the generated delegation source address or port number of delegation destination address or port number to the respective network service function.

### Claim 14 (depends on 13)

The network switch according to claim 13, wherein the service chain processing circuitry is configured to:
use the generated delegation source address or port number of delegation destination address or port number for identifying and/or reclassifying packets received from the network service function as belonging to a particular network flow.

### Claim 15

A network addressable apparatus hosting a network service function, the apparatus comprising:
a hardware component on which the network service function is executed,
an operating system configured to manage the hardware component and a pool of port numbers, and
a network function program running on the operating system that is configured to provide the network function's operations, wherein the network function program is configured:
to query the operating system to provide a socket for a new network flow, and
to receive and employ a socket for the new network flow that is provided with a port number selected by a delegated switch to which the network service function is attached are connected, instead of using a port number selected autonomously by the operating system.
