orithm The PTP specification includes the Best Master Clock Algorithm (BMCA), which is designed to build a valid master-slave hierarchy across the network. Although the IEEE 1588 standard defines a BMCA mechanism known as the default BMCA (see section 9.3), any PTP profile can also specify a different alternate BMCA (aBMCA). Because the algorithm runs on all the clocks in the PTP do- main, the BMCA also ensures that the best master clock in that domain becomes the grandmaster. The BMCA runs on every PTP port of an ordinary and boundary clock and complements the PTP clock's state machine to ensure that each clock selects the best available master as its source of time. The goal is to select one and only one master, based on the information available to it. The BMCA can use information passed in the Announce message to decide the state of each of the ports in the clock (there is no negotiation between clocks to determine the master). Also, the BMCA adapts continually to changing conditions to ensure that a new master-slave hier- archy will quickly emerge following a network or clock outage. The speed of this reconvergence is dependent on the network topology as well as the rate at which Announce messages are sent (the Announce interval). The BMCA will gather this data and evaluate it to decide what state each of the PTP ports will be in. For most clocks, this means selecting a single PTP port as the slave port to communicate with the best available master. With a BC containing more than one PTP port, the other non-slave ports could then enter the master state to provide time to downstream slave ports. The state table for the BMCA compares many parameters in order to determine the best master clock and which port to select as the slave port for the clock. As an example, Figure 7-4 simplifies it to two parameters, namely clockClass and stepsRemoved, to demonstrate the concept. Should the BMCA fail to select the best clock based on the values of priority clockClass, clock- Accuracy, and offsetScaledLogVariance, the pr