IP Library Granted Patent US 12665689
Granted Patent B2
US 12665689 · App. 18/130,792 · Granted Jun 23, 2026

Precision time protocol redundancy and load balancing across a set of active time servers

Inventors: Michel Ouellette (Sunnyvale, CA); Patrick Cullen (Dublin, IE); Oleg Obleukhov (Dublin, IE); Alexander Bulimov (Cabinteely, IE)
Assignee: META PLATFORMS, INC.
H04J3/0641H04J3/0673H04L47/125
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 12665689
App. No.
18/130,792
Granted
Jun 23, 2026
Kind
B2
Abstract

A system for achieving Precision Time Protocol (PTP) redundancy and load balancing across a set of active time servers deployed in a cluster is disclosed. The system may organize a set of PTP Grandmasters (GMs) (e.g., located in a datacenter) into a plurality of PTP clusters (e.g., for load balancing). A set of PTP ordinary clocks (OCs) (e.g., time clients) may be grouped in OC Groups and then into PTP clusters for GM assignation, wherein each PTP OC includes a unicast master table (UMT) that includes one or more potential PTP GM port addresses and priority values. Based on a Master Clock Mechanism, one of the potential GMs may be selected based on one or more PTP GM priority attributes.

Claims (34)

1 . A method for achieving redundancy and load balancing when synchronizing time for precision time protocol (PTP) connections within a network, the method comprising:

determining a PTP cluster for load balancing, the PTP clusters comprising PTP Grandmasters (GMs) and PTP ordinary clock (OC) groups, wherein the PTP GMs comprises a first PTP GM, and wherein the PTP OC groups comprise a first PTP OC group and a PTP OC;

determining the PTP cluster corresponds to the PTP OC and the first PTP OC group, wherein the PTP OC comprises a unicast master table (UMT) and the UMT comprises port addresses associated with one or more of the PTP GMs and one or more PTP GM priority attributes, wherein the one or more PTP GM priority attributes are configured to achieve equal distribution of the PTP OC groups across the PTP GMs within the PTP cluster;

selecting, for the PTP OC, by a Master Clock Mechanism based on the one or more PTP GM priority attributes, the first PTP GM; and

synchronizing, based on the first PTP GM, the time for the PTP connections within the network.

2 . The method of claim 1 , further comprising requesting, by the PTP OC based on the one or more PTP GM priority attributes, a unicast announce message from the first PTP GM.

3 . The method of claim 1 , further comprising selecting, by the Master Clock Mechanism until the first PTP GM fails and based on the one or more PTP GM priority attributes, a second PTP GM.

4 . The method of claim 1 , wherein the first PTP GM is determined based on a first PTP GM priority attribute of the one or more PTP GM priority attributes having a lowest value of the one or more PTP GM priority attributes.

5 . The method of claim 1 , wherein the UMT comprises a pointer, further comprising choosing, by the PTP OC based on the pointer, a unique PTP GM network address.

6 . The method of claim 1 , further comprising requesting, by the PTP OC, an announce message from the first PTP GM to be analyzed by the Master Clock Mechanism.

7 . The method of claim 1 , further comprising determining an alternate Master Clock Mechanism based on a local PTP GM priority attribute.

8 . The method of claim 7 , wherein the local PTP GM priority attribute comprises a table of local PTP GM priorities.

9 . The method of claim 1 , wherein the PTP GMs, PTP OC Groups, or PTP OCs are located in a data center.

10 . A non-transitory computer-readable medium storing instructions for achieving redundancy and load balancing when synchronizing time for precision time protocol (PTP) connections within a network, the instructions that, when executed, cause:

determining a PTP cluster for load balancing, the PTP clusters comprising PTP Grandmasters (GMs) and PTP ordinary clock (OC) groups, wherein the PTP GMs comprises a first PTP GM, and wherein the PTP OC groups comprise a first PTP OC group and a PTP OC;

determining the PTP cluster corresponds to the PTP OC and the first PTP OC group, wherein the PTP OC comprises a unicast master table (UMT) and the UMT comprises port addresses associated with one or more of the PTP GMs and one or more PTP GM priority attributes, wherein the one or more PTP GM priority attributes are configured to achieve equal distribution of the PTP OC groups across the PTP GMs within the PTP cluster;

selecting, for the PTP OC, by a Master Clock Mechanism based on the one or more PTP GM priority attributes, the first PTP GM; and

synchronizing, based on the first PTP GM, the time for the PTP connections within the network.

11 . The non-transitory computer-readable medium of claim 10 , wherein the instructions, when executed, further cause requesting, by the PTP OC based on the one or more PTP GM priority attributes, a unicast announce message from the first PTP GM.

12 . The non-transitory computer-readable medium of claim 10 , wherein the instructions, when executed, further cause selecting, by the Master Clock Mechanism until the first PTP GM fails and based on the one or more PTP GM priority attributes, a second PTP GM.

13 . The non-transitory computer-readable medium of claim 10 , wherein the first PTP GM is determined based on a first PTP GM priority attribute of the one or more PTP GM priority attributes having a lowest value.

14 . The non-transitory computer-readable medium of claim 10 , wherein the UMT comprises a pointer, further comprising choosing, by the PTP OC based on the pointer, a unique PTP GM network address.

15 . The non-transitory computer-readable medium of claim 10 , wherein the instructions, when executed, further cause requesting, by the PTP OC, an announce message from the first PTP GM to be analyzed by the Master Clock Mechanism.

16 . The non-transitory computer-readable medium of claim 10 , wherein the instructions, when executed, further cause determining an alternate Master Clock Mechanism based on a local PTP GM priority attribute.

17 . The non-transitory computer-readable medium of claim 16 , wherein the local PTP GM priority attribute comprises a table of local PTP GM priorities.

18 . The non-transitory computer-readable medium of claim 10 , wherein the PTP GMs are located in a data center.

19 . A device for achieving redundancy and load balancing when synchronizing time for precision time protocol (PTP) connections within a network, the device comprising:

one or more processors; and

a non-transitory memory including computer-executable instructions, which when executed by the processor, cause the device to at least:

determine a PTP cluster for load balancing, the PTP clusters comprising PTP Grandmasters (GMs) and PTP ordinary clock (OC) groups, wherein the PTP GMs comprises a first PTP GM, and wherein the PTP OC groups comprise a first PTP OC group and a PTP OC;

determine the PTP cluster corresponds to the PTP OC and the first PTP OC group, wherein the PTP OC comprises a unicast master table (UMT) and the UMT comprises port addresses associated with one or more of the PTP GMs and one or more PTP GM priority attributes, wherein the one or more PTP GM priority attributes are configured to achieve equal distribution of the PTP OC groups across the PTP GMs within the PTP cluster;

select, for the PTP OC, by a Master Clock Mechanism based on the one or more PTP GM priority attributes, the first PTP GM; and

synchronize, based on the first PTP GM, the time for the PTP connections within the network.

20 . The device of claim 19 , wherein the instructions, when executed by the processors, further cause the device to select, by the Master Clock Mechanism until the first PTP GM fails and based on the one or more PTP GM priority attributes, a second PTP GM.