Project

General

Profile

Bug #2796

OsmoHLR doesn't update VLR during UpdateLocation

Added by laforge 12 months ago. Updated 2 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
Target version:
-
Start date:
12/30/2017
Due date:
% Done:

90%


Description

For some reason, the VLR column in the HLR table is not updated when a subscriber performs an Update Location procedure.


Related issues

Related to OsmoHLR - Bug #3154: osmo-hlr should send updated subscriber data to relevant VLR/SGSN onlyResolved2018-04-10

Related to OsmoMSC - Bug #3355: OsmoMSC doesn't provide unique IDTAG_SERNR in IPA CCMResolved2018-06-23

Related to OsmoSGSN - Bug #3356: OsmoSGSN doesn't provide unique IDTAG_SERNR in IPA CCMIn Progress2018-06-23

Related to OsmoMSC - Bug #3601: OsmoMSC's GSUP client doesn't send CN domain to the HLRResolved2018-09-28

History

#1 Updated by neels 10 months ago

What should go in the VLR column? We have the IPAC_IDTAG_SERNR producing something like "SGSN-00-00-00-00-00-00" and "MSC-00-00-00-00-00-00". The HLR also has sgsn_number and sgsn_address columns, could be set to the same / to the remote GSUP client address, by switching on osmo_gsup_message.cn_domain...

#2 Updated by neels 10 months ago

the IDTAG_SERNR is handled in osmo_gsup_server_ccm_cb() in osmo-hlr/src/gsup_server.c

#3 Updated by laforge 10 months ago

In a real 3GPP HLR with MAP, it's the global title of the respective VLR which is stored.

For us, it is "any other unique identifier of the VLR", and I think it hasn't been specified yet so far.

I'm against using the IP address, as this will break all kinds of dynamic address or NAT scenarios (which currently work as GSUP is a strict client->server protocol).

IDTAG_SERNR might be an idea, maybe also some other IDTAG? We should make it user-configurable then to ensure multiple MSCs have differnet identifiers.

#4 Updated by neels 8 months ago

  • Related to Bug #3154: osmo-hlr should send updated subscriber data to relevant VLR/SGSN only added

#5 Updated by laforge 6 months ago

  • Related to Bug #3355: OsmoMSC doesn't provide unique IDTAG_SERNR in IPA CCM added

#6 Updated by laforge 6 months ago

  • Related to Bug #3356: OsmoSGSN doesn't provide unique IDTAG_SERNR in IPA CCM added

#7 Updated by neels 5 months ago

(isn't this related to some of stsp's work in the HLR?)

#8 Updated by neels 3 months ago

With the next C3 approaching, I took a look at this again.

I have a patch that stores the IPAC_IDTAG_SERNR for VLR and SGSN number in the HLR database.
The only problem is that this vlr_number is specified as 15 digits max,
while the MSC and SGSN currently send e.g. 'MSC-00-00-00-00-00-00' -- that's 21 characters.

So the current patch says "skipping 'MSC-00-00-00-00-00-00' != 'MSC-00-00-00-00'" -- mismatch because the id is truncated on its round trip through struct hlr_subscriber and the database.

Would it be a bad idea to just make the vlr_number and sgsn_number fields in hlr_subscriber longer? They are currently limited by GT_MAX_DIGITS, which makes sense if it really were a Global Title. But all it would take is to enlarge the vlr_number and sgsn_number storage in struct hlr_subscriber.

DB wise, SQLite db bootstrapping gives a length indication of VARCHAR, but in fact this is just an optional indicator, and SQLite happily stores any length of string without modifications.

Another idea would be to strip the dashes, because MSC000000000000 is exactly 15 digits.

None of this is really nice though. Any ideas? Does it need to be nice?

#9 Updated by neels 3 months ago

  • Related to Bug #3601: OsmoMSC's GSUP client doesn't send CN domain to the HLR added

#10 Updated by laforge 3 months ago

I think the key aspect here is that the storage is completely transparent and
can store either ACII or binary data. global titles have no good/standard ASCII
representation, as they include tons of fields like NPI, TON, which are meta-data
next to the actual digits of the 'phone number'.

OsmoHLR should ideally treat this address as an opaqua block and not attempt to
interpret its content, assume it's ASCII or follows any specific format. It's just
something the VLR and SGSN specify during IPA CCM, and which is stored in the database
and used to route later requests to that given VLR or SGSN.

Having said that, we can of course increase the size of the field in the database.

#11 Updated by laforge 3 months ago

Since June, the laforge/ussd branch of osmo-hlr.git contains an untested commit to store the VLR identity in UpdateLocation. It's ChangeID Ib2611421f3638eadc361787af801fffe9a34bd8a

#12 Updated by neels 2 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 90

https://gerrit.osmocom.org/11232 is a combination of the mentioned branch and what I had tossed up.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)