Commit 4961ab02 authored by yangjian's avatar yangjian

fix amf plmn != 07

parent 076411c2
......@@ -51,6 +51,7 @@
#include "itti_msg_amf_app.hpp"
#include "logger.hpp"
#include "sctp_server.hpp"
#include "String2Value.hpp"
extern "C" {
#include "dynamic_memory_check.h"
......@@ -1380,8 +1381,10 @@ bool amf_n2::verifyPlmn(vector<SupportedItem_t> list) {
continue;
}
for (int k = 0; k < list[j].b_plmn_list.size(); k++) {
if (!(list[j].b_plmn_list[k].mcc.compare(amf_cfg.plmn_list[i].mcc)) &&
!(list[j].b_plmn_list[k].mnc.compare(amf_cfg.plmn_list[i].mnc))) {
//if (!(list[j].b_plmn_list[k].mcc.compare(amf_cfg.plmn_list[i].mcc)) &&
// !(list[j].b_plmn_list[k].mnc.compare(amf_cfg.plmn_list[i].mnc))) {
if((fromString<int>(list[j].b_plmn_list[k].mcc) == fromString<int>(amf_cfg.plmn_list[i].mcc)) &&
(fromString<int>(list[j].b_plmn_list[k].mnc) == fromString<int>(amf_cfg.plmn_list[i].mnc))) {
return true;
}
}
......@@ -1404,8 +1407,10 @@ std::vector<SupportedItem_t> amf_n2::get_common_plmn(
continue;
}
for (int k = 0; k < list[j].b_plmn_list.size(); k++) {
if (!(list[j].b_plmn_list[k].mcc.compare(amf_cfg.plmn_list[i].mcc)) &&
!(list[j].b_plmn_list[k].mnc.compare(amf_cfg.plmn_list[i].mnc))) {
//if (!(list[j].b_plmn_list[k].mcc.compare(amf_cfg.plmn_list[i].mcc)) &&
// !(list[j].b_plmn_list[k].mnc.compare(amf_cfg.plmn_list[i].mnc))) {
if((fromString<int>(list[j].b_plmn_list[k].mcc) == fromString<int>(amf_cfg.plmn_list[i].mcc)) &&
(fromString<int>(list[j].b_plmn_list[k].mnc) == fromString<int>(amf_cfg.plmn_list[i].mnc))) {
plmn_list.push_back(list[j]);
}
}
......
......@@ -543,7 +543,10 @@ int _5GSMobilityIdentity::suci_decodefrombuffer(
"MCC %s, MNC %s", std::to_string(mcc).c_str(),
std::to_string(mnc).c_str());
supi_format_imsi->mcc = (const string)(std::to_string(mcc));
supi_format_imsi->mnc = (const string)(std::to_string(mnc));
if(std::to_string(mnc).size() == 1)
supi_format_imsi->mnc = (const string)("0" + (const string)(std::to_string(mnc)));
else
supi_format_imsi->mnc = (const string)(std::to_string(mnc));
int routid = 0;
uint8_t digit[4];
octet = *(buf + decoded_size);
......@@ -639,6 +642,10 @@ int _5GSMobilityIdentity::_5g_guti_decodefrombuffer(uint8_t* buf, int len) {
"MCC %s, MNC %s", std::to_string(mcc).c_str(),
std::to_string(mnc).c_str());
_5g_guti->mcc = (const string)(std::to_string(mcc));
if(std::to_string(mnc).size() == 1)
_5g_guti->mnc = (const string)("0" + (const string)(std::to_string(mnc)));
else
_5g_guti->mnc = (const string)(std::to_string(mnc));
_5g_guti->mnc = (const string)(std::to_string(mnc));
_5g_guti->amf_region_id = *(buf + decoded_size);
......
......@@ -66,12 +66,23 @@ void PlmnId::getMcc(std::string& mcc) {
//------------------------------------------------------------------------------
void PlmnId::getMnc(std::string& mnc) {
int m_mnc = 0;
//int m_mnc = 0;
if (mnc_digit1 == 0xf)
m_mnc = mnc_digit2 * 10 + mnc_digit3;
{
//m_mnc = mnc_digit2 * 10 + mnc_digit3;
mnc = to_string(mnc_digit2);
mnc += to_string(mnc_digit3);
}
else
m_mnc = mnc_digit1 * 100 + mnc_digit2 * 10 + mnc_digit3;
mnc = to_string(m_mnc);
{
//m_mnc = mnc_digit1 * 100 + mnc_digit2 * 10 + mnc_digit3;
mnc = to_string(mnc_digit1);
mnc = to_string(mnc_digit2);
mnc += to_string(mnc_digit3);
}
//mnc = to_string(m_mnc);
cout<<"################ MNC "<<mnc<<endl;
}
//------------------------------------------------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment