Table of Contents


Hardware

Figure 1. Hardware inter-connection between SyncE ports, external clocks, inputs, outputs, the DPLL device, and the CPU running synced application.

One or more external multiplexers can be used to connect multiple SyncE ports to a clock.

The multiplexers can be both single-output or dual-output:

Those ports connected to external multiplexers, which are not associated to a clock, are called SyncE monitoring ports. The transition of a SyncE port from monitoring state to active state can be done automatically using the event callback functions and the management APIs, or can be initiated by the user.

Figure 2. Software block diagram and the connection with the DPLL device..

Software

synced application runs on CPU and interacts with the DPLL device as follows:

Device APIs module implements the hardware abstraction layer.

The architecture is modular, and each software module performs simple tasks:


Configuration

The configuration file has two sections:

Global:

Per port:

Port type[name]Clock indexPriorityTX enableRX enableTX bundle numberInitial QL
Active SyncE clockmmmopt1optopt/n
External clockmmmnnNopt/n
SyncE monitoringmnmopt1optopt/n
TX onlymnnmnoptn

m = mandatory, n = must not be defined, opt = optional, default value applies if missing, 1 = must be set to 1


Management API

synced provides a set of management APIs to get information and set parameters. These APIs can be either called directly if the source code is integrated in other projects, or they can be called by other applications via Management Interface. This interface can be enabled and configured in the configuration file.

The APIs return one of the following response codes:

Response codeResponseDetails
0OkThe command finished successfully.
1InvalidOne or more input arguments are invalid.
2FailedCommand failed. Ex: port name cannot be found.
3Not SupportedThe command is not supported in current operation mode.
  1. Get a list of sync information structures, one for each port:

    • Port name
    • Port sync type (Active SyncE, External, Monitoring or TX only)
    • Type-specific information:
    InformationActive SyncEExternalMonitoringTX only
    priorityxxx
    current QLxxx
    sync statexxx
    TX bundle numberxxx
    clock indexxx
    hoff/wtr remaining time [ms]xx
    number of hopsxx
    rankxxx
    sync clock statexx
    clock reference monitor statusxx
    RX timeout flagxx
    port link-down flagxxx
  2. Get a sync information structure for a specific port. The application provides the information for the specified port name.

  3. Get current status:

    • Current QL
    • Selected port name
    • Selected clock index
    • SyncE DPLL state
    • Holdover remaining time in milliseconds
  4. Set forced QL per port

  5. Clear forced QL per port

  6. Clear holdover timer

  7. Clear SyncE clock wait-to-restore timer per port

  8. Assign a new SyncE port to a clock index

  9. Set priority per port


Event Callback Functions

The purpose of the callback functions is to notify the user when an event occurs. The implementation is on user side; however, synced contains template code for each callback and examples on how to control the external multiplexers.

  1. Current QL
  2. Sync port current QL
  3. SyncE DPLL current state (Locked, Holdover, etc)
  4. Sync port current clock state (Qualified, Unqualified)
  5. Sync port current state (Normal, Forced, Wait-to-restore, Hold-off)
  6. Alarms:
    • Timing loop detected
    • Invalid QL received at port
  7. PCM interface status

Acronyms

AcronymDefinition
DPLLDigital Phase Lock Loop
DNUDo-not-use
ESMCEthernet Synchronization Messaging Channel
ITU-TInternational Telecommunication Union – Telecommunication Standardization Sector
LOLocal Oscillator
MUXMultiplexer
PCMPTP Clock Manager
PTPPrecision Time Protocol
PTP4LPrecision Time Protocol for Linux
QLQuality Level
TLVType-Length-Value