osmo-hlr/src
Neels Hofmeyr 3f9d1977df db v6: determine 3G AUC IND from VLR name
Each VLR requesting auth tuples should use a distinct IND pool for 3G
auth.  So far we tied the IND to the GSUP peer connection; MSC and SGSN
were always distinct GSUP peers, they ended up using distinct INDs.

However, we have implemented a GSUP proxy, so that, in a distributed
setup, a remotely roaming subscriber has only one direct GSUP peer
proxying for both remote MSC and SGSN. That means as soon as a
subscriber roams to a different site, we would use the GSUP proxy name
to determine the IND instead of the separate MSC and SGSN. The site's
MSC and SGSN appear as the same client, get the same IND bucket, waste
SQNs rapidly and cause auth tuple generation load.

So instead of using the local client as IND, persistently keep a list of
VLR names and assign a different IND to each. Use the
gsup_req->source_name as indicator, which reflects the actual remote
VLR's name (remote MSC or SGSN).

Persist the site <-> IND assignments in the database.

Add an IND test to db_test.c

There was an earlier patch version that separated the IND pools by
cn_domain, but it turned out to add complex semantics, while only
solving one aspect of the "adjacent VLR" problem. We need a solution not
only for CS vs PS, but also for 2,3G vs 4G, and for sites that are
physically adjacent to each other. This patch version does not offer any
automatic solution for that -- as soon as more than 2^IND_bitlen
(usually 32) VLRs show up, it is the responsibility of the admin to
ensure the 'ind' table in the hlr.db does not have unfortunate IND
assignments. So far no VTY commands exist for that, they may be added in
the future.

Related: OS#4319
Change-Id: I6f0a6bbef3a27507605c3b4a0e1a89bdfd468374
2021-07-19 09:01:06 +00:00
..
gsupclient Bump version: 1.2.0.78-8c90-dirty → 1.3.0 2021-02-23 18:13:54 +01:00
mslookup Use OSMO_FD_* instead of deprecated BSC_FD_* 2020-10-18 22:39:01 +02:00
Makefile.am D-GSM 3/n: implement roaming by mslookup in osmo-hlr 2020-04-30 19:22:24 +02:00
auc.c move headers to include/osmocom/hlr 2019-11-20 01:25:39 +01:00
ctrl.c move headers to include/osmocom/hlr 2019-11-20 01:25:39 +01:00
db.c db v6: determine 3G AUC IND from VLR name 2021-07-19 09:01:06 +00:00
db_auc.c auc3g: officially wrap IND around IND_bitlen space 2020-04-30 19:22:24 +02:00
db_debug.c src/db.c: integrate SQLite3 with talloc allocator 2019-07-30 17:15:17 +00:00
db_hlr.c db v6: determine 3G AUC IND from VLR name 2021-07-19 09:01:06 +00:00
db_sql2c.sed Rename db_bootstrap.sed to db_sql2c.sed 2018-12-04 14:13:47 +01:00
dbd_decode_binary.c add osmo-hlr-db-tool, program to migrate from osmo-nitb db 2017-10-28 20:34:01 +02:00
dgsm.c D-GSM 3/n: implement roaming by mslookup in osmo-hlr 2020-04-30 19:22:24 +02:00
dgsm_vty.c Correct configuration written from vty 2021-02-26 01:21:41 +01:00
gsup_router.c 1/2: refactor: add and use lu_fsm, osmo_gsup_req, osmo_ipa_name 2020-04-30 19:16:09 +02:00
gsup_send.c 1/2: refactor: add and use lu_fsm, osmo_gsup_req, osmo_ipa_name 2020-04-30 19:16:09 +02:00
gsup_server.c db v6: determine 3G AUC IND from VLR name 2021-07-19 09:01:06 +00:00
hlr.c db v6: determine 3G AUC IND from VLR name 2021-07-19 09:01:06 +00:00
hlr_db_tool.c osmo-hlr-db-tool: Make import from osmo-nitb less "lossy" 2020-09-23 19:41:27 +02:00
hlr_ussd.c USSD: add special 'idle' handler to IUSE for testing 2020-11-17 18:50:27 +07:00
hlr_vty.c db v6: determine 3G AUC IND from VLR name 2021-07-19 09:01:06 +00:00
hlr_vty_subscr.c vty: enable show subscribers filtered by IMEI 2021-05-13 18:00:43 +00:00
logging.c D-GSM 3/n: implement roaming by mslookup in osmo-hlr 2020-04-30 19:22:24 +02:00
lu_fsm.c 2/2: wrap ipa_name in osmo_cni_peer_id with type enum and union 2020-04-30 19:19:17 +02:00
mslookup_server.c D-GSM 3/n: implement roaming by mslookup in osmo-hlr 2020-04-30 19:22:24 +02:00
mslookup_server_mdns.c osmo_mslookup_server_mdns_rx(): handle read() rc == 0 2020-05-04 19:15:29 +02:00
osmo-euse-demo.c move headers to include/osmocom/hlr 2019-11-20 01:25:39 +01:00
populate_hlr_db.pl populate_hlr_db.pl: Script to generate a HLR database 2016-05-03 18:51:40 +02:00
proxy.c D-GSM 3/n: implement roaming by mslookup in osmo-hlr 2020-04-30 19:22:24 +02:00
rand_fake.c initial import of osmo-gsup-hlr code so far 2016-04-28 07:18:49 +02:00
rand_urandom.c initial import of osmo-gsup-hlr code so far 2016-04-28 07:18:49 +02:00
remote_hlr.c D-GSM 3/n: implement roaming by mslookup in osmo-hlr 2020-04-30 19:22:24 +02:00
timestamp.c D-GSM 1/n: add mslookup server in osmo-hlr 2020-04-30 19:22:24 +02:00