Magellan Compiler Multi-Table Pipeline Synthesis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current technologies face challenges in automatically deriving, populating, and updating effective multi-table pipelines from datapath-oblivious algorithmic policies, leading to inefficient resource usage and increased complexity in SDN programming, particularly due to the lack of tools that can handle general algorithmic policies and the limitations of existing programming models that restrict expressiveness and scalability.
Innovation Solution
The Magellan system introduces a comprehensive approach that includes static and dynamic analysis, incremental computing, and explorative execution to automatically synthesize multi-table pipelines and control programs from high-level SDN programs, utilizing a compiler that generates efficient flow tables and populates them proactively, supporting both OpenFlow and P4 switches with cross-platform portability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If automated methods are used to implement high-level programming languages for networking, then programming productivity is improved, but the generated flow tables use excessive switch resources
Solution Approach 1:
The patent divides the flow table into multiple tables (first flow table and second flow table) with distinct functions. The first table handles initial packet processing and the second table handles subsequent processing, allowing each table to be optimized independently and reducing the overall resource consumption compared to a single large table.
Solution Approach 2:
The patent introduces a multi-dimensional table structure where flow tables are organized not just by single criteria but by multiple criteria dimensions. This allows for more efficient packet classification and reduces the number of entries needed in each table by leveraging hierarchical organization.
2Quantity of substance
If multi-table pipelining is introduced to reduce datapath table sizes, then switch resource usage is improved, but programming complexity increases due to additional tasks in designing and populating pipelines
Solution Approach 1:
The patent introduces a compiler as an intermediary tool that automatically translates high-level programming language into multi-table pipeline configurations. This mediator handles the complex tasks of pipeline design, population, and update, shielding programmers from the underlying complexity while enabling them to write simple high-level code.
Solution Approach 2:
The patent replaces manual mechanical configuration of flow tables with automated computational processes. The compiler system automatically generates pipeline designs and populates tables based on high-level program semantics, eliminating the need for programmers to manually configure complex multi-table structures.
3Ease of manufacture
If existing programming models are used for packet processing, then implementation is simplified, but expressiveness and scalability are limited
Solution Approach 1:
The patent creates a universal programming model that can express a wide range of packet processing functions through a single high-level language. The language is designed to be universally applicable across different network scenarios and can be compiled to multiple target architectures (OpenFlow, P4), providing both simplicity and broad expressiveness.
Data Source
AI summary
The invention pertains to a method of implementing packet-processing devices on multi-table datapath processors, comprising of a high-level, Turing-complete programming language that permits programmers to express time-invariant or time-variant packet-processing behavior using general-purpose programming languages, suitable compilation and analysis methods to transform a given input program into a datapath design, and a runtime control program to be executed on a general-purpose processor which can communicate with a configurable datapath element and which configures the datapath element according to the compiled datapath design and which implements appropriate dynamic control (e.g. flow table population) for the configured datapath element.


