Comment by Youden

2 days ago

What's expensive? PTP is widely supported on commodity hardware these days. I think most Intel NICs support it, quite a few Realtek and a lot of embedded stuff, down to even MCUs like STM32.

Even if you want a NIC with a stable oscillator or GPS inputs to act as a grandmaster, you can buy an E810 with the necessary hardware from eBay etc. for a few hundred or DIY something yourself much cheaper.

Switches that properly support PTP are expensive, at least for now.

You can achieve microsecond accuracy with a lot of non-timing-specific networking hardware, but it's around as good as you get with modern NTP...

To get sub-microsecond, you need hardware that supports transparent/boundary clock and doesn't just 'say' it does, but actually does (vendors have stamped PTP support on things that definitely don't account for time correctly internally!).

> I think most Intel NICs support it...

I have an Intel NIC (an Intel I211 using ixgbe) and a Broadcom NIC (BCM5719 using tg3) that claim to support PTP. I'm using the 802.11as profile on my LAN. These NICs are hooked up to Mikrotik CRS326-24G-2S+'s that also claim to support PTP.

Despite my neighbor switches reliably emitting Announce packets every second [0] the Intel NIC will -every few hours- fail to pass along three of those in a row to ptp4l, causing it to switch grandmaster mode for a few seconds before it recovers. The Broadcom NIC does this once or twice a day. These failures happen on both systems, regardless of system load. I've tried fiddling with a whole bunch of ptp4l settings to relax delivery timeouts, and it doesn't seem to help.

So, yeah, just because something claims to support PTP doesn't mean that it'll actually work well.

[0] I know this because packet capture during a couple of the incidents confirms this.

  • The NICs need supported hardware timestamping. Then they can be used with ptp4l.

    Intel i210 and i226 does this. But the i226 has a few variants.

    • > The NICs need supported hardware timestamping.

      Yes. I'm aware. Perhaps I'm more stupid about this topic than normal, but it looks to me like the NICs I have do (NIC names have been changed for clarity, but all other output is untouched):

        $ ethtool -T intel-nic
        Time stamping parameters for intel-nic:
        Capabilities:
         hardware-transmit
         software-transmit
         hardware-receive
         software-receive
         software-system-clock
         hardware-raw-clock
        Hardware timestamp provider index: 0
        Hardware timestamp provider qualifier: Precise (IEEE 1588 quality)
        Hardware timestamp source: MAC
        Hardware Transmit Timestamp Modes:
         off
         on
        Hardware Receive Filter Modes:
         none
         all
      
        $ ethtool -T brcm-nic
        Time stamping parameters for brcm-nic:
        Capabilities:
         hardware-transmit
         software-transmit
         hardware-receive
         software-receive
         software-system-clock
         hardware-raw-clock
        Hardware timestamp provider index: 0
        Hardware timestamp provider qualifier: Precise (IEEE 1588 quality)
        Hardware timestamp source: MAC
        Hardware Transmit Timestamp Modes:
         off
         on
        Hardware Receive Filter Modes:
         none
         ptpv1-l4-event
         ptpv2-l4-event
         ptpv2-l2-event

      2 replies →

out of dozens of laptops and computers we have where I work, we have maybe 3 that have a PTP-compatible NIC.