summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDajung Lee <dajunglee@google.com>2024-03-28 21:01:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-03-28 21:01:10 +0000
commitfe4ccb7efe94806a93ff60fbf4f9388d6713785b (patch)
tree165e1320a540f136ad10b839e998af4341ccf731
parentf6b8908a080cc359e8a0a11ada390c20fde674bd (diff)
downloaduwb-fe4ccb7efe94806a93ff60fbf4f9388d6713785b.tar.gz
Revert "Support Multicast NTF V1/V2 packet formats."
Revert submission 3018363-uwb_multicast_ntf Reason for revert: b/331836038 Reverted changes: /q/submissionid:3018363-uwb_multicast_ntf Change-Id: I29b995c1b4e248f49b700987d3546f47261969d2
-rw-r--r--src/rust/uwb_core/src/params/uci_packets.rs20
-rw-r--r--src/rust/uwb_core/src/session/session_manager.rs14
-rw-r--r--src/rust/uwb_core/src/session/uwb_session.rs10
-rw-r--r--src/rust/uwb_core/src/uci/message.rs8
-rw-r--r--src/rust/uwb_core/src/uci/notification.rs124
-rw-r--r--src/rust/uwb_core/src/uci/uci_manager.rs25
-rw-r--r--src/rust/uwb_uci_packets/uci_packets.pdl24
7 files changed, 56 insertions, 169 deletions
diff --git a/src/rust/uwb_core/src/params/uci_packets.rs b/src/rust/uwb_core/src/params/uci_packets.rs
index f5f969d..6f42e3b 100644
--- a/src/rust/uwb_core/src/params/uci_packets.rs
+++ b/src/rust/uwb_core/src/params/uci_packets.rs
@@ -21,16 +21,16 @@ use std::iter::FromIterator;
// Re-export enums and structs from uwb_uci_packets.
pub use uwb_uci_packets::{
AppConfigStatus, AppConfigTlv as RawAppConfigTlv, AppConfigTlvType, BitsPerSample, CapTlv,
- CapTlvType, Controlee, ControleePhaseList, ControleeStatusV1, ControleeStatusV2, Controlees,
- CreditAvailability, DataRcvStatusCode, DataTransferNtfStatusCode,
- DataTransferPhaseConfigUpdateStatusCode, DeviceConfigId, DeviceConfigStatus, DeviceConfigTlv,
- DeviceState, ExtendedAddressDlTdoaRangingMeasurement, ExtendedAddressOwrAoaRangingMeasurement,
- ExtendedAddressTwoWayRangingMeasurement, GroupId, MacAddressIndicator, MessageType,
- MulticastUpdateStatusCode, PhaseList, PowerStats, RadarConfigStatus, RadarConfigTlv,
- RadarConfigTlvType, RadarDataType, RangingMeasurementType, ReasonCode, ResetConfig,
- SessionState, SessionType, ShortAddressDlTdoaRangingMeasurement,
- ShortAddressOwrAoaRangingMeasurement, ShortAddressTwoWayRangingMeasurement, StatusCode,
- UpdateMulticastListAction,
+ CapTlvType, Controlee, ControleePhaseList, ControleeStatus, Controlees, CreditAvailability,
+ DataRcvStatusCode, DataTransferNtfStatusCode, DataTransferPhaseConfigUpdateStatusCode,
+ DeviceConfigId, DeviceConfigStatus, DeviceConfigTlv, DeviceState,
+ ExtendedAddressDlTdoaRangingMeasurement, ExtendedAddressOwrAoaRangingMeasurement,
+ ExtendedAddressTwoWayRangingMeasurement, GroupId, MacAddressIndicator,
+ MessageType, MulticastUpdateStatusCode, PhaseList, PowerStats, RadarConfigStatus,
+ RadarConfigTlv, RadarConfigTlvType, RadarDataType, RangingMeasurementType, ReasonCode,
+ ResetConfig, SessionState, SessionType, ShortAddressDlTdoaRangingMeasurement,
+ ShortAddressOwrAoaRangingMeasurement, ShortAddressTwoWayRangingMeasurement,
+ StatusCode, UpdateMulticastListAction,
};
pub(crate) use uwb_uci_packets::{UciControlPacket, UciDataPacket, UciDataPacketHal};
diff --git a/src/rust/uwb_core/src/session/session_manager.rs b/src/rust/uwb_core/src/session/session_manager.rs
index 02e79fa..38a9887 100644
--- a/src/rust/uwb_core/src/session/session_manager.rs
+++ b/src/rust/uwb_core/src/session/session_manager.rs
@@ -336,16 +336,13 @@ impl<T: UciManager> SessionManagerActor<T> {
UciSessionNotification::UpdateControllerMulticastList {
session_token,
remaining_multicast_list_size: _,
- status_list_v1,
- status_list_v2: _,
+ status_list,
} => match self.active_sessions.get_mut(&session_token) {
- // TODO: Use status_list_v2 when it's not empty (can convert it into
- // status_list_v1, since that is a super-set).
- Some(session) => session.on_controller_multicast_list_udpated(status_list_v1),
+ Some(session) => session.on_controller_multicast_list_udpated(status_list),
None => {
warn!(
"Received the notification of the unknown Session {}: {:?}",
- session_token, status_list_v1,
+ session_token, status_list
);
}
},
@@ -587,7 +584,7 @@ mod tests {
use crate::params::ccc_started_app_config_params::CccStartedAppConfigParams;
use crate::params::uci_packets::{
- AppConfigTlv, AppConfigTlvType, ControleeStatusV1, Controlees, MulticastUpdateStatusCode,
+ AppConfigTlv, AppConfigTlvType, ControleeStatus, Controlees, MulticastUpdateStatusCode,
ReasonCode, SetAppConfigResponse, StatusCode,
};
use crate::params::utils::{u32_to_bytes, u64_to_bytes, u8_to_bytes};
@@ -816,12 +813,11 @@ mod tests {
UciSessionNotification::UpdateControllerMulticastList {
session_token: session_id,
remaining_multicast_list_size: 1,
- status_list_v1: vec![ControleeStatusV1 {
+ status_list: vec![ControleeStatus {
mac_address: [0x34, 0x12],
subsession_id: 0x24,
status: MulticastUpdateStatusCode::StatusOkMulticastListUpdate,
}],
- status_list_v2: vec![],
},
)];
uci_manager.expect_session_init(
diff --git a/src/rust/uwb_core/src/session/uwb_session.rs b/src/rust/uwb_core/src/session/uwb_session.rs
index c6732c3..37fcba4 100644
--- a/src/rust/uwb_core/src/session/uwb_session.rs
+++ b/src/rust/uwb_core/src/session/uwb_session.rs
@@ -24,7 +24,7 @@ use crate::error::{Error, Result};
use crate::params::app_config_params::AppConfigParams;
use crate::params::ccc_started_app_config_params::CccStartedAppConfigParams;
use crate::params::uci_packets::{
- Controlee, ControleeStatusV1, Controlees, MulticastUpdateStatusCode, SessionId, SessionState,
+ Controlee, ControleeStatus, Controlees, MulticastUpdateStatusCode, SessionId, SessionState,
SessionType, UpdateMulticastListAction,
};
use crate::uci::error::status_code_to_result;
@@ -42,7 +42,7 @@ pub(super) type ResponseSender = oneshot::Sender<Result<Response>>;
pub(super) struct UwbSession {
cmd_sender: mpsc::UnboundedSender<(Command, ResponseSender)>,
state_sender: watch::Sender<SessionState>,
- controlee_status_notf_sender: Option<oneshot::Sender<Vec<ControleeStatusV1>>>,
+ controlee_status_notf_sender: Option<oneshot::Sender<Vec<ControleeStatus>>>,
}
impl UwbSession {
@@ -110,7 +110,7 @@ impl UwbSession {
let _ = self.state_sender.send(state);
}
- pub fn on_controller_multicast_list_udpated(&mut self, status_list: Vec<ControleeStatusV1>) {
+ pub fn on_controller_multicast_list_udpated(&mut self, status_list: Vec<ControleeStatus>) {
if let Some(sender) = self.controlee_status_notf_sender.take() {
let _ = sender.send(status_list);
}
@@ -294,7 +294,7 @@ impl<T: UciManager> UwbSessionActor<T> {
&mut self,
action: UpdateMulticastListAction,
controlees: Vec<Controlee>,
- notf_receiver: oneshot::Receiver<Vec<ControleeStatusV1>>,
+ notf_receiver: oneshot::Receiver<Vec<ControleeStatus>>,
) -> Result<Response> {
if self.session_type == SessionType::Ccc {
error!("Cannot update multicast list for CCC session");
@@ -387,7 +387,7 @@ enum Command {
UpdateControllerMulticastList {
action: UpdateMulticastListAction,
controlees: Vec<Controlee>,
- notf_receiver: oneshot::Receiver<Vec<ControleeStatusV1>>,
+ notf_receiver: oneshot::Receiver<Vec<ControleeStatus>>,
},
GetParams,
}
diff --git a/src/rust/uwb_core/src/uci/message.rs b/src/rust/uwb_core/src/uci/message.rs
index d0caa77..fcbc65d 100644
--- a/src/rust/uwb_core/src/uci/message.rs
+++ b/src/rust/uwb_core/src/uci/message.rs
@@ -26,17 +26,15 @@ pub(super) enum UciMessage {
Notification(UciNotification),
}
-impl TryFrom<(uwb_uci_packets::UciControlPacket, u8)> for UciMessage {
+impl TryFrom<uwb_uci_packets::UciControlPacket> for UciMessage {
type Error = Error;
- fn try_from(pair: (uwb_uci_packets::UciControlPacket, u8)) -> Result<Self, Self::Error> {
- let packet = pair.0;
- let uci_fira_major_ver = pair.1;
+ fn try_from(packet: uwb_uci_packets::UciControlPacket) -> Result<Self, Self::Error> {
match packet.specialize() {
uwb_uci_packets::UciControlPacketChild::UciResponse(evt) => {
Ok(UciMessage::Response(evt.try_into()?))
}
uwb_uci_packets::UciControlPacketChild::UciNotification(evt) => {
- Ok(UciMessage::Notification((evt, uci_fira_major_ver).try_into()?))
+ Ok(UciMessage::Notification(evt.try_into()?))
}
_ => {
error!("Unknown packet for converting to UciMessage: {:?}", packet);
diff --git a/src/rust/uwb_core/src/uci/notification.rs b/src/rust/uwb_core/src/uci/notification.rs
index 7c55c14..08af530 100644
--- a/src/rust/uwb_core/src/uci/notification.rs
+++ b/src/rust/uwb_core/src/uci/notification.rs
@@ -25,7 +25,7 @@ use uwb_uci_packets::{
use crate::error::{Error, Result};
use crate::params::fira_app_config_params::UwbAddress;
use crate::params::uci_packets::{
- BitsPerSample, ControleeStatusV1, ControleeStatusV2, CreditAvailability, DataRcvStatusCode,
+ BitsPerSample, ControleeStatus, CreditAvailability, DataRcvStatusCode,
DataTransferNtfStatusCode, DataTransferPhaseConfigUpdateStatusCode, DeviceState,
ExtendedAddressDlTdoaRangingMeasurement, ExtendedAddressOwrAoaRangingMeasurement,
ExtendedAddressTwoWayRangingMeasurement, RadarDataType, RangingMeasurementType, RawUciMessage,
@@ -71,10 +71,8 @@ pub enum SessionNotification {
session_token: SessionToken,
/// count of controlees: u8
remaining_multicast_list_size: usize,
- /// Controlee status List (Fira 1.x)
- status_list_v1: Vec<ControleeStatusV1>,
- /// Controlee status List (Fira 2.0)
- status_list_v2: Vec<ControleeStatusV2>,
+ /// list of controlees.
+ status_list: Vec<ControleeStatus>,
},
/// (Short/Extended)Mac()SessionInfoNtf equivalent
SessionInfo(SessionRangeData),
@@ -333,19 +331,14 @@ impl UciNotification {
}
}
-impl TryFrom<(uwb_uci_packets::UciNotification, u8)> for UciNotification {
+impl TryFrom<uwb_uci_packets::UciNotification> for UciNotification {
type Error = Error;
- fn try_from(
- pair: (uwb_uci_packets::UciNotification, u8),
- ) -> std::result::Result<Self, Self::Error> {
+ fn try_from(evt: uwb_uci_packets::UciNotification) -> std::result::Result<Self, Self::Error> {
use uwb_uci_packets::UciNotificationChild;
- let evt = pair.0;
- let uci_fira_major_ver = pair.1;
-
match evt.specialize() {
UciNotificationChild::CoreNotification(evt) => Ok(Self::Core(evt.try_into()?)),
UciNotificationChild::SessionConfigNotification(evt) => {
- Ok(Self::Session((evt, uci_fira_major_ver).try_into()?))
+ Ok(Self::Session(evt.try_into()?))
}
UciNotificationChild::SessionControlNotification(evt) => {
Ok(Self::Session(evt.try_into()?))
@@ -382,38 +375,23 @@ impl TryFrom<uwb_uci_packets::CoreNotification> for CoreNotification {
}
}
-impl TryFrom<(uwb_uci_packets::SessionConfigNotification, u8)> for SessionNotification {
+impl TryFrom<uwb_uci_packets::SessionConfigNotification> for SessionNotification {
type Error = Error;
fn try_from(
- pair: (uwb_uci_packets::SessionConfigNotification, u8),
+ evt: uwb_uci_packets::SessionConfigNotification,
) -> std::result::Result<Self, Self::Error> {
use uwb_uci_packets::SessionConfigNotificationChild;
- let evt = pair.0;
- let uci_fira_major_ver = pair.1;
match evt.specialize() {
SessionConfigNotificationChild::SessionStatusNtf(evt) => Ok(Self::Status {
session_token: evt.get_session_token(),
session_state: evt.get_session_state(),
reason_code: evt.get_reason_code(),
}),
- SessionConfigNotificationChild::SessionUpdateControllerMulticastListNtfV1(evt)
- if uci_fira_major_ver == 1 =>
- {
+ SessionConfigNotificationChild::SessionUpdateControllerMulticastListNtf(evt) => {
Ok(Self::UpdateControllerMulticastList {
session_token: evt.get_session_token(),
remaining_multicast_list_size: evt.get_remaining_multicast_list_size() as usize,
- status_list_v1: evt.get_controlee_status().clone(),
- status_list_v2: vec![],
- })
- }
- SessionConfigNotificationChild::SessionUpdateControllerMulticastListNtfV2(evt)
- if uci_fira_major_ver >= 2 =>
- {
- Ok(Self::UpdateControllerMulticastList {
- session_token: evt.get_session_token(),
- remaining_multicast_list_size: 0_usize, // undefined field in FiEa 2.0 NTF.
- status_list_v1: vec![],
- status_list_v2: evt.get_controlee_status().clone(),
+ status_list: evt.get_controlee_status().clone(),
})
}
SessionConfigNotificationChild::SessionDataTransferPhaseConfigNtf(evt) => {
@@ -907,10 +885,8 @@ mod tests {
.build();
let session_notification_packet =
uwb_uci_packets::SessionConfigNotification::try_from(session_status_ntf).unwrap();
- let uci_fira_major_version = 1;
let session_notification =
- SessionNotification::try_from((session_notification_packet, uci_fira_major_version))
- .unwrap();
+ SessionNotification::try_from(session_notification_packet).unwrap();
let uci_notification_from_session_status_ntf =
UciNotification::Session(session_notification);
assert_eq!(
@@ -925,36 +901,31 @@ mod tests {
}
#[test]
- fn test_session_notification_cast_from_session_update_controller_multicast_list_ntf_v1_packet()
+ fn test_session_notification_casting_from_session_update_controller_multicast_list_ntf_packet()
{
- let controlee_status_v1 = uwb_uci_packets::ControleeStatusV1 {
+ let controlee_status = uwb_uci_packets::ControleeStatus {
mac_address: [0x0c, 0xa8],
subsession_id: 0x30,
status: uwb_uci_packets::MulticastUpdateStatusCode::StatusOkMulticastListUpdate,
};
- let another_controlee_status_v1 = uwb_uci_packets::ControleeStatusV1 {
+ let another_controlee_status = uwb_uci_packets::ControleeStatus {
mac_address: [0x0c, 0xa9],
subsession_id: 0x31,
status: uwb_uci_packets::MulticastUpdateStatusCode::StatusErrorKeyFetchFail,
};
- let session_update_controller_multicast_list_ntf_v1 =
- uwb_uci_packets::SessionUpdateControllerMulticastListNtfV1Builder {
+ let session_update_controller_multicast_list_ntf =
+ uwb_uci_packets::SessionUpdateControllerMulticastListNtfBuilder {
session_token: 0x32,
remaining_multicast_list_size: 0x2,
- controlee_status: vec![
- controlee_status_v1.clone(),
- another_controlee_status_v1.clone(),
- ],
+ controlee_status: vec![controlee_status.clone(), another_controlee_status.clone()],
}
.build();
let session_notification_packet = uwb_uci_packets::SessionConfigNotification::try_from(
- session_update_controller_multicast_list_ntf_v1,
+ session_update_controller_multicast_list_ntf,
)
.unwrap();
- let uci_fira_major_version = 1;
let session_notification =
- SessionNotification::try_from((session_notification_packet, uci_fira_major_version))
- .unwrap();
+ SessionNotification::try_from(session_notification_packet).unwrap();
let uci_notification_from_session_update_controller_multicast_list_ntf =
UciNotification::Session(session_notification);
assert_eq!(
@@ -962,51 +933,7 @@ mod tests {
UciNotification::Session(SessionNotification::UpdateControllerMulticastList {
session_token: 0x32,
remaining_multicast_list_size: 0x2,
- status_list_v1: vec![controlee_status_v1, another_controlee_status_v1],
- status_list_v2: vec![],
- })
- );
- }
-
- #[test]
- fn test_session_notification_cast_from_session_update_controller_multicast_list_ntf_v2_packet()
- {
- let controlee_status_v2 = uwb_uci_packets::ControleeStatusV2 {
- mac_address: [0x0c, 0xa8],
- status: uwb_uci_packets::MulticastUpdateStatusCode::StatusOkMulticastListUpdate,
- };
- let another_controlee_status_v2 = uwb_uci_packets::ControleeStatusV2 {
- mac_address: [0x0c, 0xa9],
- status: uwb_uci_packets::MulticastUpdateStatusCode::StatusErrorKeyFetchFail,
- };
- let session_update_controller_multicast_list_ntf_v2 =
- uwb_uci_packets::SessionUpdateControllerMulticastListNtfV2Builder {
- session_token: 0x32,
- controlee_status: vec![
- controlee_status_v2.clone(),
- another_controlee_status_v2.clone(),
- ],
- }
- .build();
- let session_notification_packet = uwb_uci_packets::SessionConfigNotification::try_from(
- session_update_controller_multicast_list_ntf_v2,
- )
- .unwrap();
- let uci_fira_major_version = 2;
- let session_notification =
- SessionNotification::try_from((session_notification_packet, uci_fira_major_version))
- .unwrap();
- //let session_notification =
- // parse_uci_session_ntf(session_notification_packet, Some(2)).unwrap();
- let uci_notification_from_session_update_controller_multicast_list_ntf =
- UciNotification::Session(session_notification);
- assert_eq!(
- uci_notification_from_session_update_controller_multicast_list_ntf,
- UciNotification::Session(SessionNotification::UpdateControllerMulticastList {
- session_token: 0x32,
- remaining_multicast_list_size: 0x0,
- status_list_v1: vec![],
- status_list_v2: vec![controlee_status_v2, another_controlee_status_v2],
+ status_list: vec![controlee_status, another_controlee_status],
})
);
}
@@ -1025,13 +952,10 @@ mod tests {
}
.build()
.into();
- let uci_fira_major_version = 1;
let uci_notification_from_vendor_9 =
- UciNotification::try_from((vendor_9_empty_notification, uci_fira_major_version))
- .unwrap();
+ UciNotification::try_from(vendor_9_empty_notification).unwrap();
let uci_notification_from_vendor_A =
- UciNotification::try_from((vendor_A_nonempty_notification, uci_fira_major_version))
- .unwrap();
+ UciNotification::try_from(vendor_A_nonempty_notification).unwrap();
assert_eq!(
uci_notification_from_vendor_9,
UciNotification::Vendor(RawUciMessage {
@@ -1054,9 +978,7 @@ mod tests {
fn test_test_to_vendor_notification_casting() {
let test_notification: uwb_uci_packets::UciNotification =
uwb_uci_packets::TestNotificationBuilder { opcode: 0x22, payload: None }.build().into();
- let uci_fira_major_version = 1;
- let test_uci_notification =
- UciNotification::try_from((test_notification, uci_fira_major_version)).unwrap();
+ let test_uci_notification = UciNotification::try_from(test_notification).unwrap();
assert_eq!(
test_uci_notification,
UciNotification::Vendor(RawUciMessage {
diff --git a/src/rust/uwb_core/src/uci/uci_manager.rs b/src/rust/uwb_core/src/uci/uci_manager.rs
index 7e10cd0..4104dc2 100644
--- a/src/rust/uwb_core/src/uci/uci_manager.rs
+++ b/src/rust/uwb_core/src/uci/uci_manager.rs
@@ -941,15 +941,6 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
}
}
- fn get_uwbs_uci_major_version(&mut self) -> Option<u8> {
- if let Some(core_get_device_info_rsp) = &self.get_device_info_rsp {
- // Byte 0 : Major UCI version
- // Calling unwrap() will be safe here as with the bitmask, the value will be within u8.
- return Some((core_get_device_info_rsp.uci_version & 0xFF).try_into().unwrap());
- }
- None
- }
-
#[allow(unknown_lints)]
#[allow(clippy::unnecessary_fallible_conversions)]
fn store_if_uwbs_caps_info(&mut self, resp: &UciResponse) {
@@ -1286,9 +1277,7 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
UciDefragPacket::Control(packet) => {
self.logger.log_uci_response_or_notification(&packet);
- // Use a safe value of Fira 1.x as the UWBS UCI version.
- let uci_fira_major_version = self.get_uwbs_uci_major_version().unwrap_or(1);
- match (packet, uci_fira_major_version).try_into() {
+ match packet.try_into() {
Ok(UciMessage::Response(resp)) => {
self.handle_response(resp).await;
}
@@ -1454,13 +1443,11 @@ impl<T: UciHal, U: UciLogger> UciManagerActor<T, U> {
SessionNotification::UpdateControllerMulticastList {
session_token,
remaining_multicast_list_size,
- status_list_v1,
- status_list_v2,
+ status_list,
} => Ok(SessionNotification::UpdateControllerMulticastList {
session_token: self.get_session_id(&session_token).await?,
remaining_multicast_list_size,
- status_list_v1,
- status_list_v2,
+ status_list,
}),
SessionNotification::SessionInfo(session_range_data) => {
Ok(SessionNotification::SessionInfo(SessionRangeData {
@@ -2274,7 +2261,7 @@ mod tests {
assert!(mock_hal.wait_expected_calls_done().await);
}
- #[tokio::test]
+ #[tokio::test]
async fn test_session_set_hybrid_controller_config_ok() {
let session_id = 0x123;
let message_control = 0x00;
@@ -2392,7 +2379,7 @@ mod tests {
assert!(mock_hal.wait_expected_calls_done().await);
}
- #[tokio::test]
+ #[tokio::test]
async fn test_session_set_hybrid_controlee_config_ok() {
let session_id = 0x123;
let session_token = 0x123;
@@ -2428,7 +2415,7 @@ mod tests {
assert!(result.is_ok());
assert!(mock_hal.wait_expected_calls_done().await);
}
-
+
#[tokio::test]
async fn test_session_data_transfer_phase_config_ok() {
let session_id = 0x123;
diff --git a/src/rust/uwb_uci_packets/uci_packets.pdl b/src/rust/uwb_uci_packets/uci_packets.pdl
index f494af2..7b3e174 100644
--- a/src/rust/uwb_uci_packets/uci_packets.pdl
+++ b/src/rust/uwb_uci_packets/uci_packets.pdl
@@ -997,39 +997,23 @@ test SessionUpdateControllerMulticastListRsp {
"\x41\x07\x00\x01\x00\x00\x00\x00",
}
-struct ControleeStatusV1 {
+struct ControleeStatus {
mac_address: 8[2],
subsession_id: 32,
status: MulticastUpdateStatusCode,
}
-struct ControleeStatusV2 {
- mac_address: 8[2],
- status: MulticastUpdateStatusCode,
-}
-
-packet SessionUpdateControllerMulticastListNtfV1 : SessionConfigNotification (opcode = 0x7) { //SESSION_UPDATE_CONTROLLER_MULTICAST_LIST
+packet SessionUpdateControllerMulticastListNtf : SessionConfigNotification (opcode = 0x7) { //SESSION_UPDATE_CONTROLLER_MULTICAST_LIST
session_token: 32, // Session ID or Session Handle (based on UWBS version)
remaining_multicast_list_size: 8,
_count_(controlee_status): 8,
- controlee_status: ControleeStatusV1[],
+ controlee_status: ControleeStatus[],
}
-test SessionUpdateControllerMulticastListNtfV1 {
+test SessionUpdateControllerMulticastListNtf {
"\x61\x07\x00\x06\x00\x00\x00\x00\x01\x02\x03\x04\x00",
}
-packet SessionUpdateControllerMulticastListNtfV2 : SessionConfigNotification (opcode = 0x7) { //SESSION_UPDATE_CONTROLLER_MULTICAST_LIST
- session_token: 32, // Session ID or Session Handle (based on UWBS version)
- _count_(controlee_status): 8,
- controlee_status: ControleeStatusV2[],
-}
-
-test SessionUpdateControllerMulticastListNtfV2 {
- "\x61\x07\x00\x06\x00\x00\x00\x00\x01\x00",
- "\x61\x07\x00\x09\x00\x00\x00\x00\x01\x01\x03\x04\x00",
-}
-
packet DataCreditNtf : SessionControlNotification (opcode = 0x04) { // SESSION_DATA_CREDIT_NTF
session_token: 32, // Session ID or Session Handle (based on UWBS version)
credit_availability: CreditAvailability,