RFC: sgsn should command/response set to 1 in gsm48_tx_gmm_ra_upd_rej?

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Holger Hans Peter Freyther holger at freyther.de
Fri Oct 14 23:25:41 UTC 2011


On 10/15/2011 12:46 AM, Holger Hans Peter Freyther wrote:
> On 10/15/2011 12:26 AM, Holger Hans Peter Freyther wrote:

Hi,

this is 'dangerous' but the below makes my E71 connect to the network. What
will happen now is that N(U) will count upwards and after some failures my
phone will do the GPRS ATTACH. Now this is dangerous as the TLLI we 'accept'
is not part of our network... so I think we should assign a new TLLI and use
the foreign one as old TLLI?

So how to move forward from here? when will we delete the TLLI? how to deal
with TLLIs that are not local (random, foreign, ...)? We should still create a
context but it should not clash with other parts? Shall we put RAC in this
context too? When will we purge old contexts?




before (note RX not knowing it, TX still not knowing it):
<0017> gprs_llc.c:700 LLC RX: unknown TLLI 0xb538c935, creating LLME on the fly
<0002> gprs_gmm.c:920 -> GMM RA UPDATE REQUEST type="RA updating"  REJECT
<0002> gprs_gmm.c:859 <- ROUTING AREA UPDATE REJECT
<0017> gprs_llc.c:118 TLLI 0xb538c935 is foreign, converting to local TLLI
0xf538c935
<0017> gprs_llc.c:343 LLC TX: unknown TLLI 0xb538c935, creating LLME on the fly


after:
<0017> gprs_llc.c:431 LLC SAPI=1 C   FCS=0x184703CMD=UI DATA
<0017> gprs_llc.c:118 TLLI 0xb538c935 is foreign, converting to local TLLI
0xf538c935
<0017> gprs_llc.c:118 TLLI 0xb538c935 is foreign, converting to local TLLI
0xf538c935
<0017> gprs_llc.c:702 LLC RX: unknown TLLI 0xb538c935, creating LLME on the fly
<0002> gprs_gmm.c:920 -> GMM RA UPDATE REQUEST type="RA updating"  REJECT
<0002> gprs_gmm.c:859 <- ROUTING AREA UPDATE REJECT
<0017> gprs_llc.c:118 TLLI 0xb538c935 is foreign, converting to local TLLI
0xf538c935



diff:

diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c
index 3d4e986..a9c88c2 100644
--- a/openbsc/src/gprs/gprs_llc.c
+++ b/openbsc/src/gprs/gprs_llc.c
@@ -157,8 +157,10 @@ static struct gprs_llc_llme *llme_alloc(uint32_t tlli)
        if (!llme)
                return NULL;

-       llme->tlli = tlli;
-       llme->old_tlli = 0xffffffff;
+       llme->tlli = tlli_foreign2local(tlli);
+       llme->old_tlli = tlli;
+       if (llme->old_tlli == llme->tlli)
+               llme->old_tlli = 0xffffffff;
        llme->state = GPRS_LLMS_UNASSIGNED;

        for (i = 0; i < ARRAY_SIZE(llme->lle); i++)





More information about the OpenBSC mailing list