Packet Forwarder Flow Learning via Thread Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software-based packet forwarding solutions in computer networking are less efficient than hardware-based solutions due to limited hardware support for operations like lookups, encryption, and encoding/decoding, necessitating improved methods for efficient flow learning and packet forwarding.

Innovation Solution

A packet forwarder device employs a method with multiple forwarding and provisioning threads to implement architecture-independent dynamic flow learning, using an admission mechanism and data structures like buckets and operation queues to efficiently learn and manage new flows without dedicated hardware, enabling efficient flow learning and forwarding even on general-purpose processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software-based packet forwarding solutions are used, then ease of management, physical space saving, power saving, and flexibility are improved, but processing efficiency and time utilization deteriorate due to limited hardware support for operations like lookups, encryption, and encoding/decoding

Engineering Contradiction:
ImproveflexibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the packet forwarding process into distinct phases: admission control (determining whether to learn a new flow), provisioning (learning and storing flow information in data structures), and forwarding (actually forwarding packets). This segmentation allows each phase to be optimized independently, with admission control using fast hardware-supported operations and provisioning using software-based data structures, thereby maintaining flexibility while improving processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by performing admission control before actual flow learning. The admission mechanism pre-determines whether a new flow should be learned based on criteria like flow type and system state, preventing unnecessary flow learning operations and reducing the burden on software processing resources, thus improving overall processing efficiency while maintaining flexibility.

Inventive Principle:
Principle #10Preliminary action

2Speed

If dedicated hardware elements are used for packet classification and flow learning, then processing speed and time efficiency are improved, but device complexity and cost of ownership increase

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements universality by designing a software-based flow learning mechanism that can operate on general-purpose processors without requiring dedicated hardware elements. The same software framework handles multiple functions including packet classification, flow learning, and forwarding decisions, eliminating the need for separate hardware components and reducing overall device complexity while maintaining acceptable processing speeds.

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

Solution Approach 2:

The patent applies mechanics substitution by replacing dedicated hardware mechanisms with software-based algorithms and data structures. Instead of using specialized hardware circuits for flow learning, the invention uses software-implemented hash tables, trees, and other data structures to achieve the same functionality, thereby reducing hardware complexity and cost while maintaining processing efficiency through optimized software design.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If multiple threads are used for forwarding and provisioning operations, then productivity and parallel processing capability are improved, but device complexity and synchronization requirements increase

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the packet forwarding system into multiple independent threads: forwarding threads that handle packet reception and forwarding decisions, and provisioning threads that handle flow learning and data structure updates. Each thread is assigned specific responsibilities and operates independently with minimal synchronization requirements, improving parallel processing capability while managing complexity through clear functional separation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces operation queues as intermediary structures that mediate between forwarding threads and provisioning threads. Instead of direct synchronization between threads, forwarding threads submit operations to queues, and provisioning threads process these operations asynchronously. This intermediary mechanism enables efficient parallel processing while simplifying thread management by eliminating the need for complex synchronization protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3507953B1Techniques for architecture-independent dynamic flow learning in a packet forwarder
Publication Date: 2021.12.29 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • EP3507953B1 patent drawingFigure 1
  • EP3507953B1 patent drawingFigure 2
  • EP3507953B1 patent drawingFigure 3

AI summary

Exemplary techniques for architecture-independent dynamic flow learning in a packet forwarder are described. A packet forwarder includes a plurality of forwarding threads and a plurality of provisioning threads, and can implement three functional blocks to learn new flows – an admission control block, a forwarding database building block, and a notification path block. An admission control module can control the ability for forwarding threads to place flow operation requests in operation queues. Provisioning threads independently manage particular operation queues, and can update corresponding portions of a control database and a forwarding database. Flow operation notifications can be managed through notification queues, which can be drained back into the operation queues for the provisioning threads to later process. The packet forwarder thus can benefit from a highly-parallel, highly-efficient software-based approach to flow learning operations that does not require specialized hardware support.