IP Library Granted Patent US 12706685
Granted Patent B2
US 12706685 · App. 18/506,829 · Granted Aug 11, 2026

PTP 1-step boundary clock without hardware synchronization

Inventors: Sourabh Bollapragada (Burnaby, CA); Jeff Jing Yuen Chan (Burnaby, CA); Avininderpal Singh Grewal (Langley, CA); Jim George Nangany (Ottawa, CA); Scott William Hill Bailey (New Westminster, CA)
Assignee: ARISTA NETWORKS, INC.
H04J3/0685H04J3/0667H04J3/0673
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12706685
App. No.
18/506,829
Granted
Aug 11, 2026
Kind
B2
Abstract

A Sync message to start off a 1-step synchronization sequence includes a timestamp (T 1 ′) that represents a time when the Sync message entered the packet processing pipeline of a network device to be processed for egress to a slave device. The packet processing pipeline stores a timestamp (T duration ) in the Sync message as part of processing the Sync message. The timestamp T duration represents the amount of time spent in the packet processing pipeline. The slave device that receive Sync message computes T 1 by summing the timestamps T 1 ′ and T duration stored in the received Sync. message, where T 1 represents the time when the Sync message left the network device.

Claims (48)

1 . A method performed in a network device for transmitting a Precision Time Protocol (PTP) Sync message, the method comprising:

instantiating a Sync message;

reading out a first time reference (T 1 ′) from a counter;

storing T 1 ′ in an originTimestamp data field of the Sync message;

providing the Sync message to packet processing hardware, wherein the packet processing hardware:

stores a value equal to a negative of T 1 ′ (−T 1 ′) in a correctionField data field of the Sync message prior to processing the Sync message;

processes the Sync message;

reads out a second time reference (T end ) from the counter prior to completing processing of the Sync message;

arithmetically adds T end to the correctionField data field of the Sync message; and

transmits the Sync message to a slave device, wherein storing T 1 ′ in the origin Timestamp data field includes computing a product by multiplying T 1 ′ by a skew factor and storing the product of the multiplication in the originTimestamp data field, wherein the skew factor represents a timing difference between the counter and a master clock separate from the network device.

2 . The method of claim 1 , wherein T 1 ′ represents a time when the Sync message is provided to the packet processing hardware, wherein the correctionField data field stores a value that represents an amount of time that the Sync message spent in the packet processing hardware.

3 . The method of claim 1 , wherein the packet processing hardware stores the value −T 1 ′ in the correctionField data field by storing a 2's complement of T 1 ′ in the correctionField data field.

4 . The method of claim 1 , wherein the packet processing hardware stores −T 1 ′ in the correctionField data field by arithmetically adding −T 1 ′ to the correctionField data field.

5 . The method of claim 1 , wherein the network device synchronizes with the master clock.

6 . The method of claim 1 , wherein T 1 ′ is N bits and the correctionField data field is M bits (M<N), wherein the lowest M bits of −T 1 ′ is stored in the correctionField data field.

7 . The method of claim 1 , wherein the slave device receives the Sync message and computes a value T 1 by adding T 1 ′ stored in the originTimestamp data field of the received Sync message and a value stored in the correctionField data field of the received Sync message, wherein T 1 represents a time when the Sync message leaves the network device.

8 . A method performed in a network device for transmitting a Precision Time Protocol (PTP) Sync message, the method comprising the network device:

generating the Sync message for processing in a packet processing pipeline;

storing a time value (T 1 ′) in an originTimestamp data field of the Sync message that represents when the Sync message entered the packet processing pipeline;

computing a time value (T duration ) that represents an amount of time the Sync message spent in the packet processing pipeline;

storing the time value T duration in a correctionField data field of the Sync message; and

transmitting the Sync message to a slave device, wherein storing T 1 ′ in the originTimestamp data field includes computing a product by multiplying T 1 ′ by a skew factor and storing the product of the multiplication in the originTimestamp data field, wherein the skew factor represents a timing difference between the counter and a master clock separate from the network device.

9 . The method of claim 8 , wherein computing the time value T duration includes:

storing a value equal to −T 1 ′ in the correctionField data field of the Sync message prior to providing the Sync message to the packet processing pipeline;

providing the Sync message to the packet processing pipeline; and

prior to transmitting the Sync message:

obtaining a time value (T end ) that represents when processing the Sync message in the packet processing pipeline has completed; and

arithmetically adding the time value T end to the correctionField data field of the Sync message.

10 . The method of claim 9 , wherein the value −T 1 ′ is a 2's complement of the time value T 1 ′.

11 . The method of claim 9 , wherein storing a value equal to −T 1 ′ in the correctionField data field includes arithmetically subtracting the time value T 1 ′ from the value stored in the correctionField data field and storing the difference in the correctionField data field.

12 . The method of claim 8 , wherein T 1 ′ is N bits and the correctionField data field is M bits (M<N), wherein the lowest M bits of −T 1 ′ is stored in the correctionField data field.

13 . The method of claim 8 , wherein the slave device receives the Sync message and computes a value T 1 by adding T 1 ′ stored in the origin Timestamp data field of the received Sync message and the time value T duration stored in the correctionField data field of the received Sync message, wherein T 1 represents a time when the Sync message exited the network device.

14 . A network device comprising:

one or more computer processors; and

a computer-readable storage device comprising instructions for controlling the one or more computer processors to:

generate a Precision Time Protocol (PTP) Sync message for processing in a packet processing pipeline;

store a time value (T 1 ′) in an originTimestamp data field of the Sync message that represents when the Sync message entered the packet processing pipeline;

compute a time value (T duration ) that represents an amount of time the Sync message spent in the packet processing pipeline;

store the time value T duration in a correctionField data field of the Sync message; and

transmit the Sync message to a slave device, wherein storing T 1 ′ in the originTimestamp data field includes computing a product by multiplying T 1 ′ by a skew factor and storing the product of the multiplication in the originTimestamp data field, wherein the skew factor represents a timing difference between the counter and a master clock separate from the network device.

15 . The network device of claim 14 , where computing the time value T duration includes:

storing a value equal to −T 1 ′ in the correctionField data field of the Sync message prior to providing the Sync message to the packet processing pipeline;

providing the Sync message to the packet processing pipeline; and

prior to transmitting the Sync message:

obtaining a time value (T end ) that represents when processing the Sync message in the packet processing pipeline has completed; and

arithmetically adding the time value T end to the correctionField data field of the Sync message.

16 . The network device of claim 14 , wherein the value −T 1 ′ is a 2's complement of the time value T 1 ′.

17 . The network device of claim 14 , wherein storing a value equal to −T 1 ′ in the correctionField data field includes arithmetically subtracting the time value T 1 ′ from the value stored in the correctionField data field and storing the difference in the correctionField data field.