diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-21 14:45:13 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-22 05:23:11 +0100 |
commit | 408856088bcf376f5317803fd8d1747f8b920054 (patch) | |
tree | 9266e5698859483ef5b359f4d6f2e3e7cdd4f109 /openbsc/src/libcommon-cs | |
parent | 8469818e33ef81e9f707a0c4dd13d7b91ecf83f5 (diff) |
backport support for 3-digit MNC with leading zerosneels/mnc3
Backport the patches with the following change-ids:
osmo-bsc.git:
I5b097dbb6329f284e3b4914a744d5c3ad628f715
I8e722103344186fde118b26d8353db95a4581daa
I78f30aef7aa224b2e9db54c3a844d8f520b3aee0
I38ac98a4d25159cfd4f686efbfbaf8f00625a6d8
osmo-iuh.git:
I29ebcddd45fe3079f8883589a83cc7216a535475
Also apply change of ipac_bcch_info.cgi to struct osmo_cell_global_id in
src/ipaccess/network_listen.c, a change that appears to not have been necessary
in the new split repositories.
Related: OS#3010
Change-Id: Ibf50fd7e1ca5472d0a38fcb87c68227d6de44f42
Diffstat (limited to 'openbsc/src/libcommon-cs')
-rw-r--r-- | openbsc/src/libcommon-cs/common_cs.c | 6 | ||||
-rw-r--r-- | openbsc/src/libcommon-cs/common_cs_vty.c | 18 |
2 files changed, 20 insertions, 4 deletions
diff --git a/openbsc/src/libcommon-cs/common_cs.c b/openbsc/src/libcommon-cs/common_cs.c index d299427ea..d8d5ec777 100644 --- a/openbsc/src/libcommon-cs/common_cs.c +++ b/openbsc/src/libcommon-cs/common_cs.c @@ -63,8 +63,10 @@ struct gsm_network *gsm_network_init(void *ctx, net->auto_create_subscr = true; net->auto_assign_exten = true; - net->country_code = country_code; - net->network_code = network_code; + net->plmn = (struct osmo_plmn_id){ + .mcc = country_code, + .mnc = network_code, + }; INIT_LLIST_HEAD(&net->trans_list); INIT_LLIST_HEAD(&net->upqueue); diff --git a/openbsc/src/libcommon-cs/common_cs_vty.c b/openbsc/src/libcommon-cs/common_cs_vty.c index f7b48865f..c323b11e4 100644 --- a/openbsc/src/libcommon-cs/common_cs_vty.c +++ b/openbsc/src/libcommon-cs/common_cs_vty.c @@ -60,8 +60,14 @@ DEFUN(cfg_net_ncc, "Network Country Code to use\n") { struct gsm_network *gsmnet = gsmnet_from_vty(vty); + uint16_t mcc; - gsmnet->country_code = atoi(argv[0]); + if (osmo_mcc_from_str(argv[0], &mcc)) { + vty_out(vty, "%% Error decoding MCC: %s%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + gsmnet->plmn.mcc = mcc; return CMD_SUCCESS; } @@ -75,8 +81,16 @@ DEFUN(cfg_net_mnc, "Mobile Network Code to use\n") { struct gsm_network *gsmnet = gsmnet_from_vty(vty); + uint16_t mnc; + bool mnc_3_digits; + + if (osmo_mnc_from_str(argv[0], &mnc, &mnc_3_digits)) { + vty_out(vty, "%% Error decoding MNC: %s%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } - gsmnet->network_code = atoi(argv[0]); + gsmnet->plmn.mnc = mnc; + gsmnet->plmn.mnc_3_digits = mnc_3_digits; return CMD_SUCCESS; } |