Pseudowire load balancing
AssigneeCisco Technology, Inc.
InventorsDavid D. Ward, Luca Martini, Jim Guichard
Life of this patent
Estimating the term…
Abstract
In one embodiment, a communications distribution process maintains at least two pseudowires through a network such that the pseudowires share a burden of delivering data through the network. The communications distribution process receives feedback data concerning operation of each pseudowire. The communications distribution process utilizes the feedback data to distribute communications to the common destination across each of the pseudowires. Additionally, the communications distribution process utilizes the feedback to establish at least one new pseudowire, in addition to the first pseudowire and the second pseudowire, for transmission of data traffic.
Claims18
A method for communicating data, the method comprising:
- maintaining at least a first pseudowire and a second pseudowire through a network to deliver data, wherein the first pseudowire and the second pseudowire originate at an originating node;
- receiving first feedback data, including a first load value, from a first multi-service edge node on which the first pseudowire terminates and second feedback data, including a second load value, from a second multi-service edge node on which the second pseudowire terminates, the first feedback data and second feedback data concerning current load conditions of the first and second pseudowires, wherein the first feedback data is received by way of the first pseudowire and the second feedback data is received by way of the second pseudowire;
- updating a traffic hash table with the first load value and the second load value;
- comparing, by the originating node, the first load value and the second load value contained in the traffic hash table;
- and
- selectively routing new traffic flows from the originating node to the first multi-service edge node via the first pseudowire when the second load value exceeds the first load value and routing new traffic flows from the originating node to the second multi-service edge node via the second pseudowire when the first load value exceeds the second load value,
- wherein the first multi-service edge node and the second multi-service edge node are different.
A computerized device comprising:
- a memory;
- a processor;
- a communications interface;
- an interconnection mechanism coupling the memory, the processor and the communications interface;
- and
- wherein the memory is encoded with a communications distribution application that when executed on the processor configures the processor to perform operations of:
- maintaining at least a first pseudowire and a second pseudowire through a network, wherein the first pseudowire and the second pseudowire originate with the computerized device;
- receiving first feedback data including a first load value concerning operation of the first pseudowire from a first pseudowire termination node;
- receiving second feedback data including a second load value concerning operation of the second pseudowire from a second pseudowire termination node;
- updating a traffic table with the first load value and the second load value;
- comparing, by the computerized device, the first load value and the second load value included in the traffic data;
- and
- apportioning allocation of new data traffic flows through the first and second pseudowires depending on a capacity of each pseudowire to handle the new data traffic flows by selecting the first pseudowire when the second load value exceeds the first load value, and selecting the second pseudowire when the first load value exceeds the second load value, wherein the first pseudowire termination node and the second pseudowire termination node are different.
A computer program product having a non-transitory computer readable medium operable to store computer program logic embodied in computer program code encoded thereon as an encoded set of processor based instructions for communications distribution comprising:
- computer program code for maintaining a first pseudowire that terminates at a first pseudowire termination node a second pseudowire that terminates at a second pseudowire termination node that is at a different network location than the first pseudowire termination node;
- computer program code for receiving first feedback data including a first load value concerning operation of the first pseudowire and for receiving second feedback data including a second load value concerning operation of the second pseudowire;
- computer code for populating traffic hash table with the first load value and the second load value;
- comparing the first load value and the second load value;
- and
- computer program code for apportioning allocation of new data traffic flows through the first and second pseudowires depending on a capacity of each pseudowire to handle the new data traffic flows such that new data traffic flows are sent to the first pseudowire when the second load value exceeds the first load value and sent to the second pseudowire when the first load value exceeds the second load value, wherein the first pseudowire termination node and the second pseudowire termination node are different.
Dependencies are inferred from the claim text.