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