Self-Adapting Driver for Datapath Hardware via Virtual Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvehardware adaptabilityVSAvoiddriver update time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvehardware functionality supportVSAvoiddriver development cost
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improvedata handling efficiencyVSAvoiddriver compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10084613B2Self adapting driver for controlling datapath hardware elements
Publication Date: 2018.09.25 EXTREME NETWORKS INC
  • US10084613B2 patent drawing
  • US10084613B2 patent drawing
  • US10084613B2 patent drawing

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.