Table-Based Abstraction Layer for Packet Forwarding Hardware Adaptability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network elements require frequent updates to both driver and application code when hardware changes occur, leading to increased development costs and time-to-market delays due to the need for debugging and adjusting software to utilize new hardware functionality.
Innovation Solution
A table-based abstraction layer is introduced between applications and packet forwarding hardware, allowing applications to interact through virtual tables that are mapped to physical tables and registers, decoupling the software from hardware changes and simplifying the API to a small set of commands (SET, GET, EVENT) that can be used to implement multiple functions without requiring changes to the application code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If driver code and application code are specifically created to translate instructions to hardware updates, then hardware functionality is properly implemented, but any hardware changes require code updates and debugging, increasing development cost and time
Solution Approach 1:
The patent introduces a hardware description file as an intermediary layer between the application code and the physical hardware. This file contains the mapping information between virtual table indices and physical hardware resources. When hardware changes occur, only the hardware description file needs to be updated, not the application or driver code, thus resolving the contradiction between hardware adaptability and software complexity
Solution Approach 2:
The patent segments the software-hardware interface into distinct layers: application code, driver code, hardware description file, and physical hardware. This segmentation allows each layer to be independently modified. The hardware description file acts as a configuration layer that can be updated without affecting the stability of the application and driver code, reducing overall system complexity while maintaining hardware adaptability
2Adaptability or versatility
If driver code is updated to implement new hardware functionality, then new features are enabled, but development time increases due to debugging requirements
Solution Approach 1:
The patent performs preliminary action by pre-defining the hardware interface through a hardware description file that maps virtual table indices to physical hardware resources. This preliminary configuration allows new hardware functionality to be integrated by simply updating the description file with new mappings, rather than requiring time-consuming code development and debugging, thus enabling functionality extensibility while minimizing development time
3Adaptability or versatility
If application code is adjusted to output instructions for new hardware functionality, then hardware capabilities are utilized, but code changes are required for every hardware modification
Solution Approach 1:
The hardware description file serves as a mediator that absorbs all hardware-specific variations. The application code interacts with virtual table indices through the driver, which consults the hardware description file to determine the actual physical hardware configuration. This allows the application code to remain unchanged while maintaining compatibility with different hardware configurations, greatly easing software maintenance
Data Source
AI summary
A table based abstraction layer is interposed between applications and the packet forwarding hardware driver layer. All behavior and configuration of packet forwarding to be implemented in the hardware layer is articulated as fields in tables of the table based abstraction layer, and the higher level application software interacts with the hardware through the creation of and insertion and deletion of elements in these tables. The structure of the tables in the abstraction layer has no direct functional meaning to the hardware, but rather the tables of the table based abstraction layer simply exist to receive data to be inserted by the applications into the forwarding hardware. Information from the tables is extracted by the packet forwarding hardware driver layer and used to populate physical offset tables that may then be installed into the registers and physical tables utilized by the hardware to perform packet forwarding operations.


