1. 03 Feb, 2020 2 commits
  2. 27 May, 2019 1 commit
  3. 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
      fail.
      59838a0d
  4. 09 Apr, 2019 1 commit
    • baujc's avatar
      Review of WR protocol implementation · 0b031b22
      baujc authored
      - It has now its own state table
      - The servo is shared with L1Sync extension. It means that servo
      calculation is now following the new standard IEEE 1588
      - It stay compatible with older versions of the switch. The correction
      field value in the exchange messages are still not compliant with the
      standard to keep the compatibility.
      0b031b22
  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
      515af578
  6. 25 Jan, 2019 1 commit
  7. 21 Nov, 2018 1 commit
    • 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
      readable.
      - 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.
      a45008ca
  8. 12 Jul, 2017 2 commits
  9. 27 Feb, 2017 1 commit
  10. 01 Dec, 2016 1 commit
  11. 16 May, 2016 2 commits
    • Alessandro Rubini's avatar
      timeout: kill pp_timeout_z() · e4cd8376
      Alessandro Rubini authored
      It was not a good idea: there is no need to clear a timeout if
      it is being re-initialized in the same function anyways. If, OTOH,
      we change state, it won't be referenced any more so there's no need
      to disable it.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      e4cd8376
    • Alessandro Rubini's avatar
      general: change timeout API · 6305e770
      Alessandro Rubini authored
      Several changes to the timeout API, simplifying the code and allowing
      more simplification later.
      
       * TO_ANN_INTERVAL renamed to TO_ANN_SEND (as opposed to TO_ANN_RECEIPT)
      
       * TO_SYNC renamed to TO_SYNC_SEND for symmetry with above
      
       * added timeout_init() to take not of the waiting values
      
       * timeout_set now receives only the index, not the value (see above)
      
       * __timeout_set added for those that want a specific value
      
       * timeout_rand is gone, as timeout_set knows which to randomize
      
       * all users fixed
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      6305e770
  12. 07 Nov, 2014 2 commits
  13. 06 Aug, 2014 1 commit
    • Alessandro Rubini's avatar
      whiterabbit: implement retry on timeout · 5702115b
      Alessandro Rubini authored
      This commits adds retry in most wr states. This allows to deal with
      lost frames. There a few missing items, and a few rough situation.
      The code itself shows a number of repetitions, which I dislike, but
      over time we'll fix it properly.
      
      By now this should be enough to deal with transient data loss
      during calibration, that happens at some users' site.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      5702115b
  14. 03 Aug, 2014 2 commits
  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
      expections:
      
      - 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>
      23033d8a
  16. 08 Mar, 2013 1 commit
  17. 04 Mar, 2013 1 commit
    • Alessandro Rubini's avatar
      general: net: rename some fields, fix alignment · 06ef4b9b
      Alessandro Rubini authored
      This changes some things to make code more readable (I really didn't
      know what the tmp_header was: now it is the "received_ptp_header".
      The commit simplifies allocation, because the tx and rx buffers are
      now part of ppi itself.
      
      We now have tx_ptp and tx_frame, both pointing within tx_buffer (and
      the same for rx). The pointers are the protocol side (aligned) and the
      argument passed to send/recv (which may be not be 4-aligned).
      
      At this point nothing changes, i.e. both gnu-linux flavours work and
      bare-i386 is not able to received.
      06ef4b9b
  18. 02 Mar, 2013 3 commits
    • 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
      expired.
      
      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>
      78efba06
    • Alessandro Rubini's avatar
      timeout: WR can use a single timeout variable · 805b7a8b
      Alessandro Rubini authored
      This kills all WR-related timeouts because one of them
      is enough (they are used in each state as a timeout for
      completion of that very state).
      
      Moreover, since ppsi should be extension-independent,
      we now define 4 timeouts for the extension in use (and WR
      only uses timeout 0).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      805b7a8b
    • Alessandro Rubini's avatar
      kill timer: implement timeout · 4b07d444
      Alessandro Rubini authored
      The timer implementatin was incredibly complex.  Now there is no such
      thing as a timer in ptp. We only have timeouts.
      
      A timeout is a point in time. We calculate; we can be earlier; we
      can be later. The only thing which is arch-specific is calculating.
      
      This replaces every "timer" operation with the equivalent "timeout"
      one. All stuff is renamed to avoid confusion between "time" and
      "timer".
      
      Unfortunately, the resulting program as of this commit is not working.
      the pdelay_request timeout happens continuously, I'm sure I've exposed
      a latent bug, which I'm now going to fix.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      4b07d444
  19. 26 Feb, 2013 1 commit
  20. 06 Jan, 2013 1 commit
  21. 22 Jul, 2012 2 commits
  22. 21 Jul, 2012 1 commit
  23. 12 Jul, 2012 2 commits
    • Aurelio Colosimo's avatar
      trivial: renamed wr_* files to wr-* · a6f82fe1
      Aurelio Colosimo authored
      a6f82fe1
    • Aurelio Colosimo's avatar
      wr state machine functions skeleton · c79743b9
      Aurelio Colosimo authored
      This patch introduces the state machine for white rabbit.
      It is intended as a flat state machine, so that the application state is
      univocally determined by its ppsi->state variable. Internally, each state
      function saves the Port Dataset, keeping the double level of states: portState
      for general state, and wrPortState as White Rabbit FSM. This permits to be
      logically coherent with the specification document (which defines an internal
      WR state machine) and to have a simplified approach in the source code.
      c79743b9