Programmable NIC Protocol Parsing for Dynamic Queue Assignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current NICs lack the ability to efficiently define new protocols, packet types, and queue assignments, limiting their flexibility and usability in modern computing environments, particularly in software-defined networking (SDN), due to fixed microcode configurations.
Innovation Solution
Implementing a programmable protocol parser and compiler in the NIC that allows real-time updates and configuration of protocol descriptors and parse graphs, enabling user-defined protocols and queue assignments without requiring a reset, facilitated by a centralized SDN controller or system administration tool.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If pre-defined fixed packet types and offsets are used in microcode, then NIC classification is stable and reliable, but the NIC cannot accommodate new or updated target applications
Solution Approach 1:
The patent implements a programmable protocol parser that allows the NIC to dynamically adapt its packet classification behavior. Instead of fixed microcode, the system uses configurable packet type identifiers and offset values that can be programmed to match different protocol formats. This enables the NIC to handle new and updated applications without hardware redesign, resolving the contradiction between adaptability and complexity by making the classification mechanism reconfigurable rather than static.
Solution Approach 2:
The invention changes the parameters of packet classification from fixed microcode values to programmable parameters. The packet type identifier field and offset values are configured based on the specific protocol being parsed, allowing the same hardware to adapt to different protocols by changing these parameters. This approach maintains hardware simplicity while achieving versatility through parameter reconfiguration.
2Ease of operation
If standard NIC architecture is used, then device simplicity is maintained, but user flexibility to define new protocols and queue assignments is limited
Solution Approach 1:
The patent creates a universal NIC architecture that can perform multiple protocol classification functions through a single programmable parser. The same hardware structure handles different protocols by configuring the packet type identifier and offset parameters differently. This multi-functionality approach allows users to define custom protocols and queue assignments without adding separate dedicated hardware for each protocol, maintaining ease of operation while managing device complexity.
3Adaptability or versatility
If protocol parsing is performed without programmability, then processing speed is maintained, but new protocols cannot be registered on-the-fly
Solution Approach 1:
The patent implements preliminary configuration of packet type identifiers and offset values in register structures that can be quickly reprogrammed. Instead of requiring full NIC resets for protocol updates, the system pre-structures the parser configuration in accessible registers that can be updated in-place. This preliminary structuring enables on-the-fly protocol registration without time-consuming resets, achieving both adaptability and time efficiency.
Data Source
AI summary
A compute node coupled to a computer network via a computing device that includes communications for communicating with the computer network and persistent instructions for providing control functions to the computing device, wherein the control functions are defined by protocol data. An update control module of the computing device may receive update data from a remote node in the computer network via the communications, wherein the update data includes new protocol data for the persistent instructions. A protocol parser module may parse the update data and generate metadata relating to the update data. A classifier module may receive rules for the control functions, wherein the rules are based at least in part on the update data and metadata. A compiler may compile the parsed update data to the persistent instructions for providing new control functions to the computing device based at least in part on the received rules.


