Hi Jonas,
From what I recall, ublox does claim to support multiple PDP contexts
active at the same time. However, I don't know how this works in
practice as you need a unique network interface for each one. As it
stands today, given the udevng detection logic, this plugin is wrong.
Right, so the way this works is that the modem looks like either a
"bridge" or a "router". If configured as a "bridge", the outbound
packet's source address is used to determine which context to use; if
configured as a "router", the outbound packet's destination _network_ is
used to determine which context to use and a default route is set via
the _first activated context_ for packets that don't match the network
of any active context. That's a mouthful...!!!
Ugh. Both of these are really not ideal. I'd really rather have the
host manage all these details than having the modem do it. Oh well.
I take it that in bridged mode we should be setting multiple IP
addresses to the network interface?
The short of it is that this probably works in practice.
That depends. I suspect that it might not 'just work' for certain
classes of applications running on the host / application processor side.
Is it ok for the connection manager interface to see multiple active
contexts with the same Interface and the IP settings set to method
"dhcp". Will it run a DHCP client on each interface or is it expected
to be smart enough to recognize the common interface??? What would the
point be since the only thing that differs the contexts is the APN and
the connection manager shouldn't care about that particular detail...???
This all applies to "router" mode only, really.
uBlox is just being too smart here. The whole bridged vs router stuff
was never intended by 27.007. They made this all up themselves.
Neither oFono nor ConnMan were designed to handle such a setup.
The main issue will be for contexts used for MMS / OMA DM. My memory
from the Meego / Tizen days is fuzzy, but from what I recall we designed
oFono with the assumption that we will always get an IP address and a
separate interface for the MMS context.
There's also the proxy. MMS contexts frequently have a proxy associated
with them. Again, we assumed that if a proxy is set, then it is also in
a form of an IP address. The proxy is then added as a route on the
interface by oFono (see pri_setproxy for details). And in practical
terms there is no domain name resolution for these contexts. Everything
just goes to the proxy.
This was how e.g. mmsd was designed to work. See
https://git.kernel.org/pub/scm/network/ofono/mmsd.git. That project has
not been touched in some time though, but there are others that act very
similar.
In "bridge" mode, the above is probably moot since each context would
announce different IP settings and the connection manager would be
expected to apply those settings to the common interface. No idea if
this works in practice.
Right. Do note that oFono is responsible for setting the IP on the
interface. So in bridged mode, this would need to be fixed. Also, I
don't know whether connman supports multi-IP interfaces in the first place.
Another issue is that ConnMan ignores all contexts that are not of type
Internet. So for example, nobody (or at least neither oFono, nor
ConnMan) would set the domain name servers for MMS contexts.
Do you know how these multiple, active contexts are used in practice? In
particular with regard to ofono?
They are used, yes. MMS, OMA DM/device provisioning, etc.
If I were to follow the model of other plugins, the below patch would
seem appropriate...
A bit of insight here would be appreciated.
There are drivers for USB based modems that do this properly. See
xmm7xxx for example. Multiple PDP context support was added to that
recently.
Modems that used multiplexing had support for multiple PDP contexts
for quite some time. E.g. plugins/ifx, etc.
Anyway, patch looks fine to me. Let me know if you want me to apply
it or you want to take a stab at fixing the detection logic.
From this, it sounds like the multiple gprs-context atoms are probably
correct. I'll take a look at the xmm7xxx driver and see how it handles
things.
So this is still debatable :)
Regards,
-Denis
_______________________________________________
ofono mailing list
ofono@ofono.org
https://lists.ofono.org/mailman/listinfo/ofono