1. 04 Jun, 2019 1 commit
  2. 24 May, 2019 1 commit
  3. 05 Mar, 2019 1 commit
    • baujc's avatar
      Suppress timer PP_TO_FAULT · 765c661b
      baujc authored
      After reviewing the code with Maciej, this time-out does not seem to be
      used in a very coherent way. We decided then to remove it.
  4. 01 Mar, 2019 1 commit
    • baujc's avatar
      Code optimization · 25692a35
      baujc authored
      - Make externalPortConfiguration compliant with the PTP specifications
      - Optimize code for externalPortConfiguration
      - Optimize code for slaveOnly
      - Replace "CONFIG_HAS_P2P && ppi->delayMechanism==P2P" by an inline
  5. 25 Feb, 2019 1 commit
    • baujc's avatar
      Big update 2 · 515af578
      baujc authored
      . Better integrate of code optimization with PPSi Kconfig
      . PPSi Kconfig changes to simplify the code in PPSi and avoid #ifdef ..
      . Improve code optimization
      . Move some declaration in ppsi.h in other files to ligthen ppsi.h
      . Improvement of timers: global or instance dependent, dyn. allocation,
      renaming for better diagnostics, disabling allowed, ...
      . New behaviour for the PPS output generation (configurable,...)
      . Move control of the timing mode from HAL to PPSi
      . Optimization of code when a Protocol extension is not available
      . BMCA: Calculate the ebest,... only one time and then trigger all
      instances to execute the bmca state descision
      . Fix bug in the calculation of the clockIdentity to bring it into
      compliance with PTP spec 2008 document
      . Fix a bug related to Announce message received in SLAVE/UNCALIB
      . WR ext: use dynamic timer and adapt to new PPS generation
      . HA ext: Fix bug in fault injection mechanism
  6. 29 Jan, 2019 1 commit
    • baujc's avatar
      Big update ... · c81db09e
      baujc authored
      - New L1Sync and PTP servo calculation (delayAsym,...)
      - Make function calls more uniforms between extensions
      - refactoring
      - Add a new state machine to enable/disable an extension and provide
      only PTP support: New timer, new hooks, ...
      - Fix bug in time format conversion
      - Code removed when an extension is not required (#ifdef XXX )
      - Align the PTP and L1Sync servo calculation (shared fct, same
      - Force only one servo running at a given time for a given instance
      - New servo reset hook : called by main loop
      - Add function to converte a time into a string
      - Force to stay in FAULTY state during 60s
      - Optimise function wrs_enable_timing_output()
  7. 21 Nov, 2018 6 commits
    • Jean-Claude BAU's avatar
      Fix timer bugs · 88546c40
      Jean-Claude BAU authored
      - Many information were store in a common static structure (to_config).
      However depending on the PPSI instance configuration these information
      need to be stored per instance. Mainly it concerns the rand value
      (which_rand and the counter reset value). Only the timer name stay now
      in a common arrea.
    • Jean-Claude BAU's avatar
    • Jean-Claude BAU's avatar
      Fix timeout issues · 2caf77d5
      Jean-Claude BAU authored
      - Fix issues introduced in last commit "Timeout management correction"
      - Code optimization
      - Protect FAULT timeout in case of timeout overload. It can append
      because the logMinDelayResponse can be changed on real-time by the
      received DELAY_RESP message
    • Jean-Claude BAU's avatar
      Timeout management correction. · 5eaba882
      Jean-Claude BAU authored
      - The timeout expressed in ms is stored in an integer value. A Log
      interval may have a value in the range -128,127. The timeout cannot
      covers all this range. A protection as been added to avoid wrong timeout
      calculation which might generate a crash of PPSI.
      - A new function is also added pp_timeout_log_to_ms() to verify the log
      Interval and calculate the timeout.
      - Optimize the execution of pp_timeout_set()
    • Jean-Claude BAU's avatar
      HA updates, bug fixes and optimization · fbe6df4e
      Jean-Claude BAU authored
      - Move initialization of configurable parameters in L1SYNC init hook
      - Set the L1SYNC state to DISABLE in the startup otherwise the state is
      not set if the port is not connected
      - Remove time printing in diag messages
      - restrict call to servo only when the state is UP
      - Adjust properly the delay returned by each l1sync state functions
      - Set REQUEST timeout value dependent of the delay mechanism (E2E/P2P)
      - Bug fix: PP_P2P_MECH used instead of P2P
      - Optimize the REQUEST timeout to generate asap a DelayReq message after
      the first SYNC message received
    • Jean-Claude BAU's avatar
      High Accuracy - Second implementation · a45008ca
      Jean-Claude BAU authored
      This implementation does not include yet the possibility to declare 2
      exclusive instances on a same port (WR & HA)
      - Some structures are renamed with the suffix _t to make it more
      - Some variables are renamed  to be more clear
      - Implementation of masterOnly, slaveOnly and externalPortConfiguration
      - All extension specific includes (XX-api.h) is now automatically
      included in ppsi.h and do not need to be included in other files.
  8. 20 Nov, 2018 1 commit
    • Jean-Claude BAU's avatar
      Arch. changes for HA integration + bring into compliance with the · 41bedca5
      Jean-Claude BAU authored
      standard IEEE1588-2018
      We bring here a lot of changes to :
      - make the implementation more complaiant with the standard
        We introduce new structures for the time (TimeInterval, Relative
        Named used in structures are aligned to the standard, ...
        It is just a first step. More work is needed
      - be able to use more than one protocol extension at the same time
        (configurations, structures, ...)
      - add the concept of profile
      - increase diagnostics by displaying also standard PTP servo
  9. 12 Jul, 2017 1 commit
  10. 05 Apr, 2017 1 commit
    • Alessandro Rubini's avatar
      general fix: implement SYNCHRONIZATION_FAULT · a438acc9
      Alessandro Rubini authored
      If we stopped sending to the master or the peer (for traffic or
      whatever; in my case with "fault drop"), we wouldn't notice the
      This looks like SYNCHRONIZATION_FAULT (, so this reuses the
      almost-unused TO_FAULTY, renaming it to a more generic TO_FAULT.
    says we should reach uncalibrated, but since uncalibrated doesn't
      exits (it is never entered, it's dead and untested code at this point),
      I handle the problem just like the timeout receiving announce messages.
      For wr, I reset the servo, so the problem can be seen.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
  11. 20 Sep, 2016 1 commit
  12. 16 Jun, 2016 5 commits
  13. 16 May, 2016 11 commits
  14. 16 Oct, 2013 1 commit
    • Alessandro Rubini's avatar
      bugfix: state-fault must delay a while before reinitializing ppi · 8bd9b76e
      Alessandro Rubini authored
      This is a long-standing bug introduced when fsm.c was changed to
      immediately enter a new state (before that, we had a grace period in
      state-faulty).  The problem is exposed by running the suggested
      config file, if eth1 and/or eth2 exist but are currently down.
      This patch introduces a specific timeout, so we wait 4 seconds before
      reinitializing the pp instance; we thus avoid burning 100% CPU Time in
      trying again and again.
      As a side effect, this reduces timeouts provided to extensions from 4
      to 3. I could have reused one of the other timeouts, as faulty state
      does not use them, but I'd better have proper timeout names in
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
  15. 31 Jul, 2013 1 commit
    • Alessandro Rubini's avatar
      general: rephrase copyright notices (no tech effect) · 23033d8a
      Alessandro Rubini authored
      This changes all "Name Surname for CERN" to "Copyright CERN, author
      Name Surname".  This is trivial and makes no change, with a few
      - all trivial Makefiles that had "for CERN" lines have now no
      attributions, as they are trivial anyways.
      - a few unrepresented files have not the copyright notice (especially
      ptpdump, that I wrote in 2012).
      - a few "for CERN" remain in subprojects, where I didn't touch anyrhing
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
  16. 07 Mar, 2013 4 commits
    • Alessandro Rubini's avatar
      general (for bmc.c): turn ClockIdentity into a structure · f9f487ff
      Alessandro Rubini authored
      This "type" was the only type represented as an array instead of
      being a structure. This leads to inconsistent use: if you memcpy
      the other ones you need "&", but not here.
      So this commit uses an encompassing structure, to have ClockIdentity
      behave like other composite fields.  The commit has no effect at all
      on the generated binary files for wrpc but it unexpectedly reduces the
      size of the output on the PC. Anyways, the commit is trivial, and all
      changes can be easily verified to have no effect.
      While this increases entropy, the reasoning is that I want to assign
      structures instead of running zillions of memcpy functions, with the
      hairy PP_CLOCK_IDENTITY_LENGTH.  So later commits, based on this one,
      reduce entropy.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    • Alessandro Rubini's avatar
      diag: use new diagnostics for time · c946dca5
      Alessandro Rubini authored
      This is the result, on a master, with "-d 02":
      diag-time-2-eth0: posix_time_get:  1362675879.940187923
      diag-time-1-eth0: timeout expired: PP_TO_ANN_INTERVAL
      diag-time-2-eth0: posix_time_get:  1362675880.081818439
      diag-time-2-eth0: posix_time_get:  1362675880.233227916
      diag-time-2-eth0: recv stamp: 1362675880.233227916 (user)
      diag-time-2-eth0: posix_time_get:  1362675880.233499803
      diag-time-1-eth0: timeout expired: PP_TO_SYNC
      (time level 1 reports timeouts and set, level 2 reports get-time too).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    • Alessandro Rubini's avatar
      trivial: remove unneeded include · dab8bb38
      Alessandro Rubini authored
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    • Alessandro Rubini's avatar
  17. 02 Mar, 2013 2 commits
    • Alessandro Rubini's avatar
      timeout: randomize intervals as required · 89185bf9
      Alessandro Rubini authored
      The frames should be sent with some dispersion around the timeout
      point.  The new function calculates the correct dispersion, but we
      need to change the setting of next_delay in order to actually spread
      the distribution of announce and other messages.
      Also, this commit doesn't spread all message times, some work on the
      field is still needed.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    • Alessandro Rubini's avatar
      timeout: add pp_timeout_z and centralized logging · 78efba06
      Alessandro Rubini authored
      By zeroing the timeout whenever it expires, a number of
      state files get simplified a little. So pp_timeout_z() returns
      1 or 0 like pp_timeout(), but also clears the timeout when it is
      Moreover, when a timeout expires a message is printed if the
      build-time option pp_verbose_time is set (and run-time verbosity is at
      level 2). In this way all timeouts are reported, or none of them.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>