Version History

This list is in reverse-chronological order (the latest change is at the top). Different heading levels are used for Major, Minor, and Patch releases - in Markdown syntax, that’s # for Major, ## for Minor, and ### for Patch.

Unreleased

  • Add better handling for Tango events that arrive right after attribute change subscription call

  • Add Subarray.pstJonesAppliedPercent Tango attribute indicating what percentage of PST Jones applied (Not yet ready).

  • Add Subarray.pssJonesAppliedPercent Tango attribute indicating what percentage of PSS Jones applied (Not yet ready).

  • Add Subarray.pstJonesAge Tango attribute indicating the age of applied PST Jones matrices (Not yet ready).

  • Add Subarray.pssJonesAge Tango attribute indicating the age of applied PSS Jones matrices (Not yet ready).

2.3.0

  • Add attributes reporting SPS statistics (RMS levels, flagging percentage). Requires latest processor software, otherwise will crash trying to access attributes only available in the latest processor. Processor software needed will be version 0.22.0 when it’s released.

  • Increase Tango timeout from 3 to 10 seconds for Subarray’s Processor proxies

  • ADR-111 compliance with following quality attributes:

    • spsLinkUpPercent in the controller representing the percentage of SPS links up.

    • sdpHostsResolvedPercent in the subarray representing the percentage of PSS hosts resolved.

    • pstHostsResolvedPercent in the subarray representing the percentage of PST hosts resolved.

    • sdpHostsResolvedPercent in the subarray representing the percentage of SDP hosts resolved.

  • Add Subarray.processorsReadyPercent Tango attribute indicating what percentage of processors are ready for subarray scan.

  • Add Subarray.processorEthernetLockedPercent Tango attribute indicating what percentage of Ethernet ports are locked and ready for subarray scan.

2.2.2

  • For LowCbfSubarray and LowCbfController enable health reporting when in ENGINEERING mode

    • use Connector Tango DB when getting DeviceProxy for Connector device

    • allign LowCbfController health calculation with that of Processor and Subarray

    • report HealthState.UNKNOWN when in OFFLINE, NOT_FITTED and RESERVED adminMode

    • relevant Jira issues SKB-1037 PERENTIE-3193

2.2.1

  • fix skb-1082 (allocator crash with PST+VIS config and no firmware)

  • SKB-1085 (also Jira PERENTIE-3191) flag delaysValid Tango attribute value as UNUSED (value of 2) once the subarray is deconfigured

2.2.0

  • New subarray-config item “sps_rfi_threshold_db” supported

  • Fix SKB-1049 in which PSS routing does not function as expected

2.1.0

  • New Realtime calibration emulator (used for perentie tests of PST Jones updates)

2.0.0

  • Change Allocator’s internal_alveo attribute format. The “fw” value is now a dictionary with “personality” and “url” keys.

1.0.4

  • Allocate PSS in blocks of 4 stations because FPGA works in 4-station blocks (SKB-817)

  • Update ska-tango-base and ska-tango-util chart dependencies to ~0.4.23

1.0.3

  • remove allocator.stationbeams attr and make subarray.stationbeams function (skb-940)

  • remove some restrictions on multiple host destinations for correlator

1.0.2

1.0.1

  • Fix SKB-964 PST routes not configured for some beam frequencies

1.0.0

  • Container image based on ska-tango-images-tango-python:0.3.0 (was previously ska-tango-images-pytango-runtime:9.5.0)

  • Update to Tango v10

  • allocator is now updating 2 new attributes:

    • switch_routes, containing the list of IP routing

    • ip_to_resolve, containing the list of IP address to resolve with ARP

  • Relax SPS channel restriction for station beams. Now accepts 0–511, with a warning message if outside the expected range of 64–447.

  • Relax frequency restriction for coarse zooms. Now accepts 0 - top of SPS channel 511, with a warning if outside SPS channel 64–447.

  • Deprecation notice: Allocator attribute sdp_routes

0.14.0

  • BREAKING change: Support for Zoom correlation by extending Allocator and Subarray devices. This change also extends the Allocator-Processor interface with extra data related to zoom correlation. Requires updated Processor to read the extra info: old processor will log a crash if used.

  • fix Allocator crash in no-hardware mode

0.13.3

  • Fix alveo auto-registration crash when using no-processor-hardware mode for SW testing

0.13.2

  • Flag allocator.internalAlveoLimit attribute as READ_WRITE

0.13.1

  • Reformat Tango attributes which Sphinx documetation generator finds hard to parse

    • replace attr_name = attribute(...) with @attribute(...)

    • replace @attribute.write with def write_attrName

  • Allow Delay Device reconfiguration without emptying Subarray first

0.13.0

  • LowCbfController._unavaliable_alveos didn’t corectly update once Alveos were made available; condition variable lock was held too long which lead to deadlock when multiple Alveos got registered with Allocator in a quick succession.

  • Suppress “missing subarray id” log messages when processing internal_alveo updates that contain empty register dictionaries (e.g. PST when only one pipeline configured)

  • Prevent unnecessary Allocator & Connector attribute subscription if subscribed already

  • healthState updated only when adminMode is ONLINE or ENGINEERING (see also ENGINEERING_MODE_IGNORE_HEALTH)

  • add ENGINEERING_MODE_IGNORE_HEALTH environment variable; when set to ‘True’ the health state won’t propagate to Low CBF Controller

  • Add assigned_processors Tango attribute to LowCbfSubarray device

0.12.0

  • Controller device exposes two new Tango attributes: all_alveos and available_alveos; updated Taranta dashboard Low CBF Controller - Status.wj

  • Remove FSPs from allocator. Deprecate FSPs in subarray configure command

  • Update Taranta dashboards that allow setting subarray and processor adminMode to ENGINEERING.

  • Add tool to calculate Alveo usage by any proposed subarray configuration (see src/allocator/extimation_tool.py)

0.11.1

  • Add cbf.telmodel_source_uri Helm variable, mapped to new DelayDevice Tango property TelmodelSourceURI

  • Delay-poly simulator changed to publish station-beam delays last. This means PSS/PST test output will begin with both validity flags “valid” for large numbers of stations. Note: For large numbers of stations, katpoint takes significant time to calculate delays. Expect delay-poly attributes to update slowly.

  • ObsState behaviour no longer rejects subarray.Configure() commands when a subarray is already configured (in ObsState.READY)

  • Apply known FPGA allocation limits by default.

  • Add new FPGA limit for PST number of channels (to work around PST FPGA 2k entry first-frequency table with 16 entries used per channel 2k/16 = 128 SPS chans max)

0.11.0

  • Avoid Allocator crash when using no Processors, by using a dummy tango device URI when auto-registering processors

  • Make Allocator per-personality limits adjustable via tango attribute

  • DelayDevice: Add ypol_offset_ns attribute

  • Update to pytango 9.5.0

  • DelayDevice: Polynomial updates enabled/disabled by ‘enable_poly_updates’ attribute

  • DelayDevice: Polynomial validity interval configurable by ‘validity_seconds’ attribute

  • Increase delay emulator CPU & memory limits

0.10.0

  • add support for PSS personality in the Allocator and Subarray devices

  • fix SKB-316: Make subarray configuration wait for processor firmware download

  • fix SKB-442: Sort stations in subarray configuration by station/substation ID as per CBF/SDP ICD

0.9.0

  • new subarray NO_HEALTH_ROLLUP environment variable stops subarray from including external Tango devices in its health roll-up (switches and processors)

  • new allocator ALLOW_AUTO_REGISTER_PROCESSORS environment variable - bugfix for undesired auto-registration with large depolyments

  • delay-polynomial simulator changed to produce PST beam polynomials that are differences from the polynomials for the corresponding station beam

  • delay-polynomial simulator changed to have initial empty scan_id string (matching CspLeafNode change), allowing processor to decide when to discard

  • properties related to subscriptions to the connector are configurable via helm chart

  • fix PERENTIE-2422 allocator-resubscribe-to-connector-ARP bug that occurs if connector is deleted/respawned

  • update delay polynomial validity Grafana panel

0.8.1

  • fix SKB-317 subarray healthState race condition

0.8.0

  • Three new Delay polynomial generator commands for PST delay generation: PstOffsetRaDec, PstOffsetAzEl, PstOffsetDelay

  • add delaysValid attribute to indicate/summarise whether all delay polynomials in this subarray are valid; used by a Grafana dashboard

  • Breaking Change: Delay polynomial generator updated to produce delay polynomials using the new Telmodel CSP_LOW_DELAYMODEL_1_0 format (https://gitlab.com/ska-telescope/ska-telmodel/-/blob/master/src/ska_telmodel/csp/examples.py?ref_type=heads#L1878-1914)

0.7.0

  • Separate Low CBF Helm charts - downstream users will need to add ska-low-cbf-proc and ska-low-cbf-conn sub-charts as required.

  • Added P4 switch interaction to allow for ARP of SDP hosts

  • Added calculation of P4 switch routes needed to get visibilities to SDP hosts

  • Internal interface to Correlator/Processor changed (not backward compatible)

  • Correlator allocation algorithm reworked to use both available Matrix Correlators in Correlator FPGA

  • New and updated tests to verify Correlator allocation with 2 Matrix Correlators

  • Propagate healthState attribute change: processor -> subarray -> controller

  • Fix allocator confusion of station beams when multiple station beams present

  • Delay polynomial epoch changed from 1970 to SKA-epoch (midnight, 1 January 2000 TAI)

  • Fix LowCbfController where opMode was DISABLED regardless of ONLINE/OFFLINE adminMode (Jira PERENTIE-2192)

0.6.1

  • bugfixes

    • fixes allocator-proxy-failure in subarray device (now uses mccsdeviceproxy)

    • fixes allocator-crash-when-no-fsps-available (now logs and returns error message)

  • updated ska-tango-base to v0.18.1

  • updated ska-* charts to latest versions for which events work (at 2023-06-09)

  • Added skeleton delay-polynomial simulator device (to enable processor development that uses delay-polynomials)

0.6.0

  • Added processor registration command and “fsps” attribute listing alveos of registered processors

  • Updated subarray AssignResources command:

    • FSP, P4, sharing-mode arguments removed

    • Now takes an empty JSON string argument

  • Updated subarray ConfigureScan command:

    • Now includes FSP selection and FSP firmware selection in ConfigureScan arguments

    • SDP destination address format updated to match Telmodel

    • PST destination address format updated to match PST “Channel Blocks” given to LMC

  • Fix for Abort-from-scanning-obsstate bug where it was impossible to scan again afterwards

  • Add psi-low-test CI job, which uses real harwdare in the Low PSI (currently only a CNIC-CNIC via P4/Connector test is performed)

  • Amend psi-low-test CI job with a call to switch’s LoadPorts() method which reportedly enables associated Alveo card

  • Switch to Xilinx platform/shell version 3 (XDMA 3) - helm charts and dependant packages (processor)

  • Use the latest Taranta versions 1.3.8/1.3.6 (Taranta and TangoGQL respectively).

  • Pin the CI runner version to 9.3.32 until PyTango upgrade to 9.3.6

0.5.7

  • Use pyproject.toml as source of software version number

  • Include ska-low-cbf-conn and ska-low-cbf-fpga sub-charts in our Helm chart (currently disabled by our test-parent chart for running local/CI tests)

  • Add charts/psi-low.values.yaml for enabling hardware in Low PSI

  • Add VALUES_FILE variable to Makefile

0.5.6

  • Allow Subarray On, Off, Standby commands to complete (response is “rejected”, except On which is handled by base classes)

  • Background work towards calculating Connector routing table entries & Processor virtual channel tables as Subarrays are configured

0.5.5

  • Implement AssignResources command to work with FSP & P4 resources in Low.CBF

  • Stubbed implementation of ConfigureScan command

0.5.4

  • Restructure src directory

  • Convert from setup.py to pyproject.toml

  • Replace allocation algorithm with allocator/resources.py (”resource tables”)

  • Update to ska-tango-base v0.13.2

  • Various edits to improve lint score

0.5.3

  • Subarray: Update attribute names used on Processor device

  • Allocation Algorithm

    • calculate routes from LFAA to FPGAs and from FPGAs to PST

    • calculate virtual channel tables

0.5.2

  • Allocation Algorithm can report allocated FPGAs for a subarray

  • Allocator device RequestAllocation command return value is derived from allocation (Processor devices only)

    • A very rough implementation, needs work on mapping ID to FQDN

0.5.1

  • Add tests for Allocator device

  • test-parent chart: add ska-low-cbf-proc chart, for integration tests

0.5.0

  • Allocator TANGO device created

    • RequestAllocation return value is hard-coded

  • Subarray passes on information from resource assignment requests to Allocator, expects to receive details of assigned Processor devices in response

0.4.0

  • Subarray can assign (hard-coded) Processor resource for 1 PST beam and turn on PSR test packet generation

0.3.4