Measurement and adjustment of real-time values according to residence time in networking equipment without access to real time
AssigneeSemtech Corporation
InventorRichard James Lansdowne
Life of this patent
Estimating the term…
Abstract
A system and method of synchronizing clocks in a distributed network is disclosed. A simple 1-pulse-per-second timing pulse is routed to time-stamping units in each network device and utilized to measure traffic-dependent synchronization packet residence delays within network elements. Synchronization messages are updated to reflect the measured residence times, thus creating transparent clocks that can readily be synchronized across the network. The simple timing pulse architecture allows the method to be applied readily both to new designs and to retrofit existing hardware.
Claims25
A system for synchronizing time clocks within a distributed network, comprising:
- a master timing unit configured to broadcast a synchronization message with a known time interval, the synchronization message including a master time stamp reflecting an instantaneous time value measured at the master timing unit;
- a network data path connected to the master timing unit and providing a data path for the synchronization message;
- at least one network device connected to the network data path and adapted to receive the synchronization message, the network device comprising:
- a network core element;
- and
- a time stamping unit;
- a time pulse generator configured to output a periodic timing pulse;
- and
- a time pulse distribution network connecting the time pulse generator to the time stamping unit of the at least one network device;
- wherein
- the time pulse network is separate from the network data path;
- the time stamping unit further includes a timebase based on a local oscillator that is locked to the periodic timing pulse of the time pulse generator and used to drive a local slave time clock;
- and
- the time stamping unit is further adapted to:
- utilize the local slave time clock to measure a time interval between an arrival of the synchronization message at the network core element and a departure of the synchronization message from the network core element, in order to calculate a residence time of the synchronization message within the network core element;
- and
- update the synchronization message to add a time offset to the master time stamp that corresponds to the residence time within the network core element;
- wherein:
- the at least one network device is further configured to send a delay request packet back to the master timing unit through the network data path upon receiving the synchronization message from the master timing unit, wherein the delay request packet includes a time stamp reflecting a time measured by the local slave time clock when the delay request message leaves the at least one network device;
- the master timing unit is further configured to send a delay response packet back to the at least one network device that includes a time stamp reflecting a time at which the delay request packet arrived at the master timing unit;
- and
- the at least one network device is further configured to calculate a transport time of the synchronization message from the master timing unit and to shift a phase of the local slave time clock to compensate for the transport time of the synchronization message.
In a distributed network system, a method of synchronizing time clocks among network elements comprises:
- phase locking an IEEE1588 master timing reference to an external time source;
- preparing synchronization data packets at the master timing reference on a periodic basis that include a time stamp from the master timing reference;
- broadcasting the synchronization data packets on the periodic basis to at least one network element of the distributed network system over a data network;
- generating a timing pulse on a regular interval;
- routing the timing pulse to at least one of the network elements of the distributed network system over a timing pulse network that is separate from the data network;
- locking a local time stamping unit at the at least one network element to the timing pulse arriving via the timing pulse network;
- detecting an ingress of an IEEE1588 event packet comprising at least one of an IEEE1588 SYNC and an IEEE1588 DELAY REQUEST message;
- utilizing the local time stamping unit to modify the ingressing IEEE1588 event packet to contain a time stamp reflecting a time measured by the local time stamp clock;
- detecting an egress of the IEEE1588 event packet;
- determining whether the data packet at egress had been stamped with an ingress time stamp and if so:
- utilizing the local time stamping unit to calculate a time interval between the ingress and egress of the data packet;
- removing the ingress time stamp;
- restoring the event data packet to its original form;
- and
- modifying the restored packet to add data that corresponds to the time interval between the ingress and egress times of the data packet.
In a distributed network system, a method of synchronizing time clocks among network elements comprises:
- phase locking a master timing reference to an external time source;
- preparing synchronization data packets at the master timing reference on a periodic basis that include a time stamp from the master timing reference;
- broadcasting the synchronization data packets on the periodic basis to at least one network element of the distributed network system over a data network;
- generating a timing pulse on a regular interval;
- routing the timing pulse to at least one of the network elements of the distributed network system over a timing pulse network that is separate from the data network;
- locking a local slave oscillator at the at least one network element to the timing pulse arriving via the timing pulse network;
- utilizing the local slave oscillator to measure an arrival time and a departure time of the synchronization data packet arriving via the data network;
- calculating a residence time of the synchronization data packet within the at least one network element;
- modifying the synchronization data packet to add a time value corresponding to the residence time of the synchronization data packet within the at least one network element;
- generating a delay request packet at the at least one network element upon receipt of the synchronization data packet from the master timing reference, wherein the delay request packet includes a time stamp reflecting a time measured at the at least one network element;
- sending the delay request packet back to the master timing reference;
- preparing a delay response packet at the master timing reference including a time stamp reflecting a time at which the delay request packet arrived at the master timing reference;
- sending the delay response packet back to the at least one network element;
- calculating a transport time of the synchronization data packet;
- and
- adjusting a local time clock locked to the local oscillator at the at least one network element to compensate for the calculated transport time.
In a distributed network system including a local clock, a distributed timing reference, and a time stamping circuit, a method of compensating for variable packet delays includes the steps of:
- synchronizing the local clock to the distributed timing reference;
- detecting an IEEE1588 event packet comprising at least one of an IEEE1588 SYNC or an IEEE1588 DELAY REQUEST message at the time stamping circuit;
- determining whether the IEEE1588 event packet is an ingress timing packet or an egress timing packet;
- when the event packet is an ingress timing packet, modifying the IEEE1588 event packet to include an ingress time stamp;
- when the IEEE 1588 event packet is an egress event packet, performing the steps of:
- determining whether the event packet includes an ingress time stamp;
- and
- when the event packet includes an ingress time stamp, performing the steps of:
- removing the ingress time stamp;
- restoring the event packet to its original form
- calculating a timing correction value based on the ingress time stamp and the egress time;
- and
- modifying the restored time stamp to offset it by an amount corresponding to the timing correction value based on the difference between the egress time and the ingress time stamp;
- wherein
- the step of determining whether the IEEE1588 event packet is an ingress packet or an egress packet further includes the steps of:
- determining if the IEEE1588 event packet is en route from a PHY to a MAC of a network element;
- and
- determining if the IEEE1588 event packet is en route from a MAC of a network element to a PHY.
In a distributed network system including a local clock, a distributed timing reference, and a time stamping circuit, a method of compensating for variable packet delays includes the steps of:
- synchronizing the local clock to the distributed timing reference;
- detecting an IEEE1588 event packet comprising at least one of an IEEE1588 SYNC or an IEEE1588 DELAY REQUEST message at the time stamping circuit;
- determining whether the IEEE1588 event packet is an ingress timing packet or an egress timing packet;
- when the event packet is an ingress timing packet, modifying the IEEE1588 event packet to include an ingress time stamp;
- when the IEEE1588 event packet is an egress event packet, performing the steps of:
- determining whether the event packet includes an ingress time stamp;
- and
- when the event packet includes an ingress time stamp, performing the steps of:
- removing the ingress time stamp;
- restoring the event packet to its original form
- calculating a timing correction value based on the ingress time stamp and the egress time;
- and
- modifying the restored time stamp to offset it by an amount corresponding to the timing correction value based on the difference between the egress time and the ingress time stamp;
- wherein
- the step of determining whether the IEEE1588 event packet is an ingress packet or an egress packet further includes the steps of:
- determining if the timing packet is en route from a PHY to a timing synchronization element;
- and
- determining if the timing packet is en route from a timing synchronization element to a network element.
Dependencies are inferred from the claim text.