Virtual Router Packet Aggregation for Cloud Data Center Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual network technologies face challenges in optimizing the operation of virtual routers in cloud data centers, including bandwidth reduction due to excessive packet processing and latency from slow-path processing for initial packets of new flows.

Innovation Solution

Implementing a virtual router that aggregates multiple tunneled packets using a kernel-based offload engine, such as the Generic Receive Offload (GRO) routine, and proactively adding flow table entries for reverse flows to enable fast-path processing, while distributing packet processing across multiple processor cores using receive packet steering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple tunneled packets are processed separately by the virtual router, then each packet can be handled individually with full routing logic, but the processing overhead increases and bandwidth efficiency decreases

Engineering Contradiction:
Improvevirtual router bandwidthVSAvoidpacket processing overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple tunneled packets into a single aggregated packet by combining their payloads while maintaining a single outer header. This merging occurs at the virtual router level, where packets from the same flow (identified by matching outer header fields) are buffered and combined before being forwarded to the destination. This reduces the number of individual packet processing operations required, thereby improving bandwidth efficiency and reducing processing overhead.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary aggregation of tunnel packets before they reach the virtual router's full processing pipeline. By pre-combining packets at the network interface or buffer level based on flow identification, the system performs useful work in advance that reduces the burden on the virtual router. This preliminary action allows the virtual router to process fewer, larger aggregated packets rather than many small individual packets.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If flow table entries are added dynamically for new flows, then routing accuracy is maintained, but initial packets of new flows experience latency due to slow-path processing

Engineering Contradiction:
Improverouting accuracyVSAvoidinitial packet latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent proactively adds flow table entries for reverse flows before actual traffic in those directions is observed. When a flow is detected from host A to host B, the system pre-populates the flow table with an entry for the reverse direction (host B to host A). This preliminary action ensures that subsequent reverse-flow packets can be processed immediately via fast-path routing without waiting for dynamic table population, thereby eliminating initial packet latency while maintaining routing accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a dynamic flow table management system that automatically adapts to traffic patterns. The system monitors packet flows and dynamically adds, updates, and removes flow table entries based on observed traffic. This dynamic approach allows the system to optimize for both accuracy (by maintaining up-to-date flow information) and speed (by having entries ready before needed). The flow table evolves with traffic patterns, balancing reliability and latency requirements.

Inventive Principle:
Principle #15Dynamics

3Productivity

If packet processing is centralized on a single processor core, then implementation is simpler, but processing capacity is limited and throughput decreases

Engineering Contradiction:
Improvepacket processing capacityVSAvoiddistributed processing architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments packet processing across multiple processor cores by distributing different packet flows to different cores based on hash functions or other load-balancing criteria. Instead of having a single core handle all packets sequentially, the system divides the processing workload into parallel segments that can be executed simultaneously on multiple cores. This segmentation increases overall processing capacity while maintaining manageable complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a multi-functional processing architecture where each processor core can handle multiple different packet flows and virtual network types. Rather than dedicating specific cores to specific functions, the system designs each core to be universally capable of processing various packet types through standardized interfaces and data structures. This multi-functionality maximizes utilization of processing resources while simplifying load distribution.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9942148B1Tunneled packet aggregation for virtual networks
Publication Date: 2018.04.10 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9942148B1 patent drawing
  • US9942148B1 patent drawing
  • US9942148B1 patent drawing

AI summary

In general, techniques are described for enhancing operations of virtual networks. In some examples, a network system includes a plurality of servers interconnected by a switch fabric comprising a plurality of switches interconnected to form a physical network. Each of the servers comprises an operating environment executing one or more virtual machines in communication via one or more virtual networks. The servers comprise a set of virtual routers configured to extend the virtual networks to the operating environments of the virtual machines. A virtual router of the set of virtual routers is configured to aggregate a plurality of inbound tunnel packets according to a same virtual network identifier in order to generate an aggregate tunnel packet. The virtual router is further configured to route the aggregate tunnel packet to a host associated with a virtual network identified by the same virtual network identifier.