Coder Social home page Coder Social logo

xilinx-cns / sfptpd Goto Github PK

View Code? Open in Web Editor NEW
22.0 7.0 5.0 1.48 MB

Solarflare Enhanced PTP Daemon. Use multiple PTP and PPS sources and sync local clocks together in one integrated application with high quality timestamp filtering, supporting bonds and VLANs, real time and long term stats reporting.

License: Other

Makefile 0.64% Groovy 0.03% Shell 0.23% C 98.49% Python 0.54% Dockerfile 0.06%
sfptpd time-synchronization solarflare

sfptpd's Introduction

Solarflare Enhanced PTP Daemon

The sfptpd service synchronises local clocks together with multiple PTP and PPS sources in one integrated application with high quality timestamp filtering and supports LACP and active-backup bonds with and without VLANs. The default and Enterprise PTP profiles are supported.

Instantaneous and long term statistics for monitoring along with support for 'NetSync Monitor' and standard PTP event monitoring support compliance.

Integration is provided to work with NTP sources via ntpsec, ntpd and subject to limitations, chronyd. The daemon works on Linux systems for 3.0 kernels and later.

See the changelog for recent additions to sfptpd. The current stable branch is v3_7.

For a quick start (operating PTP on bond0, domain 100), see one line docker example.

Building and running from source

  1. Change directory to the root of the sfptpd source repository or package
  2. Type make all
  3. The executable daemon is sfptpd in the build/ directory

The built sfptpd daemon does not require installation. However, it must normally be started as root.

Example installation recipies may be found in INSTALL.md and examples configuration files under config.

A simple back-to-back PTP example:

# On host A:
sudo build/sfptpd -i eth1 -f config/ptp_master_freerun.cfg

# On host B, first disabling ntpd and chronyd for simplicity:
for i in ntp{,d} chrony{,d}; do sudo service $i stop 2>/dev/null; done
sudo build/sfptpd -i eth1 -f config/ptp_slave.cfg

Supported releases

Supported releases of sfptpd are available from https://www.xilinx.com/download/drivers. These are supported by AMD for the Solarflare adapters and operating systems listed in the relevant release notes.

The user guide for supported releases is available at https://docs.xilinx.com/r/en-US/ug1602-ptp-user.

Community-supported usage

The sfptpd daemon provides a system-centric time sync solution that can be used with any network adapter and driver supporting standard Linux time APIs. The monolithic design of sfptpd enables a holistic approach to system time synchronisation, supporting link aggregation and integrating remote and local clock synchronisation.

Using non-Solarflare network adapters

Enable the use of non-Solarflare adapters with:

non_solarflare_nics on

By default, non-Solarflare adapters are not synchronised to avoid hitting a potential limitation with some drivers.

Sfptpd is normally configured to synchronise all available NIC clocks automatically so that applications can obtain meaningful hardware timestamps on all interfaces.

In the case of Solarflare NICs, the sfc net driver presents the same "PTP Hardware Clock" (PHC) device (e.g. /dev/ptp0) for each of the physical network ports on a single adapter. Some NICs, however, present separate and apparently independent PHC devices for each network port which actually represent the same underlying physical clock.

When using third party NICs affected by this issue the recommended mitigation is to list explicitly the NIC clocks to be disciplined with clock_list.

Footnotes

SPDX-License-Identifier: BSD-3-Clause
SPDX-FileCopyrightText: (c) Copyright 2013-2024 Advanced Micro Devices, Inc.

This software is licensed as BSD-3-Clause AND BSD-2-Clause AND NTP AND ISC. See LICENSE file for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.