US2020162396A1PendingUtilityA1

Application-level network queueing

Assignee: INTEL CORPPriority: Dec 26, 2015Filed: Jan 27, 2020Published: May 21, 2020
Est. expiryDec 26, 2035(~9.4 yrs left)· nominal 20-yr term from priority
H04L 43/10H04L 49/9068H04L 47/2475H04L 47/50H04L 47/24H04L 49/90H04L 47/62H04L 47/125
62
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

There is disclosed in one example a network interface card (NIC), comprising: an ingress interface to receive incoming traffic; a plurality of queues to queue incoming traffic; an egress interface to direct incoming traffic to a plurality of server applications; and a queuing engine, including logic to: uniquely associate a queue with a selected server application; receive an incoming network packet; determine that the selected server application may process the incoming network packet; and assign the incoming network packet to the queue.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A network interface card (NIC), comprising:
 an ingress interface to receive incoming traffic;   a plurality of queues to queue incoming traffic;   an egress interface to direct incoming traffic to a plurality of server applications; and   a queuing engine, including logic to:
 uniquely associate a queue with a selected server application; 
 receive an incoming network packet; 
 determine that the selected server application may process the incoming network packet; and 
 assign the incoming network packet to the queue. 
   
     
     
         2 . The NIC of  claim 1 , wherein determining that the selected server application may process the incoming network packet comprises inspecting an application identifier of the incoming network packet. 
     
     
         3 . The NIC of  claim 2 , wherein the application identifier comprises a port number. 
     
     
         4 . The NIC of  claim 1 , further comprising means for notifying the selected server application of the assigning. 
     
     
         5 . The NIC of  claim 1 , further comprising means to enable the selected server application to bypass an interrupt mechanism and to perform per-thread, non-interfering busy polling. 
     
     
         6 . The NIC of  claim 1 , wherein the queuing engine is further to receive a queue mapping for a socket via an extended socket option. 
     
     
         7 . The NIC of  claim 1 , wherein the queueing engine further includes logic to uniquely associate a plurality of queues with the selected server application. 
     
     
         8 . The NIC of  claim 1 , wherein the queueing engine further includes logic to uniquely assign a second queue to a second selected server application. 
     
     
         9 . The NIC of  claim 1 , wherein the queueing engine further includes logic to assign a support queue to handle incoming packets not directed to a queue uniquely assigned to a server application. 
     
     
         10 . The NIC of  claim 9 , wherein the queueing engine further includes logic to assign a plurality of support queues. 
     
     
         11 . The NIC of  claim 10 , wherein the plurality of support queues number less than a sum of queues uniquely assigned to one or more selected server applications. 
     
     
         12 . A tangible, non-transitory storage medium having stored thereon instructions to instruct a network interface card (NIC) to:
 deterministically associate an ingress queue of the NIC with a server function to be serviced by the NIC;   receive an incoming network packet on an ingress interface of the NIC;   determine that the server function may process the incoming network packet; and   assign the incoming network packet to the queue.   
     
     
         13 . The tangible, non-transitory storage medium of  claim 12 , wherein determining that the selected server application may process the incoming network packet comprises inspecting an application identifier of the incoming network packet. 
     
     
         14 . The tangible, non-transitory storage medium of  claim 13 , wherein the application identifier comprises a port number. 
     
     
         15 . The tangible, non-transitory storage medium of  claim 12 , wherein the queueing engine further includes logic to uniquely associate a plurality of queues with the selected server application. 
     
     
         16 . The tangible, non-transitory storage medium of  claim 12 , wherein the queueing engine further includes logic to uniquely assign a second queue to a second selected server application. 
     
     
         17 . The tangible, non-transitory storage medium of  claim 12 , wherein the queueing engine further includes logic to assign a support queue to handle incoming packets not directed to a queue uniquely assigned to a server application. 
     
     
         18 . A method of providing deterministic per-application packet queueing, comprising:
 uniquely associating one or more ingress queues of a network interface card (NIC) with a server function to be serviced by the NIC;   receiving an incoming network packet on an ingress interface of the NIC;   determining that the network packet is directed to the associated server function; and   assigning the incoming network packet to a queue selected from the one or more uniquely associated queues.   
     
     
         19 . The method of  claim 18 , wherein determining that the network packet is directed to the associated server function comprises inspecting an application identifier of the incoming network packet. 
     
     
         20 . The method of  claim 19 , wherein the application identifier comprises a port number.

Join the waitlist — get patent alerts

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

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