Multicast Service Insertion for Parallel Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Service chaining in virtualization networks is inefficient due to sequential processing of packets, which is time-consuming and bandwidth-demanding, especially when packets require multiple services only to be dropped after the last service, leading to unnecessary processing.

Innovation Solution

Implementing parallel execution of service chains using multicast-based service insertion, where service machines are grouped into multicast groups, and packets are processed concurrently across these groups, with responses determining further processing or dropping.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If services are applied to packets sequentially, then processing order is maintained and control is simplified, but packet servicing time increases and bandwidth requirements increase

Engineering Contradiction:
Improvepacket servicing speedVSAvoidservice processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The service chain is segmented into multiple independent service machines that can process packets concurrently. Each service machine handles a specific service function, and packets are distributed to appropriate service machines based on the service chain requirements. This segmentation enables parallel processing while maintaining service order through coordinated communication between service machines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential one-dimensional processing to parallel multi-dimensional processing by introducing multiple service machines operating simultaneously. Packets are processed across multiple dimensions (different service machines) rather than sequentially through a single processing path, significantly reducing overall servicing time while maintaining necessary control through message passing and coordination protocols.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If all services are applied to a packet even when most will allow it but the last service drops it, then complete service chain execution is ensured, but processing efficiency decreases

Engineering Contradiction:
Improvepacket processing efficiencyVSAvoidunnecessary service processing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by having service machines evaluate packets and communicate their decisions (allow/drop/modify) to the service insertion module. When a service machine determines a packet should be dropped, this decision is communicated back upstream, allowing subsequent service machines to skip processing that packet. This preliminary evaluation and communication mechanism prevents unnecessary processing time while ensuring complete service chain execution when needed.

Inventive Principle:
Principle #10Preliminary action

3Loss of energy

If sequential service processing is used, then service order is maintained and implementation is simpler, but bandwidth consumption increases

Engineering Contradiction:
Improvebandwidth consumptionVSAvoidservice processing simplicity
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The patent merges multiple service processing paths into a coordinated parallel system. Instead of sequentially passing packets through each service machine (which consumes more bandwidth), the system combines multiple service processing operations into concurrent executions. The service insertion module coordinates these parallel operations, merging their results to produce the final service chain outcome. This merging approach reduces bandwidth consumption by eliminating redundant packet transmissions while maintaining service processing simplicity through centralized coordination.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10649805B1Parallel execution of services on packets using multicast-based service insertion
Publication Date: 2020.05.12 VMWARE INC
  • US10649805B1 patent drawing
  • US10649805B1 patent drawing
  • US10649805B1 patent drawing

AI summary

A method for a parallel execution of services, of a serial service chain, on packets using multicast-based service insertion is disclosed. In an embodiment, a method comprises detecting a packet of a data flow and storing the packet in memory. From a plurality of multicast groups, a first multicast group is identified. The first multicast group includes a plurality of service machines configured to provide a plurality of services to the data flow. The first multicast group includes all services machines of the plurality of service machines. The packet is multicast to the first multicast group of the plurality of multicast groups to cause applying, in parallel, services of service machines included in the first multicast group. Upon receiving a plurality of responses from service machines of the first multicast group, the plurality of responses is analyzed to determine whether the plurality of responses includes a modify-response. In response to determining that the plurality of responses does not include any modify-response, the plurality of responses is analyzed to determine whether the plurality of responses includes a drop-response. In response to determining that the plurality of responses does not include any drop-response, the packet is forwarded toward its destination without multicasting the packet to any other multicast group of the plurality of multicast groups.