From 662fd8a29c6fbeb9adb18e4ee37c041db96f1e5b Mon Sep 17 00:00:00 2001 From: Lionel Gauthier <lionel.gauthier@eurecom.fr> Date: Thu, 2 Oct 2014 13:11:32 +0000 Subject: [PATCH] To resolv mnc length git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5829 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- openair-cn/UTILS/Makefile.am | 1 + openair-cn/UTILS/mcc_mnc_itu.c | 1811 ++++++++++++++++++++++++++++++++ openair-cn/UTILS/mcc_mnc_itu.h | 61 ++ 3 files changed, 1873 insertions(+) create mode 100755 openair-cn/UTILS/mcc_mnc_itu.c create mode 100755 openair-cn/UTILS/mcc_mnc_itu.h diff --git a/openair-cn/UTILS/Makefile.am b/openair-cn/UTILS/Makefile.am index f77f0b6ad5..f2a5d57fee 100644 --- a/openair-cn/UTILS/Makefile.am +++ b/openair-cn/UTILS/Makefile.am @@ -44,5 +44,6 @@ libutils_la_SOURCES = \ enum_string.h enum_string.c \ log.c log.h \ mme_config.c mme_config.h \ + mcc_mnc_itu.c mcc_mnc_itu.h \ mme_default_values.h \ queue.h tree.h diff --git a/openair-cn/UTILS/mcc_mnc_itu.c b/openair-cn/UTILS/mcc_mnc_itu.c new file mode 100755 index 0000000000..0310981b39 --- /dev/null +++ b/openair-cn/UTILS/mcc_mnc_itu.c @@ -0,0 +1,1811 @@ +/******************************************************************************* + OpenAirInterface + Copyright(c) 1999 - 2014 Eurecom + + OpenAirInterface is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + + OpenAirInterface is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OpenAirInterface.The full GNU General Public License is + included in this distribution in the file called "COPYING". If not, + see <http://www.gnu.org/licenses/>. + + Contact Information + OpenAirInterface Admin: openair_admin@eurecom.fr + OpenAirInterface Tech : openair_tech@eurecom.fr + OpenAirInterface Dev : openair4g-devel@eurecom.fr + + Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France. + + *******************************************************************************/ + +#include <stdlib.h> +#include <stdint.h> +#include <string.h> +#include <errno.h> +#include <limits.h> + +#include "assertions.h" +#include "mcc_mnc_itu.h" + +// From http://www.itu.int/pub/T-SP-E.212B-2014 +const mcc_mnc_list_t mcc_mnc_list[] = { + {412, "01"}, + {412, "20"}, + {412, "40"}, + {412, "50"}, + {412, "80"}, + {412, "88"}, + {276, "01"}, + {276, "02"}, + {276, "03"}, + {276, "04"}, + {603, "01"}, + {603, "02"}, + {262, "01"}, + {262, "02"}, + {262, "03"}, + {262, "04"}, + {262, "05"}, + {262, "06"}, + {262, "07"}, + {262, "08"}, + {262, "09"}, + {262, "10"}, + {262, "11"}, + {262, "12"}, + {262, "13"}, + {262, "14"}, + {262, "15"}, + {262, "16"}, + {262, "17"}, + {262, "18"}, + {262, "19"}, + {262, "20"}, + {262, "41"}, + {262, "42"}, + {262, "43"}, + {262, "77"}, + {262, "78"}, + {262, "79"}, + {213, "03"}, + {631, "02"}, + {631, "04"}, + {365, "010"}, + {365, "840"}, + {344, "030"}, + {344, "920"}, + {344, "930"}, + {420, "01"}, + {420, "03"}, + {722, "010"}, + {722, "020"}, + {722, "070"}, + {722, "310"}, + {722, "320"}, + {722, "330"}, + {722, "341"}, + {363, "01"}, + {505, "01"}, + {505, "02"}, + {505, "03"}, + {505, "04"}, + {505, "05"}, + {505, "06"}, + {505, "07"}, + {505, "08"}, + {505, "09"}, + {505, "10"}, + {505, "11"}, + {505, "12"}, + {505, "13"}, + {505, "14"}, + {505, "15"}, + {505, "16"}, + {505, "17"}, + {505, "18"}, + {505, "19"}, + {505, "20"}, + {505, "21"}, + {505, "22"}, + {505, "23"}, + {505, "24"}, + {505, "25"}, + {505, "26"}, + {505, "27"}, + {505, "28"}, + {505, "30"}, + {505, "31"}, + {505, "62"}, + {505, "68"}, + {505, "71"}, + {505, "72"}, + {505, "88"}, + {505, "90"}, + {505, "99"}, + {232, "01"}, + {232, "02"}, + {232, "03"}, + {232, "04"}, + {232, "05"}, + {232, "06"}, + {232, "07"}, + {232, "09"}, + {232, "10"}, + {232, "11"}, + {232, "12"}, + {232, "14"}, + {232, "15"}, + {232, "91"}, + {400, "01"}, + {400, "02"}, + {400, "03"}, + {400, "04"}, + {426, "01"}, + {426, "02"}, + {426, "03"}, + {426, "04"}, + {426, "05"}, + {470, "01"}, + {470, "02"}, + {470, "03"}, + {342, "600"}, + {342, "820"}, + {257, "01"}, + {257, "02"}, + {257, "03"}, + {257, "04"}, + {257, "05"}, + {257, "06"}, + {206, "01"}, + {206, "02"}, + {206, "05"}, + {206, "06"}, + {206, "07"}, + {206, "10"}, + {206, "20"}, + {702, "67"}, + {702, "68"}, + {616, "01"}, + {616, "02"}, + {616, "03"}, + {350, "000"}, + {402, "11"}, + {402, "17"}, + {736, "01"}, + {736, "02"}, + {736, "03"}, + {218, "03"}, + {218, "05"}, + {218, "90"}, + {652, "01"}, + {652, "02"}, + {652, "04"}, + {724, "00"}, + {724, "01"}, + {724, "02"}, + {724, "03"}, + {724, "04"}, + {724, "05"}, + {724, "06"}, + {724, "10"}, + {724, "11"}, + {724, "15"}, + {724, "16"}, + {724, "18"}, + {724, "23"}, + {724, "24"}, + {724, "30"}, + {724, "31"}, + {724, "32"}, + {724, "33"}, + {724, "34"}, + {724, "35"}, + {724, "36"}, + {724, "37"}, + {724, "38"}, + {724, "39"}, + {724, "54"}, + {724, "99"}, + {528, "11"}, + {284, "01"}, + {284, "05"}, + {613, "02"}, + {613, "03"}, + {642, "01"}, + {642, "02"}, + {642, "03"}, + {642, "07"}, + {642, "82"}, + {625, "01"}, + {625, "02"}, + {456, "01"}, + {456, "02"}, + {456, "03"}, + {456, "04"}, + {456, "05"}, + {456, "06"}, + {456, "08"}, + {456, "18"}, + {624, "01"}, + {624, "02"}, + {302, "220"}, + {302, "221"}, + {302, "222"}, + {302, "250"}, + {302, "270"}, + {302, "290"}, + {302, "320"}, + {302, "340"}, + {302, "360"}, + {302, "370"}, + {302, "380"}, + {302, "390"}, + {302, "490"}, + {302, "500"}, + {302, "510"}, + {302, "530"}, + {302, "560"}, + {302, "570"}, + {302, "590"}, + {302, "610"}, + {302, "620"}, + {302, "630"}, + {302, "640"}, + {302, "656"}, + {302, "660"}, + {302, "670"}, + {302, "680"}, + {302, "690"}, + {302, "710"}, + {302, "720"}, + {302, "730"}, + {302, "740"}, + {302, "760"}, + {302, "770"}, + {302, "780"}, + {302, "860"}, + {302, "880"}, + {302, "940"}, + {302, "990"}, + {346, "140"}, + {623, "01"}, + {623, "02"}, + {623, "03"}, + {730, "01"}, + {730, "02"}, + {730, "03"}, + {730, "04"}, + {730, "05"}, + {730, "06"}, + {730, "07"}, + {730, "08"}, + {730, "09"}, + {730, "10"}, + {730, "11"}, + {730, "12"}, + {730, "13"}, + {730, "14"}, + {730, "15"}, + {460, "00"}, + {460, "01"}, + {460, "03"}, + {460, "04"}, + {280, "01"}, + {280, "10"}, + {280, "20"}, + {280, "22"}, + {732, "001"}, + {732, "002"}, + {732, "020"}, + {732, "099"}, + {732, "101"}, + {732, "102"}, + {732, "103"}, + {732, "111"}, + {732, "123"}, + {732, "130"}, + {654, "01"}, + {629, "01"}, + {629, "10"}, + {548, "01"}, + {450, "02"}, + {450, "03"}, + {450, "06"}, + {712, "01"}, + {712, "02"}, + {712, "03"}, + {712, "04"}, + {712, "20"}, + {612, "02"}, + {612, "03"}, + {612, "04"}, + {612, "05"}, + {612, "06"}, + {612, "07"}, + {219, "01"}, + {219, "02"}, + {219, "10"}, + {368, "01"}, + {362, "51"}, + {362, "69"}, + {362, "91"}, + {238, "01"}, + {238, "02"}, + {238, "03"}, + {238, "04"}, + {238, "06"}, + {238, "08"}, + {238, "10"}, + {238, "12"}, + {238, "13"}, + {238, "20"}, + {238, "28"}, + {238, "30"}, + {238, "43"}, + {238, "66"}, + {238, "77"}, + {638, "01"}, + {370, "01"}, + {370, "02"}, + {370, "03"}, + {370, "04"}, + {366, "110"}, + {602, "01"}, + {602, "02"}, + {602, "03"}, + {706, "01"}, + {706, "02"}, + {706, "03"}, + {424, "02"}, + {740, "00"}, + {740, "01"}, + {740, "02"}, + {214, "01"}, + {214, "03"}, + {214, "04"}, + {214, "05"}, + {214, "06"}, + {214, "07"}, + {214, "08"}, + {214, "09"}, + {214, "10"}, + {214, "11"}, + {214, "12"}, + {214, "13"}, + {214, "14"}, + {214, "15"}, + {214, "16"}, + {214, "17"}, + {214, "18"}, + {214, "19"}, + {214, "20"}, + {214, "21"}, + {214, "22"}, + {214, "24"}, + {214, "25"}, + {214, "26"}, + {214, "27"}, + {214, "28"}, + {214, "29"}, + {214, "30"}, + {214, "31"}, + {214, "32"}, + {248, "01"}, + {248, "02"}, + {248, "03"}, + {248, "04"}, + {248, "05"}, + {248, "06"}, + {248, "07"}, + {248, "08"}, + {248, "09"}, + {248, "71"}, + {310, "010"}, + {310, "012"}, + {310, "013"}, + {310, "016"}, + {310, "017"}, + {310, "020"}, + {310, "030"}, + {310, "035"}, + {310, "040"}, + {310, "050"}, + {310, "060"}, + {310, "070"}, + {310, "080"}, + {310, "090"}, + {310, "100"}, + {310, "110"}, + {310, "120"}, + {310, "130"}, + {310, "140"}, + {310, "150"}, + {310, "160"}, + {310, "170"}, + {310, "180"}, + {310, "190"}, + {310, "200"}, + {310, "210"}, + {310, "220"}, + {310, "230"}, + {310, "240"}, + {310, "250"}, + {310, "260"}, + {310, "270"}, + {310, "280"}, + {310, "290"}, + {310, "300"}, + {310, "310"}, + {310, "320"}, + {310, "330"}, + {310, "340"}, + {310, "350"}, + {310, "360"}, + {310, "370"}, + {310, "380"}, + {310, "390"}, + {310, "400"}, + {310, "410"}, + {310, "420"}, + {310, "430"}, + {310, "440"}, + {310, "450"}, + {310, "460"}, + {310, "470"}, + {310, "480"}, + {310, "490"}, + {310, "500"}, + {310, "510"}, + {310, "520"}, + {310, "530"}, + {310, "540"}, + {310, "550"}, + {310, "560"}, + {310, "570"}, + {310, "580"}, + {310, "590"}, + {310, "600"}, + {310, "610"}, + {310, "620"}, + {310, "640"}, + {310, "650"}, + {310, "660"}, + {310, "670"}, + {310, "680"}, + {310, "690"}, + {310, "700"}, + {310, "710"}, + {310, "720"}, + {310, "730"}, + {310, "740"}, + {310, "750"}, + {310, "760"}, + {310, "770"}, + {310, "780"}, + {310, "790"}, + {310, "800"}, + {310, "810"}, + {310, "820"}, + {310, "830"}, + {310, "840"}, + {310, "850"}, + {310, "860"}, + {310, "870"}, + {310, "880"}, + {310, "890"}, + {310, "900"}, + {310, "910"}, + {310, "920"}, + {310, "930"}, + {310, "940"}, + {310, "950"}, + {310, "960"}, + {310, "970"}, + {310, "980"}, + {310, "990"}, + {311, "000"}, + {311, "010"}, + {311, "020"}, + {311, "030"}, + {311, "040"}, + {311, "050"}, + {311, "060"}, + {311, "070"}, + {311, "080"}, + {311, "090"}, + {311, "100"}, + {311, "110"}, + {311, "120"}, + {311, "130"}, + {311, "140"}, + {311, "150"}, + {311, "160"}, + {311, "170"}, + {311, "180"}, + {311, "190"}, + {311, "200"}, + {311, "210"}, + {311, "220"}, + {311, "230"}, + {311, "240"}, + {311, "250"}, + {311, "260"}, + {311, "270"}, + {311, "271"}, + {311, "272"}, + {311, "273"}, + {311, "274"}, + {311, "275"}, + {311, "276"}, + {311, "277"}, + {311, "278"}, + {311, "279"}, + {311, "280"}, + {311, "281"}, + {311, "282"}, + {311, "283"}, + {311, "284"}, + {311, "285"}, + {311, "286"}, + {311, "287"}, + {311, "288"}, + {311, "289"}, + {311, "290"}, + {311, "300"}, + {311, "310"}, + {311, "320"}, + {311, "330"}, + {311, "340"}, + {311, "350"}, + {311, "360"}, + {311, "370"}, + {311, "380"}, + {311, "390"}, + {311, "410"}, + {311, "420"}, + {311, "430"}, + {311, "440"}, + {311, "450"}, + {311, "460"}, + {311, "470"}, + {311, "480"}, + {311, "481"}, + {311, "482"}, + {311, "483"}, + {311, "484"}, + {311, "485"}, + {311, "486"}, + {311, "487"}, + {311, "488"}, + {311, "489"}, + {311, "490"}, + {311, "500"}, + {311, "510"}, + {311, "520"}, + {311, "530"}, + {311, "540"}, + {311, "550"}, + {311, "560"}, + {311, "570"}, + {311, "580"}, + {311, "590"}, + {311, "600"}, + {311, "610"}, + {311, "620"}, + {311, "630"}, + {311, "640"}, + {311, "650"}, + {311, "660"}, + {311, "670"}, + {311, "680"}, + {311, "690"}, + {311, "700"}, + {311, "710"}, + {311, "720"}, + {311, "730"}, + {311, "740"}, + {311, "750"}, + {311, "760"}, + {311, "770"}, + {311, "800"}, + {311, "810"}, + {311, "820"}, + {311, "830"}, + {311, "840"}, + {311, "850"}, + {311, "860"}, + {311, "870"}, + {311, "880"}, + {311, "890"}, + {311, "900"}, + {311, "910"}, + {311, "920"}, + {311, "940"}, + {311, "950"}, + {311, "960"}, + {311, "970"}, + {311, "980"}, + {311, "990"}, + {312, "010"}, + {312, "020"}, + {312, "030"}, + {312, "040"}, + {312, "050"}, + {312, "060"}, + {312, "070"}, + {312, "080"}, + {312, "090"}, + {312, "100"}, + {312, "110"}, + {312, "120"}, + {312, "130"}, + {312, "140"}, + {312, "150"}, + {312, "160"}, + {312, "170"}, + {312, "180"}, + {312, "190"}, + {312, "200"}, + {313, "100"}, + {316, "010"}, + {316, "011"}, + {636, "01"}, + {750, "001"}, + {250, "01"}, + {250, "02"}, + {250, "03"}, + {250, "04"}, + {250, "05"}, + {250, "07"}, + {250, "10"}, + {250, "11"}, + {250, "12"}, + {250, "13"}, + {250, "16"}, + {250, "17"}, + {250, "19"}, + {250, "20"}, + {250, "28"}, + {250, "39"}, + {250, "44"}, + {250, "92"}, + {250, "93"}, + {250, "99"}, + {274, "02"}, + {288, "01"}, + {288, "02"}, + {542, "01"}, + {542, "02"}, + {542, "03"}, + {244, "03"}, + {244, "04"}, + {244, "05"}, + {244, "09"}, + {244, "10"}, + {244, "12"}, + {244, "13"}, + {244, "14"}, + {244, "16"}, + {244, "21"}, + {244, "29"}, + {244, "91"}, + {208, "01"}, + {208, "02"}, + {208, "03"}, + {208, "04"}, + {208, "05"}, + {208, "06"}, + {208, "07"}, + {208, "09"}, + {208, "10"}, + {208, "11"}, + {208, "13"}, + {208, "14"}, + {208, "15"}, + {208, "20"}, + {208, "21"}, + {208, "22"}, + {208, "23"}, + {208, "24"}, + {208, "25"}, + {208, "26"}, + {208, "27"}, + {208, "28"}, + {208, "29"}, + {208, "30"}, + {208, "31"}, + {208, "34"}, // NON ITU, ADDED BY EURECOM + {208, "88"}, + {208, "89"}, + {208, "90"}, + {208, "91"}, + {208, "92"}, // NON ITU, ADDED BY EURECOM + {647, "00"}, + {647, "02"}, + {647, "10"}, + {628, "01"}, + {628, "02"}, + {628, "03"}, + {628, "04"}, + {628, "05"}, + {607, "01"}, + {607, "02"}, + {607, "03"}, + {607, "04"}, + {282, "01"}, + {282, "02"}, + {282, "03"}, + {282, "04"}, + {282, "05"}, + {282, "06"}, + {282, "07"}, + {620, "01"}, + {620, "02"}, + {620, "03"}, + {620, "04"}, + {620, "11"}, + {266, "01"}, + {266, "09"}, + {202, "01"}, + {202, "02"}, + {202, "03"}, + {202, "04"}, + {202, "05"}, + {202, "06"}, + {202, "07"}, + {202, "09"}, + {202, "10"}, + {352, "110"}, + {290, "01"}, + {340, "01"}, + {340, "02"}, + {340, "03"}, + {340, "08"}, + {340, "10"}, + {340, "20"}, + {704, "01"}, + {704, "02"}, + {704, "03"}, + {611, "01"}, + {611, "02"}, + {611, "05"}, + {627, "01"}, + {632, "01"}, + {632, "02"}, + {738, "002"}, + {738, "01"}, + {340, "11"}, + {372, "01"}, + {372, "02"}, + {372, "03"}, + {708, "001"}, + {708, "002"}, + {708, "040"}, + {454, "00"}, + {454, "01"}, + {454, "02"}, + {454, "03"}, + {454, "04"}, + {454, "05"}, + {454, "06"}, + {454, "07"}, + {454, "08"}, + {454, "09"}, + {454, "10"}, + {454, "11"}, + {454, "12"}, + {454, "15"}, + {454, "16"}, + {454, "18"}, + {454, "19"}, + {454, "2X"}, + {454, "3X"}, + {216, "01"}, + {216, "30"}, + {216, "70"}, + {216, "71"}, + {404, "00"}, + {404, "01"}, + {404, "02"}, + {404, "03"}, + {404, "04"}, + {404, "05"}, + {404, "06"}, + {404, "07"}, + {404, "09"}, + {404, "10"}, + {404, "11"}, + {404, "12"}, + {404, "13"}, + {404, "14"}, + {404, "15"}, + {404, "16"}, + {404, "17"}, + {404, "18"}, + {404, "19"}, + {404, "20"}, + {404, "21"}, + {404, "22"}, + {404, "23"}, + {404, "24"}, + {404, "25"}, + {404, "27"}, + {404, "29"}, + {404, "30"}, + {404, "31"}, + {404, "33"}, + {404, "34"}, + {404, "35"}, + {404, "36"}, + {404, "37"}, + {404, "38"}, + {404, "40"}, + {404, "41"}, + {404, "42"}, + {404, "43"}, + {404, "44"}, + {404, "46"}, + {404, "48"}, + {404, "49"}, + {404, "50"}, + {404, "51"}, + {404, "52"}, + {404, "53"}, + {404, "54"}, + {404, "55"}, + {404, "56"}, + {404, "57"}, + {404, "58"}, + {404, "59"}, + {404, "60"}, + {404, "61"}, + {404, "62"}, + {404, "63"}, + {404, "64"}, + {404, "65"}, + {404, "66"}, + {404, "67"}, + {404, "68"}, + {404, "69"}, + {404, "70"}, + {404, "71"}, + {404, "72"}, + {404, "73"}, + {404, "74"}, + {404, "75"}, + {404, "76"}, + {404, "77"}, + {404, "78"}, + {404, "79"}, + {404, "80"}, + {404, "81"}, + {404, "82"}, + {404, "83"}, + {404, "84"}, + {404, "85"}, + {404, "86"}, + {404, "87"}, + {404, "88"}, + {404, "89"}, + {404, "90"}, + {404, "91"}, + {404, "92"}, + {404, "93"}, + {404, "94"}, + {404, "95"}, + {404, "96"}, + {404, "97"}, + {404, "98"}, + {404, "99"}, + {405, "000"}, + {405, "005"}, + {405, "006"}, + {405, "007"}, + {405, "009"}, + {405, "010"}, + {405, "011"}, + {405, "012"}, + {405, "013"}, + {405, "014"}, + {405, "018"}, + {405, "020"}, + {405, "021"}, + {405, "022"}, + {405, "025"}, + {405, "027"}, + {405, "029"}, + {405, "030"}, + {405, "031"}, + {405, "032"}, + {405, "033"}, + {405, "034"}, + {405, "035"}, + {405, "036"}, + {405, "037"}, + {405, "038"}, + {405, "039"}, + {405, "040"}, + {405, "041"}, + {405, "042"}, + {405, "043"}, + {405, "044"}, + {405, "045"}, + {405, "046"}, + {405, "047"}, + {405, "08"}, + {405, "12"}, + {405, "15"}, + {405, "17"}, + {405, "23"}, + {405, "28"}, + {405, "52"}, + {405, "53"}, + {405, "54"}, + {405, "55"}, + {405, "56"}, + {405, "66"}, + {405, "67"}, + {405, "68"}, + {405, "70"}, + {405, "71"}, + {405, "72"}, + {405, "73"}, + {405, "74"}, + {405, "750"}, + {405, "751"}, + {405, "752"}, + {405, "753"}, + {405, "754"}, + {405, "755"}, + {405, "76"}, + {405, "77"}, + {405, "799"}, + {405, "800"}, + {405, "801"}, + {405, "802"}, + {405, "803"}, + {405, "804"}, + {405, "805"}, + {405, "806"}, + {405, "807"}, + {405, "808"}, + {405, "809"}, + {405, "81"}, + {405, "82"}, + {405, "83"}, + {405, "84"}, + {405, "85"}, + {405, "86"}, + {510, "00"}, + {510, "01"}, + {510, "08"}, + {510, "10"}, + {510, "11"}, + {510, "21"}, + {510, "28"}, + {432, "11"}, + {432, "14"}, + {432, "19"}, + {418, "05"}, + {418, "20"}, + {418, "30"}, + {418, "40"}, + {418, "47"}, + {418, "48"}, + {418, "49"}, + {418, "62"}, + {418, "70"}, + {418, "80"}, + {418, "81"}, + {418, "83"}, + {418, "84"}, + {418, "85"}, + {418, "86"}, + {418, "87"}, + {418, "88"}, + {418, "89"}, + {418, "91"}, + {418, "92"}, + {418, "93"}, + {418, "94"}, + {272, "01"}, + {272, "02"}, + {272, "03"}, + {272, "07"}, + {272, "09"}, + {274, "01"}, + {274, "02"}, + {274, "03"}, + {274, "04"}, + {274, "07"}, + {425, "01"}, + {425, "02"}, + {425, "03"}, + {425, "04"}, + {425, "06"}, + {425, "07"}, + {425, "08"}, + {425, "11"}, + {425, "12"}, + {425, "13"}, + {425, "14"}, + {425, "15"}, + {425, "16"}, + {425, "17"}, + {425, "18"}, + {425, "19"}, + {425, "20"}, + {425, "21"}, + {222, "01"}, + {222, "02"}, + {222, "10"}, + {222, "77"}, + {222, "88"}, + {222, "98"}, + {222, "99"}, + {338, "020"}, + {338, "050"}, + {338, "110"}, + {440, "01"}, + {440, "02"}, + {440, "03"}, + {440, "04"}, + {440, "06"}, + {440, "07"}, + {440, "08"}, + {440, "09"}, + {440, "10"}, + {440, "11"}, + {440, "12"}, + {440, "13"}, + {440, "14"}, + {440, "15"}, + {440, "16"}, + {440, "17"}, + {440, "18"}, + {440, "19"}, + {440, "20"}, + {440, "21"}, + {440, "22"}, + {440, "23"}, + {440, "24"}, + {440, "25"}, + {440, "26"}, + {440, "27"}, + {440, "28"}, + {440, "29"}, + {440, "30"}, + {440, "31"}, + {440, "32"}, + {440, "33"}, + {440, "34"}, + {440, "35"}, + {440, "36"}, + {440, "37"}, + {440, "38"}, + {440, "39"}, + {440, "40"}, + {440, "41"}, + {440, "42"}, + {440, "43"}, + {440, "44"}, + {440, "45"}, + {440, "46"}, + {440, "47"}, + {440, "48"}, + {440, "49"}, + {440, "50"}, + {440, "51"}, + {440, "52"}, + {440, "53"}, + {440, "54"}, + {440, "55"}, + {440, "56"}, + {440, "58"}, + {440, "60"}, + {440, "61"}, + {440, "62"}, + {440, "63"}, + {440, "64"}, + {440, "65"}, + {440, "66"}, + {440, "67"}, + {440, "68"}, + {440, "69"}, + {440, "70"}, + {440, "71"}, + {440, "72"}, + {440, "73"}, + {440, "74"}, + {440, "75"}, + {440, "76"}, + {440, "77"}, + {440, "78"}, + {440, "79"}, + {440, "80"}, + {440, "81"}, + {440, "82"}, + {440, "83"}, + {440, "84"}, + {440, "85"}, + {440, "86"}, + {440, "87"}, + {440, "88"}, + {440, "89"}, + {440, "90"}, + {440, "92"}, + {440, "93"}, + {440, "94"}, + {440, "95"}, + {440, "96"}, + {440, "97"}, + {440, "98"}, + {440, "99"}, + {441, "40"}, + {441, "41"}, + {441, "42"}, + {441, "43"}, + {441, "44"}, + {441, "45"}, + {441, "50"}, + {441, "51"}, + {441, "61"}, + {441, "62"}, + {441, "63"}, + {441, "64"}, + {441, "65"}, + {441, "70"}, + {441, "90"}, + {441, "91"}, + {441, "92"}, + {441, "93"}, + {441, "94"}, + {441, "98"}, + {441, "99"}, + {416, "01"}, + {416, "02"}, + {416, "03"}, + {416, "77"}, + {401, "01"}, + {401, "02"}, + {639, "02"}, + {639, "03"}, + {437, "01"}, + {419, "02"}, + {419, "03"}, + {419, "04"}, + {457, "01"}, + {457, "02"}, + {457, "08"}, + {651, "01"}, + {651, "02"}, + {247, "01"}, + {247, "02"}, + {247, "03"}, + {247, "04"}, + {247, "05"}, + {247, "06"}, + {247, "07"}, + {247, "08"}, + {247, "09"}, + {294, "01"}, + {294, "02"}, + {294, "03"}, + {294, "10"}, + {294, "11"}, + {415, "05"}, + {415, "32"}, + {415, "33"}, + {415, "34"}, + {415, "35"}, + {415, "36"}, + {415, "37"}, + {415, "38"}, + {415, "39"}, + {618, "04"}, + {228, "01"}, + {295, "01"}, + {295, "02"}, + {295, "05"}, + {295, "06"}, + {246, "01"}, + {246, "02"}, + {246, "03"}, + {270, "01"}, + {270, "02"}, + {270, "10"}, + {270, "77"}, + {270, "78"}, + {270, "99"}, + {455, "00"}, + {455, "01"}, + {455, "02"}, + {455, "03"}, + {455, "04"}, + {455, "05"}, + {455, "06"}, + {646, "01"}, + {646, "02"}, + {646, "04"}, + {502, "10"}, + {502, "12"}, + {502, "13"}, + {502, "14"}, + {502, "16"}, + {502, "17"}, + {502, "18"}, + {502, "19"}, + {502, "20"}, + {650, "01"}, + {650, "10"}, + {472, "01"}, + {610, "01"}, + {278, "01"}, + {278, "21"}, + {278, "77"}, + {604, "00"}, + {604, "01"}, + {340, "12"}, + {617, "01"}, + {617, "02"}, + {617, "03"}, + {617, "10"}, + {609, "01"}, + {609, "02"}, + {609, "10"}, + {334, "001"}, + {334, "010"}, + {334, "020"}, + {334, "030"}, + {334, "040"}, + {334, "050"}, + {334, "060"}, + {334, "066"}, + {334, "070"}, + {334, "080"}, + {334, "090"}, + {550, "01"}, + {259, "01"}, + {259, "02"}, + {259, "04"}, + {259, "05"}, + {259, "99"}, + {428, "99"}, + {297, "01"}, + {297, "02"}, + {297, "03"}, + {354, "860"}, + {643, "01"}, + {643, "03"}, + {643, "04"}, + {414, "01"}, + {649, "01"}, + {649, "02"}, + {649, "03"}, + {542, "02"}, + {429, "01"}, + {710, "21"}, + {710, "73"}, + {614, "01"}, + {614, "02"}, + {614, "03"}, + {621, "20"}, + {621, "30"}, + {621, "40"}, + {621, "50"}, + {621, "60"}, + {555, "01"}, + {242, "01"}, + {242, "02"}, + {242, "03"}, + {242, "04"}, + {242, "05"}, + {242, "07"}, + {242, "08"}, + {242, "09"}, + {242, "10"}, + {242, "11"}, + {242, "12"}, + {242, "20"}, + {242, "21"}, + {242, "22"}, + {242, "23"}, + {242, "24"}, + {546, "01"}, + {530, "00"}, + {530, "01"}, + {530, "02"}, + {530, "03"}, + {530, "04"}, + {530, "05"}, + {530, "06"}, + {530, "07"}, + {530, "24"}, + {422, "02"}, + {422, "03"}, + {422, "04"}, + {641, "01"}, + {641, "10"}, + {641, "11"}, + {641, "14"}, + {641, "18"}, + {641, "22"}, + {641, "30"}, + {641, "33"}, + {641, "40"}, + {641, "44"}, + {641, "66"}, + {434, "01"}, + {434, "02"}, + {434, "04"}, + {434, "05"}, + {434, "07"}, + {410, "01"}, + {410, "03"}, + {410, "04"}, + {410, "06"}, + {410, "07"}, + {552, "01"}, + {714, "01"}, + {714, "02"}, + {714, "020"}, + {714, "03"}, + {714, "04"}, + {537, "01"}, + {537, "02"}, + {537, "03"}, + {744, "01"}, + {744, "02"}, + {744, "03"}, + {204, "01"}, + {204, "02"}, + {204, "03"}, + {204, "04"}, + {204, "05"}, + {204, "06"}, + {204, "07"}, + {204, "08"}, + {204, "09"}, + {204, "10"}, + {204, "12"}, + {204, "13"}, + {204, "15"}, + {204, "16"}, + {204, "17"}, + {204, "18"}, + {204, "19"}, + {204, "20"}, + {204, "21"}, + {204, "22"}, + {204, "23"}, + {204, "24"}, + {204, "25"}, + {204, "26"}, + {204, "28"}, + {204, "29"}, + {204, "60"}, + {204, "61"}, + {204, "64"}, + {204, "65"}, + {204, "66"}, + {204, "67"}, + {204, "68"}, + {204, "69"}, + {716, "10"}, + {515, "01"}, + {515, "02"}, + {515, "03"}, + {515, "05"}, + {260, "01"}, + {260, "02"}, + {260, "03"}, + {260, "04"}, + {260, "05"}, + {260, "06"}, + {260, "07"}, + {260, "08"}, + {260, "09"}, + {260, "10"}, + {260, "11"}, + {260, "12"}, + {260, "13"}, + {260, "14"}, + {260, "15"}, + {260, "16"}, + {260, "17"}, + {260, "18"}, + {260, "19"}, + {260, "20"}, + {260, "21"}, + {260, "22"}, + {260, "23"}, + {260, "24"}, + {260, "25"}, + {260, "26"}, + {260, "27"}, + {260, "28"}, + {260, "29"}, + {260, "30"}, + {260, "31"}, + {260, "32"}, + {260, "33"}, + {260, "34"}, + {260, "98"}, + {547, "10"}, + {547, "15"}, + {547, "20"}, + {268, "01"}, + {268, "03"}, + {268, "05"}, + {268, "06"}, + {427, "01"}, + {427, "06"}, + {630, "01"}, + {630, "02"}, + {630, "05"}, + {630, "86"}, + {630, "88"}, + {630, "89"}, + {630, "90"}, + {230, "01"}, + {230, "02"}, + {230, "03"}, + {230, "04"}, + {230, "05"}, + {230, "07"}, + {230, "08"}, + {230, "98"}, + {417, "01"}, + {417, "02"}, + {417, "09"}, + {226, "01"}, + {226, "02"}, + {226, "03"}, + {226, "04"}, + {226, "05"}, + {226, "06"}, + {226, "10"}, + {226, "11"}, + {234, "00"}, + {234, "01"}, + {234, "02"}, + {234, "03"}, + {234, "04"}, + {234, "05"}, + {234, "06"}, + {234, "07"}, + {234, "08"}, + {234, "09"}, + {234, "10"}, + {234, "11"}, + {234, "12"}, + {234, "13"}, + {234, "14"}, + {234, "15"}, + {234, "16"}, + {234, "17"}, + {234, "18"}, + {234, "19"}, + {234, "20"}, + {234, "21"}, + {234, "22"}, + {234, "23"}, + {234, "24"}, + {234, "25"}, + {234, "26"}, + {234, "27"}, + {234, "28"}, + {234, "29"}, + {234, "30"}, + {234, "31"}, + {234, "32"}, + {234, "33"}, + {234, "34"}, + {234, "35"}, + {234, "36"}, + {234, "37"}, + {234, "38"}, + {234, "39"}, + {234, "50"}, + {234, "51"}, + {234, "52"}, + {234, "53"}, + {234, "55"}, + {234, "58"}, + {234, "76"}, + {234, "78"}, + {234, "86"}, + {235, "00"}, + {235, "01"}, + {235, "02"}, + {235, "77"}, + {235, "91"}, + {235, "92"}, + {235, "94"}, + {235, "95"}, + {635, "10"}, + {635, "13"}, + {635, "14"}, + {635, "17"}, + {358, "110"}, + {356, "110"}, + {292, "01"}, + {308, "01"}, + {360, "110"}, + {540, "02"}, + {549, "01"}, + {549, "27"}, + {626, "01"}, + {608, "01"}, + {608, "02"}, + {608, "03"}, + {608, "04"}, + {220, "01"}, + {220, "03"}, + {220, "05"}, + {633, "01"}, + {633, "02"}, + {633, "10"}, + {619, "01"}, + {619, "02"}, + {619, "03"}, + {619, "04"}, + {619, "05"}, + {619, "25"}, + {619, "40"}, + {619, "50"}, + {525, "01"}, + {525, "02"}, + {525, "03"}, + {525, "05"}, + {525, "12"}, + {231, "01"}, + {231, "02"}, + {231, "04"}, + {231, "05"}, + {293, "40"}, + {293, "41"}, + {293, "64"}, + {293, "70"}, + {634, "01"}, + {634, "02"}, + {634, "05"}, + {634, "06"}, + {634, "99"}, + {413, "02"}, + {413, "03"}, + {659, "12"}, + {659, "91"}, + {659, "92"}, + {659, "95"}, + {659, "97"}, + {655, "01"}, + {655, "02"}, + {655, "04"}, + {655, "06"}, + {655, "07"}, + {655, "10"}, + {655, "11"}, + {655, "12"}, + {655, "13"}, + {655, "14"}, + {655, "19"}, + {655, "21"}, + {655, "25"}, + {655, "27"}, + {655, "30"}, + {655, "31"}, + {655, "32"}, + {655, "33"}, + {655, "34"}, + {655, "35"}, + {655, "36"}, + {655, "41"}, + {655, "50"}, + {655, "51"}, + {240, "01"}, + {240, "02"}, + {240, "03"}, + {240, "04"}, + {240, "05"}, + {240, "06"}, + {240, "08"}, + {240, "10"}, + {240, "12"}, + {240, "13"}, + {240, "14"}, + {240, "15"}, + {240, "16"}, + {240, "17"}, + {240, "18"}, + {240, "19"}, + {240, "20"}, + {240, "21"}, + {240, "22"}, + {240, "23"}, + {240, "24"}, + {240, "26"}, + {240, "27"}, + {240, "28"}, + {240, "29"}, + {240, "30"}, + {240, "32"}, + {240, "33"}, + {240, "34"}, + {240, "35"}, + {240, "36"}, + {240, "37"}, + {240, "38"}, + {240, "40"}, + {240, "41"}, + {240, "42"}, + {240, "43"}, + {240, "44"}, + {240, "45"}, + {240, "65"}, + {240, "66"}, + {240, "67"}, + {240, "68"}, + {240, "69"}, + {228, "01"}, + {228, "02"}, + {228, "03"}, + {228, "05"}, + {228, "06"}, + {228, "08"}, + {228, "12"}, + {228, "51"}, + {746, "02"}, + {746, "03"}, + {746, "04"}, + {746, "05"}, + {653, "01"}, + {653, "10"}, + {436, "01"}, + {436, "02"}, + {436, "03"}, + {436, "04"}, + {436, "05"}, + {640, "02"}, + {640, "03"}, + {640, "04"}, + {640, "05"}, + {622, "01"}, + {622, "02"}, + {520, "00"}, + {520, "01"}, + {520, "02"}, + {520, "03"}, + {520, "04"}, + {520, "05"}, + {520, "15"}, + {520, "18"}, + {520, "20"}, + {520, "23"}, + {520, "47"}, + {520, "99"}, + {514, "01"}, + {514, "02"}, + {514, "03"}, + {615, "01"}, + {539, "01"}, + {539, "43"}, + {539, "88"}, + {374, "12"}, + {374, "130"}, + {374, "140"}, + {605, "02"}, + {605, "03"}, + {438, "01"}, + {438, "02"}, + {376, "350"}, + {376, "352"}, + {376, "360"}, + {286, "01"}, + {286, "02"}, + {286, "03"}, + {286, "04"}, + {553, "01"}, + {255, "01"}, + {255, "02"}, + {255, "03"}, + {255, "04"}, + {255, "05"}, + {255, "06"}, + {255, "07"}, + {255, "21"}, + {748, "00"}, + {748, "01"}, + {748, "03"}, + {748, "07"}, + {748, "10"}, + {541, "01"}, + {541, "05"}, + {541, "07"}, + {734, "02"}, + {734, "04"}, + {734, "06"}, + {348, "170"}, + {348, "370"}, + {348, "570"}, + {348, "770"}, + {452, "01"}, + {452, "02"}, + {452, "03"}, + {452, "04"}, + {452, "06"}, + {452, "07"}, + {452, "08"}, + {421, "01"}, + {421, "02"}, + {421, "04"}, + {645, "01"}, + {645, "02"}, + {645, "03"}, + {648, "01"}, + {648, "03"}, + {648, "04"}, + {0, "end"} // end of list +}; + + +int find_mnc_length(const char mcc_digit1P, + const char mcc_digit2P, + const char mcc_digit3P, + const char mnc_digit1P, + const char mnc_digit2P, + const char mnc_digit3P) { + + int mcc = 100*(mcc_digit1P-48) + 10*(mcc_digit2P-48) + (mcc_digit3P-48); + char mnc3[4]; + char mnc2[3]; + int index_l = 0; + + AssertFatal((mcc_digit1P >= '0') && (mcc_digit1P <='9') + && (mcc_digit2P >= '0') && (mcc_digit2P <= '9') + && (mcc_digit3P >= '0') && (mcc_digit3P <= '9') , + "BAD MCC PARAMETER (%d%d%d)!\n", + mcc_digit1P, mcc_digit2P, mcc_digit3P); + + AssertFatal((mnc_digit2P >= '0') && (mnc_digit2P <= '9') + && (mnc_digit3P >= '0') && (mnc_digit3P <= '9') , + "BAD MNC PARAMETER ((%d)%d%d)!\n", + mnc_digit1P, mnc_digit2P, mnc_digit3P); + + mnc2[0] = mnc_digit1P; + mnc2[1] = mnc_digit2P; + mnc2[2] = '\0'; + + mnc3[0] = mnc_digit1P; + mnc3[1] = mnc_digit2P; + mnc3[2] = mnc_digit3P; + mnc3[3] = '\0'; + + do { + if (mcc_mnc_list[index_l].mcc == mcc) { + //fprintf(stdout, "Found MCC %d!\n", mcc); + do { + //fprintf(stdout, "Comparing MNCs %s, %s with %s\n", mnc2, mnc3, mcc_mnc_list[index_l].mnc); + if (strcmp(mnc2, mcc_mnc_list[index_l].mnc) == 0) { + return 2; + } else if (strcmp(mnc3, mcc_mnc_list[index_l].mnc) == 0) { + return 3; + } + index_l += 1; + } while (mcc_mnc_list[index_l].mcc == mcc); + return 0; + } + index_l += 1; + } while (mcc_mnc_list[index_l].mcc != 0); + return 0; +} + diff --git a/openair-cn/UTILS/mcc_mnc_itu.h b/openair-cn/UTILS/mcc_mnc_itu.h new file mode 100755 index 0000000000..d92f473ce5 --- /dev/null +++ b/openair-cn/UTILS/mcc_mnc_itu.h @@ -0,0 +1,61 @@ +/******************************************************************************* + OpenAirInterface + Copyright(c) 1999 - 2014 Eurecom + + OpenAirInterface is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + + OpenAirInterface is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OpenAirInterface.The full GNU General Public License is + included in this distribution in the file called "COPYING". If not, + see <http://www.gnu.org/licenses/>. + + Contact Information + OpenAirInterface Admin: openair_admin@eurecom.fr + OpenAirInterface Tech : openair_tech@eurecom.fr + OpenAirInterface Dev : openair4g-devel@eurecom.fr + + Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France. + + *******************************************************************************/ +/***************************************************************************** + +Source mcc_mnc.h + +Version 0.1 + +Date {2014/10/02 + +Product + +Subsystem + +Author Lionel GAUTHIER + +Description Defines the MCC/MNC list delivered by the ITU + +*****************************************************************************/ +#ifndef __MCC_MNC_H__ +#define __MCC_MNC_H__ + + +typedef struct mcc_mnc_list_s { + uint16_t mcc; + char mnc[4]; +} mcc_mnc_list_t; + +int find_mnc_length(const char mcc_digit1P, + const char mcc_digit2P, + const char mcc_digit3P, + const char mnc_digit1P, + const char mnc_digit2P, + const char mnc_digit3P); +#endif -- GitLab