IP Library › Granted Patent US 7,428,212
Granted Patent B2
US 7,428,212 · App. 10/151,678 · Granted Sep 23, 2008

Best effort technique for virtual path restoration

Assignee: Cisco Technology, Inc.
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,428,212
App. No.
10/151,678
Granted
Sep 23, 2008
Kind
B2
Abstract

A method and apparatus for restoring a virtual path are disclosed. The method includes identifying an alternate physical path and determining whether the alternate physical path is able to support the virtual path by determining whether each node of the second subset of nodes has sufficient resources necessary to support the virtual path. The virtual path is over a physical path in an optical network, and the optical network includes a number of nodes. The physical path includes a first subset of nodes of the nodes. The alternate path includes a second subset of nodes of the nodes and is between a first node and a second node of the first subset of nodes.

Claims (241)

1. A method for restoring a virtual path, the method comprising:

detecting a failure in said virtual path by receiving a failure message;

acknowledging said failure message;

releasing a resource of said virtual path;

changing a state of a portion of said virtual path to down;

identifying a class of service, among a plurality of classes of service, of said virtual path;

identifying an alternate physical path, wherein

said virtual path is over a physical path in an optical network, said optical network comprising a plurality of nodes,

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes,

wherein said second node receives said failure message; and

determining whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said class of service of said virtual path.

2. The method of claim 1 , further comprising:

restoring said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

3. The method of claim 1 , further comprising:

identifying another alternate physical path, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said another alternate physical path comprises a third subset of nodes of said nodes, and

said third subset of nodes differs from said second subset of nodes.

4. The method of claim 3 further comprising:

restoring said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

5. The method of claim 1 , further comprising:

selecting an upstream node of said first subset of nodes as said first node, wherein said upstream node is a one of said first subset of nodes nearest said failure.

6. The method of claim 5 , further comprising:

identifying another alternate physical path by selecting another upstream node of said first subset of nodes as said first node, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said upstream node is not said one of said first subset of nodes nearest said failure.

7. A method for restoring a virtual path, the method comprising:

identifying a class of service, among a plurality of classes of service, of said virtual path;

identifying an alternate physical path, wherein

said virtual path is over a physical path in an optical network, said optical network comprising a plurality of nodes,

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes;

determining whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said class of service of said virtual path; and

detecting a failure in said virtual path by receiving a failure message, wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said failure message;

changing a state of said virtual path to down;

forwarding said failure message to adjacent nodes comprising said virtual path;

initiating a timer for receiving a response to said forwarded failure message; and

if said timer expires before said response to said forwarded failure message is received, releasing resources of said virtual path, and

if said response to said forwarded failure message is received before said timer expires, stopping said timer, and

releasing resources of said virtual path.

8. A method for restoring a virtual path, the method comprising:

identifying a class of service, among a plurality of classes of service, of said virtual path;

identifying an alternate physical path, wherein

said virtual path is over a physical path in an optical network, said optical network comprising a plurality of nodes,

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes;

determining whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said class of service of said virtual path; and

detecting a failure in said virtual path by receiving a failure message, wherein said first node receives said failure message;

changing a state of said virtual path to restoring;

identifying an adjacent node with required bandwidth for said virtual path;

forwarding a resource request packet to said adjacent node with required bandwidth for said virtual path; and

waiting for a resource response packet for a predetermined time interval.

9. The method of claim 8 , further comprising:

if said resource response packet is received with at least one error, waiting until responses to all resource request packets are received; and

if said resource response packet is received with no errors, determining if a list of allocated ports in said resource response packet is valid.

10. The method of claim 9 , further comprising:

if said list of allocated port is valid,

provisioning said virtual path on said allocated ports; and

if said list of allocated ports is invalid,

generating a network alarm.

11. The method of claim 8 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said resource request packet, and the method further comprises:

causing said one of said intermediate nodes to allocate a resource to said virtual path.

12. The method of claim 11 , further comprising:

if said second resource response packet is not received within a predetermined time interval,

releasing said resource allocated to said virtual path, and

forwarding a negative acknowledgment to said first node.

13. The method of claim 8 , wherein said second node receives said resource request packet, and the method further comprises:

determining if a resource is available for said virtual path.

14. The method of claim 13 , further comprising:

if said resource is available for said virtual path,

allocating said resource to said virtual path.

15. A network element configured to restore a virtual path, the network element comprising:

a processor;

a network interface coupled to said processor and an optical network, wherein said virtual path is over a physical path in said optical network and said optical network comprises a plurality of nodes;

computer readable medium coupled to said processor; and

computer code, encoded in said computer readable medium, configured to cause said processor to:

detect a failure in said virtual path by receiving a failure message;

acknowledge said failure message;

release a resource of said virtual path;

change a state of a portion of said virtual path to down;

identify a class of service, among a plurality of classes of service, of said virtual path;

identify an alternate physical path, wherein

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes, wherein said second node receives said failure message; and

determine whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said class of service of said virtual path.

16. The network element of claim 15 , wherein said computer code is further configured to cause said processor to:

restore said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

17. The network element of claim 15 , wherein said computer code is further configured to cause said processor to:

identify another alternate physical path, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said another alternate physical path comprises a third subset of nodes of said nodes, and

said third subset of nodes differs from said second subset of nodes.

18. The network element of claim 17 , wherein said computer code is further configured to cause said processor to:

restore said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

19. The network element of claim 15 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said failure message, and said computer code is further configured to cause said processor to:

forward said failure message to adjacent nodes comprising said virtual path;

initiate a timer for receiving a response to said forwarded failure message;

if said timer expires before said response to said forwarded failure message is received, release resources of said virtual path; and

if said response to said forwarded failure message is received before said timer expires, stop said timer, and

release resources of said virtual path.

20. The network element of claim 15 , wherein said second node receives said failure message, and said computer code is further configured to cause said processor to:

change a state of said virtual path to down; and

release resources of said virtual path.

21. The network element of claim 15 , wherein said computer code is further configured to cause said processor to:

select an upstream node of said first subset of nodes as said first node, wherein said upstream node is a one of said first subset of nodes nearest said failure.

22. The network element of claim 21 , wherein said computer code is further configured to cause said processor to:

identify another alternate physical path by selecting another upstream node of said first subset of nodes as said first node, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said upstream node is not said one of said first subset of nodes nearest said failure.

23. The network element of claim 15 , wherein said computer code is further configured to cause said processor to:

restore said virtual path using said alternate physical path.

24. The network element of claim 15 , wherein said network element is one of said nodes.

25. A network element configured to restore a virtual path, said network element comprising:

a processor;

a network interface coupled to said processor and an optical network, wherein said virtual path is over a physical path in said optical network and said optical network comprises a plurality of nodes;

computer readable medium coupled to said processor; and

computer code, encoded in said computer readable medium, configured to cause said processor to:

identify an alternate physical path, wherein

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes;

determine whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said virtual path;

detect a failure in said virtual path by receiving a failure message, wherein said first node receives said failure message;

change a state of said virtual path to restoring;

identify an adjacent node with required bandwidth for said virtual path;

forward a resource request packet to said adjacent node with required bandwidth for said virtual path; and

wait for a resource response packet for a predetermined time interval.

26. The network element of claim 25 , wherein said computer code is further configured to cause said processor to:

if said resource response packet is received with at least one error, wait until responses to all resource request packets are received; and

if said resource response packet is received with no errors, determine if a list of allocated ports in said resource response packet is valid.

27. The network element of claim 26 , wherein said computer code is further configured to cause said processor to:

if said list of allocated port is valid, provision said virtual path on said allocated ports; and

if said list of allocated ports is invalid, generate a network alarm.

28. The network element of claim 25 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said resource request packet, and said computer code is further configured to cause said processor to:

cause said one of said intermediate nodes to allocate a resource to said virtual path.

29. The network element of claim 28 , wherein said computer code is further configured to cause said processor to:

if said second resource response packet is not received within a predetermined time interval,

release said resource allocated to said virtual path, and

forward a negative acknowledgment to said first node.

30. The network element of claim 25 , wherein said second node receives said resource request packet, and said computer code is further configured to cause said processor to:

determine if a resource is available for said virtual path.

31. The network element of claim 30 , wherein said computer code is further configured to cause said processor to:

if said resource is available for said virtual path, allocate said resource to said virtual path.

32. A computer readable medium encoded with a computer program executable by a computer, the computer program for restoring a virtual path comprising:

a first set of instructions, executable on a computer system, configured to:

detect a failure in said virtual path by receiving a failure message,

acknowledge said failure message,

release a resource of said virtual path,

change a state of a portion of said virtual path to down, and

identify a class of service, among a plurality of classes of service, of said virtual path, and to identify an alternate physical path, wherein

said virtual path is over a physical path in an optical network, said optical network comprising a plurality of nodes,

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes, wherein said second node receives said failure message; and

a second set of instructions, executable on said computer system, configured to determine whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said class of service of said virtual path.

33. The computer readable medium of claim 32 , the computer program further comprising:

a third set of instructions, executable on said computer system, configured to restore said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

34. The computer readable medium of claim 32 , the computer program further comprising:

a third set of instructions, executable on said computer system, configured to identify another alternate physical path, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said another alternate physical path comprises a third subset of nodes of said nodes, and

said third subset of nodes differs from said second subset of nodes.

35. The computer readable medium of claim 34 , the computer program further comprising:

a fourth set of instructions, executable on said computer system, configured to restore said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

36. The computer readable medium of claim 32 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said failure message, the computer program further comprising instructions executable on said computer system and configured to:

forward said failure message to adjacent nodes comprising said virtual path;

initiate a timer for receiving a response to said forwarded failure message; and

if said timer expires before said response to said forwarded failure message is received,

release resources of said virtual path, and

if said response to said forwarded failure message is received before said timer expires,

stop said timer, and

release resources of said virtual path.

37. The computer readable medium of claim 32 , wherein said first node receives said failure message, the computer program further comprising instructions executable on said computer system and configured to:

change a state of said virtual path to restoring;

identify an adjacent node with required bandwidth for said virtual path;

forward a resource request packet to said adjacent node with required bandwidth for said virtual path; and

wait for a resource response packet for a predetermined time interval.

38. The computer readable medium of claim 37 , the computer program further comprising instructions executable on said computer system and configured to:

if said resource response packet is received with at least one error, wait until responses to all resource request packets are received; and

if said resource response packet is received with no errors, determine if a list of allocated ports in said resource response packet is valid.

39. The computer readable medium of claim 37 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said resource request packet, the computer program further comprising instructions executable on said computer system and configured to:

cause said one of said intermediate nodes to allocate a resource to said virtual path.

40. The computer readable medium of claim 39 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said resource request packet, the computer program further comprising instructions executable on said computer system and configured to:

if said second resource response packet is not received within a predetermined time interval,

release said resource allocated to said virtual path, and

forward a negative acknowledgment to said first node.

41. The computer readable medium of claim 37 , wherein said second node receives said resource request packet, the computer program further comprising instructions executable on said computer system and configured to:

determine if a resource is available for said virtual path.

42. The computer readable medium of claim 41 , wherein said second node receives said resource request packet, the computer program further comprising instructions executable on said computer system and configured to:

if said resource is available for said virtual path, allocate said resource to said virtual path.

43. The computer readable medium of claim 32 , wherein said first node receives said failure message, the computer program further comprising instructions executable on said computer system and configured to:

configured to select an upstream node of said first subset of nodes as said first node, wherein said upstream node is a one of said first subset of nodes nearest said failure.

44. The computer readable medium of claim 43 , the computer program further comprising:

instructions executable on said computer system and configured to configured to identify another alternate physical path by selecting another upstream node of said first subset of nodes as said first node, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said upstream node is not said one of said first subset of nodes nearest said failure.

45. An apparatus configured to restore a virtual path comprising:

means for detecting a failure in said virtual path by receiving a failure message;

means for acknowledging said failure message;

means for releasing a resource of said virtual path;

means for changing a state of a portion of said virtual path to down;

means for identifying a class of service, among a plurality of classes of service, of said virtual path;

means for identifying an alternate physical path, wherein

said virtual path is over a physical path in an optical network, said optical network comprising a plurality of nodes,

said physical path comprises a first subset of nodes of said nodes, and

said alternate physical path comprises a second subset of nodes of said nodes and is between a first node and a second node of said first subset of nodes, wherein said second node receives said failure message; and

means for determining whether said alternate physical path is able to support said virtual path by determining whether each node of said second subset of nodes has sufficient resources necessary to support said class of service of said virtual path.

46. The apparatus of claim 45 , further comprising:

means for restoring said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

47. The apparatus of claim 45 , further comprising:

means for identifying another alternate physical path, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said another alternate physical path comprises a third subset of nodes of said nodes, and

said third subset of nodes differs from said second subset of nodes.

48. The apparatus of claim 47 , further comprising:

means for restoring said virtual path using said alternate physical path, if said each of said second subset of nodes has said sufficient resources necessary to support said virtual path.

49. The apparatus of claim 45 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said failure message, and the method further comprises:

means for forwarding said failure message to adjacent nodes comprising said virtual path;

means for initiating a timer for receiving a response to said forwarded failure message; and

means for if said timer expires before said response to said forwarded failure message is received,

releasing resources of said virtual path, and

means for if said response to said forwarded failure message is received before said timer expires,

stopping said timer, and

releasing resources of said virtual path.

50. The apparatus of claim 45 , wherein said first node receives said failure message, and said method further comprises:

means for changing a state of said virtual path to restoring;

means for identifying an adjacent node with required bandwidth for said virtual path;

means for forwarding a resource request packet to said adjacent node with required bandwidth for said virtual path; and

means for waiting for a resource response packet for a predetermined time interval.

51. The apparatus of claim 50 , further comprising:

means for waiting until responses to all resource request packets are received, if said resource response packet is received with at least one error; and

means for determining if a list of allocated ports in said resource response packet is valid, if said resource response packet is received with no errors.

52. The apparatus of claim 51 , further comprising:

means for provisioning said virtual path on said allocated ports, if said list of allocated port is valid; and

means for generating a network alarm, if said list of allocated ports is invalid.

53. The apparatus of claim 50 , wherein said physical path between said first and said second node comprises a plurality of intermediate nodes and a one of said intermediate nodes receives said resource request packet, and the method further comprises:

means for causing said one of said intermediate nodes to allocate a resource to said virtual path.

54. The apparatus of claim 53 , further comprising:

means for releasing said resource allocated to said virtual path, if said second resource response packet is not received within a predetermined time interval; and

means for forwarding a negative acknowledgment to said first node, if said second resource response packet is not received within a predetermined time interval.

55. The apparatus of claim 50 , wherein said second node receives said resource request packet, and the method further comprises:

means for determining if a resource is available for said virtual path.

56. The apparatus of claim 55 , further comprising:

means for allocating said resource to said virtual path, if said resource is available for said virtual path.

57. The apparatus of claim 45 , further comprising:

means for selecting an upstream node of said first subset of nodes as said first node, wherein said upstream node is a one of said first subset of nodes nearest said failure.

58. The apparatus of claim 57 , further comprising:

means for identifying another alternate physical path by selecting another upstream node of said first subset of nodes as said first node, if at least one of said each of said second subset of nodes does not have said sufficient resources necessary to support said virtual path, wherein

said upstream node is not said one of said first subset of nodes nearest said failure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2005
From: SALEH, ALI NAJIB; ZADIKIAN, H. MICHAEL; BAGHDASARIAN, ZAREH; PARSI, VAHID
To: CISCO TECHNOLOGY, INC.
Reel/Frame 016550/0734 →
Continuity (4)
Continuation In Part 0989102200 · Jun 25, 2001
Continuation In Part 0985874300 · May 16, 2001
Continuation In Part 0923239700 · Jan 15, 1999
Related Publication 20030031127A1 · Feb 13, 2003