Batching Non-Matching Packets in SDN Forwarding Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In OpenFlow protocol-based SDN networks, the forwarding plane device needs to send non-matching data packets to the control plane device one by one when its buffer reaches capacity, leading to increased overheads in the link between the two devices.

Innovation Solution

A second buffer is added to the forwarding plane device to store non-matching data packets, which are sent to the control plane device in batches once the second buffer reaches capacity, reducing the frequency of data packet transmissions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data packets are sent one by one to the control plane device when the buffer reaches capacity, then the buffer capacity constraint is satisfied, but the link overheads increase

Engineering Contradiction:
Improvebuffer capacityVSAvoidlink overheads
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

Multiple individual data packet transmissions are merged into a single batch transmission. When the first buffer reaches capacity, multiple unmatched data packets are collected and sent together to the control plane device in one operation, rather than sending them individually, thereby reducing link overheads while satisfying buffer capacity constraints

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Data packets are preliminarily collected and buffered in the second buffer before being sent to the control plane device. This preliminary buffering allows the system to accumulate multiple packets and transmit them in batches, reducing the frequency of transmissions and lowering link overheads

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If a second buffer is added to batch data packets, then the link overheads are reduced, but the device complexity increases

Engineering Contradiction:
Improvelink overheadsVSAvoidbuffer structure
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The buffering function is segmented into two distinct buffers with different purposes: the first buffer (with cache queues) handles matched data packets and flow table operations, while the second buffer handles unmatched data packets for batch transmission. This segmentation allows each buffer to be optimized for its specific function, managing complexity through functional separation

Inventive Principle:
Principle #1Segmentation

3Productivity

If data packets are buffered in batches, then the transmission frequency is reduced, but the data packet processing time increases

Engineering Contradiction:
Improvetransmission efficiencyVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system dynamically determines when to transmit data packets based on buffer capacity conditions. Transmission occurs when the first buffer reaches capacity or when specific flow table operations are completed, allowing the system to adapt transmission timing to actual processing needs, balancing batch efficiency with processing speed

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11483261B2Data packet processing method and apparatus, and device
Publication Date: 2022.10.25 HUAWEI TECH CO LTD
  • US11483261B2 patent drawing
  • US11483261B2 patent drawing
  • US11483261B2 patent drawing

AI summary

Embodiments of the present invention disclose a data packet processing method and apparatus, and a device. The method includes: if a first data packet is received, determining a first cache queue that is in the first buffer and that is used to store the first data packet; buffering the first data packet in the second buffer if a state of the first cache queue is an invalid state, where a data amount of the first data packet is less than the capacity of the second buffer, and the state of the first cache queue is set to the invalid state when a current data amount of the first buffer reaches the capacity of the first buffer; and if a data amount of the second buffer reaches the capacity of the second buffer, sending all data packets that are in the second buffer to a control plane device.