Page 14
DXD8/PTP User Manual (rev 2.15)
9.5. SELECTING A GRANDMASTER
An algorithm called the BMCA (Best Master Clock Algorithm) is used to determine which clock will be used as the PTP
Grandmaster. As defined in the IEEE 1588 standard, this selection is done autonomously based on the following criteria and in
the following order:
-
Priority 1
-
Clock Class
-
Clock Accuracy
-
Clock Variance
-
Priority 2
-
Source Port ID (MAC Address)
Of those fields, two are set manually by the users, Priority 1 and 2, so that preferred masters can be prioritized. It is important
to note that, even though through the use of the Priority fields a user can more or less determine which unit will be selected as
Grandmaster, it is still the BMCA that makes that determination.
When a Grandmaster has been selected, all other devices on the domain will sync their internal clocks to that of the
Grandmaster. If the Grandmaster fails or disappears, a new one is selected immediately via the BMCA. If a better suited clock
is found, it will become the Grandmaster.
9.6. SYNCHRONIZATION
There are several different PTP messages used during synchronization, sequenced as follows:
1. The grandmaster sends a Sync message with its transmit timestamp (t1), and an optional Follow Up message, in case of the
two steps operation, which also includes t1.
2. The slave receives the Sync/Follow Up message, keeps its timestamp (t1) and the Sync message arrival time (t2).
3. The slave sends a Delay Request message back to the grandmaster. This message does not include a timestamp, however
the slave keeps the time it sent the Delay Request message (t3).
4. The master receives the Delay Request message and keeps its arrival time (t4). The master then sends back a Delay
Response message including t4.
The slave clock now possesses all four timestamps (t1, t2, t3 and t4) that can be used to compute the offset of the slave clock
relative to the master, and the propagation time between the two clocks. With this, it can now adjust its clock to match the GM
clock.
Master
Clock Time
Slave
Clock Time
t1
t2
t3
t4
Data at
slave clock
t1, t2
t2
t1, t2, t3
t1, t2, t3, t4
Formulaes
Delay = [(t2 - t1) - (t4 - t3)] / 2
Offset = t2 - t1 - Delay