US2019044809A1PendingUtilityA1

Technologies for managing a flexible host interface of a network interface controller

Assignee: INTEL CORPPriority: Aug 30, 2017Filed: Dec 6, 2017Published: Feb 7, 2019
Est. expiryAug 30, 2037(~11.1 yrs left)· nominal 20-yr term from priority
G06F 9/4401G06F 30/34G06F 12/0607H04L 45/7453G06F 3/0605G06F 16/2455G06F 16/25G06F 13/1668G06F 12/06G06F 3/0631H04L 49/9005G06F 13/4068G06F 2209/509G06F 3/0611G06F 3/0683G06F 2212/601G06F 9/5088G06F 3/065G06F 16/248G06F 3/0647G06F 16/2365G06F 3/0659G06F 2212/1044G06F 16/2453G06F 3/0685G06F 16/24553H04L 69/12G06F 16/9014H04L 9/0894G06F 12/14G06F 16/2237G06F 12/1063G06F 3/0604G11C 29/44G06F 16/2282H04L 49/351G06F 13/42G06F 3/0629G06F 16/221G06F 9/4494G06F 3/0644G06F 12/0802G06F 9/445G06F 9/28G06F 15/17331G06F 9/4406H04L 41/0668G06F 9/4411H04L 49/30H04L 47/125H04L 69/22G06F 3/0613G06F 13/1663G06F 2212/1052G06F 16/119H04L 47/11G06F 15/161G06F 3/0673G06F 16/2255H04L 41/0677G06F 3/0632G06F 3/067H04L 45/28G06F 12/023G11C 29/028G11C 29/38G11C 29/36G06F 2213/0064H04L 41/0213G06F 2201/85G06F 12/1054G11C 8/12H04L 41/0893H04L 69/321H04L 69/32H04L 41/14H04L 41/0896H04L 9/0819H04L 47/83H04L 43/20H04L 41/149H04L 41/0895H04L 41/40H04L 41/34H04L 69/18G06F 2209/5019G06F 9/5055G06F 9/5022G06F 9/5044H04L 67/1001Y02D10/00G06F 2201/885G06F 2201/86G06F 11/3466G06F 11/3442G06F 11/3006G06F 11/3409H05K 7/1498H04L 43/0876H04L 43/065H04L 41/0816H04L 41/044G06N 3/063H04L 43/16H04L 41/5019H04L 41/5025H04L 49/40G06Q 30/0283G06Q 10/0631G06F 21/105G06F 13/4022G06F 9/5061G06F 9/4856G06F 9/44H05K 7/20736H05K 7/20209H05K 7/18H05K 7/1489H04L 67/1008H04L 63/0428G06F 2200/201G06F 15/7867G06F 9/505G06F 2213/3808G06F 2213/0026G06F 15/1735H04L 47/781H04L 41/16H04L 41/142G06F 3/0665G06F 15/173H04Q 11/0062H04Q 11/0005
69
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Technologies for processing network packets by a host interface of a network interface controller (NIC) of a compute device. The host interface is configured to retrieve, by a symmetric multi-purpose (SMP) array of the host interface, a message from a message queue of the host interface and process, by a processor core of a plurality of processor cores of the SMP array, the message to identify a long-latency operation to be performed on at least a portion of a network packet associated with the message. The host interface is further configured to generate another message which includes an indication of the identified long-latency operation and a next step to be performed upon completion. Additionally, the host interface is configured to transmit the other message to a corresponding hardware unit scheduler as a function of the subsequent long-latency operation to be performed. Other embodiments are described herein.

Claims

exact text as granted — not AI-modified
1 . A compute device for processing network packets, the compute device comprising:
 a compute engine having one or more processors and a memory; and   a network interface controller (NIC) having a host interface, wherein the NIC is to:
 retrieve, by a symmetric multi-purpose (SMP) array of the host interface, a message from a message queue of the host interface; 
 process, by a processor core of a plurality of processor cores of the SMP array, the message to identify a long-latency operation to be performed on at least a portion of a network packet associated with the message; 
 generate, by the processor core and in response to having identified the long-latency operation to be performed, another message which includes an indication of the long-latency operation to be performed and a next step to be performed upon completion of the long-latency operation; and 
 transmit, by the processor core, the other message to a corresponding hardware unit scheduler of the host interface as a function of the long-latency operation to be performed. 
   
     
     
         2 . The compute device of  claim 1 , wherein the NIC is further to:
 generate, by the processor core and in response to having identified that no long-latency operations are to be performed based on the processing of the message, a release message which indicates the network packet can be released to one of the one or more processors or a network interface of the NIC; and   transmit, by the processor core, the release message to a memory fabric interface of a memory fabric of the NIC.   
     
     
         3 . The compute device of  claim 1 , wherein the NIC is further to:
 retrieve, by a job manager of the host interface, an index of a descriptor in a descriptor table stored by a processor of the one or more processors at a location in the memory, wherein the descriptor includes information corresponding to a network packet;   forward, by the job manager, a first message to the symmetric multi-purpose (SMP) array of the host interface, wherein the first message includes the index of the descriptor;   process, by a first processor core of the plurality of processor cores of the SMP array, the first message to identify the index of the descriptor;   generate, by the first processor core, a second message that indicates to perform a fetch operation to retrieve the descriptor based on the index of the descriptor and includes an indication that the retrieved descriptor is to be processed upon retrieval; and   forward, by the first processor core, the second message to a direct memory access (DMA) engine of the host interface.   
     
     
         4 . The compute device of  claim 3 , wherein the NIC is further to:
 process, by the DMA engine, the second message to identify a DMA fetch operation to be performed, wherein the DMA fetch operation to be performed comprises to fetch the descriptor via DMA;   perform, by the DMA engine, the identified DMA fetch operation;   generate, by the DMA engine, a third message which includes the descriptor retrieved as a result of the DMA fetch operation, wherein the third message includes a location of the descriptor in a buffer memory of the host interface and the indication that the retrieved descriptor is to be processed; and   forward, by the DMA engine, the third message to the SMP array.   
     
     
         5 . The compute device of  claim 3 , wherein to forward the first message to the SMP array comprises to enqueue the message in a descriptor queue accessible by the SMP array. 
     
     
         6 . The compute device of  claim 3 , wherein to retrieve the index of the descriptor comprises to retrieve the index of the descriptor from a descriptor ring stored in a cache memory of the compute engine. 
     
     
         7 . The compute device of  claim 6 , wherein the NIC is further to:
 receive, by the job manager, an authorized traffic limit from a traffic manager of the NIC, wherein the authorized traffic limit indicates an amount of network traffic the job manager is allowed to process upon receipt;   retrieve, by the job manager, a next descriptor from the descriptor table;   interpret, by the job manager, the next descriptor to determine the amount of network traffic associated with the next descriptor;   determine, by the job manager, whether the authorized traffic limit would be exceeded if the network traffic associated with the next descriptor were to be processed as a function of the amount of network traffic associated with the next descriptor and the authorized traffic limit; and   return, by the job manager and subsequent to having determined that the authorized traffic limit would be exceeded, the descriptor to the descriptor table.   
     
     
         8 . The compute device of  claim 7 , wherein the NIC is further to:
 decrease, by the job manager and subsequent to having determined that the authorized traffic limit would not be exceeded, the authorized traffic limit by the amount of network traffic associated with the next descriptor;   generate, by the job manager, a fourth message that includes information usable to locate the descriptor; and   insert, by the job manager, the message into a descriptor queue accessible by the SMP array.   
     
     
         9 . The compute device of  claim 1 , wherein to identify the long-latency operation comprises to identify a direct memory access (DMA) fetch operation. 
     
     
         10 . The compute device of  claim 1 , wherein the NIC is further to:
 receive, by an event logic unit of the host interface, an event notification; and   build, by the event logic unit, a data structure as a function of a network protocol associated with the event notification, wherein the data structure includes information about the event notification usable by at least one of the plurality of processor cores of the SMP array to process the event notification.   
     
     
         11 . The compute device of  claim 10 , wherein to receive the event notification comprises to receive the event notification which indicates one of a signaling event, a memory-mapped input/output event, or a host fabric interface event. 
     
     
         12 . One or more machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a compute device to:
 retrieve, by a symmetric multi-purpose (SMP) array of a host interface of a network interface controller (NIC) of the compute device, a message from a message queue of the host interface;   process, by a processor core of a plurality of processor cores of the SMP array, the message to identify a long-latency operation to be performed on at least a portion of a network packet associated with the message;   generate, by the processor core and in response to having identified the long-latency operation to be performed, another message which includes an indication of the long-latency operation to be performed and a next step to be performed upon completion of the long-latency operation; and   transmit, by the processor core, the other message to a corresponding hardware unit scheduler of the host interface as a function of the long-latency operation to be performed.   
     
     
         13 . The one or more machine-readable storage media of  claim 12 , wherein the plurality of instructions further cause the compute device to:
 generate, by the processor core and in response to having identified that no long-latency operations are to be performed based on the processing of the message, a release message which indicates the network packet can be released to one of the one or more processors or a network interface of the NIC; and   transmit, by the processor core, the release message to a memory fabric interface of a memory fabric of the NIC.   
     
     
         14 . The one or more machine-readable storage media of  claim 12 , wherein the plurality of instructions further cause the compute device to:
 retrieve, by a job manager of the host interface, an index of a descriptor in a descriptor table stored by a processor of the one or more processors at a location in the memory, wherein the descriptor includes information corresponding to a network packet;   forward, by the job manager, a first message to the symmetric multi-purpose (SMP) array of the host interface, wherein the first message includes the index of the descriptor;   process, by a first processor core of the plurality of processor cores of the SMP array, the first message to identify the index of the descriptor;   generate, by the first processor core, a second message that indicates to perform a fetch operation to retrieve the descriptor based on the index of the descriptor and includes an indication that the retrieved descriptor is to be processed upon retrieval; and   forward, by the first processor core, the second message to a direct memory access (DMA) engine of the host interface.   
     
     
         15 . The one or more machine-readable storage media of  claim 14 , wherein the plurality of instructions further cause the compute device to:
 process, by the DMA engine, the second message to identify a DMA fetch operation to be performed, wherein the DMA fetch operation to be performed comprises to fetch the descriptor via DMA;   perform, by the DMA engine, the identified DMA fetch operation;   generate, by the DMA engine, a third message which includes the descriptor retrieved as a result of the DMA fetch operation, wherein the third message includes a location of the descriptor in a buffer memory of the host interface and the indication that the retrieved descriptor is to be processed; and   forward, by the DMA engine, the third message to the SMP array.   
     
     
         16 . The one or more machine-readable storage media of  claim 14 , wherein to forward the first message to the SMP array comprises to enqueue the message in a descriptor queue accessible by the SMP array. 
     
     
         17 . The one or more machine-readable storage media of  claim 14 , wherein to retrieve the index of the descriptor comprises to retrieve the index of the descriptor from a descriptor ring stored in a cache memory of the compute engine. 
     
     
         18 . The one or more machine-readable storage media of  claim 17 , wherein the plurality of instructions further cause the compute device to:
 receive, by the job manager, an authorized traffic limit from a traffic manager of the NIC, wherein the authorized traffic limit indicates an amount of network traffic the job manager is allowed to process upon receipt;   retrieve, by the job manager, a next descriptor from the descriptor table;   interpret, by the job manager, the next descriptor to determine the amount of network traffic associated with the next descriptor;   determine, by the job manager, whether the authorized traffic limit would be exceeded if the network traffic associated with the next descriptor were to be processed as a function of the amount of network traffic associated with the next descriptor and the authorized traffic limit; and   return, by the job manager and subsequent to having determined that the authorized traffic limit would be exceeded, the descriptor to the descriptor table.   
     
     
         19 . The one or more machine-readable storage media of  claim 18 , wherein the plurality of instructions further cause the compute device to:
 decrease, by the job manager and subsequent to having determined that the authorized traffic limit would not be exceeded, the authorized traffic limit by the amount of network traffic associated with the next descriptor;   generate, by the job manager, a fourth message that includes information usable to locate the descriptor; and   insert, by the job manager, the message into a descriptor queue accessible by the SMP array.   
     
     
         20 . The one or more machine-readable storage media of  claim 12 , wherein the plurality of instructions further cause the compute device to:
 receive, by an event logic unit of the host interface, an event notification; and   build, by the event logic unit, a data structure as a function of a network protocol associated with the event notification, wherein the data structure includes information about the event notification usable by at least one of the plurality of processor cores of the SMP array to process the event notification.   
     
     
         21 . The one or more machine-readable storage media of  claim 21 , wherein to receive the event notification comprises to receive the event notification which indicates one of a signaling event, a memory-mapped input/output event, or a host fabric interface event. 
     
     
         22 . A compute device for processing network packets, the compute device comprising:
 means for retrieving, by a symmetric multi-purpose (SMP) array of a host interface of a network interface controller (NIC) of the compute device, a message from a message queue of the host interface;   means for processing, by a processor core of a plurality of processor cores of the SMP array, the message to identify a long-latency operation to be performed on at least a portion of a network packet associated with the message;   means for generating, by the processor core and in response to having identified the long-latency operation to be performed, another message which includes an indication of the long-latency operation to be performed and a next step to be performed upon completion of the long-latency operation; and   means for transmitting, by the processor core, the other message to a corresponding hardware unit scheduler of the host interface as a function of the long-latency operation to be performed.   
     
     
         23 . The compute device of  claim 22 , further comprising:
 means for generating, by the processor core and in response to having identified that no long-latency operations are to be performed based on the processing of the message, a release message which indicates the network packet can be released to one of one or more processors of a compute engine of the compute device or a network interface of the NIC; and   means for transmitting, by the processor core, the release message to a memory fabric interface of a memory fabric of the NIC.   
     
     
         24 . The compute device of  claim 22 , further comprising:
 means for retrieving, by a job manager of the host interface, an index of a descriptor in a descriptor table stored by a processor of one or more processors of a compute engine of the compute device at a location in a memory of the compute engine, wherein the descriptor includes information corresponding to a network packet;   means for forwarding, by the job manager, a first message to the symmetric multi-purpose (SMP) array of the host interface, wherein the first message includes the index of the descriptor;   means for processing, by a first processor core of the plurality of processor cores of the SMP array, the first message to identify the index of the descriptor;   means for generating, by the first processor core, a second message that indicates to perform a fetch operation to retrieve the descriptor based on the index of the descriptor and includes an indication that the retrieved descriptor is to be processed upon retrieval; and   means for forwarding, by the first processor core, the second message to a direct memory access (DMA) engine of the host interface.   
     
     
         25 . The compute device of  claim 24 , further comprising:
 means for processing, by the DMA engine, the second message to identify a DMA fetch operation to be performed, wherein the DMA fetch operation to be performed comprises to fetch the descriptor via DMA;   means for performing, by the DMA engine, the identified DMA fetch operation;   means for generating, by the DMA engine, a third message which includes the descriptor retrieved as a result of the DMA fetch operation, wherein the third message includes a location of the descriptor in a buffer memory of the host interface and the indication that the retrieved descriptor is to be processed; and   means for forwarding, by the DMA engine, the third message to the SMP array.

Join the waitlist — get patent alerts

Track US2019044809A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.