IP Library Granted Patent US 7,860,999
Granted Patent B1
US 7,860,999 · App. 09/736,678 · Granted Dec 28, 2010

Distributed computation in network devices

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 7,860,999
App. No.
09/736,678
Granted
Dec 28, 2010
Kind
B1
Abstract

The present invention facilitates routing traffic over a network and distributing application level support among multiple routing devices during routing. Routing nodes are configured to process the content of the traffic to provide the requisite application level support. The traffic is routed, in part, based on the resources available for providing the processing. The processing of the traffic may be distributed throughout the network based on processing capacity of the routing nodes at any given time and given the amount of network congestion.

Claims (97)

1. A method for distributing processing among routing nodes capable of providing application level support during routing, the method comprising:

configuring the routing nodes to include a control plane, a compute plane and a forward plane;

identifying processing resources required to provide application level support during routing for select traffic;

selecting at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic in the compute plane of the at least one routing node; and

routing the select traffic through the at least one routing node capable of providing the processing resources required to provide the application level support,

wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic.

2. The method of claim 1 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the selecting step further comprises determining the at least one routing node from the plurality of routing nodes to provide the application level support in a manner to balance processing load among the plurality of routing nodes.

3. The method of claim 1 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the selecting step further comprises determining the at least one routing node from the plurality of routing nodes based on available processing capacity of the at least one routing node to provide the application level support.

4. The method of claim 1 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the selecting step further comprises determining the at least one routing node from the plurality of routing nodes based on available processing capacity of the plurality of routing nodes and the at least one routing node to provide the application level support.

5. The method of claim 1 wherein the selecting step selects a plurality of routing nodes through which to route the select traffic to distribute the application level support for the select traffic and the routing step routes the select traffic to facilitate distribution of the application level support such that processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

6. The method of claim 5 wherein the selecting step further comprises selecting the plurality of routing nodes within one routing path such that all of the select traffic is routed through each of the plurality of routing nodes and processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

7. The method of claim 5 wherein the selecting step further comprises selecting the plurality of routing nodes within different routing paths such that a different portion of the select traffic is routed through each of the plurality of routing nodes and processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

8. The method of claim 7 wherein the selecting step further comprises selecting the plurality of routing nodes wherein at least two of the plurality of routing nodes are within one of the different routing paths such that processing for the application level support for the portion of the select traffic routed through the at least two of the plurality of routing nodes is distributed between the at least two of the plurality of routing nodes.

9. The method of claim 1 wherein the selecting step further comprises:

identifying possible routing paths between a source and a destination for the select traffic, each of the possible routing paths including the at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic;

identifying a capacity of the at least one muting node in the possible routing paths to provide the processing resources; and

determining at least one of the possible routing paths through which to route the select traffic based on the capacity of the at least one routing node in the possible routing paths to provide the processing resources.

10. The method of claim 9 further comprising allocating resources of the at least one routing node along the at least one of the possible routing paths to provide the processing for the application level support while routing.

11. The method of claim 1 wherein the selecting step further comprises:

identifying possible routing paths between a source and a destination for the select traffic, each of the possible routing paths including at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic;

identifying capacities of a plurality of routing nodes among the possible routing paths to provide the processing resources; and

determining at least one of the possible routing paths through which to route the select traffic based on the capacity of the plurality of routing nodes in the possible routing paths to provide the processing resources.

12. The method of claim 11 wherein the selecting step further comprises distributing processing among the plurality of routing nodes to provide the application level support for the select traffic.

13. The method of claim 1 wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic by manipulating a payload of a packet within the select traffic.

14. The method of claim 1 wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic by providing secure socket layer (SSL) applications.

15. The method of claim 1 wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic by providing Internet Protocol security applications.

16. The method of claim 1 wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic by operating on layer four and higher protocols within packets within the select traffic.

17. A method for distributing processing among multiple routing devices capable of providing application level support, the method comprising:

determining processing resources necessary for the application level support of traffic to be routed;

monitoring processing capacity available on a plurality of routing nodes capable of providing the application level support and routing the traffic, wherein each of the plurality of routing nodes is configured to include a control plane, a compute plane and a forward plane;

identifying at least two of the plurality of routing nodes having combined processing capacity in the respective compute planes to provide the application level support necessary for the traffic to be routed; and

routing the traffic in a manner allowing the at least two routing nodes to provide the processing for the application level support.

18. The method of claim 17 further comprising determining how to distribute the processing for the application level support among the at least two routing nodes based on the processing resources necessary for the application level support.

19. The method of claim 18 further comprising reserving sufficient resources of the at least two routing nodes prior to routing to the at least two routing nodes to provide the processing capacity for the application level support necessary for the traffic.

20. A routing element facilitating distribution of application level processing during routing comprising a control system adapted to:

determine processing resources necessary for application level support of traffic to be routed;

monitor processing capacity available on a plurality of routing nodes capable of providing the application level support and routing the traffic, wherein each of the plurality of routing nodes is configured to include a control lane, a compute plane and a forward plane;

identify at least two of the plurality of routing nodes having combined processing capacity in the respective compute planes to provide the application level support necessary for the traffic to be routed; and

facilitate routing the traffic in a manner allowing the at least two routing nodes to provide the processing for the application level support.

21. The routing element of claim 20 wherein said control system is further adapted to determine how to distribute the processing for the application level support among the at least two routing nodes based on the processing resources necessary for the application level support.

22. The routing element of claim 21 wherein said control system is further adapted to reserve sufficient resources of the at least two routing nodes prior to routing to the at least two routing nodes to provide the processing capacity for the application level support necessary for the traffic.

23. A system for distributing processing among routing nodes capable of providing application level support during routing, the system wed comprising:

means for identifying processing resources required to provide the application level support during routing for select traffic;

means for selecting at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic, wherein the at least one routing node is configured to include a control plane, a compute plane and a forward plane and the application level support is provided in the compute plane; and

means for routing the select traffic through the at least one routing node capable of providing the processing resources required to provide the application level support,

wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic.

24. The system of claim 23 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the means for selecting is capable of determining the at least one routing node from the plurality of routing nodes to provide the application level support in a manner to balance processing load among the plurality of routing nodes.

25. The system of claim 23 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the means for selecting is capable of determining the at least one routing node from the plurality of routing nodes based on available processing capacity of the at least one routing node to provide the application level support.

26. The system of claim 23 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the means for selecting is capable of determining the at least one routing node from the plurality of routing nodes based on available processing capacity of the plurality of routing nodes and the at least one routing node to provide the application level support.

27. The system of claim 23 wherein the means for selecting is capable of selecting a plurality of routing nodes through which to route the select traffic to distribute the application level support for the select traffic and the means for routing is capable of routing the select traffic to facilitate distribution of the application level support such that processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

28. The system of claim 27 wherein the means for selecting is capable of selecting the plurality of routing nodes within one routing path such that all of the select traffic is routed through each of the plurality of routing nodes and processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

29. The system of claim 27 wherein the means for selecting is capable of selecting the plurality of routing nodes within different routing paths such that a different portion of the select traffic is routed through each of the plurality of routing nodes and processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

30. The system of claim 29 wherein the means for selecting is capable of selecting the plurality of routing nodes wherein at least two of the plurality of routing nodes are within one of the different routing paths such that processing for the application level support for the portion of the select traffic routed through the at least two of the plurality of routing nodes is distributed between the at least two of the plurality of routing nodes.

31. The system of claim 23 wherein the means for selecting is capable of:

identifying possible routing paths between a source and a destination for the select traffic, each of the possible routing paths including the at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic;

identifying a capacity of the at least one routing node in the possible routing paths to provide the processing resources; and

determining at least one of the possible routing paths through which to route the select traffic based on the capacity of the at least one routing node in the possible routing paths to provide the processing resources.

32. The system of claim 31 further comprising means for allocating resources of the at least one routing node along the at least one of the possible routing paths to provide the processing for the application level support while routing.

33. The system of claim 23 wherein the means for selecting is capable of:

identifying possible routing paths between a source and a destination for the select traffic, each of the possible routing paths including the at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic;

identifying capacities of a plurality of routing nodes among the possible routing paths to provide the processing resources; and

determining at least one of the possible routing paths through which to route the select traffic based on the capacity of the plurality of routing nodes in the possible routing paths to provide the processing resources.

34. The system of claim 33 wherein the means for selecting is capable of distributing processing among the plurality of routing nodes to provide the application level support for the select traffic.

35. A non-transitory computer readable medium containing software for distributing processing among routing nodes capable of providing application level support during routing, the software comprising computer instructions to:

identify processing resources required to provide the application level support during routing for select traffic;

select at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic wherein the at least one routing node is configured to include a control plane, a compute plane and a forward plane; and

facilitate routing of the select traffic through the at least one routing node capable of providing the processing resources required to provide the application level support,

wherein the at least one routing node provides the application level support for the select traffic while routing the select traffic in the compute plane.

36. The computer readable medium of claim 35 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the instructions to select the at least one routing node are configured to determine the at least one routing node from the plurality of routing nodes to provide the application level support in a manner to balance processing load among the plurality of routing nodes.

37. The computer readable medium of claim 35 wherein the at least one muting node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the instructions to select the at least one routing node are configured to determine the at least one routing node from the plurality of routing nodes based on available processing capacity of the at least one routing node to provide the application level support.

38. The computer readable medium of claim 35 wherein the at least one routing node is at least one of a plurality of routing nodes that can provide the application level support for the select traffic and the instructions to select the at least one routing node are configured to determine the at least one routing node from the plurality of routing nodes based on available processing capacity of the plurality of routing nodes and the at least one routing node to provide the application level support.

39. The computer readable medium of claim 35 wherein the instructions to select at least one routing node are configured to select a plurality of routing nodes through which to route the select traffic to distribute the application level support for the select traffic and the instructions to route are configured to route the select traffic to facilitate distribution of the application level support such that processing for the application level support is distributed, among the plurality of routing nodes while routing the select traffic.

40. The computer readable medium of claim 39 wherein the instructions to select the at least one routing node are configured to select the plurality of routing nodes within one routing path such that all of the select traffic is routed through each of the plurality of routing nodes and the processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

41. The computer readable medium of claim 39 wherein the instructions to select the at least one routing node are configured to select the plurality of routing nodes within different routing paths such that a different portion of the select traffic is routed through each of the plurality of routing nodes and the processing for the application level support is distributed among the plurality of routing nodes while routing the select traffic.

42. The computer readable medium of claim 41 wherein the instructions to select the at least one routing node are configured to select the plurality of routing nodes wherein at least two of the plurality of routing nodes are within one of the different routing paths such that the processing for the application level support for the portion of the select traffic routed through the at least two of the plurality of routing nodes is distributed between the at least two of the plurality of routing nodes.

43. The computer readable medium of claim 35 wherein the instructions to select the at least one routing node are configured to:

identify possible routing paths between a source and a destination for the select traffic, each of the possible routing paths including the at least one muting node capable of providing the processing resources required to provide the application level support for the select traffic;

identify a capacity of the at least one routing node in the possible routing paths to provide the processing resources; and

determine at least one of the possible routing paths through which to route the select traffic based on the capacity of the at least one routing node in the possible routing paths to provide the processing resources.

44. The computer readable medium of claim 43 wherein the software further comprises instructions to allocate resources of the at least one routing node along the at least one of the possible routing paths to provide the processing for the application level support while routing.

45. The computer readable medium of claim 35 wherein the instructions to select the at least one routing node are configured to:

identify possible routing paths between a source and a destination for the select traffic, each of the possible routing paths including the at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic;

identify capacities of a plurality of routing nodes among the possible routing paths to provide the processing resources; and

determine at least one of the possible routing paths through which to route the select traffic based on the capacity of the plurality of routing nodes in the possible routing paths to provide the processing resources.

46. The computer readable medium of claim 45 wherein the instructions to select the at least one routing node are configured to distribute processing among the plurality of the routing nodes to provide the application level support for the select traffic.

47. A non-transitory computer readable medium containing software for distributing processing among multiple routing devices capable of providing application level support, the software comprising computer instructions to:

determine processing resources necessary for application level support of traffic to be routed;

monitor processing capacity available on a plurality of routing nodes capable of providing the application level support and routing the traffic;

identify at least two of the plurality of routing nodes having combined processing capacity to provide the application level support necessary for the traffic to be routed wherein the at least two of the plurality of routing nodes are configured to include a control plane, a compute plane and a forward plane; and

route the traffic in a manner allowing the at least two of the plurality of routing nodes to provide the processing for the application level support in the respective compute planes.

48. The computer readable medium of claim 47 wherein the software further comprises instructions to determine how to distribute the processing for the application level support among the at least two of the plurality of routing nodes based on the processing resources necessary for the application level support.

49. The computer readable medium of claim 48 wherein the software further comprises instructions to reserve sufficient resources of the at least two of the plurality of routing nodes prior to routing to the at least two of the plurality of routing nodes to provide the processing capacity for the application level support necessary for the traffic.

50. A routing element facilitating distribution of application level processing during routing comprising a control system adapted to:

identify processing resources required to provide the application level support during routing for select traffic;

select at least one routing node capable of providing the processing resources required to provide the application level support for the select traffic wherein the at least one routing node is configured to include a control plane, a compute plane and a forward plane; and

route the select traffic through the at least one muting node capable of providing the processing resources required to provide the application level support in the compute plane,

wherein the routing element provides the application level support for the select traffic while routing the select traffic.

Assignments (17)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →