SDP receive addresses map 0.5

Example

{
    "science": {
        "vis0": {
            "function": "visibilities",
            "host": [
                [0, "192.168.0.1"],
                [400, "192.168.0.2"],
                [744, "192.168.0.3"],
                [1144, "192.168.0.4"]
            ],
            "port": [
                [0, 9000, 1],
                [400, 9000, 1],
                [744, 9000, 1],
                [1144, 9000, 1]
            ],
            "mac": [
                [0, "06-00-00-00-00-00"],
                [744, "06-00-00-00-00-01"]
            ],
            "delay_cal": "low-sdp/telstate/rcal0/delay",
            "pointing_cal": "tango://low-sdp/queueconnector/01/pointing_offsets_{dish_id}"
        },
        "pss1": {
            "function": "pulsar search",
            "search_beam_id": 1,
            "host": [
                [0, "192.168.60.0"]
            ],
            "port": [
                [0, 8000]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"],
                [400, "low-sdp/telstate/rcal0/jones1"],
                [744, "low-sdp/telstate/rcal0/jones2"],
                [1144, "low-sdp/telstate/rcal0/jones2"]
            ]
        },
        "pss2": {
            "function": "pulsar search",
            "search_beam_id": 2,
            "host": [
                [0, "192.168.60.1"]
            ],
            "port": [
                [0, 8000]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"],
                [400, "low-sdp/telstate/rcal0/jones1"],
                [744, "low-sdp/telstate/rcal0/jones2"],
                [1144, "low-sdp/telstate/rcal0/jones2"]
            ]
        },
        "pst1": {
            "function": "pulsar timing",
            "timing_beam_id": 1,
            "host": [
                [0, "192.168.60.2"]
            ],
            "port": [
                [0, 8001]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"],
                [400, "low-sdp/telstate/rcal0/jones1"],
                [744, "low-sdp/telstate/rcal0/jones2"],
                [1144, "low-sdp/telstate/rcal0/jones2"]
            ]
        },
        "pst2": {
            "function": "pulsar timing",
            "timing_beam_id": 2,
            "host": [
                [0, "192.168.60.3"]
            ],
            "port": [
                [0, 8002]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"],
                [400, "low-sdp/telstate/rcal0/jones1"],
                [744, "low-sdp/telstate/rcal0/jones2"],
                [1144, "low-sdp/telstate/rcal0/jones2"]
            ]
        }
    },
    "calibration": {
        "vis0": {
            "function": "visibilities",
            "host": [
                [0, "192.168.1.1"]
            ],
            "port": [
                [0, 9000, 1]
            ],
            "delay_cal": "low-sdp/telstate/rcal0/delay",
            "pointing_cal": "tango://low-sdp/queueconnector/01/pointing_offsets_{dish_id}"
        },
        "pss1": {
            "function": "pulsar search",
            "search_beam_id": 1,
            "host": [
                [0, "192.168.60.0"]
            ],
            "port": [
                [0, 8003]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"]
            ]
        },
        "pss2": {
            "function": "pulsar search",
            "search_beam_id": 2,
            "host": [
                [0, "192.168.60.1"]
            ],
            "port": [
                [0, 8002]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"]
            ]
        },
        "pst1": {
            "function": "pulsar timing",
            "timing_beam_id": 1,
            "host": [
                [0, "192.168.60.2"]
            ],
            "port": [
                [0, 8001]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"]
            ]
        },
        "pst2": {
            "function": "pulsar timing",
            "timing_beam_id": 2,
            "host": [
                [0, "192.168.60.3"]
            ],
            "port": [
                [0, 8000]
            ],
            "jones_cal": [
                [0, "low-sdp/telstate/rcal0/jones0"]
            ]
        }
    }
}

Provides information about receive node addresses to use for ingesting measurement data to SDP (such as visibility SPEAD streams).

Receive addresses consists of a map of scan type to a receive address map. This address map must be set once the SDP subarray finishes the transition following AssignResources (i.e. IDLE following the current state of ADR-8). TMC will then check SDP’s subarray receiveAddresses attribute when preparing to configure elements for a certain scan type.

Note that this has been changed to use the more compact channel map format defined in ADR-4. The general idea still applies: A map is given as a list, each entry of the format [start_channel, value]. The first entry specifies the first channel ID the map applies to. So in the example, the host for channels 0-399 is “192.168.0.1”, while the host for channels 400-799 is “192.168.0.2” and so forth.

A minor extension applies to the port map, where every map entry is given as [start_channel, start_value, increment]. The true value for a channel is given from the applicable map entry by:

value = start_value + (channel - start_channel) * increment

So in the example, channels 0-399 should be sent to host “192.168.0.1” at ports 9000-9399, and channels 400-799 to host “192.168.0.2” at ports 9000-9399. If we had said "port": [[0, 9000, 0] all packets would be sent to the same port. Equally "port": [[0, 9000, 2] would indicate spacing the ports out by steps of 2.

Unused channel IDs should be ignored. This especially applies to unused gaps and channel ID strides possibly resulting from averaging at CBF. This means that with an averaging degree of 2 (see channelAveragingMap in ADR-4), only every second channel ID would be used in the example above.

https://schema.skao.int/ska-sdp-recvaddrs/0.5

type

object

properties

  • interface

type

string

  • (any str)

Beams 0.5

Set of beams

type

object

properties

  • (any str)

Beam

Beam_receive_addresses_0.5

additionalProperties

True

additionalProperties

True

Beam_receive_addresses_0.5

Receive addresses associated with a certain beam

type

object

properties

  • host

Destination host names (as channel map)

Note that these are not currently guaranteed to be IP addresses, so a DNS resolution might be required.

type

array

items

  • port

Destination ports (as channel map)

type

array

items

  • mac

Destination MAC addresses (as channel map)

Likely not going to be used, downstream systems should use ARP to determine the MAC address using host instead. See ADR-36

type

array

items

  • function

Type of beam configured. Beam identity is then given by the appropriate beam_id field.

type

string

  • visibility_beam_id

Identifies visibility beam

Might get omitted for SKA Mid, as it is assumed to have only one visibility beam.

type

integer

  • search_beam_id

Identifies pulsar search beam

type

integer

  • timing_beam_id

Identifies pulsar timing beam

type

integer

  • vlbi_beam_id

Identifies very long baseline interferometry beam

type

integer

  • search_window_id

Identifies search window for transient data capture

type

integer

  • jones_cal

Kafka topics serving real-time calibration Jones matrices for CBF

type

array

items

  • pointing_cal

Tango FQDNs serving pointing calibration offsets for TMC

type

string

  • delay_cal

Tango FQDNs serving gain/ delay calibration solutions for TMC

type

string

additionalProperties

True