Hi Denis,

Den fre 16 aug. 2019 kl 17:55 skrev Denis Kenzior <[email protected]>:

> Hi Richard,
>
> On 8/16/19 5:44 AM, Richard Röjfors wrote:
> > Hi Denis,
> >
> > Den tors 15 aug. 2019 kl 22:47 skrev Denis Kenzior <[email protected]
> > <mailto:[email protected]>>:
> >
> >     Hi Richard,
> >
> >     On 8/14/19 1:24 PM, [email protected]
> >     <mailto:[email protected]> wrote:
> >      > From: Richard Röjfors <[email protected]
> >     <mailto:[email protected]>>
> >      >
> >      > Since we have a different condition for the attach state
> >      > when running on LTE, we should consider it in
> gprs_attached_update.
> >      > Previously it's done in some instances. But for instance if
> >      > the driver got detached from GPRS but now running on LTE with a
> >      > context up, we would be deattached.
> >
> >     So are you talking about a hand-over? Do we have logs to help
> visualize
> >     this?
> >
> >
> > Sorry I have no logs.
> > I think an example would be;
> > Let say we are registered on non-LTE, and GPRS do attach.
> > Then we flip to LTE and if GPRS gets de-attached. We would brutally
> > exit the attached state, since LTE is currently not considered in that
> > code path.
>
> Okay, so handover.  It would be helpful to have logs to help visualize
> what is happening.
>

As I said, I'm afraid I have no logs for this. I tried to visualize how it
could happen.

But anyway I think it makes more sense to "calculate" the attached state in
one place,
(gprs_attached_update) and one of the places this gets called from is when
GPRS detaches.


>
> >
> >
> >      > ---
> >      >   src/gprs.c | 52
> >     +++++++++++++++++++++++++++++-----------------------
> >      >   1 file changed, 29 insertions(+), 23 deletions(-)
> >      >
> >      > diff --git a/src/gprs.c b/src/gprs.c
> >      > index bba482cb..94d13f82 100644
> >      > --- a/src/gprs.c
> >      > +++ b/src/gprs.c
> >      > @@ -1571,13 +1571,34 @@ static void
> >     release_active_contexts(struct ofono_gprs *gprs)
> >      >       }
> >      >   }
> >      >
> >      > +static gboolean on_lte(struct ofono_gprs *gprs)
> >      > +{
> >      > +     if (ofono_netreg_get_technology(gprs->netreg) ==
> >      > +                     ACCESS_TECHNOLOGY_EUTRAN &&
> >     have_read_settings(gprs))
> >      > +             return TRUE;
> >      > +
> >      > +     return FALSE;
> >      > +}
> >      > +
> >      >   static void gprs_attached_update(struct ofono_gprs *gprs)
> >      >   {
> >      >       ofono_bool_t attached;
> >      > +     int status = gprs->status;
> >      >
> >      > -     attached = gprs->driver_attached &&
> >      > -             (gprs->status ==
> >     NETWORK_REGISTRATION_STATUS_REGISTERED ||
> >      > -                     gprs->status ==
> >     NETWORK_REGISTRATION_STATUS_ROAMING);
> >      > +     if (on_lte(gprs))
> >      > +             /*
> >      > +              * For LTE we attached status reflects successful
> >     context
> >      > +              * activation.
> >      > +              * Since we in gprs_netreg_update not even try to
> >     attach
> >      > +              * to GPRS if we are running on LTE, we can on some
> >     modems
> >      > +              * expect the gprs status to be unknown. That must
> not
> >      > +              * result in detaching...
> >      > +              */
> >      > +             attached = have_active_contexts(gprs);
> >
> >     On LTE Attached should just be always True.  Someone can correct me
> if
> >     I'm wrong, but a default context is a pre-requisite for E-UTRAN
> >     attachment.
> >
> >
> > I guess this is about race conditions, since we read back settings of
> > the context,
> > so in theory I think we might not consider the context available yet.
> > Should be
> > a very short period of time.
> > In netreg status we do not immediately change to attached in case of
> > LTE, we require the context settings to have been read first.
>
> I think it makes sense to signal Attached right away in the case that we
> know we are on LTE.  But I can accept your argument of not signaling
> Attached until the first context is active.  That is likely more driven
> by ConMan not being updated for LTE, which likely won't work in the end.
>

And I would like to add, that this how things are today, its nothing I have
or
inteded to change.
I just want to make sure we don't get deattached
because we miss to check for LTE in some places in the code.
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to