- 04 Jun, 2019 1 commit
-
-
Jean-Claude BAU authored
The structure was not updated when the FAULT timer was removed.
-
- 24 May, 2019 1 commit
-
-
Jean-Claude BAU authored
-
- 05 Mar, 2019 1 commit
-
-
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.
-
- 01 Mar, 2019 1 commit
-
-
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 function
-
- 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
-
- 29 Jan, 2019 1 commit
-
-
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 calculation,...) - 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()
-
- 21 Nov, 2018 6 commits
-
-
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 authored
-
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 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 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 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.
-
- 20 Nov, 2018 1 commit
-
-
Jean-Claude BAU authored
standard IEEE1588-2018 We bring here a lot of changes to : - make the implementation more complaiant with the standard IEEE1588-2018. We introduce new structures for the time (TimeInterval, Relative difference) 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 informations
-
- 12 Jul, 2017 1 commit
-
-
Sven Meier authored
BMC fixed to be called periodically and data sets comparisments fixed also changed the foreign master table adding and agging and some minor adpatations in state pre-master
-
- 05 Apr, 2017 1 commit
-
-
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 problem. This looks like SYNCHRONIZATION_FAULT (9.2.6.12), so this reuses the almost-unused TO_FAULTY, renaming it to a more generic TO_FAULT. 9.2.6.12 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 <rubini@gnudd.com>
-
- 20 Sep, 2016 1 commit
-
-
Davide Ciminaghi authored
-
- 16 Jun, 2016 5 commits
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Davide Ciminaghi authored
We just reinit timeouts on reception of a delay response This way the delay request interval is reinitialized and set to the proper value.
-
Alessandro Rubini authored
previous code failed for logSyncInterval < 0 Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 16 May, 2016 11 commits
-
-
Alessandro Rubini authored
This kills the ambiguously-named pp_ms_to_timeout(), and adds pp_next_delay_{1,2,3}. This commit meanwhile fixes the timeouts in the pdelay master (who didn't consider the request timeout), and in the pdelay listener (because LISTEN mode must send pdelay requests). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
We don't zero timer any more (see preceding commit), no need to special case anything. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This was only used by timeout_z() (check if expired and disable it) that is not useful nor used since last commits. Timeouts are always running (time is always running...), it's just a matter of whether we check them or not. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
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
We now have the simpler pp_timeout(). Moreover, most uses were needless, because now we reset all timeouts when we change state. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
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>
-
Alessandro Rubini authored
This moves all functions to timeout.c, so the header is more readable. As a side effect, the binary is smaller (a few hunded bytes for all archs, almost 1k for wrpc). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
We use the same timeout for delay_req and pdelay_req, so let's call it "request" alone. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The timeout for sending a requeste can be shareby by delay/pdelay; same for logMinDelayReqInterval. Moreover, I took the chance to remove the third extension-specific timeout slot (WR only uses 1, keep two of them...). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 16 Oct, 2013 1 commit
-
-
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 diagnostics. 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>
-
- 07 Mar, 2013 4 commits
-
-
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 <rubini@gnudd.com>
-
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 <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 02 Mar, 2013 2 commits
-
-
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 <rubini@gnudd.com>
-
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>
-