- 03 Feb, 2020 2 commits
-
-
Jean-Claude BAU authored
-
Jean-Claude BAU authored
- In case of handshake failure due to the reception of an unexpected message, execute the same procedure executed in case of time-out. The behavior will be more coherent. - better diagnostics
-
- 27 May, 2019 1 commit
-
-
Jean-Claude BAU authored
- Give priority to the time-out and not the number of msg repetitions - Call also wr_handshake_fail() function when a time-out is detected.
-
- 09 May, 2019 1 commit
-
-
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.
-
- 09 Apr, 2019 1 commit
-
-
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.
-
- 25 Feb, 2019 1 commit
-
-
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
-
- 25 Jan, 2019 1 commit
-
-
baujc authored
Instead of restarting a timer on each retry, the timer is initialized only once when we enter in the state. It helps to respect the time spent in a given state before to skip it due to the time-out.
-
- 21 Nov, 2018 1 commit
-
-
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.
-
- 12 Jul, 2017 2 commits
-
-
Sven Meier authored
Now everywhere the packet buffer is a void *buf and the lenght is int len
-
Sven Meier authored
The calibration handshake is now started on the slave state base Announce messages from the same device are handled differnetly for a BC
-
- 27 Feb, 2017 1 commit
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 01 Dec, 2016 1 commit
-
-
Alessandro Rubini authored
This removes a number of explicit checks in the states themselves. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 16 May, 2016 2 commits
-
-
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 <rubini@gnudd.com>
-
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 <rubini@gnudd.com>
-
- 07 Nov, 2014 2 commits
-
-
Alessandro Rubini authored
This reverts commit 9a3e00784afea6ab46510315b9c50cb510175f2d.
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 06 Aug, 2014 1 commit
-
-
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 <rubini@gnudd.com>
-
- 03 Aug, 2014 2 commits
-
-
Alessandro Rubini authored
The wrPortState variable was assigned-to in various places: it was "almost" mirroring the PTP state, but not every WR state was actually setting it. In fact, it was only used for calibration sub-states, so remove all other assignment. Often, the code did: wp->wrMode = NON_WR; wp->wrPortState = WR_PORT_IDLE; but only wrMode was ever checked, so WR_PORT_IDLE (was: WRS_IDLE) is redundant and can be removed altogether. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Some sub-states are never used, so remove them. Moreover, avoid using WRS_CALIBRATION for two things: now wrPortState only uses WR_PORT_ values (well, it will in the next commit). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 31 Jul, 2013 1 commit
-
-
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 <rubini@gnudd.com>
-
- 08 Mar, 2013 1 commit
-
-
Alessandro Rubini authored
the portState field is probably a relic of ptpd, then the state machine was a single switch() statement. Many places were still setting it, but nobody was ever reading the field. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 04 Mar, 2013 1 commit
-
-
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.
-
- 02 Mar, 2013 3 commits
-
-
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 <rubini@gnudd.com>
-
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 <rubini@gnudd.com>
-
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 <rubini@gnudd.com>
-
- 26 Feb, 2013 1 commit
-
-
Alessandro Rubini authored
struct DSPort now has a void pointer called ext_dsport that is used by each extension to store its own local data. White Rabbit, thus, is not a special case any more in this respect. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 06 Jan, 2013 1 commit
-
-
Aurelio Colosimo authored
Signed-off-by:
Aurelio Colosimo <aurelio@aureliocolosimo.it>
-
- 22 Jul, 2012 2 commits
-
-
Aurelio Colosimo authored
-
Aurelio Colosimo authored
-
- 21 Jul, 2012 1 commit
-
-
Aurelio Colosimo authored
This major patch implements wr-m-lock, wr-s-lock and wr-locked states, while fixing bugs in wr-present and master state.
-
- 12 Jul, 2012 2 commits
-
-
Aurelio Colosimo authored
-
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.
-