man(8)
πΈ NAME πΈ
okay so bestie, welcome to the man(8) page for synce4l β the Synchronous Ethernet (SyncE) controller application π
β¨
like yes it's a section-8 system administration manual, but it's also the moment. buckle up π
β¨ SYNOPSIS β¨
synce4l -f [file] [-l <num>] [-m] [-q] [-v] [-h]
π¦ DESCRIPTION π¦
so synce4l is an implementation of the Synchronous Ethernet (SyncE) protocol, according to ITU-T Rec. G.8264 β no cap, that's literally what it is π
the design goal? it's giving "provide logic to supported hardware" by processing Ethernet Synchronization Messaging Channel (ESMC) and controlling the Ethernet Equipment Clock (EEC) on a Network Card Interface (NIC) π₯
and here's the tea: the application can operate in two mutually exclusive modes β line or external. you pick one. you cannot have both. the universe said no π«Ά
π External input mode
if synce4l is configured to run in external input mode, then the EEC needs to have an external 1PPS source attached (GPS or other generator) π‘
in this scenario, synce4l always broadcasts the clock quality level (QL) defined in the configuration file. and additionally β for external input mode β incoming SyncE frames do not participate in the best source selection algorithm for the EEC. like, they're just not in the running, bestie π
π Line input mode
in line input mode, incoming SyncE frames are processed and the best clock source is extracted from the link having the best quality level π
synce4l configures such a "best quality" port as a source to recover clock for the EEC. the recovered QL is broadcasted to all other interfaces then. and nope β an external clock source cannot be used in this mode. periodt π«
π OPTIONS π
-f [file]β read configuration from file (heads up: the config file takes precedence over command line arguments, so the file wins every argument, iykyk) π-l [num]β set the logging level to num (0: least detailed, 7: most detailed) π-mβ print messages to stdout π¨οΈ-qβ do not print messages to the syslog π€«-vβ printsynce4lversion and exit π-hβ print this message and exit π
π CONFIGURATION FILE π
the configuration file contains three sections:
- global,
- device,
- port.
β Global section
this section starts with the [global] keyword. it sets the logging options, that's its whole vibe.
available options:
logging_levelβ minimum log level required to appear in a log. defaults to6, valid values are0-7πmessage_tagβ tag reported in a log π·οΈuse_syslogβ set to1ifsyslogshould be used. defaults to1, valid values are0or1π»verboseβ set to1to log extra information. defaults to0, valid values are0or1π£οΈ
π§ Device section
this section specifies the configuration of one logical device, e.g. 'synce1'. the name is defined by the user. the name has no impact for any functionality except traces β it's purely for the aesthetic π¨
the name must be enclosed in extra angle bracket when defining a new device section, e.g. [<synce1>] π«Ά
all ports defined by port sections after the device section will create one SyncE device (until the next device section). so order matters, bestie π
available options:
input_modeβ set to"line"to enable line input mode, set"external"for external input mode. defaults to"line", valid values are"line"or"external"πexternal_input_QLβ Quality Level (QL) for"external input"mode. valid values specified in ITU-T Recommendations πexternal_input_ext_QLβ Extended Quality Level for"external input"mode. valid values specified in ITU-T Recommendations πextended_tlvβ set to1to enable extended QL. defaults to0, valid values are0or1πnetwork_optionβ network option according to T-REC-G.8264. all devices in the SyncE domain should have the same option configured. no rogue settings, okay? π€ defaults to1, valid values are1or2πrecover_timeβ seconds indicating the minimum time to recover from the QL-failed state on the port. defaults to60, valid values are10-720β±οΈget_eec_state_cmdβ defines a shell command which will be executed bysynce4lto acquire current state of a SyncE EEC on the device. a separated command must be provided by the user for each device configured for frequency synchronization. the command shall output current state of EEC to stdout, and the expected values are defined (also by the user) with the following configuration items:eec_holdover_value,eec_locked_ho_value,eec_locked_value,eec_freerun_value,eec_invalid_valueπeec_holdover_valueβ defines a string value expected on the stdout stream when the EEC is in HOLDOVER state π§eec_locked_ho_valueβ defines a string value expected on the stdout stream when the EEC is in LOCKED HOLDOVER state πeec_locked_valueβ defines a string value expected on the stdout stream when the EEC is in LOCKED state πeec_freerun_valueβ defines a string value expected on the stdout stream when the EEC is in FREERUN state πeec_invalid_valueβ defines a string value expected on the stdout stream when the EEC is in INVALID state β
π Port section
any other section not starting with < (e.g. [eth0]) is the port section. multiple port sections are allowed. each port participates in SyncE communication π
available options:
tx_heartbeat_msecβ interval between consecutive SyncE frame transmissions (1000msrecommended). defaults to1000, valid values are100-3000π€rx_heartbeat_msecβ interval between consecutive SyncE socket polls (frame receive). defaults to50, valid values are10-500π₯recover_clock_enable_cmdβ a shell command which enables the PHY port pointed by this Port section as a source of frequency for the SyncE EEC on this device (required only in"internal input"mode) βrecover_clock_disable_cmdβ a shell command which disables the PHY port pointed by this Port section as a source of frequency for the SyncE EEC on this device (required only in"internal input"mode) π«allowed_qlsβ list of integers containing allowed SSM QLs separated by comma (,), other received ones would be discarded. if the parameter is not provided, all QLs will be accepted π―allowed_ext_qlsβ list of integers containing allowed extended SSM QLs separated by comma (,), other received ones would be discarded. if the parameter is not provided, all QLs will be accepted π―
π BUGS π
no known bugs. she's flawless, she's perfect, she ate and left no crumbs π
π AUTHOR π
- Arkadiusz Kubalewski
<arkadiusz.kubalewski@intel.com> - Michal Michalik
<michal.michalik@intel.com>
okay that's the whole page bestie, go forth and synchronize those Ethernet clocks πΈβ¨
version 1.0 Β· dated 27 Oct 2022 Β· mwah π π«Ά
π¦ where this page comes from
- centos-stream 10: synce4l 1.1.0-5.el10 Β· GPL-2.0-or-later
- centos-stream 9: synce4l 1.1.0-2.el9 Β· GPL-2.0-or-later
- fedora 43: synce4l 1.1.0-5.fc43 Β· GPL-2.0-or-later
- fedora 44: synce4l 1.1.0-6.fc44 Β· GPL-2.0-or-later
- opensuse-leap 16.0: synce4l 1.1.2-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: synce4l 1.1.2-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: synce4l 1.1.2-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: synce4l 1.1.2-160000.1.1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms