aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Poulain <loic.poulain@linaro.org>2020-11-17 14:50:41 +0100
committerLoic Poulain <loic.poulain@linaro.org>2020-11-17 14:50:41 +0100
commit5f433a5a8e4b999fd8892ca5f88a2b15a163be83 (patch)
tree6ec03896963be86de0b3926772bdd2d12a27fb96
parentc8b62a82229139dfd80af0ba73ceef7d0ac0ccb8 (diff)
Add loopback arg
Can be used to setup network for modem in loopback mode. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
-rwxr-xr-xmhi-qmi-connectbin100176 -> 100312 bytes
-rw-r--r--mhi-qmi-connect.c16
2 files changed, 13 insertions, 3 deletions
diff --git a/mhi-qmi-connect b/mhi-qmi-connect
index 1c60a3a..7faf235 100755
--- a/mhi-qmi-connect
+++ b/mhi-qmi-connect
Binary files differ
diff --git a/mhi-qmi-connect.c b/mhi-qmi-connect.c
index 43a069e..1877f2d 100644
--- a/mhi-qmi-connect.c
+++ b/mhi-qmi-connect.c
@@ -43,6 +43,7 @@ struct config_struct {
guint32 mux_id;
gboolean set_ip;
gboolean default_route;
+ gboolean loopback;
};
static struct config_struct config;
@@ -713,17 +714,17 @@ static void power_on_sim_ready(QmiClientUim *client, GAsyncResult *res, gpointer
qmi_message_uim_power_on_sim_output_unref(output);
- g_print("[%s] [UIM] Verifying SIM%u PIN...\n", qmi_device_get_path_display(device), slot);
-
input = qmi_message_uim_verify_pin_input_new();
dummy_aid = g_array_new(FALSE, FALSE, sizeof(guint8));
if (slot == 1 && config.sim1_pin_str) {
+ g_print("[%s] [UIM] Verifying SIM%u PIN...\n", qmi_device_get_path_display(device), slot);
qmi_message_uim_verify_pin_input_set_info(input, 1, config.sim1_pin_str, &error);
qmi_message_uim_verify_pin_input_set_session(input, QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
dummy_aid, /* ignored */ &error);
} else if (slot == 2 && config.sim2_pin_str) {
+ g_print("[%s] [UIM] Verifying SIM%u PIN...\n", qmi_device_get_path_display(device), slot);
qmi_message_uim_verify_pin_input_set_info(input, 1, config.sim2_pin_str, &error);
qmi_message_uim_verify_pin_input_set_session(input, QMI_UIM_SESSION_TYPE_CARD_SLOT_2,
dummy_aid, /* ignored */ &error);
@@ -805,7 +806,7 @@ static void get_operating_mode_ready(QmiClientDms *client, GAsyncResult *res)
qmi_message_dms_get_operating_mode_output_get_mode(output, &mode, NULL);
qmi_message_dms_get_operating_mode_output_unref(output);
- if (mode != QMI_DMS_OPERATING_MODE_ONLINE) {
+ if (mode != QMI_DMS_OPERATING_MODE_ONLINE && !config.loopback) {
/* TODO put it online */
g_print("[%s] [DMS] Modem is offline\n", qmi_device_get_path_display(device));
op_shutdown(SHUTDOWN_ERROR);
@@ -967,6 +968,9 @@ static GOptionEntry main_entries[] = {
{ "kmsg", 0, 0, G_OPTION_ARG_NONE, &kmsg,
"Redirect output to kernel log", NULL
},
+ { "loopback", 0, 0, G_OPTION_ARG_NONE, &config.loopback,
+ "For IPA loopback testing", NULL
+ },
{ NULL }
};
@@ -1066,6 +1070,12 @@ int main(int argc, char **argv)
read_config(config_path);
}
+ if (config.loopback) {
+ config.apn_str = "test";
+ config.set_ip = TRUE;
+ config.sim1_enable = FALSE;
+ }
+
if (!config.apn_str) {
g_printerr("error: no APN name\n");
exit(EXIT_FAILURE);