Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ DEFINE_vec(netsim_uwb, fmt::format("{}", CF_DEFAULTS_NETSIM_UWB),
"[Experimental] Connect Uwb radio to netsim.");
DEFINE_vec(netsim_nfc, fmt::format("{}", CF_DEFAULTS_NETSIM_NFC),
"[Experimental] Connect Nfc radio to netsim.");
DEFINE_vec(netsim_modem, fmt::format("{}", CF_DEFAULTS_NETSIM_MODEM),
"[Experimental] Connect Modem radio to netsim.");
DEFINE_string(netsim_args, CF_DEFAULTS_NETSIM_ARGS,
"Space-separated list of netsim args.");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ DECLARE_vec(netsim);
DECLARE_vec(netsim_bt);
DECLARE_vec(netsim_uwb);
DECLARE_vec(netsim_nfc);
DECLARE_vec(netsim_modem);
DECLARE_string(netsim_args);

DECLARE_bool(enable_automotive_proxy);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,11 @@ Result<std::unordered_map<std::string, std::string>> BootconfigArgsFromConfig(
std::to_string(instance.vsock_guest_cid());
}

if (instance.enable_modem_simulator() &&
// Export modem simulator ports for both standalone modem_simulator and
// netsim. The guest RIL (ag/40529282) polls ro.boot.modem_simulator_ports on
// startup to connect over VSOCK regardless of which daemon handles the host
// connection.
if ((instance.enable_modem_simulator() || instance.enable_modem_netsim()) &&
!instance.modem_simulator_ports().empty()) {
bootconfig_args["androidboot.modem_simulator_ports"] =
instance.modem_simulator_ports();
Expand Down
34 changes: 9 additions & 25 deletions base/cvd/cuttlefish/host/commands/assemble_cvd/flags.cc
Original file line number Diff line number Diff line change
Expand Up @@ -456,9 +456,6 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
tmp_config_obj.set_ap_rootfs_image(ap_rootfs_image);
tmp_config_obj.set_ap_kernel_image(FLAGS_ap_kernel_image);

tmp_config_obj.set_enable_host_nfc(FLAGS_enable_host_nfc);
tmp_config_obj.set_enable_host_nfc_connector(FLAGS_enable_host_nfc);

// get flag default values and store into map
auto name_to_default_value = CurrentFlagsToDefaultValue();
// old flags but vectorized for multi-device instances
Expand All @@ -467,33 +464,15 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
// netsim flags allow all radios or selecting a specific radio
std::vector<bool> netsim_all_radios_vec =
CF_EXPECT(GET_FLAG_BOOL_VALUE(netsim));
bool any_netsim_all_radios =
std::any_of(netsim_all_radios_vec.begin(), netsim_all_radios_vec.end(),
[](bool e) { return e; });
std::vector<bool> netsim_bt_vec = CF_EXPECT(GET_FLAG_BOOL_VALUE(netsim_bt));
bool any_netsim_bt = std::any_of(netsim_bt_vec.begin(), netsim_bt_vec.end(),
[](bool e) { return e; });
std::vector<bool> netsim_uwb_vec = CF_EXPECT(GET_FLAG_BOOL_VALUE(netsim_uwb));
bool any_netsim_uwb = std::any_of(
netsim_uwb_vec.begin(), netsim_uwb_vec.end(), [](bool e) { return e; });
std::vector<bool> netsim_nfc_vec = CF_EXPECT(GET_FLAG_BOOL_VALUE(netsim_nfc));
bool any_netsim_nfc = std::any_of(
netsim_nfc_vec.begin(), netsim_nfc_vec.end(), [](bool e) { return e; });
bool netsim_has_bt = any_netsim_all_radios || any_netsim_bt;
bool netsim_has_uwb = any_netsim_all_radios || any_netsim_uwb;
bool netsim_has_nfc = any_netsim_all_radios || any_netsim_nfc;

// These flags inform NetsimServer::ResultSetup which radios it owns.
if (netsim_has_bt) {
tmp_config_obj.netsim_radio_enable(
CuttlefishConfig::NetsimRadio::Bluetooth);
}
if (netsim_has_uwb) {
tmp_config_obj.netsim_radio_enable(CuttlefishConfig::NetsimRadio::Uwb);
}
if (netsim_has_nfc) {
tmp_config_obj.netsim_radio_enable(CuttlefishConfig::NetsimRadio::Nfc);
}
std::vector<bool> netsim_modem_vec =
CF_EXPECT(GET_FLAG_BOOL_VALUE(netsim_modem));

bool any_not_netsim_bt = false;
bool any_not_netsim_uwb = false;
Expand Down Expand Up @@ -1027,9 +1006,12 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
guest_enforce_security_values.ForIndex(instance_index));
instance.set_pause_in_bootloader(pause_in_bootloader_vec[instance_index]);
instance.set_run_as_daemon(daemon_values.ForIndex(instance_index));
bool is_modem_netsim = netsim_all_radios_vec[instance_index] ||
netsim_modem_vec[instance_index];
instance.set_enable_modem_simulator(
enable_modem_simulator_vec[instance_index] &&
!enable_minimal_mode_vec[instance_index]);
!enable_minimal_mode_vec[instance_index] && !is_modem_netsim);
instance.set_enable_modem_netsim(is_modem_netsim);
instance.set_modem_simulator_instance_number(
modem_simulator_count_vec[instance_index]);
instance.set_modem_simulator_sim_type(
Expand Down Expand Up @@ -1085,7 +1067,9 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
instance.set_enable_host_uwb_connector(FLAGS_enable_host_uwb &&
!is_uwb_netsim);

bool is_any_netsim = is_netsim_all || is_bt_netsim || is_uwb_netsim;
bool is_nfc_netsim = is_netsim_all || netsim_nfc_vec[instance_index];
bool is_any_netsim = is_netsim_all || is_bt_netsim || is_uwb_netsim ||
is_nfc_netsim || is_modem_netsim;

instance.set_uuid(uuid_vec[instance_index]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@
#define CF_DEFAULTS_NETSIM_BT true
#define CF_DEFAULTS_NETSIM_UWB true
#define CF_DEFAULTS_NETSIM_NFC false
#define CF_DEFAULTS_NETSIM_MODEM false

// Netsim default parameters
#define CF_DEFAULTS_NETSIM_ARGS ""
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ Result<std::vector<std::string>> GenerateCfFlags(
flags.emplace_back(GenerateFlag("netsim_uwb", launch.netsim_uwb()));
}

if (launch.has_netsim_modem()) {
flags.emplace_back(GenerateFlag("netsim_modem", launch.netsim_modem()));
}

if (!launch.netsim_args().empty()) {
for (const auto& arg : launch.netsim_args()) {
CF_EXPECTF(arg.find_first_of(" \t\n\v\f\r") == std::string::npos,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ message EnvironmentSpecification {
optional bool netsim_bt = 5;
optional bool netsim_uwb = 6;
repeated string netsim_args = 7;
optional bool netsim_modem = 8;
}

// TODO: chadreynolds - when we can make breaking changes and update, use this
Expand All @@ -63,6 +64,7 @@ message EnvironmentOptions {
optional bool netsim_bt = 4;
optional bool netsim_uwb = 5;
repeated string netsim_args = 6;
optional bool netsim_modem = 7;
}

message Common {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ cf_cc_library(
"//cuttlefish/host/libs/feature",
"//cuttlefish/process:command_subprocess",
"//cuttlefish/result",
"//libbase",
"@fruit",
],
)
Expand Down
Loading
Loading