<kc8apf>
adamgreig: 1588 over commodity switches is fine until the switch latency variability becomes significant.
rohitksingh_work has joined ##openfpga
gnufan_home has joined ##openfpga
gnufan_home has quit [Client Quit]
GuzTech has joined ##openfpga
GuzTech has quit [Remote host closed the connection]
OmniMancer has joined ##openfpga
Asu has joined ##openfpga
<adamgreig>
kc8apf: makes sense i guess, any idea roughly when that happens or how bad it can be?
<adamgreig>
it has occurred to me that the current "client sends delay_req immediately upon seeing follow_up" has obvious problems when there's many clients, but should be easy enough to spread them over the sync period (in my case)
emeb_mac has quit [Ping timeout: 255 seconds]
sxpert has quit [Ping timeout: 264 seconds]
sxpert has joined ##openfpga
sxpert has quit [Ping timeout: 252 seconds]
sxpert has joined ##openfpga
cr1901_modern1 has joined ##openfpga
cr1901_modern has quit [Ping timeout: 250 seconds]
Asu has quit [Read error: Connection reset by peer]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
Asu has joined ##openfpga
Asu` has quit [Ping timeout: 252 seconds]
rohitksingh_work has quit [Read error: Connection reset by peer]
genii has joined ##openfpga
rohitksingh has joined ##openfpga
emeb has joined ##openfpga
azonenberg_work has quit [Ping timeout: 240 seconds]
balrog has quit [Ping timeout: 245 seconds]
gsi__ is now known as gsi_
Asu` has joined ##openfpga
Asu has quit [Ping timeout: 255 seconds]
flea86 has quit [Quit: Goodbye and thanks for all the dirty sand ;-)]
OmniMancer has quit [Quit: Leaving.]
balrog has joined ##openfpga
m4ssi has joined ##openfpga
<kc8apf>
adamgreig: NTP can easily get you down to 10s of ms. On an ARM Linux system, a local GPS receiver with 1PPS got me down to 10s of usec.
<kc8apf>
1588 support in switches is mostly about a deterministic fast path. Without that, you get variability based on queuing.
<adamgreig>
more so than the switch itself having a boundary/transparent clock?
<adamgreig>
i'm looking to synchronise clocks on 10s-100s of devices on a single ethernet segment to better than 1us
<adamgreig>
i managed to bodge together an stm32-based test last night which is getting <100ns without heavy loading on the switch, just with a cheap netgear desktop thing
<adamgreig>
but not sure how well it will scale with switch load or more devices etc
<adamgreig>
i had assumed ptp switches would also correct the ptp packets for time in transit through the switch
<kc8apf>
As port count grows, buffer size will also grow. If 1588 is the only traffic, it might work. Throw in anything else and you'll get loss of variability.
<adamgreig>
most of the nodes are likely to be sending a lot of traffic but not receiving much except 1588
<adamgreig>
not sure what a switch buffer architecture looks like though
<kc8apf>
That will still cause queuing
<adamgreig>
will heavy outbound traffic affect inbound traffic, or is it just a question of total switch traffic?
<kc8apf>
At 100s of nodes, you are looking at multiple 48 port switches anyway
<adamgreig>
mostly 24port switches for PoE power budget, but probably should say 10s-100 rather than 100s
rohitksingh has quit [Ping timeout: 246 seconds]
<kc8apf>
Depends on the architecture. Anything based on broadcom's big chips use a shared memory pool that each port pulls from.
<kc8apf>
If you're looking at that big of a switch, just buy one with 1588. It's common enough
<adamgreig>
right, so lots of unrelated traffic on other ports would still cause serious queueing for ptp? that's a shame
<adamgreig>
I guess I was looking for switches that were 1588 clocks rather than just having a 1588 fast path?
<kc8apf>
If you build your 1588 client well, it should eliminate any deterministic delay
<kc8apf>
I highly suggest looking at the chrony source for inspiration. It's well written and fairly easy to understand.
<adamgreig>
this is going to be gateware in the end, but i'll have a look
<adamgreig>
chrony is just ntp right?
<kc8apf>
Nope. It does NTP but also 1pps, ptp, etc.
<kc8apf>
Technically ntpd can do those as well but it's much hackier.
<adamgreig>
oh cool, didn't know chrony did ptp
<kc8apf>
Keep in mind that you can combine multiple sources as well. That's how 1pps works. The actual 1pps edge only tells you when the second change occurred with only provides relative time. You combine it with another source to get absolute time.
azonenberg_work has joined ##openfpga
m4ssi has quit [Remote host closed the connection]
azonenberg_work has quit [Ping timeout: 246 seconds]
azonenberg_work has joined ##openfpga
Asu has joined ##openfpga
Asu` has quit [Ping timeout: 252 seconds]
Laksen has joined ##openfpga
genii has quit [Ping timeout: 264 seconds]
genii has joined ##openfpga
rohitksingh has joined ##openfpga
rohitksingh has quit [Remote host closed the connection]
ayjay_t has quit [Read error: Connection reset by peer]
ayjay_t has joined ##openfpga
ZombieChicken has quit [Remote host closed the connection]