Glare resolution
Granted 28 Apr 2009 · 1 office action
Assignee: Ciena Corporation
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Mehul Dholakia, Premal Dinesh Desai, Neeraj Gulati, Murtuza Attarwala · Examiner: Wing F Chan · AU 2419 · TC 2400
Life of the application
13 dated eventsAbstract
An embodiment of the invention provides a method for glare resolution in a network. The method first designates a master node and a slave node. The method prevents the slave node from initially allocating a first line and a first timeslot for a first sub network connection (SNC) (SNC 2 or SNCs 2 . The master node allocates the first line and the first timeslot for the first SNC, and a second line and a second timeslot for a second SNC (SNC 1 or SNCs 1 ).
Description
10 parts›TECHNICAL FIELD
Embodiments of the invention relate generally to communication networks, and more particularly to an apparatus and method for performing glare resolution.
›BACKGROUND
During the establishment of an optical connection in a network, the source node computes a path through the network and sets up the path by using a signaling protocol and a routing protocol. The optical connection may be, for example, a Sub Network Connection (SNC), which is a collection of one or more SONET (Synchronous Optical Network)) paths or SDH (Synchronous Digital Hierarchy) paths, and a suitable signaling and routing protocol may be, for example, the Optical Signaling & Routing Protocol (OSRP) that is used in a SONET system. The SONET standard is used in the United States and Canada and is a variation of the SDH standard. SDH is the ITU-TSS (International Telecommunications Union-Telecommunications Standards Sector) international standard transmitting information over optical fiber.
More particularly, an SNC is a connection from a node in a separately identifiable part of a larger network to another node in the network, and typically spans multiple nodes and links. As part of an SNC creation, switching paths are created along the nodes that are traverse by SNC, thus enabling data to flow from the originating node to the destination node. In other words, an optical network can be partitioned into a set of optical sub-networks interconnected by optical links, and the SNC is a connection across an optical sub-network.
When two SNCs, each originating in opposite directions, are being established at the same time and are contending for the same resource in the network, the condition known as “glare” may occur. Glare prevents establishment of SNCs between two nodes. Glare occurs because each node on either side of the optical connection are making a decision, independent of the opposite node, as to which line and “timeslot” to use for an SNC. Timeslots are the discrete quanta of bandwidth on a line. In other words, glare occurs because the bandwidth limitation on the line prevents the two SNCs from concurrently being established during the SNC set up phase between the two nodes. As a result of the glare occurrence, both SNCs are not established between the two nodes, even if there is sufficient bandwidth to establish at least one of the SNCs between the two nodes.
Therefore, the current technology is limited in its capabilities and suffers from at least the above constraints and deficiencies.
›SUMMARY OF EMBODIMENTS OF THE INVENTION
An embodiment of the invention provides a method for glare resolution in a network. The method first designates a master node and a slave node. The method prevents the slave node from initially allocating a first line and a first timeslot for a first sub network connection (SNC) (SNC 2 or SNCs 2 ). The master node allocates the first line and the first timeslot for the first SNC, and a second line and a second timeslot for a second SNC (SNC 1 or SNCs 2 ).
An embodiment of the invention further provides a system or apparatus that can perform the method mentioned above.
These and other features of an embodiment of the present invention will be readily apparent to persons of ordinary skill in the art upon reading the entirety of this disclosure, which includes the accompanying drawings and claims.
›BRIEF DESCRIPTION OF THE DRAWINGS
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
FIG. 1 is a block diagram that illustrates a glare condition of a conventional method.
FIG. 2 is a block diagram that illustrates a type of glare condition, known as connect-connect glare, of a conventional method.
FIG. 3 is a block diagram that illustrates a type of glare condition, known as connect-setup glare, of a conventional method.
FIG. 4 is a block diagram of an apparatus (system) that can perform glare resolution, in accordance with an embodiment of the invention.
FIG. 5 is a block diagram of an example method for performing glare resolution in the apparatus of FIG. 4 , in accordance with an embodiment of the invention.
FIG. 6 is a flowchart of a glare resolution method, in accordance with an embodiment of the invention.
›DETAILED DESCRIPTION · 1 of 6
In the description herein, numerous specific details are provided, such as examples of components and/or methods, to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that an embodiment of the invention can be practiced without one or more of the specific details, or with other apparatus, systems, methods, components, materials, parts, and/or the like. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of embodiments of the invention.
FIG. 1 is a block diagram that illustrates a glare condition of a conventional method in a conventional apparatus 100 , for purposes of describing the drawbacks and disadvantages of previous approaches. The apparatus 100 is typically a portion of a communication network and includes nodes 101 A and 101 B. Each node (generally referred to as node 101 ) is a network element and may support various services such as sub-network connections (SNCs). An SNC is a collection of one or more SONET/SDH paths. Each of the nodes 101 may be other suitable network elements. The logical connection between the nodes 101 is commonly known as a link.
In the example of FIG. 1 , the following conditions are assumed. First, there is only one link between the nodes 101 A and 101 B, where the link is, for example, an optical signaling and routing protocol (OSRP) link. Second, the OSRP link contains a single line, where the line is, for example, an OSRP line (i.e., a line transmitting signals based on the OSRP protocol). Third, attempts are made to establish two SNCs between the nodes 101 at the same time. In particular, attempt is made to establish a first SNC (SNC 1 ) from node 101 A to node 101 B, while attempt is made to establish a second SNC (SNC 2 ) from node 101 B to node 101 A during the SNC setup phase. The SNC setup phase in the OSRP protocol is known to those skilled in the art. Fourth, the link between nodes 101 A and 101 B has an available bandwidth (AB) that can accommodate only one of the SNCs, and this limitation can lead to the glare condition as described in detail below.
For further background information, some of the routing and signal functions of OSRP are disclosed in commonly owned and co-pending U.S. patent application Ser. No. 09/259,263, filed Mar. 1, 1999, entitled “ROUTING AND SIGNALING IN A SONET NETWORK”, now U.S. Pat. No. 7,009,934, which is hereby fully incorporated herein by reference, and in commonly owned and co-pending U.S. patent application Ser. No. 09/493,344, filed Jan. 28, 2000, entitled “SYSTEM AND METHOD FOR CALCULATING PROTECTION ROUTES IN A NETWORK PRIOR TO FAILURE”, now U.S. Pat. No. 6,859,431, which is hereby fully incorporated herein by reference. The routing protocol in OSRP is responsible for various functions such as discovery of neighbors and link status, reliable distribution of routing topology information, and optimal route determination. The signaling protocol provides various capabilities such as the capability of establishing, tearing down, and modifying connections across a network of nodes (network elements).
In FIG. 1 , assume that a line (labeled as Line 1 ) is between nodes 101 A and 101 B. Line 1 is formed by connecting a line 1 - 1 (which originates from node 101 A) to a line 2 - 1 (which originates from node 101 B). The state information for the line 1 - 1 and line 2 - 1 are stored in respective databases (not shown in FIG. 1 ) in each of the nodes 101 .
As shown in initial state (or initial state information) 105 A, line 1 - 1 has initially a provisional bandwidth (PB) of 3 (i.e., OC-3) and an available bandwidth (AB) of 3, and an example timeslot (TS) of 000001110000. As shown in initial state 105 B, line 2 - 1 has initially a provisional bandwidth (PB) of 3 and an available bandwidth (AB) of 3, and an example timeslot (TS) of 000001110000. As known to those skilled in the art, the Synchronous Optical Network (SONET) includes a set of signal rate multiples for transmitting digital signals on an optical fiber. The base rate (OC-1 or Optical Carrier level 1) is 51.84 Mbps data rate. OC-3 is a multiple of the base rate and is equal to 155.52 Mbps data rate.
During the SNC setup phase in the OSRP protocol, assume that an SNC setup message (SETUP 1 ), for setting up SNC 1 , reaches node 101 A at the same time as an SNC setup message (SETUP 2 ), for setting up SNC 2 , reaches node 101 B. The SNC setup messages are known to those skilled in the art. Note that the SNC setup messages (SETUP 1 and SETUP 2 ) are then forwarded to the opposite nodes, as shown in FIG. 1 . In other words, SETUP 1 is forwarded to the opposite node 101 B and SETUP 2 is forwarded to the opposite node 101 A. The provisional bandwidth (PB) for line 1 - 1 will be reserved for SNC 1 on node 101 A, and the provisional bandwidth for line 2 - 1 will be reserved for SNC 2 on node 101 B. Therefore, as shown in subsequent state 110 A, node 101 A reserves the bandwidth of OC-3 for SNC 1 on line 1 - 1 , so that the provisional bandwidth for line 1 - 1 is now 0 (i.e., OC−x=0). As shown in state 110 B, node 101 B reserves the bandwidth of OC-3 for SNC 2 on line 2 - 1 so that the provisional bandwidth for line 2 - 1 is now 0.
When the SETUP 1 message for SNC 1 reaches node 101 B from node 101 A, there will be no available bandwidth (AB) for SNC 1 on line 2 - 1 because node 101 B has reserved a provisional bandwidth of 3 (OC-3) on line 2 - 1 for SNC 2 (i.e., PB=0 on line 2 - 1 ), as indicated in state 115 B. As a result the SNC 1 is “released” when the RELEASE 1 message is transmitted from node 101 B to node 101 A, and SNC 1 is not established between nodes 101 A and 101 B. As known to those skilled in the art, releasing an SNC results in all switching paths to be torn down along all the nodes and links that are traversed by the SNC. In state 120 A, the node 101 A will claim back (have available) the bandwidth of 3 (OC-3) for SNC 1 for the provisional bandwidth on line 1 - 1 , so that a provisional bandwidth of 3 is again available on line 1 - 1 . The bandwidth of OC-3 for line 1 - 1 is claimed back by node 101 A because SNC 1 was released.
›DETAILED DESCRIPTION · 2 of 6
When the SETUP 2 message for SNC 2 reaches node 101 A from node 101 B, there will be no available bandwidth (AB) for SNC 2 on line 1 - 1 because node 101 A has reserved a provisional bandwidth of 3 on line 1 - 1 for SNC 1 (i.e., PB=0 on line 1 - 1 ), as indicated in state 115 A. As a result the SNC 2 is released when the RELEASE 2 message is transmitted from node 101 A to node 101 B, and SNC 2 is not established between nodes 101 A and 101 B. In state 120 B, the node 101 B will claim back (have available) the bandwidth of 3 for the provisional bandwidth on line 2 - 1 because SNC 2 was released, so that a provisional bandwidth of 3 is again available on line 2 - 1 .
The above situation is an example of the glare condition. This situation may repeat a number of times and result in a live-lock situation which is the event described above. The glare condition resulted in both SNC 1 and SNC 2 to not be established between node 101 A and node 101 B, even though sufficient bandwidth was available to establish one of the SNC 1 or SNC 2 between the nodes 101 A and 101 B.
FIG. 2 is a block diagram that illustrates a type of glare condition, known as “connect-connect” glare, of a conventional method in the conventional apparatus 100 . Assume that the line, Line 1 , is between nodes 101 A and 101 B. Line 1 is formed by connecting line 1 - 1 (which originates from node 101 A) to line 2 - 1 (which originates from node 101 B). Assume further that a second line, Line 2 , is between nodes 101 A and 101 B. Line 2 is formed by connecting line 1 - 2 (which originates from node 101 A) to line 2 - 2 (which originates from node 101 B). The lines Line 1 and Line 2 are aggregated in a single link between the nodes 101 A and 101 B. Additional details on link aggregation is disclosed in, for example, commonly-assigned U.S. patent application, entitled “LINK AGGREGATION”, Ser. No. 10/061,995, now U.S. Pat. No. 7,414,985, which is hereby fully incorporated herein by reference. The state information for the lines 1 - 1 and 1 - 2 are stored in a database (not shown in FIG. 2 ) in node 101 A and the state information for lines 2 - 1 and 2 - 2 are stored in a database (not shown in FIG. 2 ) in node 101 B.
In the example of FIG. 2 , Line 1 will have only one available timeslot (TS) of 000100, and Line 2 will have only one available timeslot (TS) of 100000. Also, SNC 1 (from node 101 A) and SNC 2 (from node 101 B) are being established in this example during the SNC setup phase.
As shown in initial state 205 A, line 1 - 1 has initially a provisional bandwidth (PB) of 1 (STS-1) and an available bandwidth (AB) of 1, while line 1 - 2 has initially a provisional bandwidth of 1 (STS-1) and an available bandwidth of 1. STS-n (synchronous transport signal level-n) is the various sizes in the SONET hierarchy for an SNC, where n is typically equal to 1, 3, 12, 48, 192 or 768. STS-1 is the SONET standard for transmission over OC-1 optical fiber at a line rate of 51.84 Mbps. STS-n is the SONET standard for transmission over OC-1 optical fiber at a line rate of n×STS-1=n×(51.84 Mbps), where n is typically equal to 1, 3, 12, 48, 192, or 768.
As shown in initial state 205 B, line 2 - 1 has initially a provisional bandwidth of 1 (STS-1) and an available bandwidth of 1, while line 2 - 2 has initially a provisional bandwidth of 1 (STS-1) and an available bandwidth of 1.
During the SNC setup phase with bandwidth pre-allocation (where bandwidth pre-allocation involves a provisional bandwidth being reserved on a particular line for a particular SNC), assume that an SNC setup message (SETUP 1 ) for SNC 1 reaches node 101 A at the same time as an SNC setup message (SETUP 2 ) for SNC 2 reaches node 101 B. Note that the setup messages are then forwarded to the opposite nodes, as shown in FIG. 2 and as similarly mentioned above. A provisional bandwidth (PB) of 1 (STS-1) on line 1 - 1 will be reserved for SNC 1 on node 101 A, so that the provisional bandwidth for line 1 - 1 is now 0 (PB=0) as shown in state 210 A. A provisional bandwidth of 1 (STS-1) on line 2 - 1 will be reserved for SNC 2 on node 101 B, so that the provisional bandwidth for line 2 - 1 is now 0 (PB=0) as shown in state 210 B.
When the SETUP 1 message for SNC 1 reaches node 101 B, there will be no available bandwidth (AB) for SNC 1 on line 2 - 1 because node 101 B has reserved a provisional bandwidth of 1 on line 2 - 1 for SNC 2 (i.e., PB=0 on line 2 - 1 ), as indicated in state 210 B. Therefore, the second node 101 B will reserve a provisional bandwidth of 1 (STS-1) on line 2 - 2 for SNC 1 (i.e., PB=0 on line 2 - 2 ), as indicated in state 215 B.
When the SETUP 2 message for SNC 2 reaches node 101 A, there will be no available bandwidth (AB) for SNC 2 on line 1 - 1 because node 101 A has reserved a provisional bandwidth of 1 on line 1 - 1 for SNC 1 (i.e., PB=0 on line 1 - 1 ), as indicated in state 210 A. Therefore, the first node 101 A will reserve a provisional bandwidth of 1 (STS-1) on line 1 - 2 for SNC 2 (i.e., PB=0 on line 1 - 2 ), as indicated in state 215 A.
During the SNC connect phase in the OSRP protocol, the actual bandwidth (AB) is allocated for each SNC. The SNC connect phase in the OSRP protocol are known to those skilled in the art. As shown in state 220 A, the node 101 A will allocate a bandwidth of 1 of the available bandwidth (AB) on line 1 - 2 for SNC 2 . Due to this bandwidth allocation on line 1 - 2 for SNC 2 , the available bandwidth for line 1 - 2 will have a value of AB=0 as shown in state 220 A. On node 101 A, the only available timeslot on line 1 - 2 (TS=100000 in this example) is allocated for SNC 2 as shown in state 220 A.
As shown in state 220 B, the node 101 B will allocate a bandwidth of 1 of the available bandwidth (AB) on line 2 - 2 for SNC 1 . Due to this bandwidth allocation on line 2 - 2 for SNC 1 , the available bandwidth for line 2 - 2 will have a value of AB=0 as shown in state 220 B. On node 101 B, the only available timeslot on line 2 - 2 (TS=100000) is allocated for SNC 1 as shown in state 220 B.
›DETAILED DESCRIPTION · 3 of 6
Assume that the SNC connect messages, CONNECT 1 for SNC 1 and CONNECT 2 for SNC 2 , comes back to node 101 A and node 101 B, respectively, at approximately the same time. The SNC connect messages are known to those skilled in the art. As noted above, line 2 - 2 (of Line 2 ) has been allocated for SNC 1 , and line 1 - 2 (of Line 2 ) has been allocated for SNC 2 . When the CONNECT 2 message for SNC 2 returns to node 101 B, there is no available bandwidth on line 2 - 2 (and Line 2 ) because node 101 B has previously the line 2 - 2 for SNC 1 . Therefore, the allocation for SNC 2 has failed, as shown in state 225 B. The node 101 B will claim back (have available) the bandwidth of 1 for the provisional bandwidth on line 2 - 1 because SNC 2 is released, so that a provisional bandwidth of 1 is again available on line 2 - 1 .
When the CONNECT 1 message for SNC 1 returns to node 101 A, there is no available bandwidth on line 1 - 2 (of Line 2 ) because node 101 A has previously allocated the line 1 - 2 for SNC 2 . Therefore, the allocation for SNC 1 has failed, as shown in state 225 A. The node 101 A will claim back (have available) the bandwidth of 1 for the provisional bandwidth on line 1 - 1 because SNC 1 is released, so that a provisional bandwidth of 1 is again available on line 1 - 1 . Therefore, the SNC 1 and SNC 2 are not establish due to this connect-connect glare condition, and SNC 1 and SNC 2 are released by node 101 A and node 101 B, respectively.
FIG. 3 is a block diagram that illustrates a type of glare condition, known as “connect-setup” glare, of a conventional method in the conventional apparatus 100 . Assume that there is only one interface (link) with two lines (Line 1 - 1 and Line 1 - 2 ) between node 101 A and node 101 B, with each line having an available bandwidth (AB) of 4. Assume further, in this example, that there are 4 STS-1 SNCs (referred in FIG. 3 as SNCs 1 ) that are being set up from node 101 A to node 101 B. At the same time, there are 4 STS-1 SNCs (referred in FIG. 3 as SNCs 2 ) that are being set up from node 101 B to node 101 A.
As shown in initial state 305 A and in initial state 305 B, line 1 - 1 has initially a provisional bandwidth (PB) of 4 (4 STS-1) and an available bandwidth (AB) of 4 (4 STS-1), while line 1 - 2 has initially a provisional bandwidth of 4 and an available bandwidth of 4.
During the SNC setup phase with bandwidth pre-allocation, assume that SNC setup messages (SETUPs 1 ) for SNCs 1 reaches node 101 A at the same time as SNC setup messages (SETUPs 2 ) for SNCs 2 reaches node 101 B. A provisional bandwidth (PB) of 4 (4 STS-1) on line 1 - 1 will be reserved for SNCs 1 on node 101 A (see state 310 A), and a provisional bandwidth of 4 (4 STS-1) on line 1 - 1 will be reserved for SNCs 2 on node 101 B (see state 310 B). Therefore, the provisional bandwidth on line 1 - 1 on node 101 A is now 0 (see state 310 A), and the provisional bandwidth on line 1 - 1 on node 101 B is now 0 (see state 310 B).
When the setup messages (SETUPs 1 ) is sent for SNCs 1 (originating on node 101 A and sent to node 101 B), a provisional bandwidth (PB) of 4 has been allocated on line 1 - 1 at node 101 A as mentioned above. At the same time, the setup signals (SETUPs 2 ) are sent for SNCs 2 (originating on node 101 B and sent to node 101 A), and a provisional bandwidth of 4 has been allocated on line 1 - 1 at node 101 B as mentioned above. When the SETUPs 1 for SNCs 1 (originating on node 101 A) reaches node 101 B, there is no provisional bandwidth available on line 1 - 1 for SNCs 1 because node 101 B has previously reserved a provisional bandwidth of 4 on line 1 - 1 for SNCs 2 (i.e., PB=0 on line 1 - 1 ). Therefore, the second node 101 B will allocate a provisional bandwidth of 4 (4 STS-1) on line 1 - 2 for SNCs 1 . Therefore, the provisional bandwidth on line 1 - 2 will now be PB=0, as indicated in state 315 B.
Similarly, when the setup signals (SETUPs 1 ) for SNCs 2 (originating on node 101 B and sent to node 101 A) reaches node 101 A, there is no provisional bandwidth available on line 1 - 1 because node 101 A has previously reserved a provisional bandwidth of 4 (4 STS-1) on line 1 - 1 for SNCs 1 (i.e., PB=0 on line 1 - 1 ). Therefore, the first node 101 A will allocate a provisional bandwidth of 4 (4 STS-1) on line 1 - 2 for SNCs 2 . Therefore, the provisional bandwidth on line 1 - 2 will now be PB=0, as indicated in state 315 A.
When the CONNECTs 1 signals (for SNCs 1 originating from node 101 A) reaches node 101 A from node 101 B, the conn_id (identifier in the CONNECTs 1 signals) will indicate that SCNs 1 has been allocated on line 1 - 2 by the second node 101 B. However, there is no bandwidth available on line 1 - 2 because the first node 101 A has previously allocated a provisional bandwidth of 4 on line 1 - 2 for SNCs 2 . Therefore, the allocations of SNCs 1 and SNCs 2 will fail. Since the SNCs 1 and SNCs 2 are not established due to this connect-setup glare condition, the SNCs 1 and SNCs 2 will be released.
FIG. 4 is a block diagram of an apparatus (system) 400 that can perform glare resolution, in accordance with an embodiment of the invention. The apparatus 400 is typically a portion of a communication network and includes nodes 401 a and 401 b . Each node (generally referred to as node 401 ) is a network element and may support various services such as sub-network connections (SNCs). Typically, the nodes 401 use a signaling and routing protocol, such as an optical signaling and routing protocol (OSRP). For example, at least one of the nodes 401 may have the functionality of a switch, such as, for example, a CIENA CoreDirector™ switch which is commercially available from CIENA CORPORATION. Of course, each of the nodes 401 may be other suitable network elements.
As discussed above, glare is a condition where two SNCs (each originating in opposite directions) are contending for the same resource in a network and are not established due to the bandwidth limitation in the link between the nodes. An embodiment of the invention resolves the glare condition (i.e., avoids the glare condition) based upon the following method. During the SNC setup phase, when the SNC setup signals of each SNC are contenting for the same timeslot on the same link (interface) 403 between the nodes 401 , then at least one connection will be admitted to set up the SNC, as discussed in detail below. In conventional methods, glare occurs because each node on either side of a link are making a decision, independent from the other node, as to which line and timeslot to use for an SNC. In contrast, an embodiment of the invention avoids the problem of glare by having only one of the nodes 401 on either side of the link 403 to decide which line (generally line 404 and specifically lines 404 a and 404 b in the FIG. 4 example) and which timeslot to use for an SNC.
›DETAILED DESCRIPTION · 4 of 6
In an embodiment of the invention, when a link 403 is established between two nodes 401 , the OSRP protocol is used to determine a master-slave relationship between the two nodes on the ends of the link. The master-slave relationship between two nodes 401 connected by the link 403 is determined based upon the node identifier (ID) value (generally node ID value 410 ) of each node 401 . In an embodiment of the invention, by convention, the node 401 with a higher node identifier value 410 is designated as the “master node” and the node 401 opposite to the master node in the link 403 (and having the lower node identifier value 410 ) is designated as the “slave node”. Of course, other alternate convention may be used, such as, for example, designating the node 401 with the lower identifier value 410 as the master node and designating the node 401 with the higher identifier value 410 as the slave node. In the examples discussed below, assume that node 401 a is designated as the master node and that node 401 b is designated as the slave node. As discussed in the examples below, the designated master node 401 a will select a line 404 and a timeslot for the SNC during the SNC setup phase in the OSRP protocol, and the designated slave node 401 b will not select a line 404 and a timeslot for the SNC during the SNC setup phase.
Each node 401 includes a CCM module (call control module) 405 which is a module used in the OSRP protocol. In the example of FIG. 4 , the CCM module 405 is shown as CCM module 405 a in node 401 a and as CCM module 405 b in node 401 b . The CCM module 405 examines a setup message from the opposite node 401 and determines which particular timeslot in a line 404 has been selected for an SNC by the master node 401 a.
The CCM modules 405 also read and identify the node ID values 410 of a node 401 . The node ID value 410 is typically stored in a memory area of the node 401 . The memory area can be in, for example, a database (generally, database 415 ). For example, the node ID value 410 a is stored in database 415 a in node 401 a , while the node ID value 410 b is stored in database 415 b in node 401 b.
In one embodiment of the invention, the node 401 with the higher node ID value 410 is designated by the CCM modules 405 as a master node and the node 401 with the lower ID value 410 is designated by the CCM modules 405 as the slave node. In the example of FIG. 4 , assume that node 401 a has a node ID value 410 a equal to 200 and that the node 401 b has a node ID value 410 b equal to 100. Therefore, the CCM modules 405 in both nodes 401 a and 401 b will designate the node 401 a as the master node and the node 401 b as the slave node.
Each node 401 includes a CAC (call admission control) module 420 (module 420 a in node 401 a and module 420 b in node 401 b ) that selects a timeslot in a line 404 that has been selected for an SNC by the master node 401 a . The CAC module 420 also creates the cross connections (generally 450 ) in the switch fabric (generally 455 ) in a node 401 for a line 404 . As known to those skilled in the art, a switch fabric is the combination of hardware and software that can move data coming into a network node on a port to the next node via the correct output port when switching paths are configured. A switch fabric includes the switching units in a node, the integrated circuits that are in the switching units, and the programming software or firmware that allows switching paths to be controlled. The switch fabric typically includes data buffers and the use of a shared memory. As known to those skilled in the art, cross connections are the switching paths that are established in a switch fabric to enable data flow through a node.
Each node 401 includes a routing engine 425 (routing engine 425 a in node 401 a and routing engine 425 b in node 401 b ) that can compute a working route for a sub-network connection (SNC).
Each node 401 includes a signaling (SM) module 430 (module 430 a in node 401 a and module 430 b in node 401 b ) that transmits and receives the SNC setup signals and SNC connect signals propagating in the link 403 between the nodes 401 .
As mentioned above, each node 40 a includes a database 415 that can be accessed by various elements in a node 401 , where the database 415 stores, for example, information about each line 404 in the link, including the current state information of each line in the link.
In an embodiment of the invention, as an optional feature, the nodes 401 first determines if both nodes 401 are capable of establishing a master-slave relationship based upon the node ID values 410 . The signaling module (SM) 430 in each node 401 sends a hello message (HELLO 1 from node 401 a and HELLO 2 from node 401 b ) to the node 401 on the other end of the link 403 . The hello message will include a flag field 460 which will indicate if a node 401 is capable of establishing a master-slave relationship with the opposite node 401 .
As an example, if node 401 a sends a hello message (HELLO 1 ) with flag value 460 a of 1 (where 1 indicates that node 401 a is capable of establishing a master-slave relationship) and the node 401 b replies with a hello message (HELLO 2 ) with a flag value 460 b of 1, then a master-slave relationship is established between nodes 401 a and 401 b across the link 403 .
As another example, if the node 401 a sends a hello message (HELLO 1 ) with flag value 460 a of 1 and the node 401 b replies with a hello message (HELLO 2 ) with a flag value 460 b of 0 (where 0 indicates that node 401 b is not capable of establishing a master-slave relationship), then a master-slave relationship is not established between nodes 401 a and 401 b across the link 403 .
As an additional example, if node 401 a sends a hello message (HELLO 1 ) with flag value 460 a of 1 and the node 401 b does not reply with a hello message (HELLO 2 ) within a time period (e.g., 50 milliseconds), then the node 401 a will assume that the node 401 b is not capable of establishing a master-slave relationship, and as a result, a master-slave relationship is not established between nodes 401 a and 401 b across the link. A timer (timer 465 a in node 401 a and timer 465 b in node 401 b ) may be used to set a time period for detecting a hello message from the opposite node 401 .
›DETAILED DESCRIPTION · 5 of 6
The node 401 a is identified as a master node by, for example, setting a master node flag value 470 a in the database 415 a . The node 401 b is identified as a slave node by, for example, setting a slave node flag value 470 b in the database 415 a.
The various elements of the nodes 401 are illustrated in FIG. 4 . It is understood that each of the nodes 401 also includes known elements or modules that may typically be used to perform switching and/or routing functions and other standard operations in the system 400 . Additionally, the number of lines 404 in the link 403 may also vary in number.
Reference is now made to FIG. 4 and FIG. 5 in order to illustrate an example method for performing glare resolution in the apparatus 400 , in accordance with an embodiment of the invention. As discussed below, bandwidth allocation for an SNC is performed based upon the available bandwidth for a line 404 , and the concept of provisional bandwidth is not used when bandwidth is allocated for an SNC.
As noted above, assume that node 401 a is designated as the master node and node 401 b is designated as the slave node. Assume further that SNC 1 (from node 401 a ) and SNC 2 (from node 401 b ) are being established. During the SNC setup phase with bandwidth pre-allocation, assume that an SNC setup message (SETUP 1 ) for SNC 1 is sent to node 401 a and an SNC setup message (SETUP 2 ) for SNC 2 is sent to node 101 b . In this and the following examples, SNC 1 can be multiple SNCs that are setup by multiple SNC setup messages SETUPs 1 . Similarly, SNC 2 can be multiple SNCs that are setup by multiple SNC setup messages SETUPs 2 . For purposes of focusing on the functionalities of the embodiments of the invention, the example method will only show a single SNC that is set up by a single SNC setup message from one node 401 to the opposite node 401 .
In an embodiment of the invention, when the slave node 401 b receives the SNC setup message (SETUP 2 ) for SNC 2 , the slave node signaling module 430 b does not forward the SETUP 2 message to the slave node CAC module 420 b for processing. Therefore, the slave node CAC module 420 b is not able to initially allocate (assign) a line 404 and a timeslot (TS) for the SNC 2 . Instead, the slave node signaling module 430 b forwards the SETUP 2 message to the master node 401 a.
The master node 401 a will then allocate a line 404 and a timeslot (TS) for SNC 2 . Assume, for example, that when the SNC setup message (SETUP 1 ) for SNC 1 previously reached node 401 a , then master node CAC module 420 a had allocated the line 404 a and a timeslot (TS) 000100 for SNC 1 , as shown in state information 505 a in the master node database 415 a . Therefore, the master node CAC module 420 a will allocate another available line and timeslot for SNC 2 . In this example, the master node CAC module 420 a will allocate the line 404 b and a timeslot (TS) 100000 for SNC 2 , after receiving the SETUP 2 message for SNC 2 . In this example, the slave node 401 b is an upstream node and master node 401 a is a downstream node. An alternative example where the slave node 401 b is a downstream node and master node 401 a is an upstream node is discussed below.
In the example of FIG. 4 , assume that when the SNC setup message (SETUP 1 ) for SNC 1 reaches node 401 a , then master node CAC module 420 a will allocate the line 404 a and timeslot (TS) 000100 to SNC 1 , as shown in state information 505 a in the master node database 415 a . Therefore, the master node CAC module 420 a will allocate another available line and a timeslot for SNC 2 , after receiving the SETUP 2 message for SNC 2 from the slave node 401 b . In this example, the master node CAC module 420 a will allocate the line 404 b and timeslot (TS) 100000 for SNC 2 , after receiving the SETUP 2 message for SNC 2 .
During the SNC connect phase in the OSRP protocol, the master node signaling module 430 a then transmits the connect message (CONNECT 2 ) to the slave node 401 b . The slave node CCM module 405 a will examine the CONNECT2 message to determine the line and timeslot selected for SNC 2 by the master node 401 a . The slave node CAC module 420 b then allocates the line 404 b and timeslot (TS) 100000 for SNC 2 , since the master node 401 a had allocated the line 404 b and timeslot 100000 for SNC 2 .
The slave node CAC module 420 b then sets the cross connections 450 b (see FIG. 4 ) in the switch fabric 455 b , based upon the allocation of the line 404 a and timeslot (TS) 000100 for SNC 1 and the allocation of the line 404 b and timeslot (TS) 100000 for SNC 2 , as shown in state information 505 b.
During the SNC connect phase, the master node CAC module 420 a will set the cross connections 450 a (see FIG. 4 ) in the switch fabric 455 a , based upon the allocation of the line 404 a and timeslot (TS) 000100 for SNC 1 and the allocation of the line 404 b and timeslot (TS) 100000 for SNC 2 , as shown in state information 505 a.
As another example, assume that the master node 401 a is an upstream node and slave node 401 b is a downstream node. During the SNC setup phase with bandwidth pre-allocation, when the master node 401 a receives the SNC setup message (SETUP 1 ) for SNC 1 , the master node CAC module 420 will select an available line 404 and a timeslot (TS) for SNC 1 . Assume, for example, that when the SNC setup message (SETUP 1 ) for SNC 1 reaches node 401 a , then master node CAC module 420 a allocates the line 404 a and to timeslot (TS) 000100 for SNC 1 , as shown in state information 505 a in the master node database 415 a . The master node signaling module 430 a then forwards the SETUP 1 message for SNC 1 to slave node 401 b.
The slave node CCM module 405 b examines the SETUP 1 message for SNC 1 to determine that line 404 a and timeslot (TS) 000100 is to be allocated for SNC 1 . Therefore, slave node CAC module 420 b will allocate the line 404 a and timeslot (TS) 000100 for SNC 1 during the setup phase and will allocate the line 404 b and timeslot (TS) 100000 for SNC 2 during the SNC setup phase. The line 404 b and timeslot (TS) 100000 were available for SNC 2 at this point in the setup phase. The master node CAC module 420 a will allocate the line 404 b and timeslot (TS) 100000 for SNC 2 , after receiving the SETUP 2 message from the slave node 401 b during the SNC setup phase.
›DETAILED DESCRIPTION · 6 of 6
As in the previous example above, during the connect phase in the OSRP protocol, the slave node 401 b will receive the CONNECT 2 signal and set the cross connections 450 b in the switch fabric 455 b , based upon the allocation of the line 404 a and timeslot (TS) 000100 for SNC 1 and based upon the allocation of the line 404 b and timeslot (TS) 100000 for SNC 2 . The master node 401 a will also set the cross connections 450 a in the switch fabric 455 a , based upon the allocation of the line 404 a and timeslot (TS) 000100 for SNC 1 and based upon the allocation of the line 404 b and timeslot (TS) 100000 for SNC 2 .
It is noted in the above approach that, for example, if two (2) SNCs (from opposite directions) are competing for only one available timeslot, then glare can still occur due to the contention for the limited resource in the link 403 . However, if there is available bandwidth and timeslots for both SNCs, then an embodiment of the invention avoids the glare condition.
FIG. 5 is a flowchart of a glare resolution method 600 , in accordance with an embodiment of the invention. A master node and a slave node are designated ( 605 ) in a network. The slave node is prevented from initially allocating a first line and a first timeslot (TS) for a first sub network connection (SNC). The master node allocates ( 615 ) the first line and the first timeslot for the first SNC, and a second line and a second timeslot for a second SNC.
Reference throughout this specification to “one embodiment”, “an embodiment”, or “a specific embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment”, “in an embodiment”, or “in a specific embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Other variations and modifications of the above-described embodiments and methods are possible in light of the foregoing teaching.
Further, at least some of the components of this invention may be implemented by using a programmed general purpose digital computer, by using application specific integrated circuits, programmable logic devices, or field programmable gate arrays, or by using a network of interconnected components and circuits. Connections may be wired, wireless, by modem, and the like.
The various engines or modules discussed herein may be, for example, software, commands, data files, programs, code, modules, instructions, hardware, circuits, combinations thereof, or any of the like, and may also include suitable mechanisms.
It will also be appreciated that one or more of the elements depicted in the drawings/figures can also be implemented in a more separated or integrated manner, or even removed or rendered as inoperable in certain cases, as is useful in accordance with a particular application.
It is also within the scope of the present invention to implement a program or code that can be stored in a machine-readable medium to permit a computer to perform any of the methods described above.
Additionally, the signal arrows in the drawings/Figures are considered as exemplary and are not limiting, unless otherwise specifically noted. Furthermore, the term “or” as used in this disclosure is generally intended to mean “and/or” unless otherwise indicated. Combinations of components or steps will also be considered as being noted, where terminology is foreseen as rendering the ability to separate or combine is unclear.
The above description of illustrated embodiments of the invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize.
These modifications can be made to the invention in light of the above detailed description. The terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification and the claims. Rather, the scope of the invention is to be determined entirely by the following claims, which are to be construed in accordance with established doctrines of claim interpretation.
Claims as granted
20 claimsLog in to read the claims of this application.
Log in to unlockClassifications
7 codes- H04L45/02
- H04L12/28
- H04L12/43
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock