Subject: Configuring synchronous ethernet with ethtool?

From: Richard Cochran <[email-masked]>
Date: Tue, 17 Mar 2015 17:11:28 +0100

Dear list,

I need to configure Synchronous Ethernet (SyncE) on a per-port basis
for a current project.  So, I have been thinking about how best to
implement SyncE.  My first idea is to make this into a new ethtool
operation, but I would like to get some feedback about the direction.

Apart from ITU-T G.8261, 8262, and 8264, which are not too helpful, I
could hardly find any documentation at all about how SyncE is supposed
to work.  My current understanding is limited to:

* 100 Mbit

  - Each link partner generates its own transmit clocks.

  - There is at least one 100 Mbit PHY that allows using the recovered
    clock from the link partner for the PHY's own transmit clock.
    (SyncE slave mode)

* 1000 Mbit

  - With 1000 Mbit, only one of the link partners generates a
    clock. The decision of which link partner becomes the clock master
    is a normal part of the Gigabit protocol.

  - One switch I have worked with has per-port bits that allow setting
    MASTER/SLAVE and MANUAL/PREFERRED.  I am not sure what the
    "preferred" modes does.

So, my current idea is to have an ethtool option to set the SyncE mode
to one of:

- master (1000 Mbit only)
- slave
- none

I am not sure whether the manual/preferred thing makes any sense.
Maybe someone has insight into this?

Thoughts?

Thanks,
Richard