Network Interface Packet Flow Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network interface devices face performance degradation due to uneven CPU utilization when handling a mix of long-lived high-traffic and short-lived low-traffic TCP connections, leading to congestion and inefficiencies in packet processing.

Innovation Solution

Implementing a system that identifies heavy flows (elephant flows) and allocates them to specific queues and cores for processing, using a single filter rule to route packets and employing techniques like Receive Side Scaling (RSS) and Adaptive Interrupt Moderation (AIM) to manage both heavy and non-heavy flows, allowing for dynamic re-allocation based on traffic conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single CPU is allocated to process traffic, then the system is simple to manage, but the network performance degrades when faced with large amounts of traffic

Engineering Contradiction:
ImproveCPU allocation complexityVSAvoidpacket processing throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the packet processing workload by dividing traffic into different queues (e.g., high-priority and low-priority queues) and allocating different CPUs to process different queues. This segmentation allows multiple CPUs to handle traffic simultaneously, improving throughput while maintaining manageable complexity through structured queue-CPU mapping.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a queue dimension between network traffic and CPU processing. Instead of directly mapping traffic to CPUs, it creates an intermediate queue layer that adds a dimensional separation, allowing traffic to be classified, prioritized, and distributed across multiple CPUs based on queue assignments rather than direct CPU binding.

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

2Productivity

If traffic is spread to multiple CPUs using traditional load balancing, then packet processing capacity increases, but flow order may be disrupted and processing efficiency decreases

Engineering Contradiction:
Improvepacket processing capacityVSAvoidflow packet order integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments flows into different queues based on their characteristics (e.g., high-priority real-time traffic vs. low-priority bulk traffic). Each queue is then assigned to specific CPUs, ensuring that packets within the same flow remain in the same queue and are processed in order by the assigned CPU, maintaining flow integrity while distributing load across multiple CPUs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different quality attributes to different queues, with high-priority queues receiving dedicated CPU resources and guaranteed processing order, while low-priority queues can share CPU resources. This local differentiation ensures that critical flows maintain strict ordering and timing requirements while less critical flows benefit from shared resource efficiency.

Inventive Principle:
Principle #3Local quality

3Reliability

If dedicated CPUs are assigned to specific flows, then packet processing order is maintained, but CPU utilization becomes uneven and congestion occurs

Engineering Contradiction:
Improvepacket processing orderVSAvoidCPU utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic queue-to-CPU mapping where the assignment of queues to CPUs can change based on current system conditions and traffic patterns. When a CPU becomes congested or idle, the system can dynamically reassign queues to different CPUs, maintaining packet order within each queue while optimizing overall CPU utilization and preventing congestion hotspots.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent makes CPUs universal by allowing any CPU to process any queue based on current system state, rather than dedicating specific CPUs to specific queues permanently. This multi-functionality enables flexible load distribution where CPUs can adapt their roles based on traffic demands, maintaining flow order through queue-based processing while achieving balanced utilization across all CPUs.

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

Data Source

PatentEP3672172B1Allocation of processors for processing packets
Publication Date: 2023.12.20 INTEL CORP
  • EP3672172B1 patent drawingFigure 1
  • EP3672172B1 patent drawingFigure 2A
  • EP3672172B1 patent drawingFigure 2B

AI summary

Examples described herein identify a flow that is considered heavy or high in transmit or receive rate. A filter rule can be assigned to the flow such that packets of the heavy flow are allocated to a queue and core for processing. Various queues and cores can be dedicated to processing received or transmitted packets of heavy flows and various queues and cores can be dedicated to process received or transmitted packets of non-heavy flows. An application acceleration layer can be used to migrate an application to a core that is to process received or transmitted packets of a heavy flow.