Files
RPi5-PTP-server/NEXUS.md
2026-09-07 00:27:05 +02:00

5.3 KiB

Cisco Nexus C93180LC-EX PTP Boundary Clock

NYATER is the second boundary clock in the PTP chain.

RPi5 GM
  │
  ▼
WOLF-HUNTER BC
  │              │
  │ two QSFP+    │
  ▼              ▼
Eth1/5        Eth1/6
      NYATER
 C93180LC-EX BC
      │
      ├─ PTP client-facing ports
      └─ PTP client-facing ports

With the current design:

RPi5            stepsRemoved 0
WOLF-HUNTER     stepsRemoved 1
NYATER          stepsRemoved 2
Linux client    stepsRemoved 3

The current Nexus configuration is stored in NYATER.ios in the root of the PTP directory.

1. Base configuration

NYATER.ios contains:

feature ptp

ptp device-type boundary-clock
ptp domain 0
ptp source 10.255.254.255

interface Ethernet1/5
  ptp

interface Ethernet1/6
  ptp

10.255.254.255 is the address selected as the Nexus PTP source address. In this setup it is the lo0 address; using the loopback gives PTP packets originated by NYATER a stable source address independent of which physical upstream path is selected.

Before applying the PTP config, verify that the address really exists on NYATER:

show ip interface brief | include 10.255.254.255
show running-config interface loopback0

2. Apply the base PTP configuration

Enter configuration mode and apply the contents of NYATER.ios, or paste the equivalent configuration manually:

configure terminal

feature ptp

ptp device-type boundary-clock
ptp domain 0
ptp source 10.255.254.255

interface Ethernet1/5
  ptp

interface Ethernet1/6
  ptp

end
copy running-config startup-config

Ethernet1/5 and Ethernet1/6 are the two links from WOLF-HUNTER's Mellanox ports.

3. Expected upstream behavior

When both WOLF-HUNTER links are healthy, NYATER should select one as the active upstream PTP port and leave the other as the redundant path.

Expected output:

show ptp brief

PTP port status
-----------------------------------
Port                  State
--------------------- ------------
Eth1/5                Slave
Eth1/6                Passive

The exact choice may be reversed; Eth1/6 Slave and Eth1/5 Passive is equally valid.

The important points are:

- one WOLF-facing port is Slave
- the other WOLF-facing port is Passive
- PTP Clock state is Locked
- grandmaster identity is still the RPi5
- steps removed is 2
- domain is 0
- UTC offset received in Announce packets is 37

4. Add a downstream PTP client

For a normal Linux server connected directly to a physical Nexus port, enable PTP on that port:

configure terminal

interface Ethernet1/<clientPort>
  ptp

end
copy running-config startup-config

For example:

interface Ethernet1/10
  ptp

No separate per-client PTP source address is required. The existing global:

ptp source 10.255.254.255

continues to be used by NYATER.

Once the downstream Linux client is active and the Nexus is locked upstream, that client-facing port should normally appear as Master.

Example:

show ptp brief

Eth1/5     Slave
Eth1/6     Passive
Eth1/10    Master

Repeat only the interface-level ptp command for every additional direct downstream client port.

5. Verification commands

The most useful operational commands are:

show ptp clock
show ptp brief
show ptp packet

Your healthy output should resemble:

PTP Device Type        : boundary-clock
PTP Source IP Address  : 10.255.254.255
Clock Domain           : 0
PTP Clock state        : Locked
Steps removed          : 2

show ptp packet is useful for confirming that Announce packets still carry the RPi5 grandmaster identity and the expected UTC offset:

gm_id=<RPi5 clock identity>
utc_offset=37

It also exposes Sync, Follow_Up, Delay_Req and Delay_Resp traffic and is useful when investigating offset or path-delay behavior.

6. Current known-good state

A known-good state observed on NYATER had:

PTP Device Type       : boundary-clock
PTP Source IP Address : 10.255.254.255
Clock Domain          : 0
PTP Clock state       : Locked
Steps removed         : 2
Eth1/5                : Slave
Eth1/6                : Passive
gm_id                 : 88a29efffe826ce6
utc_offset            : 37

Use that as a topology sanity check. The active/passive physical ports may swap, but the grandmaster identity should not change merely because the redundant path changes.

7. What the ptp source address does

The ptp source 10.255.254.255 setting selects the source IP address used by PTP/UDP packets originated by NYATER. It does not mean the Nexus gets its time from lo0.

The actual timing reference is still selected by PTP/BMCA through the WOLF-HUNTER-facing ports:

RPi5 -> WOLF-HUNTER -> NYATER

8. Troubleshooting

If NYATER is not locked:

show ptp clock
show ptp brief
show ptp packet
show interface Ethernet1/5
show interface Ethernet1/6

Check that:

- `feature ptp` is enabled
- domain is 0 everywhere
- both WOLF-facing ports have `ptp`
- one upstream port receives Announce/Sync packets
- the received gm_id is the RPi5 identity
- WOLF-HUNTER itself is synchronized upstream

If a downstream client is not synchronizing, first confirm its Nexus port has the interface-level ptp command and appears as Master in show ptp brief.