1. 22 Sep, 2014 1 commit
    • Alessandro Rubini's avatar
      general: rename freq_ppm to freq_ppb (and fix arch-bare) · aa29b554
      Alessandro Rubini authored
      All adjustments are passed as part-per-billion, so after getting mad
      in understanding what freq_ppm was, I renamed all of them to freq_ppb.
      While making changes I verified this is what it is. Thus I fixed the comment
      in ppsi.h (that was wrong by a factor of 64) and the adjustment code in
      bare-time.c that made the same error (I admit I don't test arch-bare often).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
  2. 18 Jul, 2014 1 commit
    • Pietro Fezzardi's avatar
      arch-sim: new simulator diagnostics and config · 717a8f5e
      Pietro Fezzardi authored
      For testing purposes we can't just read the ofm value
      printed out by the slave, because that's only the offset
      perceived by the slave and can be wrong. We need instead to
      print out the offset obtained subtracting the real time of
      the master from the real time of the slave.
      To print out the ofm we use the "ext" flag of pp_diag.
      The ofm is printed only when the slave gets a
      DelayResp message from the master.
      A new tool to strip ofm out of simulator log is provided
      now the max number of simulated ptp iterations can be configured.
      previously one could set the number of seconds to simulate.
      this is not possible anymore.
  3. 21 Mar, 2014 13 commits
    • Pietro Fezzardi's avatar
    • Pietro Fezzardi's avatar
      arch-sim: randomized jitter in transmission · 7093ef18
      Pietro Fezzardi authored
      the send function checks if the sent packet is
      a Follow_Up. In this case it adds the jitter to the delay
      of the previous Sync, to avoid the the Follow_Up to be
      received before its Sync.
    • Pietro Fezzardi's avatar
      arch-sim: added config option "sim_duration_sec" · c70c124a
      Pietro Fezzardi authored
      It sets how much time the simulator should simulate. The default value
      is set to 3600 so that running the simulator without specifying the
      sim_duration_sec option will result in a simulation representing an hour
      of real time
    • Pietro Fezzardi's avatar
      arch-sim: refactorized net_ops · b07673a4
      Pietro Fezzardi authored
    • Pietro Fezzardi's avatar
      arch-sim: network operations and main loop · dcddecbc
      Pietro Fezzardi authored
      New struct sim_pending_pkt is introduced to hold information on pakets still in
      fly. An array of such structures is stored in ppg->arch_data. This array is
      written by every send. The insertion is designed to sort automatically the
      packets so that the first element of the array after an insertion is always
      the first packet that will be received. Function sim_fast_forward_ns is changed
      to update also the reception times into this array, so that when you fast
      forward, also the pending packets are fast_forwarded.
      The main loop works in this way:
      	- if there are packets to be received check when
      	- if the first packet to be received is coming before the state machine
      	  timestamps expire, then fast forward till it's time to receive it.
      	  Then receive it and call the state machine of the receiver
      	- if there are no packet pending or the first pending packet is coming
      	  after a timeout, then fast forward till the timeout expires and
      	  run all the state machines
    • Pietro Fezzardi's avatar
      time-sim: added sim_fast_forward_ns · 02bf7e83
      Pietro Fezzardi authored
      It will be used to jump ahead in time when no machine is executing.
    • Pietro Fezzardi's avatar
      arch-sim: added struct pp_sim_net_delay · 8ba0d746
      Pietro Fezzardi authored
      This structure represents all the delays on the outgoing link of
      the pp_instance. It will be used by the network operations
    • Pietro Fezzardi's avatar
      arch-sim: new inline functions to select instances · 54eb55be
      Pietro Fezzardi authored
      pp_sim_get_master(ppg) always returns a pointer to master pp_instance.
      pp_sim_get_slave(ppg) always returns a pointer to slave pp_instance.
      pp_sim_is_master(ppi) and pp_sim_is_slave(ppi) are test for obvious
      conditions. these last two can be used only if ppi->glbs != NULL,
      so only if a ppi has been fully initialized.
    • Pietro Fezzardi's avatar
    • Pietro Fezzardi's avatar
      arch-sim: fields added to struct sim_ppi_arch_data · 16b4b4e3
      Pietro Fezzardi authored
      These are namely Data Sets, runtime options, servo and TimeProperties.
      We need them in every instance because we have two ppi (master and slave)
      acting like two different machines, so they need different copies of
      these variables. We just put the per-instance stuff in the arch_data.
      Then we'll change the pointers in the ppg directly in the net operations,
      according to our needs.
    • Pietro Fezzardi's avatar
      time-sim: added time operations · aea3aa29
      Pietro Fezzardi authored
      They're designed to be used for both the instances, master and slave.
      This is possible because the new data structure pp_sim_time_instance
      holding all the information about the time of a single instance is
      placed inside the ppi arch_data
    • Pietro Fezzardi's avatar
      arch-sim: new prototype for global arch_data · 44e73697
      Pietro Fezzardi authored
      For now it's the same as arch-unix but it will change
      when we will add more configuration parameters for the
      simulator. So it's better to change its name, from the
    • Pietro Fezzardi's avatar
      arch-sim: initial commit with directory tree · 8d898988
      Pietro Fezzardi authored
      Kconfig is updated with new arch.
      It compiles but it's actually doing nothing