1. 15 May, 2020 1 commit
  2. 03 Feb, 2020 1 commit
  3. 18 Oct, 2019 1 commit
  4. 11 Oct, 2019 1 commit
  5. 14 Jun, 2019 1 commit
  6. 05 Jun, 2019 4 commits
  7. 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.
  8. 24 May, 2019 1 commit
  9. 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'
  10. 07 May, 2019 1 commit
  11. 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
  12. 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()
  13. 28 Jan, 2019 1 commit
    • baujc's avatar
      wrs_time_set(): Adjust seconds first · d8dfb539
      baujc authored
      When a jitter greater than 20ms is observed with peer, the seconds are
      never adjusted. The solution is then to adjust first the seconds.
  14. 27 Nov, 2018 1 commit
  15. 21 Nov, 2018 3 commits
    • Jean-Claude BAU's avatar
      Soft PLL returns unlock state sometime · 06bd82d5
      Jean-Claude BAU authored
      This was due to the introduction of system timers in the main loop of
      the switch. In minirpc the pool() system call exited sometime when the
      timer fired. Some other problems have been found during the debugging
      process. Some of them have been already adressed :
      - In minirpc, loop on pool() system call if the call is interrupted.
      - Wrong check in function wrs_locking_poll(). Was working by chance.
      - L12_state_machine() was calling to many often the state handle. It was
      increasing the number of hardware calls for nothing.
      TODO: The returned values for the function wrs_locking_poll(), halexp_lock_cmd(), and hal_port_check_lock() should be reviewed to be more consistent.
    • 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.
    • Jean-Claude BAU's avatar
      Change the pp_msgtype_info structure · e0b61c86
      Jean-Claude BAU authored
      - This structure is changed in order to be able to use SIGNALING
      messages with non-fowardable MAC address. This have an impact on many
      places as we have to distinguish two kind of signaling messages
  16. 20 Nov, 2018 2 commits
    • 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
    • Jean-Claude BAU's avatar
      Infrastructure changes: make wr_operations common for WRS and WRPC and · f290c38b
      Jean-Claude BAU authored
      independant of a pp_instance. Also add wrh_servo_head for wr_mon.
  17. 12 Sep, 2017 1 commit
    • Sven Meier's avatar
      utc&leap: fixed kernel issue with leap second handling · b2f4280d
      Sven Meier authored
      kernel has two bugs regarding leap second handling: it need to have the
      leap second flags cleared twice before setting them and it doesn't clear the leap second flags after the leap second happened. A workaround was implemented
  18. 11 Sep, 2017 1 commit
  19. 07 Aug, 2017 1 commit
  20. 03 Aug, 2017 1 commit
  21. 20 Jul, 2017 2 commits
    • Sven Meier's avatar
      bmc & wr locking: added leap second propagation and added reset of locking · bc586acd
      Sven Meier authored
      Leap seconds are now also fetched from the system in case we are a grandmaster
      A reset of the locking procedure was added so a locked switch can get master again
    • Sven Meier's avatar
      bmc & cleanup: fixes after the audit portings · 8633ced3
      Sven Meier authored
      The audit portings changed the timely behaviour of the ppsi which cause wrong behaviours,
      the timeout scheme was changed to only reset timeouts where needed and in all non PTP
      states. UTC offset is now fetched from the system where supported, link up/down is now
      considered in the BMC, also some state changes where cleaned up to be out of the BMC, e.g.
      state changes based on timeouts between PreMaster and Master or between Uncalibrated and Slave.
  22. 06 Apr, 2017 1 commit
  23. 01 Mar, 2017 2 commits
  24. 24 Feb, 2017 1 commit
  25. 31 Jan, 2017 1 commit
  26. 13 Jan, 2017 1 commit
    • Alessandro Rubini's avatar
      general: avoid linux/ includes when possible · 922e2caf
      Alessandro Rubini authored
      Building with musl was spitting errors for redefined data structures.
      Use the standard headers when available (I found not alternatives to
      linux/if_packet.h, but it spits no error).
      Then, ifr.ifr_data is "caddr_t" not "void *" in musl, so cast the
      pointer being assigned to silent a warning.
      Finally, the fields of udphdr in musl use different names unless wi
      add _GNU_SOURCE -- most likely musl is more posixly-correct, I didn't check.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
  27. 12 Dec, 2016 1 commit
  28. 07 Dec, 2016 1 commit
  29. 03 Dec, 2016 1 commit
  30. 02 Dec, 2016 2 commits
    • Alessandro Rubini's avatar
      bugfix: wrs was crazy when slave of non-wr masters · 289371e7
      Alessandro Rubini authored
      The main problem was introduced by:
         d2a57023 std-servo: fix initial jump for p2p slaves
      There, we falled back on unix->get_time to make adjustments if
      hal->get_time failed.  Only happens as non-wr slave.
      Actually, the get_time call has never been implemented in the hal, and
      we always falled on unix time. But if frames are timestamped with
      WR time, we can adjust based on Unix time.
      We now read WR time internally, waiting for something better (we have
      constant addresses in here).
      Note: we are still unable to steer frequency, despite the efforts
      (and it used to work, ages ago).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    • Alessandro Rubini's avatar
      bugfix: calloc was misused. Memory corruption. · ceb14b1c
      Alessandro Rubini authored
      This dates back to the original copying over from ptp-noposix:
        89a46c6d time-wrs/wrs-socket.c: implementation of net functions for wrs arch
      (but the bug was not in ptp-noposix).
      It is exposed by the newer compiler (well, library) we are using.
      But a calloc of 0 bytes should return NULL, to ensure it's not used...
      Documentation disagrees:
             If size is 0, then malloc() returns either NULL, or a unique
             pointer value that can later be successfully passed to free().
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
  31. 21 Nov, 2016 1 commit