BroadSync

Manage Time API BroadSync endpoints

BroadSync

Shortest form: bs.

Configure and inspect BroadSync, Broadcom’s time-of-day and 1PPS interface between switches or between a switch and a time module. BroadSync runs as firmware on an embedded core; the shell talks to that firmware.

If no BroadSync firmware is loaded, every form prints Failed: Broadsync firmware not loaded and does nothing, followed by the SAI shell’s Failed to execute the diagnostic command. Error: Operation failed. SONiC does not load BroadSync firmware on Trident 3 (both embedded cores are held in reset, see MCSStatus), so on a SONiC switch this is the result of every form. Otherwise each form first prints BS<n>. bs_initialized[<0|1>]. Sub-command words can be abbreviated to their capital letters.

The built-in help is incomplete: the shell also accepts the sub-commands reattach, wb and 1PPS, the CONFig keys Freq, NoPhase and TarGeTctr, the LOG key Debug, and interfaces bs0 to bs3 where the help shows only BS0 and BS1.

Safety: STATus and the query forms of DEBUG and 1PPS are read-only. All other forms change the time-synchronisation firmware’s state; this matters only if a time-sync feature is in use.

Hardware-validated

drivshell> broadsync status
Failed: Broadsync firmware not loaded

Failed to execute the diagnostic command. Error: Operation failed.
BroadSync CONFig [Master] [BS1] [BitClock=<hz>] [HeartBeat=<hz>] [Freq=<n>] [PhaseSec=<s>] [PhaseNSec=<ns>] [NoPhase] [NtpTodSec=<s>] [NtpTodNSec=<ns>] [BSTimeSec=<s>] [BSTimeNSec=<ns>] [NtpTodDisable=<0|1>] [PtpTodDisable=<0|1>] [PtpTodSec=<s>] [PtpTodNSec=<ns>] [TarGeTctr=<n>]

Create or reconfigure a BroadSync interface. Slave and BS0 unless Master or BS1 are given (both are flags that need no =). Defaults: BitClock=10000000, HeartBeat=4000, TarGeTctr=6. Once BroadSync is initialised, NTP/PTP ToD updates cannot be disabled (BroadSync initialized!! Cannot disable NTP/PTP ToD updates).

Unvalidated

drivshell> broadsync config master bitclock=10000000 heartbeat=4000
BroadSync reattach

Reconnect to an already running BroadSync firmware, for example after a warm boot. Prints BroadSync FW reattached on unit <n>. Not in the built-in help.

Unvalidated

drivshell> broadsync reattach
BroadSync STATus [bs0 | bs1 | bs2 | bs3]

Print Status = <n>, the DPLL lock state of one interface. Read-only.

Hardware-validated

drivshell> broadsync status bs1
Failed: Broadsync firmware not loaded

Failed to execute the diagnostic command. Error: Operation failed.
BroadSync wb

Tell the BroadSync firmware to prepare for a warm boot. Not in the built-in help.

Unvalidated

drivshell> broadsync wb
BroadSync 1PPS [ON | OFF]

Show (1PPS is Enabled|Disabled) or switch the 1PPS heartbeat output on or off. Not in the built-in help.

Unvalidated

drivshell> broadsync 1pps
BroadSync DEBUG [ON | OFF]

Show (Debug output is On|Off) or set debug output of the firmware messaging.

Unvalidated

drivshell> broadsync debug
BroadSync LOG [Debug=<mask>] [LogDebug] [LogPLL] [Vlan=<vid>] [DestMAC=<mac>] [DestAddr=<ip>] [SrcMAC=<mac>] [SrcAddr=<ip>] [UDPPort=<port>]

Configure the firmware’s UDP log stream. Debug (default 0xff) is not in the built-in help.

Unvalidated

drivshell> broadsync log logdebug destaddr=192.0.2.1 srcaddr=192.0.2.2 udpport=5000
BroadSync CLEANUP [bs0 | bs1]

Delete the BroadSync interface and print Broadsync cleanup: bs<n>.

Unvalidated

drivshell> broadsync cleanup

Built-in help

BroadSync CONFig [Master] [BS1] [BitClock=<hz>] [HeartBeat=<hz>] [PhaseSec=<seconds>] [PhaseNSec]=<nanoseconds>
                 [NtpTodSec=<seconds>] [NtpTodNSec]=<nanoseconds> [BSTimeSec=<seconds>] [BSTimeNSec=<nanoseconds>]
                 [NtpTodDisable=<0/1>] [PtpTodDisable=<0/1>] [PtpTodSec=<seconds>] [PtpTodNSec=<nanoseconds>]
  Initialize or reconfigure.  Default is slave, if 'Master' is not specified
  Default is BS0, if 'BS1' is not specified
BroadSync STATus [BS0|BS1]
  Show DPLL lock state
  Default is BS0, if 'BS0/''BS1' is not specified
 BroadSync DEBUG [ON|OFF]
  No option: print debug state.  ON/OFF: enable/disable debug output
BroadSync LOG [LogDebug] [LogPLL] [Vlan=<vlan>] [DestMAC=<mac>] [DestAddr=<addr>] [SrcMAC=<mac>] [SrcAddr=<addr>] [UDPPort=<udp port>]
  Sets UDP logging state
BroadSync CLEANUP
  Cleanup the interface