1. 20 Nov, 2019 1 commit
    • Jean-Claude BAU's avatar
      BMCA: new qualification algorithm · d39aa5ee
      Jean-Claude BAU authored
      Introduction of an other way to calculate the best foreign master. It
      has been changed to fix bugs found during ISPC20119 (IOL test). Tests
      showed unstable behavior in the computation of foreign master
      qualification in some specific circumstances (time window of 8s with
      announce messages every 5s)
  2. 14 Nov, 2019 1 commit
    • Jean-Claude BAU's avatar
      Clock degradation · 04f722fe
      Jean-Claude BAU authored
      - New mechanism for clock degradation (degrade clock class, clock
      accuracy, clock variance, timeSource, ptpTimeScale, frequencyTraceable,
      - timeSource can be configured now
      - If clock accuracy, clock variance and timeSource are not set in
      ppsi.conf, default values are used depending of the clock class.
  3. 11 Nov, 2019 3 commits
    • Jean-Claude BAU's avatar
      Update clock accuracy for GM (ARB) · 12c52105
      Jean-Claude BAU authored
      Change clock accuracy from 0x21(100ns) to 0x20(25ns) for ARB Grand Master.
    • Jean-Claude BAU's avatar
      New field activePeer in pp_instance structure · 1f503295
      Jean-Claude BAU authored
      This field is used to store the active peer connected to an instance. In
      wr_mon tool, it replaces the field peer on the display which was not
      very explicit when many peers are connected on the same port. The field
      activePeer takes the value of peer field in the following cases :
                 MASTER          UNCALIBRATED/SLAVE
      P2P     Rx PDELAY_RESP    Rx qualified ANNOUNCE
      E2E       DELAY_RESP      Rx qualified ANNOUNCE
      In other cases, the activePeer field is set to 0
    • Jean-Claude BAU's avatar
      BMCA: New evaluation of ptpTimescale, frequencyTraceable... · 47d07f02
      Jean-Claude BAU authored
      The fields in timePropertiesDS are been reevaluated. The file bmc.c
      contains a table showing the different use cases.
  4. 11 Oct, 2019 4 commits
  5. 04 Jun, 2019 1 commit
    • Jean-Claude BAU's avatar
      Improve behavior when link up->down->up not detected. · 420da467
      Jean-Claude BAU authored
      When the link state changes rapidly, it can't be detected by PPSi. This
      is the case with the BTrain configuration. So we must detect that the
      peer has changed and restart the servo for a slave and use the right
      protocol (extension/ptp).
  6. 27 May, 2019 1 commit
    • Jean-Claude BAU's avatar
      [Issue:#196] WR time not set properly in GM mode · 36accb7e
      Jean-Claude BAU authored
      The WR time is set in GM mode as follow :
      1/ At startup the NTP time is set using wr_date script
      2/ PPSi calls the tool wr_date with parameters "set host". It will be
      called every time it detects a PLL transition from UNLOCKED to LOCKED
      state. Also PPSi provide a error counter 'gmUnlockErr' which gives the
      number of time the PLL unlocked.
      3/ Parameters "-v set host" in wr_date tool, set only the second part of
      the WR time. The time is set in a middle of two WR seconds ticks.
  7. 24 May, 2019 2 commits
  8. 20 May, 2019 1 commit
    • Jean-Claude BAU's avatar
      [Feature:#128] Improve GM status · b66d61fe
      Jean-Claude BAU authored
      - Add a new state machine available for all timing modes ( Free running
      master, Grand master and boundary clock)
      - State is stored in pp_globals, field timingModeLockingState
      - The 3 main states are :
      -- Locking: Waiting for PLL locked
      -- Locked: PLL is locked
      -- Error: PLL is unlocked but was locked before
      - Changing the timing mode will reset the state to 'Locking'
  9. 15 May, 2019 1 commit
  10. 14 May, 2019 1 commit
  11. 09 May, 2019 1 commit
    • Jean-Claude BAU's avatar
      WR/PTP protocol detection + WR protocol improvement · 59838a0d
      Jean-Claude BAU authored
      - Simplify how an instance switch from WR to PTP protocol and vice-versa
      - Change the WR state machine: When an unexpected WR signaling message
      is received, the state is forced to IDLE. Solve handshake issue when
      instance is waiting for an answer with a long time-out and in the other
      side the PPSi process is restarted. In this use case the handshake will
  12. 03 May, 2019 1 commit
  13. 02 May, 2019 1 commit
  14. 09 Apr, 2019 4 commits
  15. 29 Mar, 2019 1 commit
  16. 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.
  17. 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
  18. 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
  19. 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()
  20. 24 Jan, 2019 1 commit
  21. 03 Dec, 2018 2 commits
  22. 29 Nov, 2018 2 commits
  23. 27 Nov, 2018 2 commits
  24. 21 Nov, 2018 5 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
      Configuration enhancement (follow up) · 0141769d
      Jean-Claude BAU authored
          - Add new config parameters (l1SyncRxCoherencyIsRequired,...)
          - Add new profile: CUSTOM. It will be mostly used for testing
          - Fix issue on state name: "pre_master" instead of "pre-master"
    • Jean-Claude BAU's avatar
      Fix issue on Erbest computation · c78f9181
      Jean-Claude BAU authored
      According to the clause, the quualification is now not evaluated
      for the ErBest foreign master.
    • Jean-Claude BAU's avatar
      Implement one-step clock for HA & WR profiles · cd3ee739
      Jean-Claude BAU authored
      The one-step clock didn't work for HA & WR profiles. This new
      implementation is based on a new hook "handle_sync" called in case of
      one-step clock mode.
    • Jean-Claude BAU's avatar
      Fix issues with standart ptp (e2e & p2p) · ada5fb06
      Jean-Claude BAU authored
      In the ptp servo the adjustment of the time was too slow. When the
      difference of the time with the master was less than 1 second, the
      adjustment was done only with the frequency. In case if the difference
      is 0.999s, it can take a very long time to adjust the time.
      Changes made :
      - Adjust with frequency only when time difference is below 20ms
      - Check the timestamp validity before each calculation
      - Create a new function to check the timestamps and use it on all
      servos. This improve significantly the size of the code.
      - Add verification in order not to set an invalid UNIX time