Serverless Network Functions Per-Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Running network functions in serverless computing environments is challenging due to their long-lived, stateful nature and high packet throughput requirements, which conflict with the short-lived, stateless, and small chunk computing model of traditional serverless computing.

Innovation Solution

Implementing a method where serverless computing instances are executed on a per-packet or per-flow basis to process network packets, allowing for the chaining of functions and handling of state information through a control plane and data store, enabling network functions to be executed efficiently in serverless environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If network functions are implemented using traditional serverless computing instances, then resource provisioning and scaling are automated, but the short-lived and stateless nature of serverless computing conflicts with the long-lived and stateful requirements of network functions

Engineering Contradiction:
Improveresource provisioning and scalingVSAvoidlifecycle duration of computing instances
Core Design Contradiction:
Extent of automationVSDuration of action of moving object

Solution Approach 1:

The patent segments the network function processing into discrete serverless computing instances that are invoked per-packet or per-flow. Each instance handles a specific packet or flow segment, maintaining state information through structured data formats (JSON, XML, YAML) that persist across instance invocations. This segmentation allows automated resource provisioning while managing stateful requirements through structured data passing between short-lived instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the serverless computing platform with control plane and data store) that mediates between the short-lived serverless instances and the long-lived network function requirements. The platform maintains flow state information in data stores and manages the chaining of function invocations, allowing individual instances to remain stateless while the overall system maintains stateful network function behavior.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If network functions are executed in short-lived serverless computing instances, then resource utilization efficiency improves, but maintaining state information across function invocations becomes challenging

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidstate information persistence
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements state information persistence by copying and transmitting flow state data between serverless computing instances through structured data formats. Each instance receives a copy of the relevant state information (flow context, packet data, processing state) in standardized formats (JSON, XML, YAML), processes it, and passes the updated state to the next instance in the chain. This copying mechanism enables stateful network functions across stateless instances.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent changes the state management approach from in-memory persistence in long-lived instances to parameter-based state passing between short-lived instances. Flow state information is transformed into structured parameters (JSON objects, XML elements, YAML configurations) that can be serialized and transmitted between instances, allowing state information to persist across instance boundaries without requiring long-lived processes.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If traditional serverless computing is used for network functions, then pay-for-what-you-use pricing is achieved, but limited support for chaining functions and high packet throughput requirements are not met

Engineering Contradiction:
Improvepricing flexibilityVSAvoidfunction chaining capability
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-defining chains of serverless computing functions that process network packets through multiple processing stages. The control plane pre-configures the sequence of functions (firewall rules, NAT transformations, load balancing logic, security inspections) that will be invoked in sequence. This preliminary configuration enables complex function chaining while maintaining the pay-for-what-you-use pricing model, as the chaining logic is prepared in advance rather than dynamically assembled at runtime.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11190458B2Network functions support for serverless and granular computing environments
Publication Date: 2021.11.30 VMWARE INC
  • US11190458B2 patent drawing
  • US11190458B2 patent drawing
  • US11190458B2 patent drawing

AI summary

The disclosure provides an approach for enabling network functions to be executed in serverless computing environments. One embodiment employs a per-packet architecture, in which the trigger for launching a serverless computing instance is receipt of a packet. In such a case, each received packet is packaged into a request to invoke network function(s) required to process the packet, and a serverless computing environment in turn executes the requested network function(s) as serverless computing instance(s) that process the packet and return a response. Another embodiment employs a per-flow architecture in which the trigger for launching a serverless computing instance is receipt of a packet belonging to a new traffic flow. In such a case, a coordinator identifies (or receives notification of) a received packet that belongs to a new sub-flow and launches a serverless computing instance to process packets of the sub-flow that are redirected to the serverless computing instance.