IP Library › Granted Patent US 10,193,802
Granted Patent B2
US 10,193,802 · App. 15/267,997 · Granted Jan 29, 2019

Methods, systems, and computer readable media for processing messages using stateful and stateless decode strategies

Inventors: Syed Mohsin Reza Zaidi (Cary, NC); Lalit Grover (Haryana, IN)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L45/64H04L45/302
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,193,802
App. No.
15/267,997
Granted
Jan 29, 2019
Kind
B2
Abstract

According to one method for processing a message containing TLV elements, the method includes receiving an ingress message containing a plurality of TLV elements. The method also includes determining, using at least one message related attribute, whether the ingress message is to be processed using a stateless decode algorithm. The method further includes in response to determining that the ingress message is to be processed using the stateless decode algorithm, processing the ingress message using the stateless decode algorithm. The method also includes determining, using the stateless decode algorithm, whether the ingress message includes at least one TLV element indicating that the ingress message is to be further processed using a stateful decode algorithm. The method further includes indicating that the ingress message is to be further processed using the stateful decode algorithm, processing the ingress message using the stateful decode algorithm.

Claims (41)

1. A method for processing a message containing type-length-value (TLV) elements, the method comprising:

at a processing node including at least one message processor, wherein the processing node shares validation information about an ingress message among decode algorithms:

receiving the ingress message containing a plurality of TLV elements;

determining, using at least one message related attribute, whether the ingress message is to be processed using a stateless decode algorithm;

in response to determining that the ingress message is to be processed using the stateless decode algorithm, processing the ingress message using the stateless decode algorithm, wherein the stateless decode algorithm uses pointer arithmetic and length values associated with the plurality of TLV elements to decode the ingress message;

determining, using the stateless decode algorithm, whether the ingress message includes at least one TLV element indicating that the ingress message is to be further processed using a stateful decode algorithm; and

in response to determining that the ingress message includes the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm, processing the ingress message using the stateful decode algorithm.

2. The method of claim 1 comprising, in response to determining that the ingress message does not include the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm, discarding the ingress message when the processing node is experiencing an overload event.

3. The method of claim 1 wherein determining that the ingress message includes the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm includes determining that the at least one TLV element is to be read multiple times or determining that the at least one TLV element indicates that the ingress message is to receive preferential treatment.

4. The method of claim 1 wherein the at least one TLV element includes a top-level TLV element, a nested TLV element, a priority related TLV element or a next generation networks priority services (NGN-PS) TLV element.

5. The method of claim 1 wherein the at least one message related attribute includes a Diameter interface associated with the ingress message, a related connection or path identifier associated with the ingress message, an origination realm, an origination address, a destination realm, a destination address, a priority related TLV element in the ingress message, or a next generation networks priority services (NGN-PS) TLV element in the ingress message.

6. The method of claim 1 wherein processing the ingress message using the stateless decode algorithm or the stateful decode algorithm includes updating, as the ingress message is decoded, the validation information for indicating a validated portion of the ingress message.

7. The method of claim 6 wherein the validation information is usable by a subsequent decode algorithm to avoid revalidating the validated portion of the ingress message.

8. The method of claim 1 wherein the processing node includes a computing platform, a signaling router, a routing agent, a relay agent, a forwarding agent, a Diameter signaling router (DSR), a Diameter node, a remote authentication dial in user service (RADIUS) node, a RADIUS signaling router, a network router, a network switch, a virtualized node, a virtualized DSR, a virtualized signaling router, or a network device.

9. The method of claim 1 wherein the ingress message includes a Diameter message, a remote authentication dial in user service (RADIUS) message, a common open policy service (COPS) message, a link layer discovery protocol (LLDP) message, or an intermediate system to intermediate system (IS-IS) message.

10. A system for processing a message containing type-length-value (TLV) elements, the system comprising:

a processing node, wherein the processing node shares validation information about an ingress message among decode algorithms, wherein the processing node comprising:

at least one processor; and

a message processing module (MPM) implemented using the at least one processor, wherein the MPM is configured for:

receiving an ingress message containing a plurality of TLV elements;

determining, using at least one message related attribute, whether the ingress message is to be processed using a stateless decode algorithm;

in response to determining that the ingress message is to be processed using the stateless decode algorithm, processing the ingress message using the stateless decode algorithm, wherein the stateless decode algorithm uses pointer arithmetic and length values associated with the plurality of TLV elements to decode the ingress message;

determining, using the stateless decode algorithm, whether the ingress message includes at least one TLV element indicating that the ingress message is to be further processed using a stateful decode algorithm; and

in response to determining that the ingress message includes the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm, processing the ingress message using the stateful decode algorithm.

11. The system of claim 10 wherein the MPM is configured for in response to determining that the ingress message does not include the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm, discarding the ingress message when the processing node is experiencing an overload event.

12. The system of claim 10 wherein determining that the ingress message includes the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm includes determining that the at least one TLV element is to be read multiple times or determining that the at least one TLV element indicates that the ingress message is to receive preferential treatment.

13. The system of claim 10 wherein the at least one TLV element includes a top-level TLV element, a nested TLV element, a priority related TLV element or a next generation networks priority services (NGN-PS) TLV element.

14. The system of claim 10 wherein the at least one message related attribute includes a Diameter interface associated with the ingress message, a related connection or path identifier associated with the ingress message, an origination realm, an origination address, a destination realm, a destination address, a priority related TLV element in the ingress message, or a next generation networks priority services (NGN-PS) TLV element in the ingress message.

15. The system of claim 10 wherein the MPM is configured for updating, as the ingress message is decoded, the validation information for indicating a validated portion of the ingress message.

16. The system of claim 15 wherein the validation information is usable by a subsequent decode algorithm to avoid revalidating the validated portion of the ingress message.

17. The system of claim 10 wherein the processing node includes a computing platform, a signaling router, a routing agent, a relay agent, a forwarding agent, a Diameter signaling router (DSR), a Diameter node, a remote authentication dial in user service (RADIUS) node, a RADIUS signaling router, a network router, a network switch, a virtualized node, a virtualized DSR, a virtualized signaling router, or a network device.

18. The system of claim 10 wherein the ingress message includes a Diameter message, a remote authentication dial in user service (RADIUS) message, a common open policy service (COPS) message, a link layer discovery protocol (LLDP) message, or an intermediate system to intermediate system (IS-IS) message.

19. 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 computer cause the computer to perform steps comprising:

at a processing node including at least one message processor, wherein the processing node shares validation information about an ingress message among decode algorithms:

receiving the ingress message containing a plurality of TLV elements;

determining, using at least one message related attribute, whether the ingress message is to be processed using a stateless decode algorithm;

in response to determining that the ingress message is to be processed using the stateless decode algorithm, processing the ingress message using the stateless decode algorithm, wherein the stateless decode algorithm uses pointer arithmetic and length values associated with the plurality of TLV elements to decode the ingress message;

determining, using the stateless decode algorithm, whether the ingress message includes at least one TLV element indicating that the ingress message is to be further processed using a stateful decode algorithm; and

in response to determining that the ingress message includes the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm, processing the ingress message using the stateful decode algorithm.

20. The non-transitory computer readable medium of 19 comprising additional computer executable instructions embodied in the non-transitory computer readable medium that when executed by the at least one processor of the computer cause the computer to perform steps comprising:

in response to determining that the ingress message does not include the at least one TLV element indicating that the ingress message is to be further processed using the stateful decode algorithm, discarding the ingress message when the processing node is experiencing an overload event.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2016
From: ZAIDI, SYED MOHSIN REZA; GROVER, LALIT
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 040157/0012 →
Priority Claims (1)
IN 201641031155 · Sep 13, 2016 · national
Continuity (1)
Related Publication 20180077057A1 · Mar 15, 2018