Dish kValue and GPM Validation and Health Propagation
Overview
Each dish reports configuration-related parameters (such as kValue and GPM version) to TMC. TMC also maintains the last successfully applied configuration.
To ensure the system is operating with consistent and expected configuration:
TMC detects mismatches between the kValue and GPM version reported by each dish and what TMC considers as last applied.
Based on the validation outcome, TMC derives and aggregates health states at multiple levels.
Mismatched conditions are treated as alarms so that operators are promptly informed.
What is being validated
For each dish, two independent validations are performed:
kValue validation checks whether the kValue reported by the dish matches the value last applied by TMC.
GPM validation checks whether the GPM version reported by the dish matches the version last applied by TMC.
A validation result can be:
ResultCode.OKthe reported value matches TMC expected value.ResultCode.FAILEDa mismatch is detected.
Where validations are performed
Validations are performed by the Dish Leaf Node.
The Dish Leaf Node updates its own health state based on the validation results.
These health states are then propagated and aggregated to higher levels:
Subarray Health State (only for dishes allocated to that subarray)
Telescope Health State (across all dishes contributing to the telescope)
Health state aggregation logic
The Dish Leaf Node derives its health state solely based on its own validation results:
If both kValue and GPM validations are OK, the dish health is HealthState.OK.
If exactly one validation fails, the dish health is HealthState.DEGRADED.
If multiple validations fail, the dish health is HealthState.FAILED.
This logic applies uniformly to any number of dishes.
Subarray and telescope health states are derived by aggregating the health states of all contributing dishes.
Note
Subarray health aggregation
Only dishes currently allocated to a given subarray contribute to that subarray’s health state.
Dishes that are not allocated are excluded from subarray health calculations.
The subarray health state is derived by aggregating the health states of all allocated dishes:
All dishes OK → HealthState.OK
At least one DEGRADED and none FAILED → HealthState.DEGRADED
All FAILED → HealthState.FAILED
Validation outcomes and resulting health states
The table below illustrates typical validation scenarios using symbolic dish sets (D1…Dn).
No |
Dish |
kValue Validation |
GPM Validation |
Dish Leaf Node Health |
Subarray Health State |
Telescope Health State |
|---|---|---|---|---|---|---|
1 |
All dishes (D1…Dn) |
ResultCode.OK ResultCode.OK |
ResultCode.OK ResultCode.OK |
HealthState.OK HealthState.OK |
HealthState.OK |
HealthState.OK |
2 |
D1 affected D2…Dn |
ResultCode.OK ResultCode.OK |
ResultCode.FAILED ResultCode.OK |
HealthState.DEGRADED HealthState.OK |
HealthState.DEGRADED |
HealthState.DEGRADED |
3 |
D1 affected D2…Dn |
ResultCode.FAILED ResultCode.OK |
ResultCode.OK ResultCode.OK |
HealthState.FAILED HealthState.OK |
HealthState.DEGRADED |
HealthState.DEGRADED |
4 |
D1 affected D2…Dn |
ResultCode.FAILED ResultCode.FAILED |
ResultCode.OK ResultCode.OK |
HealthState.FAILED HealthState.FAILED |
HealthState.FAILED |
HealthState.FAILED |
5 |
All dishes (D1…Dn) |
ResultCode.OK ResultCode.OK |
ResultCode.FAILED ResultCode.FAILED |
HealthState.DEGRADED HealthState.DEGRADED |
HealthState.FAILED |
HealthState.DEGRADED |
Alarm behaviour
To ensure configuration mismatches are visible to operators, explicit alarm rules are configured at the Dish Leaf Node level :
The following conditions are evaluated and raised as alarms:
- kValue validation alarm
An alarm is raised when the kValue reported by a dish does not match the last successfully applied kValue maintained by TMC (kValue validation result = ResultCode.FAILED)
- GPM validation alarm
An alarm is raised when the GPM version reported by a dish does not match the last successfully applied GPM version maintained by TMC (GPM validation result = ResultCode.DEGRADED)
Any validation mismatch detected by a Dish Leaf Node raises a corresponding alarm.