Multi-layer SDN Flow Table Segmentation for Packet Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In existing Software Defined Networking (SDN) switches, storing and matching flow tables can be inefficient, especially with large tables, as each packet requires traversal of all entries, leading to low forwarding efficiency.

Innovation Solution

The flow table is divided into multi-layer tables based on classes, where each layer corresponds to a specific data structure such as Radix trees, Hash tables, or Access Control Lists, allowing for sequential searching and matching, reducing the need to traverse the entire table for packet forwarding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a large flow table is used to store all flow entries, then the completeness of packet forwarding rules is improved, but the time required to traverse and match all entries increases significantly

Engineering Contradiction:
Improvecompleteness of packet forwarding rulesVSAvoidpacket forwarding time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides a large flow table into multiple sub-flow tables based on flow table entry attributes (such as matching fields or priority levels). Each sub-flow table stores a portion of the flow entries, allowing the switching device to search within a smaller subset rather than traversing the entire large flow table, thus reducing matching time while maintaining completeness of forwarding rules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the flow table structure by organizing sub-flow tables in layers. The switching device can first perform coarse-grained matching at the sub-flow table level, then proceed to fine-grained matching within specific subtables. This multi-dimensional organization transforms a single large linear search into a structured hierarchical search, significantly improving matching efficiency.

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

2Reliability

If all flow table entries are traversed sequentially, then no matching entry is missed, but the forwarding efficiency decreases with large tables

Engineering Contradiction:
Improveaccuracy of flow table matchingVSAvoidpacket forwarding efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the flow table into multiple sub-flow tables, the patent enables the switching device to limit the search scope to relevant subtables based on packet characteristics. This segmentation maintains matching accuracy by ensuring all relevant entries are covered while improving efficiency by avoiding unnecessary traversal of unrelated entries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary classification of flow entries into different sub-flow tables based on their attributes before packet arrival. This preliminary organization allows the switching device to quickly identify which subtables contain relevant matching entries, eliminating the need to traverse the entire flow table and thereby improving forwarding efficiency without sacrificing matching accuracy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10003533B2SDN packet forwarding
Publication Date: 2018.06.19 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10003533B2 patent drawing
  • US10003533B2 patent drawing
  • US10003533B2 patent drawing

AI summary

A method for forwarding a Software Defined Networking (SDN) packet, applied in a data forwarding device in a SDN network, comprising: dividing a flow table with a plurality of flow table entries according to a class in advance, and obtaining multi-layer flow tables serial in sequence; wherein each layer of flow table corresponds to a class of flow table; and receiving a SDN packet, searching each layer of flow table in sequence according to a precedence order of the multi-layer flow tables, or directly pointing to a specified flow table to search a matched flow table entry, and processing the SDN packet.