Hi Antara,
On 02/12/2019 05:51 AM, Antara Borwankar wrote:
Made changes in xmm7modem plugin to allow mutiple PDP context
activation and to assign correct network interface to the
activated PDP context.
---
plugins/udevng.c | 15 ++++++++++++++-
plugins/xmm7xxx.c | 28 ++++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 1 deletion(-)
I split this patch up into two commits, and applied. I did tweak a few
things, see below:
diff --git a/plugins/udevng.c b/plugins/udevng.c
index ff6e1fc..ce8cdee 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -1179,7 +1179,7 @@ static gboolean setup_gemalto(struct modem_info* modem)
static gboolean setup_xmm7xxx(struct modem_info *modem)
{
- const char *mdm = NULL, *net = NULL;
+ const char *mdm = NULL, *net = NULL, *net2 = NULL, *net3 = NULL;
GSList *list;
DBG("%s %s\n", __DATE__, __TIME__);
@@ -1200,6 +1200,10 @@ static gboolean setup_xmm7xxx(struct modem_info *modem)
} else if (g_strcmp0(info->subsystem, "net") == 0) {
if (g_strcmp0(info->number, "06") == 0)
net = info->devnode;
+ if (g_strcmp0(info->number, "08") == 0)
+ net2 = info->devnode;
+ if (g_strcmp0(info->number, "0a") == 0)
+ net3 = info->devnode;
}
} else {
if (g_strcmp0(info->subsystem, "tty") == 0) {
@@ -1220,6 +1224,15 @@ static gboolean setup_xmm7xxx(struct modem_info *modem)
ofono_modem_set_string(modem->modem, "Modem", mdm);
ofono_modem_set_string(modem->modem, "NetworkInterface", net);
+ if (net2)
+ ofono_modem_set_string(modem->modem, "NetworkInterface2", net2);
+
+ if (net3)
+ ofono_modem_set_string(modem->modem, "NetworkInterface3", net3);
+
+ ofono_modem_set_string(modem->modem, "CtrlPath", "/USBCDC/0");
+ ofono_modem_set_string(modem->modem, "DataPath",
"/USBHS/NCM/");
+
return TRUE;
}
@@ -1282,6 +1283,33 @@ static void xmm7xxx_post_online(struct ofono_modem *modem)
if (gprs && gc)
ofono_gprs_add_context(gprs, gc);
+ interface = ofono_modem_get_string(modem, "NetworkInterface");
+ ofono_gprs_context_set_interface(gc, interface);
Since ofono_gprs_context_set_interface doesn't perform NULL check on gc,
I put this and other instances behind the if (gprs && gc) statement
Regards,
-Denis