my shitty notes I've asked AI to clean up and reorder so that they are readable
It is just work in progress so I don't really car
This commit is contained in:
238
NEXUS.md
Normal file
238
NEXUS.md
Normal file
@@ -0,0 +1,238 @@
|
||||
# Cisco Nexus C93180LC-EX PTP Boundary Clock
|
||||
|
||||
NYATER is the second boundary clock in the PTP chain.
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
- 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:
|
||||
|
||||
```text
|
||||
configure terminal
|
||||
|
||||
interface Ethernet1/<clientPort>
|
||||
ptp
|
||||
|
||||
end
|
||||
copy running-config startup-config
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```text
|
||||
interface Ethernet1/10
|
||||
ptp
|
||||
```
|
||||
|
||||
No separate per-client PTP source address is required. The existing global:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
show ptp clock
|
||||
show ptp brief
|
||||
show ptp packet
|
||||
```
|
||||
|
||||
Your healthy output should resemble:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
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:
|
||||
|
||||
```text
|
||||
RPi5 -> WOLF-HUNTER -> NYATER
|
||||
```
|
||||
|
||||
## 8. Troubleshooting
|
||||
|
||||
If NYATER is not locked:
|
||||
|
||||
```text
|
||||
show ptp clock
|
||||
show ptp brief
|
||||
show ptp packet
|
||||
show interface Ethernet1/5
|
||||
show interface Ethernet1/6
|
||||
```
|
||||
|
||||
Check that:
|
||||
|
||||
```text
|
||||
- `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`.
|
||||
Reference in New Issue
Block a user