Terabit-scale network packet processing via flow-level parallelization
US-2018336071-A1 · Nov 22, 2018 · US
US10798609B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10798609-B2 |
| Application number | US-201816162112-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 16, 2018 |
| Priority date | Oct 16, 2018 |
| Publication date | Oct 6, 2020 |
| Grant date | Oct 6, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods, systems, and computer readable media for lock-free communications processing at a network node are disclosed. One method occurs at a first network node configured to add messages to a plurality of queues, wherein each of the plurality of queues is accessed by one of a plurality of threads. The method comprises receiving a first message associated with a first mobile subscriber; determining that the first message is associated with a first partition key; assigning, based on the first partition key, the first message to a first queue of the plurality of queues, wherein the first queue includes messages associated with the first mobile subscriber and wherein the first queue is accessible by a first thread of the plurality of threads; and processing, by the first thread, messages of the first queue in a first in, first out order.
Opening claim text (preview).
What is claimed is: 1. A method for lock-free communications processing at a network node, the method comprising: at a first network node for performing lock-free communications processing and configured to add messages to a plurality of queues, wherein each of the plurality of queues is accessed by one of a plurality of threads: receiving a first message associated with a first mobile subscriber; determining that the first message is associated with a first partition key, wherein the first partition key is determined using a subscriber related identifier and wherein the first partition key is inserted in the first message by a second network node prior to the first message being received by the first network node; assigning, based on the first partition key, the first message to a first queue of the plurality of queues, wherein the first queue includes messages associated with the first mobile subscriber and wherein the first queue is accessible by a first thread of the plurality of threads; and processing, using the first thread, messages of the first queue in a first in, first out order, wherein the processing includes processing the first message of the first queue in a serial manner using a plurality of downstream nodes. 2. The method of claim 1 comprising: receiving a second message associated with a second mobile subscriber; determining that the second message is not associated with a partition key or a corresponding queue; assigning, using a load balancing algorithm, the second message to a second queue of the plurality of queues, wherein the second queue is accessible by a second thread of the plurality of threads; and processing, by the second thread, messages of the second queue in a first in, first out order. 3. The method of claim 1 wherein determining that the second message is not associated with a partition key includes querying, using a session identifier as a lookup value, a data structure containing associations between session identifiers and related partition keys. 4. The method of claim 1 wherein the first message includes a Diameter message, a Diameter Gx message, a Diameter S9 message, a Diameter Sh message, a Diameter Sx message, a Diameter Sy message, a Diameter Rx message, a Diameter credit control request message, or a Diameter re-auth-request message. 5. The method of claim 1 wherein the subscriber related identifier is in the first message. 6. The method of claim 1 wherein the subscriber related identifier includes a session identifier, a sequence number, an E.164 number, an international mobile subscriber identity (IMSI) or a mobile station integrated services digital network (MSISDN) number. 7. The method of claim 1 wherein the second network node includes a multi-protocol routing agent or a Diameter routing agent. 8. The method of claim 1 wherein the first network node includes a policy and charging rules function, a multimedia policy engine, or a policy engine. 9. A system for lock-free communications processing at a network node, the system comprising: a first network node for performing lock-free communications processing and comprising: at least one processor; and a memory, wherein the first network node is configured to add messages to a plurality of queues, wherein each of the plurality of queues is accessed by one of a plurality of threads, wherein the first network node is further configured for: receiving a first message associated with a first mobile subscriber; determining that the first message is associated with a first partition key, wherein the first partition key is determined using a subscriber related identifier and wherein the first partition key is inserted in the first message by a second network node prior to the first message being received by the first network node; assigning, based on the first partition key, the first message to a first queue of the plurality of queues, wherein the first queue includes messages associated with the first mobile subscriber and wherein the first queue is accessible by a first thread of the plurality of threads; and processing, using the first thread, messages of the first queue in a first in, first out order, wherein the processing includes processing the first message of the first queue in a serial manner using a plurality of downstream nodes. 10. The system of claim 9 wherein the first network node is further configured for: receiving a second message associated with a second mobile subscriber; determining that the second message is not associated with a partition key or a corresponding queue; assigning, using a load balancing algorithm, the second message to a second queue of the plurality of queues, wherein the second queue is accessible by a second thread of the plurality of threads; and processing, by the second thread, messages of the second queue in a first in, first out order. 11. The system of claim 9 wherein the first network node is further configured for querying, using a session identifier as a lookup value, a data structure containing associations between session identifiers and related partition keys. 12. The system of claim 9 wherein the first message includes a Diameter message, a Diameter Gx message, a Diameter S9 message, a Diameter Sh message, a Diameter Sx message, a Diameter Sy message, a Diameter Rx message, a Diameter credit control request message, or a Diameter re-auth-request message. 13. The system of claim 9 wherein the subscriber related identifier is in the first message. 14. The system of claim 9 wherein the subscriber related identifier includes a session identifier, a sequence number, an E.164 number, an international mobile subscriber identity (IMSI) or a mobile station integrated services digital network (MSISDN) number. 15. The system of claim 9 wherein the second network node includes a multi-protocol routing agent or a Diameter routing agent. 16. The system of claim 9 wherein the first network node includes a policy and charging rules function, a multimedia policy engine, or a policy engine. 17. A non-transitory computer readable medium comprising computer executable instructions embodied in the non-transitory computer readable medium that when executed by at least one processor of a first network node cause the first network node to perform steps comprising: at the first network node for performing lock-free communications processing and configured to add messages to a plurality of queues, wherein each of the plurality of queues is accessed by one of a plurality of threads: receiving a first message associated with a first mobile subscriber; determining that the first message is associated with a first partition key, wherein the first partition key is determined using a subscriber related identifier and wherein the first partition key is inserted in the first message by a second network node prior to the first message being received by the first network node; assigning, based on the first partition key, the first message to a first queue of the plurality of queues, wherein the first queue includes messages associated with the first mobile subscriber and wherein the first queue is accessible by a first thread of the plurality of threads; and processing, using the first thread, messages of the first queue in a first in, first out order, wherein the processing includes processing the first message of the first queue in a serial manner using a plurality of downstream nodes. 18. The non-transitory computer readable medium of claim 17 wherein determining that the second message is not associated w
Buffering arrangements · CPC title
queue load conditions, e.g. longest queue first · CPC title
Message passing systems or structures, e.g. queues · CPC title
Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70) · CPC title
Multiprotocol handlers, e.g. single devices capable of handling multiple protocols · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.