Abstract:
A telecommunications system includes a network for transporting packets on a path between selected subscriber end points. The network has multiple nodes connected by links, with each node (a) pairing the forward and backward paths of a connection and (b) allowing for the injection of messages in the backward direction of a connection from any node in the path without needing to consult a higher OSI layer. A system is also provided for protecting connection paths for transporting data packets through an Ethernet telecommunications network having a multiplicity of nodes interconnected by a multiplicity of links. Primary and backup paths are provided through the network for each of multiple connections, with each path including multiple links. Data packets arriving at a first node common to the primary and backup paths are duplicated, and one of the duplicate packets is transported over the primary path, the other duplicate packet is transported over the backup path, and the duplicate packets are recombined at a second node common to the primary and backup paths.

Description:
FIELD OF THE INVENTION 
     The present invention generally relates to Ethernet access and, in particular, to bandwidth efficient Ethernet grid networking systems. 
     BACKGROUND OF THE INVENTION 
     Ethernet is rapidly becoming the protocol of choice for consumer, enterprise and carrier networks. It is expected that most networks will evolve such that Ethernet will be the technology used to transport all the multimedia applications including, for example, triple-play, fixed-mobile-convergence (FMC), and IP multimedia sub-systems (IMS). Existing network elements which offer network access using Ethernet technology are not designed to make maximum use of the legacy network links existing at the edge of the carrier networks. The edge of the network is quickly becoming a bottleneck as the new applications are becoming more and more demanding for bandwidth. 
     Telecommunications carriers are constantly looking for new revenue sources. They need to be able to deploy rapidly a wide ranging variety of services and applications without the need to constantly modify the network infrastructure. Ethernet is a promising technology that is able to support a variety of application requiring different quality of service (QoS) from the network. The technology is now being standardized to offer different types of services which have different combinations of quality objectives, such as loss, delay and bandwidth. Bandwidth objectives are defined in terms committed information rate (CIR) or excess information rate (EIR). The CIR guarantees bandwidth to a connection while the EIR allows it to send at higher bandwidth when available. 
     Path Association 
     Using MPLS, bidirectional connections are set up using two uni-directional tunnels. A concept of pseudo-wire has been standardized to pair the two tunnels at both end-points of the tunnels (see  FIG. 1 ). However intermediate nodes are not aware of the pairing and treat the two tunnels independently. Furthermore, the routing mechanism does not attempt to route both connections through the same path. It is therefore impossible for a carrier to use operation administration and maintenance (OAM) packets, in order to create loopbacks within the connection path to troubleshoot a connection without setting up out-of-service explicit paths. There is therefore a need for a mechanism to make a unidirectional path look like a bi-directional path. 
     This capability existed in ATM and frame relay technologies because they were inherently connection-oriented and both paths of a connection (forward and backward) always went through the same route. 
     Carriers need the ability to set up flexible Ethernet OAM path in-service and out-of-service anywhere in the network in order to efficiently perform troubleshooting. 
     E-LINE Protection 
     In order to provide reliable carrier-grade Ethernet services, the Ethernet technology has to be able to support stringent protection mechanisms for each Ethernet point-to-point (E-LINE) link. 
     There are two main types of protection required by a carrier, link protection and path protection. There are a number of standard link protection techniques in the marketplace, such as ring protection and bypass links which protect against a node going down. Generally connection oriented protocols such as MPLS use path protection techniques. Most path protection techniques assume a routed network where the routes are dynamically configured and protected based on the resource requirements. 
     One issue with all these existing protection protocols is that they do not take into account business policies, such as desired level of protection, for determining the protected path. 
     Another issue with the current way protection paths are set up is that they only trigger when intermediate nodes or links encounter failure. If the end-point outside of the tunnel, receiving the traffic fails, the source continues to send the traffic unaware of the failure, until application-level reaction is triggered, thus wasting precious bandwidth. Such reaction can take up to several minutes. 
     Zero-Loss Proctection Switching 
     Some communication applications, such as medical and security applications, require a very reliable service. In these cases, a 50-ms switch over time may be inadequate due to the critical data lost during this time period. For example, a 50-ms switch over in a security monitoring application could be misconstrued as a “man-in-the-middle” attack, causing resources to be wasted resolving the cause of the “glitch.” 
     SUMMARY OF THE INVENTION 
     One embodiment provides a telecommunications system comprising a network for transporting packets on a path between selected subscriber end points. The network has multiple nodes connected by links, with each node (a) pairing the forward and backward paths of a connection and (b) allowing for the injection of messages in the backward direction of a connection from any node in the path without needing to consult a higher OSI layer. In one implementation, each node switches to a backup path when one of the paired paths fails, and a new backup path is created after a path has switched to a backup path for a prescribed length of time. 
     In another embodiment, a system is provided for protecting connection paths for transporting data packets through an Ethernet telecommunications network having a multiplicity of nodes interconnected by a multiplicity of links. Primary and backup paths are provided through the network for each of multiple connections, with each path including multiple links. Data packets arriving at a first node common to the primary and backup paths are duplicated, and one of the duplicate packets is transported over the primary path, the other duplicate packet is transported over the backup path, and the duplicate packets are recombined at a second node common to the primary and backup paths. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention will be better understood from the following description of preferred embodiments together with reference to the accompanying drawings, in which: 
         FIG. 1  illustrates a prior art network where both directions of the connections use different paths. 
         FIG. 2  illustrates an example where both directions of the connection use the same path. 
         FIG. 3  illustrates the pairing of the connection at each node and the use of hairpins for continuity checking. 
         FIG. 4  illustrates the use of hairpins for creating path snakes. 
         FIG. 4   a  illustrates the management of rules 
         FIG. 5  Illustrates the use of control messages to trigger protection switching 
         FIG. 6  illustrates the ability to duplicate packets to ensure zero-loss for a path. 
         FIG. 7  illustrates one example of an implementation of a packet duplication algorithm. 
         FIG. 8  illustrates one example of a packet recombination algorithm. 
     
    
    
     DETAILED DESCRIPTION 
     Path Association 
     Given the ability of the VMS to ensure that each direction of the connection uses the same path (as per  FIG. 2 ), each network element (e.g. WiMAX switch) is able to (1) pair each forward  202  and backward  203  path of a connection at each node in the path of a connection and (2) allow for injection of messages in the backward direction of a connection from any node in the path. This capability, depicted in  FIG. 3 , is referred to herein as creating a “hairpin”  303 . The knowledge of the pairs at each node  201  allows creating loopbacks, and then using control packets at any point in a connection in order to perform troubleshooting. Loopbacks can also be created by the VMS or manually generated. The pairing is possible in this case because the VMS ensures that both paths of the connections (forward and backward) take the same route which is not currently the case for Ethernet 
     Other examples of uses for this path association could be where two uni-directional paths with different characteristics are paired (such as different labels and traffic engineering information in the case of MPLS), or where a single backward path is used in the hairpin connections for multiple forward unidirectional paths. 
     The hairpin allows nodes in the network to send messages (such as port-state) back to their ingress point by sending packets back along the hairpin path without the need to hold additional information about the entire path without the need to consult higher level functions outside of the datapath, or to involve the transit end of the path. If the path is already bidirectional, no hairpin is required for pairing. 
     Using the hairpin to its full potential requires the use of a new subsystem referred to herein as a “packet treatment rule” or “rules” for short. These rules are assigned to an ingress interface and consist of two parts ( FIG. 4   a ): 
     (1) ingress matching criteria  407 : this is a check to see if the packet in question is to be acted upon or to simply pass though the rule subsystem with no action. 
     (2) an action mechanism  408  that is called if a packet does meet the criteria of a packet to be acted upon. An example of an action mechanism is where a rule was placed on an ingress interface looking for a prescribed bit-pattern within the packet. When the system receives a packet that matches the prescribed bit-pattern, the action mechanism is run. This action mechanism may be one that directs the system to send this packet back out the interface at which it was received after altering it in some way. All other packets pass through the system unaffected. 
     Rules can be placed at each node along a path to use the hairpin to loop-back one or more types of packet, or all packets crossing a port. Rules can also be activated by types of packets or other rules, allowing complicated rules that activate other rules upon receiving an activation packet or and deactivate rules on receiving a deactivation packet. 
     As exemplified in  FIG. 3 , the pairing  302  allows the system to create flexible in-service or out-of-service continuity checking at any node  201  in the path. Rule checking points can be set along a path from ingress to egress to allow continuity checks  304  at each hop along a path. Each rule can consist of looking for a different pattern in a packet, and only hairpin traffic matching that bit pattern, as defined in the ingress matching criteria  407  of each individual rule. The pattern or ingress matching criteria can consist of a special pattern in the header or the body of a packet, or any way to classify the packet against a policy to identify it should be turned around on the hairpin. This allows a network operator to check each hop while live traffic runs on the path and is unaffected (in-service loopback) or to provide an out-of-service loopback that sends all traffic back on the hairpin interfaces. 
     The creation of path snakes is also easily implementable using hairpins (see  FIG. 4 ). A snake of a path  401  can be created using a number of rules, e.g., one rule causing a specific type of packet to be put on a path that exists on the node, and then other rules directing that packet to other paths or hairpins on the node to allow a network operator to “snake” packets across a number of paths to test connectivity of the network. This also allows a test port with a diagnostic device  402  to be inserted into a node to source (inject) and receive traffic that does not require insertion on the ingress or egress of a path. 
     In the case of  FIG. 4 : a rule  405  is placed on the ingress port for a path  401  that sends all traffic, regardless of bit pattern, out a specific egress port  404  towards a downstream node  201   b . An additional rule  403  placed on node  201  ingress port sends all traffic with a unique (but configurable) bit-pattem out the interface&#39;s hairpin back towards node  201 . A final rule  406  sends all traffic matching the aforementioned unique bit pattern out the interface connected to the test device  407 . 
     The hairpin is always available at each node for each connection. Rules can be enabled (and later disabled) to look for specific types of control messages (e.g., loop-back) and act on them. 
     Hairpins can also used for other mechanisms described below such as protection switching, network migration and flow control. 
     E-LINE Protection Configuration and Operation 
     One embodiment provides sub-50msec path protection switching for Ethernet point-to-point path failures in order to meet the reliability requirements of the carriers is without using a large amount of control messages. Furthermore, the back-up path is established and triggered based not only on available resources but also on business policies as described above. 
     The back-up path is calculated using the VMS, and not via typical signaling mechanisms, which configures the switches&#39;  201  control plane with the protected path. The back-up path is set up by the VMS and does not require use of routing protocols such as OSPF. Once the back-up path is set up, the VMS is not involved in the protection switching. The process is illustrated in FIG. EP- 1 . When a node  201  detects a link failure  501  (via any well-known method, such as loss of signal), it creates a control message  504  and sends the message back along the system using the hairpin  303  (as described above) to indicate to the source endpoint of each connection using the failed link that they need to switch to the back-up path. The switching is then done instantaneously to the back-up path  505 . If the uni-directional paths are MPLS-Label switched paths, the hairpin allows the system to send the message back to the path&#39;s origination point without the need to consult a higher-level protocol. 
     The node can use the same mechanisms to notify the sources that the primary path failure has been restored. Depending on the business policies set up by the carrier, the connection can revert to the primary path. 
     After a connection has been switched to a back-up path, the VMS is notified via messaging that the failure has occurred. The VMS can be configured to make the current path the primary path and to recalculate a new back-up path for the connection after some predetermined amount of time has elapsed and the primary path was not restored (e.g., after 1 minute). The information about the new back-up path is then sent down to the nodes without impact to the current data flow, and the old configuration (failed path) is removed from the configuration. Alternatively, the VMS can also be configured to find a new primary path and send a notification for switch over. The backup protection path remains as configured previously. 
     If the a User-Network-Interface (UNI) or Network-Network-Interface (NNI) at an end-point of a path fails, the endpoint can also use hairpins to send a control message to the traffic source to stop the traffic flow until the failure is restored or a new path to the destination can be created by the VMS, which is notified of the failure via messaging. 
     Zero-Loss Protection Switching 
     Leveraging the E-line protection scheme, the Switch  201  can create duplicate packet streams using the active and the backup paths. Sequence numbers are used to re-combine the traffic streams and provide a single copy to the server application. If the application does not provide native sequence numbers, they are added by the system. 
     One implementation of this behavior is shown in  FIG. 6 . In this figure, a client application  600  has a stream of packets destined for a server application  601 . A packet duplication routine  610  creates two copies of the packets sourced by the client application  600 . A sequence number is added to these duplicate packets, and one copy is sent out on an active link  620  and another is sent out on a backup link  621 . 
     One example of a packet duplication routine is depicted in  FIG. 7 . A packet is received at the packet duplication system  701  from a Client Application  600 . The packet is examined by the system  702 , which determines whether an appropriate sequence number is already contained in the packet (this is possible if the packet type is known to contain sequence numbers, such as TCP). If no well-known sequence number is contained in the packet, a sequence number is added by the packet duplication system  703 . The packet is then duplicated  704  by being sent out both links,  620  and  621 , first on the active link  704  and then on the back-up link  705 . If there is no need to add a sequence number  702 , because the packet already contains such a number, the routine proceeds to duplicate the packet  704 . 
     A packet recombination routine  611  listens for the sequenced packets and provides a single copy to the server application  601 . It removes the sequence numbers if these are not natively provided by the client application  600  data. 
     One example of a packet recombination routine is shown in  FIG. 8 . In this case a packet is received  801  by the packet recombination system  611  from the packet duplication system  610 . The system examines the sequence number and determines if it has received a packet with the same sequence number before  802 . If it has not received a packet with this sequence number before, the fact that is has now received a packet with this sequence number is recorded. If the sequence number was added by the packet duplication system  803  then this sequence number is now removed from the packet and the packet system sends the packet to the Server Application  804 . If the sequence number was not added by the packet duplication system  600 , then the packet is sent to the Server Application  601  unchanged  805 . If a new packet is received by the packet recombination system  802  with a sequence number that was recorded previously, then the packet is immediately discarded as it is known to be a duplicate  806 . 
     This system does the duplication at the more relevant packet level as opposed to the bit level of other previous implementations (as data systems transport packets not raw bit-streams) and that both streams are received and examined, with a decision to actively discard the duplicate packet after it has been received at the far end. Thus, a switch or link failure does not result in corrupted packets while the system switches to the other stream, because the system simply stops receiving duplicated packets. 
     Those skilled in the art will recognize that various modifications and changes could be made to the invention without departing from the spirit and scope thereof. It should therefore be understood that the claims are not to be considered as being limited to the precise embodiments set forth above, in the absence of specific limitations directed to each embodiment.