Sender

Configuration options

The following configuration categories/names are supported:

  • reader: these are configuration options applied when reading the input Measurement Set.
  • start_chan: the first channel for which data is read. Channels before this one are skipped. If start_chan is bigger than the actual number of channels in the input MS an error is raised.
  • num_chan: number of channels for which data is read. If num_chan + start_chan are bigger than the actual number of channels in the input MS then num_chan is adjusted.
  • num_timestamps: number of timestamps to be sent, defaults to 0 which is all of them.
  • num_repeats: defaults to 1 - number of times the number of timestamps are sent. This will send the same data over and over which is less realistic but imposes less stress on the file-system. TIME values increment with each repetition.
  • transmission: these are options that apply to the transmission method.
  • scan_id: the scan_id to use for all payloads in transmission.
  • method: the transmission method to use, defaults to spead2.
  • target_host: the host where data will be sent to.
  • target_port_start: the first port where data will be sent to.
  • endpoints: the endpoints where data will be sent to (see below). If present, target_host and target_port_start are ignored.
  • channels_per_stream: number of channels for which data will be sent in a single stream.
  • max_packet_size: the maximum size of packets to build, used by spead2.
  • buffer_size: the socket buffer size, used by spead2.
  • rate: the maximum send data rate, in bytes/s. Used by spead2, defaults to 1 GB/s.
  • time_interval:: the period of time to wait between sending data for successive data dumps. Positive values are used as-is. A value of 0 means to use the time differences in the TIME column of the Measurement Set. Negative values mean to don’t wait, sending data as fast as possible.
  • transport_protocol: the network transport protocol used by spead2. Supported values are udp and tcp, defaults to udp.

Endpoint specification

There are two ways to specify the target endpoints where data will be sent to. Note that in both cases the number of streams that are set up equals number_channels / transmission.channels_per_stream, where number_channels depends on reader.num_chan and the input Measurement Set.

  • Using transmission.target_host and transmission.target_port. When using these options then all streams will be sent to target_host, and successive streams will be sent to successive ports starting at target_port.
  • Using transmission.endpoints. This option is a single string of comma-separated endpoint specifications. Each endpoint takes the form of host:ports, where ports is either a single number, or a range like start-end. For example, 127.0.0.1:8000,127.0.0.1:8001 and 127.0.0.1:8000-8001 are equivalent.

If the list of endpoints to use is less than the number of streams an error is raised. If it’s larger, then the first endpoints are used, and the rest are silently ignored.