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
2.5.0
Support for 16-bit floating point visibilities via “float_precision” keyword in subarray configuration for standard-visibilities and zooms. Note that the internal allocator/processor was extended, so a (new) compatible processor version is needed (v0.24.0+)
Jones age in subarray computed using SKA epoch as time reference instead of UNIX time
2.4.2
Reinstate change events for
obsState(accidentally dropped in v2.3.0)
2.4.1
Eliminate one of the Subarray variables,
_subscribed_sn, (duplication) tracking Alveos assigned to a Subarray; was causing exceptionIn Subarray configuration, increase maximum
beam_idfrom 16 to 48Add
Subarray.processorFpgaTemperatureMeanTango attribute indicating the average temperature of Alveos in the subarray.Add
Subarray.processorFpgaPowerMeanTango attribute indicating the average power of Alveos in the subarray.address
Subarrayexception when subarray is deallocatedaddress Tango TypeError in
LowCbfSubarraywherepstJonesAgeandpstJonesAppliedPercentwere throwing exception; it either didn’t like the float value or the value of -1 wich was less thanmin_value=0set in the attribute definition; both attributes to returnAttrQuality.ATTR_INVALIDif underlying Processor conditions are invalidchange Tango attribute
LowCbfSubarray.assigned_processorstype to list of strings (Alveo serial numbers) - as it was beforefirst initialisation of
LowCbfSubarray._assigned_proc_detailsshould be emptydict({}), not alist([])re-implement TOP-2638 to avoid introduced bug preventing FPGA sharing when default firmware was present in configuration
restructure
LowCbfControllerto getcbfPacketLossRateandcbfPacketCorruptionRateworkingfix SKB-1172 subarray abort should exit obsstate.CONFIGURING without waiting for timeout on processors ready
2.4.0
Add better handling for Tango events that arrive right after attribute change subscription call
Add
Subarray.pstJonesAppliedPercentTango attribute indicating what percentage of PST Jones applied.Add
Subarray.pssJonesAppliedPercentTango attribute indicating what percentage of PSS Jones applied (Not yet ready).Add
Subarray.pstJonesAgeTango attribute indicating the age of applied PST Jones matrices.Add
Subarray.pssJonesAgeTango attribute indicating the age of applied PSS Jones matrices (Not yet ready).ADR111: Subarray goes to ready immediately after configure command without waiting for processors
sort out issues with
{pss,pst,sdp}HostResolvedPercentAdd
Subarray.spsRmsInRangeproportion of SPS signal within CBF acceptable rangeAdd
Subarray.spsFlagsPercentMeanpercentage of SPS signal flaggedAdd
Subarray.RmsMinValuenew property to configure the minimum value for spsRmsInRange calculationAdd
Subarray.RmsMaxValuenew property to configure the maximum value forspsRmsInRange calculationFix bug in handling events behind Ethernet locked percentage arriving before data structures existed (by using a
defaultdict).Add
Controller.cbfPacketLossRateTango attribute indicating what percentage of packet lost/late in the last observing interval. The interval is a property of the controllerAdd
Controller.cbfPacketCorruptionRateTango attribute indicating what percentage of packet corrupted in the last observing interval. The interval is a property of the controllerAdd
Subarray.stationBeamDelayReadyPercentTango attribute indicating that station beam polynomial in Alveo and polynomial time matches SPS timeAdd
Subarray.pssBeamDelayReadyPercentTango attribute indicating that PSS beam polynomial in Alveo and polynomial time matches SPS timeAdd
Subarray.pstBeamDelayReadyPercentTango attribute indicating that PST beam polynomial in Alveo and polynomial time matches SPS timeADR111: subarray defaults to not waiting for processors, but now possible to wait by setting environment variable
PROCESSOR_WAIT_QTYto “all”Use a default “<firmware_type>_default” value for
SubarrayDataProduct.firmware_name(improves log messages).Add Tango properties to control Tango timeouts used for each DeviceProxy, configurable via Helm chart variables:
cbf.allocator_timeout_msfor connections to Allocator devicescbf.connector_timeout_msfor connections to Connector devicescbf.processor_timeout_msfor connections to Processor devices
2.3.1
bugfix SKB-1250 (controller not responding)
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:
spsLinkUpPercentin the controller representing the percentage of SPS links up.sdpHostsResolvedPercentin the subarray representing the percentage of PSS hosts resolved.pstHostsResolvedPercentin the subarray representing the percentage of PST hosts resolved.pssHostsResolvedPercentin the subarray representing the percentage of PSS hosts resolved.
Add
Subarray.processorsReadyPercentTango attribute indicating what percentage of processors are ready for subarray scan.Add
Subarray.processorEthernetLockedPercentTango attribute indicating what percentage of Ethernet ports are locked and ready for subarray scan.
2.2.7
Re-fix SKB-1246, adding routes for std-vis when requested with zooms
2.2.6
Fix subarray configure schema checks
2.2.5
Bugfix SKB-1243 invalid station/substation numbers
Bugfix SKB-1246 automatic routes for zooms
2.2.4
Bugfix SKB-1248 (delay-poly-sim crash with multiple substations)
2.2.3
Bugfix SKB-1254 SKB-1256 (zooms)
Discard duplicate station-IDs in subarray configuration
delay-poly-simulator is more robust when re-initialised
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.UNKNOWNwhen in OFFLINE, NOT_FITTED and RESERVEDadminModerelevant 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
delaysValidTango 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-baseandska-tango-utilchart 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
Jira PERENTIE-3117 separate thread to process Tango events in Subarray device
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.writewithdef write_attrName
Allow Delay Device reconfiguration without emptying Subarray first
0.13.0
LowCbfController._unavaliable_alveosdidn’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_alveoupdates that contain empty register dictionaries (e.g. PST when only one pipeline configured)Prevent unnecessary Allocator & Connector attribute subscription if subscribed already
healthStateupdated only whenadminModeis ONLINE or ENGINEERING (see alsoENGINEERING_MODE_IGNORE_HEALTH)add
ENGINEERING_MODE_IGNORE_HEALTHenvironment variable; when set to ‘True’ the health state won’t propagate to Low CBF ControllerAdd
assigned_processorsTango attribute toLowCbfSubarraydevice
0.12.0
Controller device exposes two new Tango attributes:
all_alveosandavailable_alveos; updated Taranta dashboardLow CBF Controller - Status.wjRemove FSPs from allocator. Deprecate FSPs in subarray configure command
Update Taranta dashboards that allow setting subarray and processor
adminModeto 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_uriHelm variable, mapped to newDelayDeviceTango propertyTelmodelSourceURIDelay-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_nsattributeUpdate 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
delaysValidattribute to indicate/summarise whether all delay polynomials in this subarray are valid; used by a Grafana dashboardBreaking 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-procandska-low-cbf-connsub-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-testCI job with a call to switch’sLoadPorts()method which reportedly enables associated Alveo cardSwitch to Xilinx platform/shell version 3 (XDMA 3) -
helmcharts 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.tomlas source of software version numberInclude
ska-low-cbf-connandska-low-cbf-fpgasub-charts in our Helm chart (currently disabled by ourtest-parentchart for running local/CI tests)Add
charts/psi-low.values.yamlfor enabling hardware in Low PSIAdd
VALUES_FILEvariable 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
RequestAllocationreturn 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
Move FPGA-related code to ska-low-cbf-proc