Comment by simoncion

2 days ago

> 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

    • Intel's drivers are notoriously annoying as the parent of the parent comment suggests. It seems to be a mix of hardware bugs and a driver that doesn't properly account for them. I know many who've moved to ASIX, Mellanox, and other chipsets just because they don't get weird behaviors or two edges per pulse without hacking the driver.

      1 reply →