Re: Bearers in mixed CDMA+LTE modems



On Wed, 2012-01-11 at 17:29 +0100, Aleksander Morgado wrote:
> Hey,
> 
> I believe we need a MMBearerType enum in the 0.6 API, so that we can
> tell in CreateBearer() whether we want a 3GPP or CDMA (well, or POTS)
> bearer. This property would be redundant for 3GPP-only, CDMA-only or
> POTS-only modems, but would be mandatory if we have a mixed
> 3GPP(LTE)+CDMA bearer. This value would also be shown as a property in
> the Bearer interface, so that we can know the type of the bearer behind
> a given DBus path. Another possibility to avoid the new enum would be to
> assume that if "apn" is given when creating the bearer, we want a 3GPP
> bearer, while if no "apn" is given we really want a CDMA bearer. But not
> sure I like to rely just on this "apn"-based logic. What do others think?

The problem with that approach is handoffs.  If you create a 3GPP/LTE
bearer and then leave LTE coverage where the device hands off to EVDO,
now your 3GPP bearer is a CDMA bearer.  In this scenario there's no
interruption of packet data service and you don't even know anything
happened except that the access technology changed from LTE to EVDO.

So I think (as you suggest below) that by default MM should make a best
guess based on the current registration of the device and the mode
preference.  If you're registered on the LTE network and your mode pref
is 4G_PREFERRED then of course we'd start an EPS bearer.  If your mode
pref is 3G_4G and you're registered with CDMA then we'd try to start a
CDMA bearer.  There are some carrier-specific issues with this however;
an ATD#777 CDMA PPP bearer cannot hand off to LTE on Verizon devices,
but handoff is supposed to be transparent when you use QMI instead of
PPP.

What you're asking about is what bearer to create if the device is
registered with (or can register with) two 3G networks that use
different access technology.  For example, in Canada, Bell Mobility and
Telus run both EVDO and HSPA networks.  If you're a user, do you care
which one you connect to with your Gobi card?  Maybe you do.

So the bearer type property should certainly be a *suggestion*, not
mandatory.  At least for now I don't think most people will use it, but
it doesn't hurt anything to add it.  But the next question is if you
request a 3GPP bearer and the device later hands off to CDMA, do you
terminate the connection?  I would say no, since the device is making
the decision to hand off based on your subscriber data (ie, SIM and/or
ESN/MEID) and that's supposed to be automatic.

> On a side note, during the Simple interface's Connect(), for the case of
> mixed 3GPP+CDMA modems, we would create both a 3GPP and a CDMA bearer,
> and then connect one or the other based on allowed/preferred modes
> preferences and based on our registration status in each network. Seems
> like a good start for the generic case.

Yeah, though handoffs complicate that, since the bearer might not stay a
3GPP bearer or a CDMA bearer.  This probably complicates the code a
bunch and I didn't think of this problem until you asked the question.
So maybe bearer objects need to be "soft" classes too, like modems, that
can change some details of their implementation on-the-fly?

The only post-initialization bearer stuff that might be 3GPP specific is
the secondary PDP/EPS context and the QoS stuff, but here maybe we can
just return errors if the bearer doesn't support it.  Besides the
initial hint, I don't know if we want to expose whether the bearer is
CDMA or 3GPP to clients at all.  The access technology of the modem
indicates the network type, so the bearer probably doesn't need to do it
too.

Dan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]