[PATCH] move to hex TMSI representation

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/.

Вадим Яницкий axilirator at gmail.com
Tue Mar 29 16:10:42 UTC 2016


Hello!

> thanks a lot, I am afraid we need one more round.

No problem :)

> -#define tmsi_from_string(str) strtoul(str, NULL, 10)
> +#define tmsi_from_string(str) strtoul(str + 2, NULL, 16)
>
> this macro is used for parsing strings from the network. We should not
modify it.

I cannot find where...

Searching 420 files for "tmsi_from_string" (regex)

/home/wmn/openbsc/openbsc/include/openbsc/gsm_subscriber.h:
   15  #define GSM_SUBSCRIBER_FIRST_CONTACT    0x00000001
   16  /* gprs_sgsn.h defines additional flags including and above bit 16
(0x10000) */
   17: #define tmsi_from_string(str) strtoul(str + 2, NULL, 16)
   18
   19  #define GSM_SUBSCRIBER_NO_EXPIRATION    0x0

/home/wmn/openbsc/openbsc/src/libcommon/gsm_subscriber_base.c:
  122  {
  123      struct gsm_subscriber *subscr;
  124:     uint8_t tmsi_val = tmsi_from_string(tmsi);
  125
  126      llist_for_each_entry(subscr, subscr_bsc_active_subscribers(),
entry) {

/home/wmn/openbsc/openbsc/src/libmsc/db.c:
  890      string = dbi_result_get_string(result, "tmsi");
  891      if (string)
  892:         subscr->tmsi = tmsi_from_string(string);
  893
  894      string = dbi_result_get_string(result, "name");

/home/wmn/openbsc/openbsc/src/libmsc/gsm_subscriber.c:
  215  {
  216      struct gsm_subscriber *subscr;
  217:     uint32_t tmsi_val = tmsi_from_string(tmsi);
  218
  219      /* we might have a record in memory already */

/home/wmn/openbsc/openbsc/tests/gsm0408/gsm0408_test.c:
   94      mi_len = gsm48_generate_mid_from_tmsi(mi, tmsi);
   95      gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len
- 2);
   96:     COMPARE((uint32_t)tmsi_from_string(mi_parsed), ==, tmsi);
   97
   98      /* imsi code */

5 matches across 5 files

> struct gsm_subscriber *subscr_active_by_tmsi(struct gsm_subscriber_group
*sgrp,
> -                                          uint32_t tmsi)
> +                                          const char *tmsi)
>
> why? the number of bytes needed fit in uint32_t so we should remain with
this internal storage. We should just make sure to always print it as hex.

Ok, I'll revert this changes.

> -#define SCHEMA_REVISION "4"
> +#define SCHEMA_REVISION "5"
>
> good, but I think we should change the schema to use uint32_t/INTEGER for
the TMSI instead of text.

I'll do it in db.c.


С наилучшими пожеланиями,
Яницкий Вадим.

2016-03-27 22:44 GMT+06:00 Holger Freyther <holger at freyther.de>:

>
> > On 27 Mar 2016, at 14:17, Vadim Yanitskiy <axilirator at gmail.com> wrote:
>
> Dear Vadim,
>
>
> >
> > In OpenBSC, we traditionally displayed a TMSI in its integer
> > representation, which is quite unusual in the telecom world. A TMSI is
> > normally printed as a series of 8 hex digits.
> >
> > This patch aligns OpenBSC with the telecom industry standard.
>
> thanks a lot, I am afraid we need one more round.
>
>
> > -#define tmsi_from_string(str) strtoul(str, NULL, 10)
> > +#define tmsi_from_string(str) strtoul(str + 2, NULL, 16)
>
> this macro is used for parsing strings from the network. We should not
> modify it.
>
>
>
> > struct gsm_subscriber *subscr_active_by_tmsi(struct gsm_subscriber_group
> *sgrp,
> > -                                          uint32_t tmsi)
> > +                                          const char *tmsi)
>
>
> why? the number of bytes needed fit in uint32_t so we should remain with
> this internal storage. We should just make sure to always print it as hex.
>
>
> > -#define SCHEMA_REVISION "4"
> > +#define SCHEMA_REVISION "5"
>
> good, but I think we should change the schema to use uint32_t/INTEGER for
> the TMSI instead of text.
>
>
>
> > +             /* Update old TMSI */
> > +             update = dbi_conn_queryf(conn,
> > +                             "UPDATE Subscriber "
> > +                             "SET tmsi = '0x%08x' "
> > +                             "WHERE id = %llu",
>
> but to int :)
>
>
> kind regards
>         holger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20160329/22a49035/attachment.htm>


More information about the OpenBSC mailing list