Introduction
Starting from firmware version v3.1.0 (first generation GigaCore) and v1.3.0 (second generation GigaCore), the GigaCore will support PTPv2 Boundary Clock functionality. The public announcement for this feature including an introduction video
is available here.
With PTP Boundary Clock, the switch will be the timeTransmitter (master) for the endpoint devices and downstream switches connected. At the same time, it will be a timeReceiver (slave) to another PTP master clock. This way, the boundary clock method prevents overloading the PTPv2 grandmaster in the network and limits the number of clients the grandmaster has to deal with. This prevents deteriorated accuracy of the PTPv2 time and ensures scalability of the network.
At this point, it is not possible to use a GigaCore as PTPv2 grandmaster clock.
IEEE 802.1as (gPTP, for AVB/Milan) functionality is not affected by PTPv2 boundary clock, so GigaCore can still be a gPTP grandmaster.
PTP parameters and profiles
PTPv2 boundary clock uses a couple of parameters. For ease of use and interoperability, the GigaCore contains predefined 'clock profiles' for the most common use cases. It is even possible to let the GigaCore automatically handle the parameter configuration based on the information it receives from the PTPv2 grandmaster.
Different profiles will have different polling times and message timeout values. These values are tuned to the application to ensure a good balance between the number of PTPv2 messages in the network and the time it takes to select a grandmaster clock and converge to a common time. The Audio Engineering Society (AES) has
the AES-R16 document which contains more information about the different attribute values and contains proposed attribute values for interoperability profiles.
Parameters
Domain
The domain number is used to group master and slaves that have to work together. Only when devices are set to the same domain, will they be able to operate together. They will ignore PTPv2 messages with other domains. The domain number allows having multiple PTP clock systems within a single VLAN (GigaCore group). The domain is almost always set to 0.
When a boundary clock is in use, only PTPv2 messages of the configured domain are being passed through, all other messages are dropped. This means that there can then only be 1 PTP domain.
Announce interval
The announce interval determines the interval at which the PTPv2 master will transmit announce messages. This is often called the 'logAnnounceInterval' since some calculation is necessary to convert the parameter to a value in seconds. The GigaCore web interface shows the value in seconds in brackets next to the logAnnounceInterval value. To convert from logAnnounceInterval to a value in seconds: 2^logAnnounceInterval . So a value of 0 will correspond with 2 to the power 0, which is 1 second. A value of 3 corresponds with 2 to the power 3, which is 8 seconds. A value of -3 corresponds with 2 to the power -3, or 1/8, which is 0.125 seconds or 125ms.
For the correct functioning of the Best Master Clock Algorithm (BMCA), the announce interval should be set to the same value throughout the whole PTPv2 domain. The announce message is used to establish the synchronization hierarchy.
Devices that are slave-only (like the GigaCore PTPv2 boundary clock) have an announce interval parameter which works in conjunction with the announce receipt timeout to determine a timeout value in seconds.
Announce receipt timeout
This specifies the number of announce intervals that have to pass without receiving an Announce message before the PTPv2 master is considered lost.
The value of this parameter is a compromise between rapid response to failed devices or network paths and undue thrashing of the BMCA in determining the master-slave hierarchy due to occasionally missing Announce messages.
This value is almost always set to 3.
Sync interval
The sync interval determines the time between successive Sync messages. Similar to the announce interval, it is configured as a 'logSyncInterval' parameter, which can be converted to a value in seconds with 2^logSyncInterval.
The value of this parameter is a compromise between the stability and precision of the local clocks and the communication and computation load necessary for transmitting Sync messages.
Sync receipt timeout
Similar to the announce receipt timeout, this specifies the number of sync intervals that have to pass without receiving a sync message before the PTP master is considered lost. It is best to leave this value at the same value as the announce receipt timeout. It should only affect the PTPv2 network if a PTPv2 master still sends out announce messages, but the sync messages are lost for some reason.
Profiles
The GigaCore has multiple clock profiles build-in. Each profile is a preset with a specific set of parameters.
Auto
With the 'auto' profile, the GigaCore automatically detects the parameters based on the PTPv2 master. It measures the message intervals and replicates the same intervals towards the endpoints.
To select the PTPv2 master, BMCA will compare all PTP announces, across all domains and will use the GrandMaster with the best performance. It will then also follow its domain.
The AES Media profile is specified in AES67-2015, Annex A by the Audio Engineering Society.
SMPTE
The SMPTE profile is specified in SMPTE ST 2059-2:2015 by the Society of Motion Picture and Television Engineers. This is the profile specified for use in SMPTE ST2110.
AES SMPTE Interop
The AES SMPTE interop profile is specified in AES-R16-2016 and is a profile that proposed a set of parameters for interoperability between the AES and SMPTE profiles.
1588 Default
The 1588 Default profile is specified in IEEE 1588, annex J.3 : Delay Request-Response Default PTP profile.
Custom
Custom allows manual configuration of all parameters.
Overview
| Domain | Announce Interval | Announce Receipt timeout | Sync interval | Sync receipt timeout |
AES Media | 0 | 1 (2 sec) | 3 | -3 (125 ms) | 3 |
SMPTE | 127 | -2 (250 ms) | 3 | -3 (125 ms) | 3 |
AES SMPTE Interop | 0 | 0 (1 sec) | 3 | -3 (125 ms) | 3 |
1588 Default | 0 | 1 (2 sec) | 3 | 0 (1 sec) | 3 |
Configuration
Clock settings are a group setting for GigaCore switches. This means that you can have multiple master clocks in different groups. gPTP (IEEE 802.1as, used for AVB / Milan) can run separately from the PTPv2 boundary clock.
To enable boundary clock using the web interface:
- go to 'Edit groups' under the 'Groups | Trunks' page.
- Scroll down to 'Clock settings' and change the 'Clock mode' to 'Boundary'
- When boundary clock is selected, you can choose the clock profile that matches your application. Alternatively, leave the profile set to 'Auto' and the GigaCore will automatically inherit the parameters from the master clock. Use the 'custom' profile if you would like to configure the parameters manually.
- Apply your configuration
PTPv2 Boundary clock 'replicate' mode
Introduction
Starting from firmware version 1.5.0, the second generation GigaCore will have the ability to 'replicate' a PTPv2 clock from another reference. This reference can either be another group or the gPTP clock.
Note that this feature will not be available in the first generation GigaCore (GigaCore 26i, 12, 14R, 16Xt, 16RFO and 10).
Replicate mode has several benefits:
- The grandmasters can live in a separate group. Only PTPv2 communication is needed in this group, no streaming data. The group can have multiple grandmasters, BMCA will select the best grandmaster.
- By restricting the number of ports assigned to the separate 'clock' group, the network can be protected against another device becoming grandmaster why that was not intended or authorized
- Different groups can replicate the clock from the same clock source, without the need to have a grandmaster with multiple network ports or VLAN support. This can be a handy way to ensure that the same GM is used in the primary and secondary group (VLAN) of a redundant PTPv2 network.
- The replicated clock in each group can use a clock profile that is different from the clock profile in the grandmaster group.
Terminology
- Clock reference: the clock source that will be used for time reference
- Replicated clock: the clock instance will use the time from a clock reference and 'replicate' this in another group, either with the same or with another clock profile.
- gPTP: gPTP or IEEE 802.1as is the clocking mechanism used in AVB / Milan. AVB has to be enabled in at least 1 group before gPTP can be used as the clock reference for a replicated clock.
Concept
Below, the replicate concept will be explained with a small example:
In the above example there is: - The green group:
- In this group, the Grandmaster devices are connected. The switch will select the best grandmaster in this group based on the BMCA algorithm.
- This group will be the clock reference group. It is configured in boundary clock mode.
- For clock profile, either the 'auto' profile can be used or a clock profile that matches the clock settings of the grandmaster-capable devices.
- The Blue group:
- In this group, 2 Ravenna devices are connected. These are configured to use the SMPTE clock profile.
- The blue group will be configured in 'replicate' clock mode with the green group as clock reference. The SMPTE profile will be selected as the clock profile.
- The purple group:
- In this group, 2 Bolero devices are connected. These are configured to use the AES media clock profile.
- The purple group will be configured in 'replicate' clock mode with the green group as clock reference. The AES media profile will be selected as the clock profile.
Alternatively, the blue group can be a primary group and the purple group a secondary group for the same application. In that case, make sure to select the same clock profile in both groups.
How does this work?
- The switch will select the best grandmaster in the green group
- The boundary clock in the green group will sync to this grandmaster
- This 'green' clock will be replicated in the blue and purple group with their respective clock profile settings.
- The clock identity of the grandmaster will be used in the blue and purple group.
- The ports in the blue and purple group can only be in the 'timeTransmitter' mode. They will ignore any attempt of other devices to become the GM in that group. Blue/Purple ports cannot be in the 'timeReceiver' mode.
Configuration
You will notice that a new clock mode is added in the web interface: Replicate mode
The steps to use this mode are as follows:
- Enable boundary clock in the group in which you have your GM clock (or multiple GMC's) connected.
- Select a clock profile that matches the clock settings of the grandmaster-capable clocks. The 'auto' clock profile is an option as well, in that case the GigaCore will automatically recognize and follow the clock settings of the grandmaster.
- Enable replicate mode in the 'destination' group, the one in which you would like to use the replicated clock. Select the group from step 1 as the Reference and configure a matching clock profile. The 'auto' clock profile where the clock settings are automatically taken from the GM isn't available in replicate mode. Select a clock profile that matches the clock settings of the PTPv2 end-devices in this group.
- If you have AVB enabled in at least 1 group, you can use the gPTP clock as clock reference as well. In that case it is also possible to use the switch as GM by letting it sync over IEEE802.1AS (gPTP), but I assume that that is not the way you would like to use it at the moment.
Restrictions
- If you would like to use gPTP as the clock reference for a group, AVB has to be enabled in at least one group
- If you would like to use the PTPv2 clock information from one group as the clock reference in a another group, the reference group needs to be configured in boundary clock mode.
- If a group is used as the clock reference for at least one other group, it is not possible to change the clock mode in this group to something else than boundary clock mode
- If a group is the only group with AVB enabled and gPTP is used as the clock source for at least one other group, it is not possible to disable AVB.
- A group in the replicate clock mode cannot be configured in the 'auto' clock profile. A clock profile needs to be specified.
GigaCore as PTPv2 Grandmaster Clock
It is currently not recommended to use the GigaCore itself as the PTPv2 grandmaster because the GigaCore cannot maintain an IGMP join for the PTPv2 multicast address.
However, it is possible to configure the GigaCore using API to flood PTPv2 packets and to set a priority1 value. This way it is still possible to use the GigaCore as a potential grandmaster clock.
Alternatively, enable AVB on all GigaCore's and use gPTP as the clock reference. This way, the gPTP grandmaster will also be used as the PTPv2 grandmaster.
Terminology
IEEE has published a new amendment to the IEEE 1588-2019 (PTPv2) standaard: IEEE1588g-2022. This document recommends alternative terms for 'master' and 'slave':
- timeTransmitter instead of master
- timeReceiver instead of slave
There is no alternative term for Grandmaster. The term Grandmaster refers to the use of the term to indicate somebody with the highest level knowledge in a domain. For example a Grandmaster in chess.
At Luminex, we try to follow this new standard terminology.