Players obtain all their configuration information via the DIBAS configuration file dibas.conf.
Players look for dibas.conf in the directory $DIBAS_DIR/etc/config
dibas.conf is organized in sections. The sections are:
Any value that is global to DIBAS goes in this section
Example:
[DEFAULTS]
telescope = SHAO
who_is_master = BANKA
player_port = 6667
This section contains all the MAC addresses of the HPC computer 10Gb/s ethernet interfaces. It is important that these addresses be kept current with the actual hardware. Failure to do so will result in lost packets!
Example:
[HPCMACS]
hpc1 = 0x0002C9EBC940
hpc2 = 0x0002C9EBC900
hpc3 = 0x0002C9EBC910
# ... etc.
The dealer looks in this section to find out which players are available:
[DEALER]
players = BANKA, BANKB, BANKC, BANKD, BANKE, BANKF, BANKG, BANKH
The remaining sections consist of two categories of sections:
- BANK (i.e. [BANKA], [BANKB]
- MODE (i.e. [MODE1], [CODD_MODE_64] etc.)
This category of section contails all the hardware information needed by one DIBAS bank, which consists of an HPC computer and a ROACH. Information in these sections is not specific to any mode, but to the physical configuration of the bank. This, for example, is the configuration of Bank A:
[BANKA]
# HPC / Player host & port
hpchost = hpc1
player_port = 6667
# ROACH Control:
has_roach = true
katcp_ip = dibasr2-1
katcp_port = 7147
# Data flow
data_source_host = dibasr2-1-10-0
data_source_port = 60000
data_destination_host = hpc1-10
data_destination_port = 60000
# Synthesizer:
synth = katcp
synth_port = /dev/ttyS1
synth_ref = external
synth_ref_freq = 10000000
synth_vco_range = 2200, 4400
synth_rf_level = 5
synth_options = 0,0,1,0
Keys:
- hpchost:
- The HPC that will host this bank’s player
- player_port:
- The TCP port that the player will use. This is specific to this bank. If no bank information is provided to the player, the player will use the player_port in the DEFAULTS section.
- has_roach:
- A boolean flag. Some Players have roaches, some don’t. Set to ‘false’, ‘False’, ‘FALSE’, or 0 if this player does not have a roach.
- katcp_ip:
- The 1Gb/s hostname of the roach. Used by katcp to control the roach
- katcp_port:
- The 1Gb/s TCP port used by the roach for control. Used by katcp to control the roach.
- data_source_host:
- The hostname for the 10Gb/s interface on the fpga for INCO and Spectral Line modes
- data_source_port:
- The TCP port used by the data source host.
- data_destination_host:
- The hostname for the HPC 10Gb/s interface
- data_destination_port:
- The 10Gb/s TCP port used by the HPC.
- synth:
- Location of the Valon serial control line: set to local if the Valon is connected to the HPC serial port; set to katcp if the Valon is connected to the ROACH. (DIBAS configuration is katcp)
- synth_port:
- The serial port used by HPC or ROACH to control the Valon (i.e. /dev/ttyS1)
- synth_ref:
- Flag, internal or external. Determines whether the Valon uses internal or external frequency reference.
- synth_ref_freq:
- The frequency of the reference frequency source
- synth_vco_range:
- (see Valon documentation)
- synth_rf_level:
- The Valon output power level, in dBm. Must be one of 5, 2, -1, -4.
- synth_options:
- (see Valon documentation)
Many of these keys are specific to controlling a roach, and are therefore not needed by Players who do not have a roach. An example Bank section for such a player looks like this:
[BANKF]
# HPC / Player host & port
hpchost = hpc6
player_port = 6667
has_roach = false
# Data flow:
data_source_port = 60000
data_destination_host = hpc6-10
data_destination_port = 60000
Any other keys may be ommitted for these Players; alternatively the key may be included, but with a value of ‘N/A’. It is recommended for clarity that only the above keys be included for these Players.
The various DIBAS modes are defined in the MODE sections. These sections are characterized by having the string ‘MODE’ embedded somewhere in the section header, i.e. ‘CODD_MODE_64’, ‘MODE1’, etc.
There are currently 3 major mode categories:
- Spectral Line (MODE1, MODE2, etc.)
- Incoherent Guppi modes (INCO_MODE_XXX where XXX is the number of channels used by that mode);
- Coherent Guppi modes (CODD_MODE_XXX where XXX is the number of channels used by that mode).
Unlike the bank modes there are some significant differences between the modes. The example dibas.conf file included in this repository is extensively annotated and may be consulted for the structure of each mode.