Refactor startup params for bluetooth for disable_address_reuse
Test: m netsimd
Change-Id: I4ee3be276924012ba5f1e4392bbc9a511320362a
diff --git a/rust/daemon/src/bluetooth/facade.rs b/rust/daemon/src/bluetooth/facade.rs
index c236a7b..5921924 100644
--- a/rust/daemon/src/bluetooth/facade.rs
+++ b/rust/daemon/src/bluetooth/facade.rs
@@ -54,9 +54,13 @@
}
/// Starts the Bluetooth service.
-pub fn bluetooth_start(config: &MessageField<BluetoothConfig>, instance_num: u16) {
+pub fn bluetooth_start(
+ config: &MessageField<BluetoothConfig>,
+ instance_num: u16,
+ disable_address_reuse: bool,
+) {
let proto_bytes = config.as_ref().unwrap_or_default().write_to_bytes().unwrap();
- ffi_bluetooth::bluetooth_start(&proto_bytes, instance_num);
+ ffi_bluetooth::bluetooth_start(&proto_bytes, instance_num, disable_address_reuse);
}
/// Stops the Bluetooth service.
diff --git a/rust/daemon/src/bluetooth/mocked.rs b/rust/daemon/src/bluetooth/mocked.rs
index fa8cbe5..2ae0ea1 100644
--- a/rust/daemon/src/bluetooth/mocked.rs
+++ b/rust/daemon/src/bluetooth/mocked.rs
@@ -76,7 +76,11 @@
}
/// Starts the Bluetooth service.
-pub fn bluetooth_start(_config: &MessageField<BluetoothConfig>, _instance_num: u16) {
+pub fn bluetooth_start(
+ _config: &MessageField<BluetoothConfig>,
+ _instance_num: u16,
+ _disable_address_reuse: bool,
+) {
info!("bluetooth service started");
}
diff --git a/rust/daemon/src/config.rs b/rust/daemon/src/config.rs
index 2b118e0..ba1d36b 100644
--- a/rust/daemon/src/config.rs
+++ b/rust/daemon/src/config.rs
@@ -18,7 +18,6 @@
static SET_DEV_CALLED: Once = Once::new();
static SET_PCAP_CALLED: Once = Once::new();
-static SET_DISABLE_ADDRESS_REUSE_CALLED: Once = Once::new();
lazy_static! {
static ref CONFIG: RwLock<Config> = RwLock::new(Config::new());
@@ -27,12 +26,11 @@
struct Config {
pub dev: Option<bool>,
pub pcap: Option<bool>,
- pub disable_address_reuse: Option<bool>,
}
impl Config {
pub fn new() -> Self {
- Self { dev: None, pcap: None, disable_address_reuse: None }
+ Self { dev: None, pcap: None }
}
}
@@ -64,20 +62,6 @@
});
}
-/// Get the flag of disable_address_reuse
-pub fn get_disable_address_reuse() -> bool {
- let config = CONFIG.read().unwrap();
- config.disable_address_reuse.unwrap_or(false)
-}
-
-/// Set the flag of disable_address_reuse
-pub fn set_disable_address_reuse(flag: bool) {
- SET_DISABLE_ADDRESS_REUSE_CALLED.call_once(|| {
- let mut config = CONFIG.write().unwrap();
- config.disable_address_reuse = Some(flag);
- });
-}
-
#[cfg(test)]
mod tests {
use super::*;
@@ -109,18 +93,4 @@
set_pcap(false);
assert!(get_pcap());
}
-
- #[test]
- fn test_disable_address_reuse() {
- // Check if default disable_address_reuse boolean is false
- assert!(!get_disable_address_reuse());
-
- // Check if set_disable_address_reuse changes the flag to true
- set_disable_address_reuse(true);
- assert!(get_disable_address_reuse());
-
- // Check if set_disable_address_reuse can only be called once
- set_disable_address_reuse(false);
- assert!(get_disable_address_reuse());
- }
}
diff --git a/rust/daemon/src/ffi.rs b/rust/daemon/src/ffi.rs
index 468ec6a..57adcd5 100644
--- a/rust/daemon/src/ffi.rs
+++ b/rust/daemon/src/ffi.rs
@@ -26,8 +26,6 @@
use crate::transport::dispatcher::{handle_request_cxx, handle_response};
use crate::transport::grpc::{register_grpc_transport, unregister_grpc_transport};
-use crate::config::get_disable_address_reuse;
-
use crate::captures::captures_handler::handle_capture_cxx;
use crate::devices::devices_handler::{
add_chip_cxx, get_distance_cxx, handle_device_cxx, remove_chip_cxx, AddChipResultCxx,
@@ -215,7 +213,7 @@
#[rust_name = bluetooth_start]
#[namespace = "netsim::hci::facade"]
- pub fn Start(proto_bytes: &[u8], instance_num: u16);
+ pub fn Start(proto_bytes: &[u8], instance_num: u16, disable_address_reuse: bool);
#[rust_name = bluetooth_stop]
#[namespace = "netsim::hci::facade"]
@@ -354,12 +352,6 @@
#[cxx_name = "GetVersion"]
fn get_version() -> String;
-
- // Disable Address Reuse Flag
-
- #[cxx_name = "GetDisableAddressReuse"]
- fn get_disable_address_reuse() -> bool;
-
}
#[allow(dead_code)]
diff --git a/rust/daemon/src/rust_main.rs b/rust/daemon/src/rust_main.rs
index d7521c3..a0fe60f 100644
--- a/rust/daemon/src/rust_main.rs
+++ b/rust/daemon/src/rust_main.rs
@@ -15,6 +15,7 @@
use clap::Parser;
use log::warn;
use log::{error, info};
+#[cfg(feature = "cuttlefish")]
use netsim_common::system::netsimd_temp_dir;
use netsim_common::util::os_utils::{get_hci_port, get_instance, remove_netsim_ini};
use netsim_common::util::zip_artifact::zip_artifacts;
@@ -180,7 +181,6 @@
args.no_cli_ui,
args.no_web_ui,
args.pcap,
- args.disable_address_reuse,
hci_port,
instance_num,
args.dev,
@@ -202,7 +202,7 @@
wait_devices(device_events_rx);
// Start radio facades
- bluetooth_facade::bluetooth_start(&config.bluetooth, instance_num);
+ bluetooth_facade::bluetooth_start(&config.bluetooth, instance_num, args.disable_address_reuse);
wifi_facade::wifi_start(&config.wifi);
// Run all netsimd services (grpc, socket, web)
diff --git a/rust/daemon/src/service.rs b/rust/daemon/src/service.rs
index fefd8b5..14ac3c8 100644
--- a/rust/daemon/src/service.rs
+++ b/rust/daemon/src/service.rs
@@ -14,7 +14,7 @@
use crate::bluetooth::advertise_settings as ble_advertise_settings;
use crate::captures::captures_handler::clear_pcap_files;
-use crate::config::{get_dev, set_dev, set_disable_address_reuse, set_pcap};
+use crate::config::{get_dev, set_dev, set_pcap};
use crate::ffi::ffi_transport::{run_grpc_server_cxx, GrpcServer};
use crate::http_server::server::run_http_server;
use crate::transport::socket::run_socket_transport;
@@ -32,7 +32,6 @@
no_cli_ui: bool,
no_web_ui: bool,
pcap: bool,
- disable_address_reuse: bool,
hci_port: u16,
instance_num: u16,
dev: bool,
@@ -46,7 +45,6 @@
no_cli_ui: bool,
no_web_ui: bool,
pcap: bool,
- disable_address_reuse: bool,
hci_port: u16,
instance_num: u16,
dev: bool,
@@ -57,7 +55,6 @@
no_cli_ui,
no_web_ui,
pcap,
- disable_address_reuse,
hci_port,
instance_num,
dev,
@@ -89,7 +86,6 @@
}
set_pcap(self.service_params.pcap);
set_dev(self.service_params.dev);
- set_disable_address_reuse(self.service_params.disable_address_reuse);
}
/// Runs netsim gRPC server
diff --git a/src/hci/bluetooth_facade.cc b/src/hci/bluetooth_facade.cc
index eae705a..f706cfd 100644
--- a/src/hci/bluetooth_facade.cc
+++ b/src/hci/bluetooth_facade.cc
@@ -188,7 +188,7 @@
// Initialize the rootcanal library.
void Start(const rust::Slice<::std::uint8_t const> proto_bytes,
- uint16_t instance_num) {
+ uint16_t instance_num, bool disable_address_reuse) {
if (gStarted) return;
// output is to a file, so no color wanted
@@ -229,7 +229,7 @@
// Disable Address Reuse if '--disable_address_reuse' flag is true
// TODO: once config files are active, use the value from config proto
- gTestModel->SetReuseDeviceAddresses(!netsim::GetDisableAddressReuse());
+ gTestModel->SetReuseDeviceAddresses(!disable_address_reuse);
// NOTE: 0:BR_EDR, 1:LOW_ENERGY. The order is used by bluetooth CTS.
phy_classic_index_ = gTestModel->AddPhy(rootcanal::Phy::Type::BR_EDR);
diff --git a/src/hci/bluetooth_facade.h b/src/hci/bluetooth_facade.h
index fb82383..8a05755 100644
--- a/src/hci/bluetooth_facade.h
+++ b/src/hci/bluetooth_facade.h
@@ -52,7 +52,7 @@
void RemoveRustDevice(uint32_t facade_id);
void Start(const rust::Slice<::std::uint8_t const> proto_bytes,
- uint16_t instance_num);
+ uint16_t instance_num, bool disable_address_reuse);
void Stop();
// Cxx functions for rust ffi.