Self-Adapting Driver for Datapath Hardware via Virtual Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network element drivers require frequent updates and debugging whenever changes are made to datapath hardware, leading to increased development costs and time-to-market issues due to the need for updating driver code to accommodate new hardware functionalities or changes in data storage formats.
Innovation Solution
A self-adapting driver system utilizing a generic driver and configuration library to map virtual tables to physical tables, allowing changes to be implemented by updating the configuration library rather than the driver code, enabling automatic adaptation to new hardware environments without modifying the generic driver.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the driver code is updated to accommodate new hardware functionalities or changes in data storage formats, then the hardware can be enhanced with new features, but the development cost and time-to-market increase due to frequent driver updates and debugging
Solution Approach 1:
The driver is segmented into a generic driver component and a configuration library component. The configuration library contains hardware-specific mappings and data structures, while the generic driver provides universal functionality. This segmentation allows hardware changes to be isolated to the configuration library without requiring modifications to the generic driver code, thereby reducing driver update time while maintaining hardware adaptability.
Solution Approach 2:
A configuration library is introduced as an intermediary layer between the generic driver and the hardware. This configuration library contains hardware-specific data structures, mappings, and translation layers that enable the generic driver to work with different hardware implementations without requiring driver code changes. The intermediary absorbs the impact of hardware changes, preventing them from propagating to the generic driver.
2Adaptability or versatility
If the driver code is updated to accommodate new hardware functionalities, then new hardware features can be supported, but development costs increase due to debugging and testing requirements
Solution Approach 1:
By segmenting the driver system into a reusable generic driver and a hardware-specific configuration library, the invention reduces driver development cost. The generic driver can be developed once and reused across multiple hardware platforms, while hardware-specific changes are confined to the configuration library which requires minimal debugging and testing compared to full driver updates.
Solution Approach 2:
The generic driver is designed with universal functionality that can work with multiple hardware implementations. This universality is achieved by abstracting hardware-specific details into the configuration library, allowing a single generic driver codebase to support multiple hardware platforms without requiring separate driver versions, thereby reducing overall development costs.
3Productivity
If hardware elements are changed to improve performance or add functionality, then the network element can handle traffic more efficiently, but the driver must be updated to maintain compatibility
Solution Approach 1:
The configuration library serves as an intermediary that maintains driver compatibility while enabling hardware changes. It contains translation layers and data structure mappings that allow the generic driver to communicate with updated hardware elements without requiring driver code modifications. This intermediary absorbs compatibility requirements, allowing hardware to evolve while maintaining driver stability.
Solution Approach 2:
The configuration library is designed to be dynamic and adaptable to hardware changes. It can be easily modified to reflect new hardware functionalities, data formats, or performance optimizations without affecting the generic driver. This dynamic configuration approach enables hardware to be updated for improved productivity while the driver maintains its compatibility through the flexible configuration layer.
Data Source
AI summary
A self adapting driver for controlling datapath hardware elements uses a generic driver and a configuration library to create a set of data structures and methods to map information provided by applications to physical tables. A set of virtual tables is implemented as an interface between the applications and the generic driver. The generic driver uses the configuration library to determine a mapping from the virtual tables to the physical tables. A virtual table schema definition is parsed to create the configuration library, such that changes to the physical infrastructure may be implemented as changes to the virtual table schema definition without adjusting the driver code. Thus automatically generated creation of generic packet forwarding drivers is able to be implemented through the use of a configuration language that defines the meaning of the information stored in the virtual tables.


