Abstract:
A method of determining packet loss ratio between two communications nodes, the method comprising: transmitting at least one loopback packet configured to be propagated from a first node through a second and third nodes back to the first node; upon traversal of the second node inserting into the loopback packet a first counter for a number of packets sent from the second node to the third node prior to receiving the loopback packet; upon traversal of the third node inserting into the loopback packet a second counter for a number of packets received by the third node from the second node prior to receiving the loopback packet; upon return of the loopback packet to the first node, determining a packet loss ratio between the second and third nodes responsive to the first counter number and the second counter number inserted into the loopback packet.

Description:
RELATED APPLICATIONS 
       [0001]    The present application is a Divisional of co-pending U.S. application Ser. No. 13/945,934 filed Jul. 19, 2013, the disclosure of which is incorporated herein by reference in its entirety. 
     
    
     FIELD 
       [0002]    Embodiments of the invention relate to loopback testing of communications paths. 
       BACKGROUND 
       [0003]    Communications networks Operations, Administration, and Maintenance (OAM) protocols are used to monitor the connectivity and performance parameters, such as propagation delay or information loss, of communications paths between communications nodes in the networks. For packet switched networks, these protocols may entail transmission and reception of special packets, known as OAM packets, which conform to standardized protocols. For networks based on Ethernet, standardized OAM protocols have been defined by the ITU-T in Recommendation Y.1731 and by the IEEE in both 802.1ag (CFM) and 802.3ah (EFM) standards. For networks based on the Internet Protocol (IP), the IETF has specified Bidirectional Forwarding Detection (BFD) to monitor basic connectivity, the One-Way Active Measurement Protocol (OWAMP), and the Two-Way Active Measurement Protocol (TWAMP) to monitor performance parameters. For networks based on MPLS, the IETF has defined OAM protocols in RFCs 6374, 6375, 6426, 6427, 6428, and 6435. 
         [0004]    Some OAM protocols for packet switched networks are one-way “heartbeat” protocols, in which a first communications node sends Continuity Check or “CC packets” to a second communications node, usually at some constant rate of packets per second. If the second communications node does not receive packets for some preconfigured period, conventionally chosen to be somewhat more than the time required for three CC packets to arrive, it declares a continuity fault. If most CC packets sent by the first communications node are received by the second communications node, the percentage of packets lost may be counted in order to determine the Packet Loss Ratio (PLR). In addition, if the first and second communications nodes share a common clock, or have synchronized clocks, one-way protocols may be used to measure the propagation delay across the communications path between them. Even without a common clock, one-way protocols may be used to measure Packet Delay Variation (PDV). 
         [0005]    Some, OAM protocols are two-way “loopback” protocols, in which a first communications node sends loopback or “LB packets” to a second communications node, which reflects these packets back to the first communications node. Loopback protocols may be used to detect loss of continuity in either direction, measure PLR and PDV, and to measure round-trip delay without the need for a shared common clock or synchronized clocks. 
         [0006]    In order to perform OAM functionality, the first communications node may periodically create, configure, and transmit to the second communications node a sequence of OAM (either CC or LB) packets. OAM packets may be transmitted at a low rate of for example, one per second, or at higher rates of tens or hundreds of packets per second. For example, if it is advantageous to detect a loss of continuity within 30 milliseconds, and the condition for detection is the conventional three lost packets, then OAM packets must be sent no less frequently then every 10 milliseconds, i.e., at least 100 packets per second. The first communications node may need to participate in a large number of such “OAM sessions”, differing in packet characteristics (e.g., priority marking, packet size). Thus the computational toll of OAM protocols on the first communications node may be significant. 
         [0007]    If it is desired to measure round-trip delay with a loopback protocol, the loopback packet must be time-stamped by the first communications node with a transmission time, T T ( 1 ). Upon receiving the loopback packet, the second communications node time-stamps the received loopback packet with the reception time, T R ( 2 ). Once the loopback response packet has been properly formed and is ready to be transmitted back to the first communications node, the second communications node time-stamps the response packet with the transmission time, T T ( 2 ) and transmits the response packet to the first communications node. Upon reception by the first communications node, the first communications node notes the arrival time with a fourth time-stamp T R ( 1 ).The round-trip delay is given by the total transit time T R ( 1 )−T T ( 1 ) reduced by the dwell time in the second communications node T T ( 2 )−T R ( 2 ). 
         [0008]    Whereas it is possible to measure round-trip delay using a conventional OAM protocol it is not possible to directly measure a one-way delay in either direction via conventional loopback OAM. If it is known that the path between the first communications node and the second communications node consists of a single physical link, or this path is guaranteed to traverse the same network elements and the loading on all of these network elements is similar, then half the round-trip delay can be taken as a rough estimate of the one-way delay. In other cases there is no way of deducing the one-way delay based on conventional loopback OAM alone. 
       SUMMARY 
       [0009]    Aspects of embodiments of the invention relate to providing a method for a first communications node to determine continuity and performance parameters, and in particular one-way delay, for a communications path between second and third communications nodes. The three communications nodes may be considered configured in a triangle, i.e., each node is connected to the two others, as depicted in  FIG. 2A  discussed below. 
         [0010]    In accordance with an embodiment, to determine continuity between the second and third communications nodes, the first communications node first performs conventional loopback tests to test continuity of paths linking the first communications node and the second and third communications nodes. Once these continuities have been ascertained, the first communications node initiates a “triangle” loopback test, in accordance with an embodiment of the invention, by sending a “triangle loopback packet” to the second node. Unlike conventional loopback testing, the second communications node does not return the triangle loopback packet it receives to the first communications node, but rather forwards the triangle packet to the third communications node. If the path between the second and third nodes is continuous, the third communications node receives the triangle packet, and returns it to the first communications node, thereby completing the triangle loop around the three communications nodes and “informing” the first node that the path between the second and third nodes is functioning. If on the other hand the first node does not receive the triangle loopback packet, the triangle path is discontinuous and the first node is informed that the path between the second and third nodes is not functioning. 
         [0011]    By means of the triangle loopback procedure described above, the first communications node determines continuity of the communications path in a direction from the second to the third communications nodes. To determine continuity, in accordance with an embodiment of the invention, in the direction from the third to the second communications node, the first communications node sends a triangle loopback packet to propagate “around the triangle”, in a sense opposite to that in which the loopback packet propagated in determining continuity from the second to the third node. 
         [0012]    By periodically repeating the procedure described above, one can monitor the continuity of the bi-directional path linking the second and third communications nodes. When performing loopback testing over time, some percentage of the individual loopback packets may be lost, for example due to bit errors along the path, or due to buffer over-runs at communications nodes. The first communications node may count the number of triangle loopback packets it sends, and the number of triangle loopback packets it receives, and calculate the percentage of packets lost, known as the Packet Loss Ratio, or PLR. However, this calculated PLR will be that of the entire path from the first communications node through the second and third and back to the first. In order to isolate the PLR of the path between the second and third communications nodes, sequence numbers and packet counters may be used. 
         [0013]    Assume that the first communications node is connected to both the second and third communications nodes by direct physical links, or by paths known to be of symmetric delay, or by paths with asymmetry (i.e., the difference in delay between the two directions) less than a given acceptable amount of error. In accordance with an embodiment, to determine propagation delay on the path between the second and third communications nodes, the first communications node first performs conventional loopback round-trip delay measurements with both the second and third communications nodes, to measure the round-trip delays D (1,2,1) and D(1,3,1) which represent the round trip delay for packet propagation between the first and second nodes and the first and third nodes respectively. Since it is assumed that the packet delay between the first and second nodes is symmetric, the one-way packet delays in either direction D(1,2) and D(2,1) are the same and may be estimated to be equal to D(1,2,1)/2. Similarly, for the first and third nodes D(1,3)=D(3,1)=D(1,3,1)/2. 
         [0014]    The first communications node then performs a triangle loopback delay measurement to determine the three-way delay for packet propagation from the first communications node through communications nodes two and three and back to the first communications node: D(1,2,3,1)=D(1,2)+D(2,3)+D(3,1). Since the one-way delays D(1,2) and D(3,1) have already been estimated, one can readily obtain the desired one-way delay from the second to the third communications nodes as D(2,3)=D(1,2,3,1)−D(1,2)−D(3,1). 
         [0015]    It is noted that one-way delay D(3,2) between communications node three back to communications node 2, which may be different from the one-way delay just measured, may also be measured. For this measure, the first communications node sends a triangle loopback packet to communications node 3, to propagate back to node 1 after passing through node 2. 
         [0016]    In the discussion, unless otherwise stated, adjectives such as “substantially” and “about” modifying a condition or relationship characteristic of a feature or features of an embodiment of the invention, are understood to mean that the condition or characteristic is defined to within tolerances that are acceptable for operation of the embodiment for an application for which it is intended. Unless otherwise indicated, the word “or” in the description and claims is considered to be the inclusive “or” rather than the exclusive or, and indicates at least one of, or any combination of items it conjoins. 
         [0017]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
     
    
     
       BRIEF DESCRIPTION OF FIGURES 
         [0018]    Non-limiting examples of embodiments of the invention are described below with reference to the figures attached hereto and noted following this paragraph. Identical structures, elements or parts that appear in more than one figure are generally labeled with a same numeral in all the figures in which they appear. A label labeling an icon representing a given feature of an embodiment of the invention in a figure may be used to reference the given feature. Dimensions of components and features shown in the figures are chosen for convenience and clarity of presentation and are not necessarily shown to scale. 
           [0019]      FIG. 1  schematically shows a first and a second communications node performing a conventional loopback test according to the prior art; and 
           [0020]      FIGS. 2A and 2B  schematically show a first communications node determining a propagation delay between second and third communications nodes, in accordance with an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]      FIG. 1  schematically shows a first communications node  21  having an address “A 21 ” performing nonintrusive (in-service) loopback testing according to the prior art with a second communications node  22  having an address “A 22 ”. Communications nodes  21  and  22  are connected by a communications path schematically represented by a shaded bar  24  and loopback testing is being used to determine continuity of communications path  24 , to measure PLR of this path, and to measure round-trip delay D(21,22) for the path. Communications path  24  may be a physical link, or may comprise a sequence of links connected by further communications nodes (not shown). In performance of the loopback test, at a time T T ( 21 ) communications node  21  transmits a loopback packet, schematically represented by a block arrow  120 , to communications node  22 . Loopback packet  120  is coded with a destination address that is address A 22  of communications node  22  and a source address that is address A 21  of communications node  21 . Loopback packet  120  is received at communications node  22  at a reception time T R ( 22 ). Transmission of loopback packet  120  from communications node  21  to communications node  22  over path  24  is represented by an arrow  25  and transmission and reception times T T ( 21 ) and T R ( 22 ) are shown at appropriate ends of arrow  25 . 
         [0022]    Upon receipt of loopback packet  120  communications node  22  processes the loopback packet according to the protocol being used. Loopback protocols may involve simple “reflection”, wherein communications node  22  simply swaps source and destination addresses forming a packet  120 * with destination address A 21  and source address A 22 , which is then forwarded back towards communications node  21 . Alternatively, a loopback protocol may be a request/response protocol wherein communications node A 22  parses the loopback packet  120 , and forms a new loopback packet  120 *, which is forwarded towards communications node  21 . 
         [0023]    When loopback packet  120 * is received by communications node  21  it signifies that both directions of communications path  24  are operational. If packet  120 * is not received, it signifies that either packet  120  was never received by communications node  22 , or that packet  120 * was not received by communications node  21 . 
         [0024]    By periodically repeating the procedure described above, node  21  may monitor and/or be used to monitor the continuity of the bi-directional path  24  linking communications nodes  21  and  22 . The sequence of such related loopback packets along with the processing state is known as an “OAM session”. A communications node may, at any given time, simultaneously participate in a number of different OAM sessions, either with different remote nodes, or with the same node but with different packet characteristics (e.g., a session may be maintained for packets with a given priority level, or a given size). 
         [0025]    When performing OAM testing over time, some percentage of the individual loopback packets may be lost, for example due to bit errors along the path, or due to buffer over-run at communications nodes. Communications node  21  may count the number of loopback packets it sends, and the number of packets it receives, and use the number sent and number received to determine the percentage of packets lost, known as the Packet Loss Ratio, or PLR via path  24 . 
         [0026]    In order to perform round-trip delay measurement in addition to basic CC and PLR measurement, communications node  21  inserts into loopback packet  120  a time-stamp, that is, a representation of the time of day at which the packet was transmitted, namely T T  ( 21 ). When communications node  22  receives loopback packet  120 , it immediately inserts an additional time-stamp representing the time of day T R  ( 22 ) it received the packet. Node  22  buffers and processes the received loopback packet  120  to prepare a loopback packet  120 * carrying the time stamp T R  ( 22 ) for transmission back to node  21 . Immediately before transmission of loopback packet  120 * node  22  inserts an additional time-stamp T T ( 22 ) into the packet representing the time of transmission. When communications node  21  receives loopback packet  120 *, it associates it with a time-stamp representing a time of reception T R  ( 21 ). Irrespective of whether or not the clocks dictating time of day at communications nodes  21  and  22  are synchronized, the round-trip delay may be given by D(21,22,21)=[T R ( 21 )−T T ( 21 )]−[T T  ( 22 )−T R  ( 22 )]. If it may be assumed that the communications path  24  is symmetric, i.e., that the propagation delay from communications node  21  to communications node  22  equals the propagation delay from communications node  22  back to communications node  22 , then the one-way delay in either direction, D(21,22) or D(22,21), is given by D(21,22,21)/2. 
         [0027]    The prior art procedure described above suffer from several drawbacks. First, if a communications node must generate a large number of OAM sessions, this may create a significant resource drain on that node. Second, when round-trip continuity is not detected, conventional loopback testing does not furnish an indication as to which direction is faulty. Furthermore, when the communications path is not symmetric, loopback delay measurement does not furnish the one-way delays, unless clocks in the nodes are synchronized. 
         [0028]      FIGS. 2A and 2B  schematically show a first communications node  31  having address A 31  operating to monitor and measure one-way delay for a communications path  36  between second and third communications nodes  32  and  33 , having addresses A 32  and A 33  respectively, in accordance with an embodiment of the invention. Communications paths  34  and  35  connect communications node  31 , either directly or via other nodes, with communications nodes  32  and  33  respectively. 
         [0029]    To measure one-way delay for a communications path  36  in accordance with an embodiment of the invention, communications node  31 , as schematically shown in  FIG. 2A , may perform loopback continuity testing of the paths  34  and  35  according to the prior art. It may then transmit a triangle loopback packet  150  to communications node  32 , which in turn forwards it to communications node  33 , which forwards it back to communications node  31 , as depicted in  FIG. 2B . Since the triangle path consists of a concatenation of one-way paths  34 ,  36 , and  35 , and since continuity has been ascertained for paths  34  and  35 , one may infer continuity for path  36  in the direction from communications node  32  to communications node  33 . Similarly, by transmitting a triangle loopback packet to communications node  33 , which in turn forwards it to communications node  32 , which forwards it back to communications node  31 , one may infer continuity for path  36  in the direction from communications node  33  to communications node  32 . 
         [0030]    In order for triangle loopback testing to function as described, it is necessary to ensure that the triangle loopback packet traverses communications paths  34 ,  36 , and  35 . According to an embodiment, this may be accomplished by pre-configuring communications nodes  32  and  33  to appropriately forward triangle loopback packets. 
         [0031]    According to another embodiment, this may be accomplished by multiple encapsulations. Communications node  31  prepares a packet addressed from communications node  33  to itself, and places this inside a packet addressed from communications node  32  to communications node  33 , and places this new packet into a triangle “encapsulation” packet addressed from itself to communications node  32 . When communications node  32  receives the triangle loopback packet it removes the outer encapsulation “revealing” the packet addressed from itself to communications node  33  and appropriately forwards it. When communications node  33  receives this packet it removes the outer encapsulation and reveals the inner packet addressed from itself to communications node  31  and appropriately forwards it. Such multiple encapsulation may be performed for example using MAC-in-MAC encapsulation conforming to IEEE 802.1ah, by MPLS label stacking as described in IETF RFC 3031, or by IP-in-IP tunneling according to IETF RFC 2003. 
         [0032]    In accordance with an embodiment of the invention, communications node  31  may measure the PLR of communications path  36  in the direction from communications node  32  to communications node  33  by transmitting, optionally, a triangle loopback encapsulation packet to communications node  32 . Communications node  32  forwards this packet to communications node  33  which in turn forwards it back to communications node  31 . By counting the number of packets received and comparing to the number of packets sent, communications node  31  can calculate the PLR of the entire round-trip communications path, comprising a concatenation of communications paths  34 ,  36 , and  35 . 
         [0033]    In an embodiment of the invention the contribution of communications path  36  between communications node  32  and  33  to the total round-trip PLR is determined by use of packet counters. Communications node  31  inserts a sequence number into the triangle loopback packet and forwards it to communications node  32 . The sequence number increases by one for each triangle loopback packet sent. Communications node  32  inserts into the triangle loopback packet a counter number giving a number of packets from the sequence that it did not receive, optionally by counting missing sequence numbers and forwards it to communications node  33 . Node  33  inserts a further counter signifying the number of packets lost and forwards it back to communications node  31 . Communications node  31  upon receiving the 3-way loopback packet containing sequence number and counters, may determine the desired PLR of communications path  36  by comparing the counters. 
         [0034]    Note that the PLR just found relates to communications path  36  in the direction from communications node  32  to communications node  33 . In similar fashion, by transmitting a triangle loopback packet to communications node  33 , which inserts a packet loss counter and forwards it to communications node  32 , which inserts an additional packet loss counter and forwards it back to communications node  31 , one may infer PLR for path  36  in the direction from communications node  33  to communications node  32 . 
         [0035]    Obtaining an accurate estimate of the PLR requires statistics on a large number of packets. 
         [0036]    When triangle loopback testing is performed on in-service paths, it is beneficial to count loss of all packets traversing each segment, rather than only loopback packets. In order to accomplish this, communications node  32  inserts a counter signifying the total number of packets of all types transmitted towards communications node  33 . Communications node  33  similarly inserts a counter signifying the total number of packets of all types received from communications node  32 . When the packet is received by communications node  31  it may compare these two counters and calculate the PLR to a high degree of precision based on all packets flowing on the path between communications node  32  and  33 . 
         [0037]    In accordance with an embodiment of the invention, communications node  31  may further measure the one-way delay of communications path  36  in the direction from communications node  32  to communications node  33  as follows. First it measures round-trip packet delays D(31,32,31) and D(31,33,31) for paths  34  and  35  respectively, similarly to the way in which communications node  21  determined D(21,22,21) for path  24  between communications nodes  21  and  22 , shown in  FIG. 1 . Under the assumption that these two paths are symmetric, it may derive the one-way delays D(31,32) and D(33,31) by dividing D(31,32,31) and D(31,33,31) respectively by two. 
         [0038]    Communications node  31  next measures the triangle path packet delay D(31,32,33,31) for propagation from communications node  31  to communications node  32 , on to communications node  33 , and then returning to communications node  31 . To determine D(31,32,33,31), communications node  31  transmits triangle loopback packet  150 , at a time T T ( 31 ) to communications node  32  over path  34 . Before transmitting the packet, it inserts a time-stamp representing this time into the packet. Communications node  32  receives packet  150  at a time T R ( 32 ), and immediately inserts a second time-stamp representing this time into the packet. After some processing and buffering delay, communications node  32  is ready to transmit the triangle loopback packet to communications node  33  at time T T ( 32 ). It inserts a third time-stamp representing this time into the packet and transmits the packet over path  36  as packet  150 * to communications node  33 . Communications node  33  receives packet  150 * at a time T R ( 33 ) and inserts a fourth time-stamp representing this time. Communications node  33  transmits the newly addressed packet as packet  150 ** over path  35  to communications node  31  at time T T ( 33 ) after inserting a fifth time-stamp representing this time. Communications node  31  finally receives the triangle loopback packet at time T R ( 31 ) and may calculate the full round-trip delay without node dwell times by subtracting these dwell times from the raw round-trip latency D(31,32,33,31)=(T R ( 31 )−T T ( 31 ))−(T T ( 32 )−T R ( 32 ))−(T T ( 33 )−T R ( 33 )). Finally, the desired one-way delay over communications path  36  may be determined by subtracting the previously calculated one-way delays for paths  34  and  35 , D(32,33)=D(31, 32, 33, 31)−D(31, 32)−D(33, 31). 
         [0039]    In order to determine the one-way delay D(33,32) in the opposite direction, communications node  31  transmits a triangle loopback packet first to communications node  33 , which would forward it through communications node  32  back to  31 . 
         [0040]    In an embodiment of the invention, communications node  31  acquires a plurality of measurements of D(32,33) and/or D(33,32) and uses the measurements to determine packet delay variations (PDVs) for forward (from communications node  32  to communications node  33 ) and backward (from communications node  33  to communications node  32 ) packet propagation over path  36 . 
         [0041]    In an embodiment of the invention, nodes  32  and  33  have synchronized clocks, but do not share this synchronization with node  31 . Communications node  31  sends a triangle loopback packet to node  32  which adds a transmit time-stamp T T ( 32 ) and forwards it to node  33  which adds a receive time-stamp T R ( 33 ) and forwards to originating node  31 . Communications node  31  can now directly calculate D(32,33)=T R ( 33 )−T T ( 32 ) despite asymmetry of the paths between node  31  and nodes  32  or  33 . 
         [0042]    In the description and claims of the present application, each of the verbs, “comprise” “include” and “have”, and conjugates thereof, are used to indicate that the object or objects of the verb are not necessarily a complete listing of components, elements or parts of the subject or subjects of the verb. 
         [0043]    Descriptions of embodiments of the invention in the present application are provided by way of example and are not intended to limit the scope of the invention. The described embodiments comprise different features, not all of which are required in all embodiments of the invention. Some embodiments utilize only some of the features or possible combinations of the features. Variations of embodiments of the invention that are described, and embodiments of the invention comprising different combinations of features noted in the described embodiments, will occur to persons of the art. The scope of the invention is limited only by the claims.