IP Library Granted Patent US 10,015,048
Granted Patent B2
US 10,015,048 · App. 14/583,664 · Granted Jul 3, 2018

Programmable protocol parser for NIC classification and queue assignments

Inventors: Iosif Gasparakis (Tigard, OR); Ronen Chayat (Haifa, IL); John Fastabend (Hillsboro, OR)
Assignee: Intel Corporation
H04L41/082H04L67/04H04L67/34
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,015,048
App. No.
14/583,664
Granted
Jul 3, 2018
Kind
B2
Abstract

Technologies for controlling operation of a compute node coupled to a computer network via a computing device that includes communications for communicating with the computer network and persistent instructions such as firmware for providing control functions to the computing device, wherein the control functions being defined at least in part 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 comprising 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.

Claims (43)

1. A compute node coupled to a computer network, the compute node comprising:

a network interface controller that is different from a processor of the compute node, wherein the network interface controller includes a memory having stored therein persistent instructions that provide control functions to the network interface controller, wherein the control functions implement, at least in part, a protocol;

wherein the network interface controller is to:

parse packets received by the network interface controller using the persistent instructions;

receive update data from a remote node in the computer network, wherein the update data includes protocol descriptors that define a new protocol;

determine, in response to a receipt of the update data and for each protocol descriptor, whether a protocol descriptor of the protocol descriptors exists in a database;

determine, in response to a determination that the protocol descriptor does not exist in the database, whether the protocol descriptor defines a protocol exception action;

perform, in response to a determination that the protocol exception action is defined, the protocol exception action;

determine, in response to a determination that the protocol exception action is not defined, whether the protocol descriptor is valid;

compile, in response to a determination that the protocol descriptor exists in the database and without a reset of the network interface controller, the update data to generate new persistent instructions for implementing the new protocol;

transmit, in response to a determination that the update data was successfully compiled, an acknowledgment to the remote node, the acknowledgement includes an identifier that identifies the new protocol implemented by the new persistent instructions; and

parse subsequent packets received by the network interface controller using the new persistent instructions.

2. The compute node of claim 1 , wherein the updated data further comprises a protocol specification language data relating to the persistent instructions.

3. The compute node of claim 1 , wherein the updated data further comprises a parse graph.

4. The compute node of claim 3 , wherein the updated data further comprises one of networking device-specific microcode and register parameters.

5. The compute node of claim 4 , wherein the network interface controller is further to parse the update data using protocol field extraction and packet type identification.

6. The compute node of claim 1 , wherein the network interface controller is further to parse the update data using the protocol descriptors.

7. The compute node of claim 1 , the network interface controller is further to receive rules for the control functions, wherein the network interface controller comprises at least one classifier switch and filter.

8. One or more non-transitory, computer-readable storage media for controlling operation of a compute node coupled to a computer network via a network interface controller, the computer-readable storage media comprising a plurality of instructions stored thereon that in response to being executed cause the network interface controller to:

provide, by the network interface controller, control functions to the network interface controller via persistent instructions, wherein the control functions implement, at least in part, a protocol;

parse, by the network interface controller, packets received by the network interface controller using the persistent instructions stored in a memory of the network interface controller;

receive, by the network interface controller, update data from a remote node in the computer network, the update data includes protocol descriptors that define a new protocol;

determine, in response to a receipt of the update data and for each protocol descriptor and by the network interface controller, whether a protocol descriptor of the protocol descriptors exists in a database;

determine, in response to a determination that the protocol descriptor does not exist in the database and by the network interface controller, whether the protocol descriptor defines a protocol exception action;

perform, in response to a determination that the protocol exception action is defined and by the network interface controller, the protocol exception action;

determine, in response to a determination that the protocol exception action is not defined and by the network interface controller, whether the protocol descriptor is valid;

compile, in response to a determination that the protocol descriptor exists in the database and by the network interface controller and without a reset of the network interface controller, the update data to generate new persistent instructions for implementing the new protocol;

transmit, in response to a determination that the update data was successfully compiled, an acknowledgment to the remote node, wherein the acknowledgement includes an identifier that identifies the new protocol implemented by the new persistent instructions; and

parse, by the network interface controller, subsequent packets received by the network interface controller using the new persistent instructions.

9. The one or more non-transitory, computer-readable storage media of claim 8 , wherein to receive the update data comprises to receive update data comprising new protocol data for the persistent instructions, the new protocol data comprising a protocol specification language data relating to the persistent instructions.

10. The one or more non-transitory, computer-readable storage media of claim 8 , wherein to receive update data comprises to receive update data comprising a parse graph.

11. The one or more non-transitory, computer-readable storage media of claim 8 , wherein the update data is parsed by the network interface controller using the protocol descriptors.

12. A compute node coupled to a computer network, the compute node comprising a network interface controller that is different from a processor of the compute node, the network interface controller including:

means for storing persistent instructions that provide control functions to the network interface controller, wherein the control functions implement, at least in part, a protocol;

means for parsing packets received by the network interface controller using the persistent instructions stored in a memory of the network interface controller;

means for receiving update data from a remote node in the computer network, the update data including protocol descriptors that define a new protocol;

means for determining, in response to a receipt of the update data and for each protocol descriptor, whether a protocol descriptor of the protocol descriptors exists in a database;

means for determining, in response to a determination that the protocol descriptor does not exist in the database, whether the protocol descriptor defines a protocol exception action;

means for performing, in response to a determination that the protocol exception action is defined, the protocol exception action;

means for determining, in response to a determination that the protocol exception action is not defined, whether the protocol descriptor is valid;

means for compiling, in response to a determination that the protocol descriptor exists in the database and without a reset of the network interface controller, the update data to generate new persistent instructions for implementing the new protocol;

means for transmitting, in response to a determination that the update data was successfully compiled, an acknowledgment to the remote node, wherein the acknowledgement includes an identifier that identifies the new protocol implemented by the new persistent instructions; and

means for parsing subsequent packets received by the network interface controller using the new persistent instructions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2015
From: GASPARAKIS, IOSIF; CHAYAT, RONEN; FASTABEND, JOHN
To: INTEL CORPORATION
Reel/Frame 037101/0371 →
Continuity (1)
Related Publication 20160191306A1 · Jun 30, 2016
Cited By (7)
US 12,255,835 US 12,375,588 US 12,381,962 US 12,407,564 US 12,445,542 US 12,457,172 US 12,634,199