- 03 Mar, 2017 1 commit
-
-
Alessandro Rubini authored
There is still some factorization to make, and other irrelevant size-related things, but I'd better wait a little and get confident this stuff is solid. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 31 Jan, 2017 1 commit
-
-
Alessandro Rubini authored
Commit only build for arch-unix (and no tools either) This simplifies a lot the calculations. - all times are now living in a single structure - all fields are signed and 64-bit long - the 2038 bug is over (we still had 32-bit seconds) - no overflow in math or unexplained "unsigned" appearing Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 21 Nov, 2016 1 commit
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 04 Nov, 2016 3 commits
-
-
Alessandro Rubini authored
The idea that somebody wants to steer time for >1s offsets is perverse. Let's simplify (if any, we may want to jump for <1s offsets that are bigger than a few milliseconds). 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>
-
- 25 Oct, 2016 3 commits
-
-
Alessandro Rubini authored
While it may make sense to setup constant delay somewhere (for WR we define them, for instance), the legacy implementation was unused and wrong. Unused because nobody sets it (even if we could do it in the config file). Wrong because inbound is never used, and both are global and not per-port. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Now this is the behaviour for the choice: arch-bare-* if you select P2P, it's built and selected. Default is E2E_ONLY. arch-sim arch-unix arch-wrs The P2P is built by default configuration, and the mechanism is selected at configuration time. Default is E2E. If you choose E2E_ONLY and configure pdelay, it will ignore the config. (Suboptimal but I'm lazy: do *not* use E2E_ONLY for those archs. arch-wrpc The default is e2e until changed at run time. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 20 Sep, 2016 2 commits
-
-
Alessandro Rubini authored
Here in ppsi, ./MAKEALL wrpc_defconfig wrpc_pdelay_defconfig shows a very small difference, but most pdelay code is then discarded by the wrpc-sw link time, due to --gc-sections. This is the result: laptopo% ./MAKEALL spec_defconfig spec_pdelay_defconfig ##### Building with 'spec_defconfig' /opt/lm32-gcc-4.5.3/bin/lm32-elf-ar: creating libsdbfs.a text data bss dec hex filename 87688 3492 6352 97532 17cfc wrc.elf ##### Building with 'spec_pdelay_defconfig' /opt/lm32-gcc-4.5.3/bin/lm32-elf-ar: creating libsdbfs.a text data bss dec hex filename 93140 3492 6360 102992 19250 wrc.elf What is missing now is the run-time choice between e2e and p2p. Later.... Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Davide Ciminaghi authored
-
- 16 Jun, 2016 2 commits
-
-
Davide Ciminaghi authored
-
Davide Ciminaghi authored
This fixes a bug introduced by f1d048c3 (conf.c: use f_simple_int() for assigning simple integer options): we used ASSIGN_INT_FIELD for assigning values to variables shorter than int, while the destination pointer was set to int *, so neighbouring fields were overwritten. Another commit in a non-merged branch adds a build-time check to avoid repeating this bug, but field names changed, so let's avoid cherry-picking it here at this point. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 16 May, 2016 7 commits
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This commit ensures all architectures do the proper things to work with either end-to-end and peer-to-peer, and all frames use the proper addresses * we avoid ifdef by using HAS_PTP and HAS_E2E * no need to -D config items in Makefile * wrpc now correctly sets ppg->delay_mech at startup * the simulator now correctly sets ppg->delay_mech at startup * bare archs correctly set ppg->delay_mech at startup * bare archs properly use one or the other multicast address * pp_instance_cfg->delay_mech is removed as not yet used Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Cesar Prados authored
the calculation of the link delay and offset to master is moved from the fat wr_servo_update to tree functions which will be called according to the delay mech. In the case of pdelay, the link delay calculated and then the offset. Signed-off-by:
C.Prados <c.prados@gsi.de> Conflicts: include/ppsi/pp-instance.h include/ppsi/ppsi.h proto-ext-whiterabbit/wr-api.h proto-ext-whiterabbit/wr-servo.c
-
Cesar Prados authored
pclock handles/issues the PDelay messages. Signed-off-by:
C.Prados <c.prados@gsi.de>
-
Cesar Prados authored
I will keep the t1..t4 for calculating the peer path delay and these new are used only for synchronization Signed-off-by:
C.Prados <c.prados@gsi.de>
-
Cesar Prados authored
In PDelay mechanism, the Master has to reply to PDelay_Req from pclocks with PDelay_respond and PDelay_follow_up. Add pack/issue functions for this messages Signed-off-by:
C.Prados <c.prados@gsi.de> [WARNING: this commit was changed by Alessandro, adding a missing "pdelay_req_hdr" field in pp_instance, and exporting msg_copy_header that had been turned to static -- this must be fixed]
-
Cesar Prados authored
functions for set/get the mechanism. Signed-off-by:
C.Prados <c.prados@gsi.de>
-
- 06 Jul, 2015 5 commits
-
-
Alessandro Rubini authored
With UDP we have two channels but we talk with the same peers. Moreover, we reply with a general message to an event message, so having two peers was plain wrong. I'm well aware this commit should happen before vlans are introduced, but I don't want to deal with all the conflicts in moving it back. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The vlanhdr is not something I can find in standard include files, so here is a custom definition, called pp_vlanhdr. Adding peer_vid is needed so a master can reply to its own slave, while listening to several vlans. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This step is in preparation for vlan support, where the tx and rx headers have a different length. This commit doesn't build for arch-wrpc, fixed in the next commit Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This "netpath" is a pain, completely needless. The NP(ppi) is overhead in the code and must be removed. It is now turned to an identity function, so external patches won't conflict. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 26 Jun, 2015 1 commit
-
-
Adam Wujek authored
Add counting of tx and rx PTP packets. __recv_and_count and __send_and_log are arch independent functions. Increase WRS_PPSI_SHMEM_VERSION due to add of tx_count and tx_count firlds in pp_instance. Update WRS_PPSI_SHMEM_VERSION to 5 Signed-off-by:
Adam Wujek <adam.wujek@cern.ch>
-
- 05 Feb, 2015 1 commit
-
-
Adam Wujek authored
Part of a process to move wrs-servo internal data into shmem Signed-off-by:
Adam Wujek <adam.wujek@cern.ch>
-
- 05 Dec, 2014 1 commit
-
-
Alessandro Rubini authored
In order to fit all pp_instance items withing WRS shared memory, we need to make them a little smaller. Thus, the tx and rx buffers are now allocated separately. And, while I am at it, I make them smaller, because 128 bytes are more than enough for PTP with extensions (all frames are under 100 bytes). Given we are always showr of memory in wrpc-sw, this is benefical. As a side effect, clean up some out-of-memory exit paths, and fix a use-before-check buglet in arch-unix (no, we never go out of memory, but the check was wrong). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 13 Nov, 2014 1 commit
-
-
Alessandro Rubini authored
This field is not needed, because we issue the response immediately, using the last received header. The copy is not needed, nor the field. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 11 Nov, 2014 1 commit
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 07 Nov, 2014 7 commits
-
-
Alessandro Rubini authored
This paves the way to the addition of a third protocol. Besides the code is slightly smaller (around 50 bytes on all archs). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This reverts commit 9a3e00784afea6ab46510315b9c50cb510175f2d.
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Bitfields are bad, so this turns them into flags and constants. There should be no change at all in behaviour (although the code is a little smaller). The next commit does a change for real. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
I'm going to introduce a "flags" field in pp_instance, so diagnostic flags are better called d_flags. The same applies, for consistency, to the global variable. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Bitfields are a bad practice. And this removes a few bytes in the wrpc builds (no change in other builds). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 22 Sep, 2014 1 commit
-
-
Alessandro Rubini authored
Otherwise, if we have two PTP ports for the same interface, like Ethernet and UDP, we are not able to tell which message is for which. This now works as expected: ./ppsi -C "port eth0; iface eth0; role master; proto raw; diagnostics 111" \ -C "port eth0u; iface eth0; role master; proto udp; diagnostics 111" Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 21 Jul, 2014 1 commit
-
-
Alessandro Rubini authored
This adds frame dropping as a fault-injection mechanism. It activates it for arch-unix in the same commit, because I tested it. Not documented yet. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com>
-
- 18 Jul, 2014 1 commit
-
-
Pietro Fezzardi authored
There is no need to remove outliers and to make a running average on ofm. Indeed we know that ofm = t2 - t1 -mpd. We are already removing outliers and averaging on mpd. So, if after mpd has been "cleaned", ofm still shows outliers or irregularities they are for sure due to t1 and t2. So they are errors coming from the clocks and they have not to be ignored. Instead they must be corrected ASAP, and to do that the software must be able to see them instantly. So no running avg nor outlier removal has to be performed on ofm values.
-