Asymmetric delay compensation
There is provided an asymmetric link delay compensation method in which a plurality of calibration profiles maybe used for providing a common network time estimate in a communication network. The communication network comprises a node at least two virtual paths, VP, connecting to one or more sync nodes. The at least two VPs are each associated with one or more respective predetermined calibration profiles with a respective delay correction factor. By identifying which of the VPs may be candidate VPs for calculating a time offset caused by the delay over the VPs and then ranking the candidates to select a best or a set of candidates for the calculation, an advantageous method for providing a common network time in the communication network is achieved.
1 . A method for compensating asymmetric link delays for network time estimates in a communication network comprising a first sync node having a plurality of virtual paths (VPs) said plurality of VPs being end-to-end paths connecting said first sync node to one or more second sync nodes, wherein at least two VPs of said plurality of VPs are associated with respective calibration profiles including respective delay correction factors, and data stream characteristics values and/or at least one link path property value, said method comprising:
monitoring data stream characteristics and/or at least one link path property of at least one VP;
identifying, among said at least two VPs, a plurality of candidate VPs having respective calibration profiles which match the monitored data stream characteristics and/or at least one link path property;
selecting, as one or more selected VPs, one or more candidate VPs from among the plurality of candidate VPs by ranking said plurality of candidate VPs; and
calculating one or more time offsets based on the respective delay correction factor included in the respective calibration profile of each selected VP of the one or more selected VPs.
2 . A method according to claim 1 , further comprising:
determining if connected second sync nodes of VPs are in a calibrated state, and determining if said first sync node is in a calibrated state.
3 . A method according to claim 2 , wherein said determining if said first sync node is in a calibrated state comprises identifying if a connected second sync node of at least one selected VP is in a calibrated state and determining that said at least one selected VP is in a calibrated state.
4 . A method according to claim 2 , further comprising communicating calibrated state of said first sync node to neighboring nodes.
5 . A method according to claim 3 , further comprising communicating calibrated state of said first sync node to neighboring nodes.
6 . A method according to claim 1 , wherein said identifying of the plurality of candidate VPs comprises determining if respective data stream characteristics and/or link path properties of said at least two VPs match to their respective calibration profiles.
7 . A method according to claim 1 , wherein said identifying of the plurality of candidate VPs comprises determining if respective data stream characteristics and/or link path properties of said at least two VPs match their respective calibration profiles within a preset range.
8 . A method according to claim 1 , wherein said ranking of the plurality of candidate VPs is performed by at least one of comparing among the plurality of candidate VPs:
if a respective connected second sync node is in a calibrated state,
best fit or weighted best fit of data stream characteristics of the respective calibration profile,
link type or link path properties,
master clock source,
priority of master clock source,
quality metrics of said VPs and/or their combined path to master clock source,
sync routing protocol metrics from master clock source,
calculated node clock time per VP, and
number of link paths to connected sync node or to master clock source;
wherein link paths are paths between intermediate nodes in the VP.
9 . A method according to claim 1 , further comprising calculating at least one node clock time by using at least one time offset of said one or more time offsets as a time correction factor.
10 . A method according to claim 9 , wherein said at least one node clock time is calculated using an average of at least two of said one or more time offsets as the time correction factor.
11 . A method according to claim 9 , further comprising applying weighting factors on said at least one node clock time or said one or more time offsets.
12 . A method according to claim 10 , further comprising applying weighting factors on said at least one node clock time or said one or more time offsets.
13 . A method according to claim 11 , wherein said weighting factors are determined using said ranking of the plurality of candidate VPs.
14 . A method according to claim 8 , wherein, when ranking based on the link type, the link type is one of fiber, wavelength, Ethernet, IP/MPLS, radio link, OAS, and Internet.
15 . A method according to claim 1 , wherein said calibration profiles are identified in a list of predetermined calibration profiles by monitoring and comparing at least one monitored data stream characteristic and/or at least one link path property to corresponding values of respective predetermined calibration profiles among the list of predetermined calibration profiles.
16 . A method according to claim 1 , wherein the method is performed in said first sync node, a connected second sync node, a central node in communication with sync nodes of the communication network, or are distributed among said first sync node, said connected second sync node, and the central node.
17 . A central node in a communication system comprising a multiple of nodes, wherein the central node is arranged in communication with said nodes, said central node comprising a memory and a processor configured for providing a central protocol for performing the method according to claim 1 .
18 . A node in a communication system arranged for node to node communication, the node comprising: a memory storing computer-readable instructions, and a processor configured to execute the computer-readable instructions to perform the method according to claim 1 .
19 . A non-transitory computer readable storage medium storing computer-readable instructions executable by a processor to cause the processor to perform the method according to claim 1 .