US2020162396A1PendingUtilityA1
Application-level network queueing
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-modifiedWhat 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.