Sync definitions for UCI Multicast Update Status with UCI 2.0
All definitions after ERROR_SUB_SESSION_KEY_NOT_FOUND
were offset by 1
diff --git a/src/device.rs b/src/device.rs
index d304be7..449ec7b 100644
--- a/src/device.rs
+++ b/src/device.rs
@@ -628,11 +628,11 @@
| UpdateMulticastListAction::AddControleeWithShortSubSessionKey
| UpdateMulticastListAction::AddControleeWithExtendedSubSessionKey => {
new_controlees.iter().for_each(|controlee| {
- let mut update_status = MulticastUpdateStatusCode::StatusOkMulticastListUpdate;
+ let mut update_status = MulticastUpdateStatus::OkMulticastListUpdate;
if !dst_addresses.contains(&controlee.short_address) {
if dst_addresses.len() == MAX_NUMBER_OF_CONTROLEES {
status = uci::Status::ErrorMulticastListFull;
- update_status = MulticastUpdateStatusCode::StatusErrorMulticastListFull;
+ update_status = MulticastUpdateStatus::ErrorMulticastListFull;
} else if (action
== UpdateMulticastListAction::AddControleeWithShortSubSessionKey
|| action
@@ -645,8 +645,7 @@
// with Status set to STATUS_ERROR_SUB_SESSION_KEY_NOT_APPLICABLE for each
// Controlee in the Controlee List.
status = uci::Status::Failed;
- update_status =
- MulticastUpdateStatusCode::StatusErrorSubSessionKeyNotApplicable;
+ update_status = MulticastUpdateStatus::ErrorSubSessionKeyNotApplicable;
} else {
dst_addresses.push(controlee.short_address);
};
@@ -666,10 +665,10 @@
let pica_tx = self.pica_tx.clone();
let address = controlee.short_address;
let attempt_count = session.app_config.in_band_termination_attempt_count;
- let mut update_status = MulticastUpdateStatusCode::StatusOkMulticastListUpdate;
+ let mut update_status = MulticastUpdateStatus::OkMulticastListUpdate;
if !dst_addresses.contains(&address) {
status = uci::Status::Failed;
- update_status = MulticastUpdateStatusCode::StatusErrorKeyFetchFail;
+ update_status = MulticastUpdateStatus::ErrorKeyFetchFail;
} else {
dst_addresses.retain(|value| *value != address);
// If IN_BAND_TERMINATION_ATTEMPT_COUNT is not equal to 0x00, then the
diff --git a/src/uci_packets.pdl b/src/uci_packets.pdl
index e4403cb..06fd9b0 100644
--- a/src/uci_packets.pdl
+++ b/src/uci_packets.pdl
@@ -585,15 +585,17 @@
VENDOR_SPECIFIC_REASON_CODE_2 = 0xFF,
}
-enum MulticastUpdateStatusCode : 8 {
- STATUS_OK_MULTICAST_LIST_UPDATE = 0x00,
- STATUS_ERROR_MULTICAST_LIST_FULL = 0x01,
- STATUS_ERROR_KEY_FETCH_FAIL = 0x02,
- STATUS_ERROR_SUB_SESSION_ID_NOT_FOUND = 0x03,
- STATUS_ERROR_SUB_SESSION_KEY_NOT_FOUND = 0x05,
- STATUS_ERROR_SUB_SESSION_KEY_NOT_APPLICABLE = 0x06,
- STATUS_ERROR_SESSION_KEY_NOT_FOUND = 0x07,
- STATUS_ERROR_ADDRESS_ALREADY_PRESENT = 0x08,
+/// [UCI] Table 40: Multicast list update status codes
+enum MulticastUpdateStatus : 8 {
+ OK_MULTICAST_LIST_UPDATE = 0x00,
+ ERROR_MULTICAST_LIST_FULL = 0x01,
+ ERROR_KEY_FETCH_FAIL = 0x02,
+ ERROR_SUB_SESSION_ID_NOT_FOUND = 0x03,
+ ERROR_SUB_SESSION_KEY_NOT_FOUND = 0x04,
+ ERROR_SUB_SESSION_KEY_NOT_APPLICABLE = 0x05,
+ ERROR_SESSION_KEY_NOT_FOUND = 0x06,
+ ERROR_ADDRESS_NOT_FOUND = 0x07,
+ ERROR_ADDRESS_ALREADY_PRESENT = 0x08,
}
enum MacAddressIndicator : 8 {
@@ -1075,7 +1077,7 @@
struct ControleeStatus {
mac_address: 8[2],
subsession_id: 32,
- status: MulticastUpdateStatusCode,
+ status: MulticastUpdateStatus,
}
packet SessionUpdateControllerMulticastListNtf : SessionConfigPacket (mt = NOTIFICATION, oid = UPDATE_CONTROLLER_MULTICAST_LIST) {