From: David Bauer Date: Thu, 13 Feb 2025 16:00:44 +0000 (+0100) Subject: wds: implement selection of default profile X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=21c4aaae8f1cfdc20ab94eab5afeaea906cf3679;p=project%2Fuqmi.git wds: implement selection of default profile Allow configuration of the default profile on the modem. This is required to set the default bearer when on LTE. Signed-off-by: David Bauer --- diff --git a/uqmi/commands-wds.c b/uqmi/commands-wds.c index afb57aa..a5bfaba 100644 --- a/uqmi/commands-wds.c +++ b/uqmi/commands-wds.c @@ -649,6 +649,31 @@ cmd_wds_get_default_profile_cb(struct qmi_dev *qmi, struct qmi_request *req, str blobmsg_close_table(&status, p); } +#define cmd_wds_set_default_profile_cb no_cb + +static enum qmi_cmd_result +cmd_wds_set_default_profile_prepare(struct qmi_dev *qmi, struct qmi_request *req, + struct qmi_msg *msg, char *arg) +{ + struct uqmi_wds_profile_identifier profile; + + if (uqmi_wds_profile_identifier_parse(arg, &profile) < 0) { + fprintf(stderr, "Invalid argument\n"); + return QMI_CMD_EXIT; + } + + struct qmi_wds_set_default_profile_number_request set_default_profile = { + QMI_INIT_SEQUENCE(profile_identifier, + .family = QMI_WDS_PROFILE_FAMILY_TETHERED, + .type = profile.type, + .index = profile.index, + ) + }; + + qmi_set_wds_set_default_profile_number_request(msg, &set_default_profile); + return QMI_CMD_REQUEST; +} + #define cmd_wds_delete_profile_cb no_cb static enum qmi_cmd_result diff --git a/uqmi/commands-wds.h b/uqmi/commands-wds.h index 18d4c39..882cf70 100644 --- a/uqmi/commands-wds.h +++ b/uqmi/commands-wds.h @@ -34,6 +34,7 @@ __uqmi_command(wds_set_autoconnect_settings, set-autoconnect, required, QMI_SERVICE_WDS), \ __uqmi_command(wds_reset, reset-wds, no, QMI_SERVICE_WDS), \ __uqmi_command(wds_get_profile_settings, get-profile-settings, required, QMI_SERVICE_WDS), \ + __uqmi_command(wds_set_default_profile, set-default-profile, required, QMI_SERVICE_WDS), \ __uqmi_command(wds_get_default_profile, get-default-profile, required, QMI_SERVICE_WDS), \ __uqmi_command(wds_create_profile, create-profile, required, QMI_SERVICE_WDS), \ __uqmi_command(wds_modify_profile, modify-profile, required, QMI_SERVICE_WDS), \ @@ -61,6 +62,7 @@ " --set-ip-family : Set ip-family (ipv4, ipv6, unspecified)\n" \ " --set-autoconnect : Set automatic connect/reconnect (disabled, enabled, paused)\n" \ " --get-profile-settings : Get APN profile settings (3gpp, 3gpp2),#\n" \ + " --set-default-profile : Set default profile number (3gpp, 3gpp2)\n" \ " --get-default-profile : Get default profile number (3gpp, 3gpp2)\n" \ " --create-profile Create profile (3gpp, 3gpp2)\n" \ " --apn : Use APN\n" \