blob: f31de01297ae87e534ea5e1d134891f75301e4ef [file] [log] [blame]
/*
* Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
* Copyright (c) 2017 Intel Corporation
* Copyright (c) 2019, Infosys Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "json_data.h"
#include "s1ap_config.h"
#include "err_codes.h"
s1ap_config g_s1ap_cfg;
void
init_parser(char *path)
{
load_json(path);
}
int
parse_s1ap_conf()
{
char mcc_dig1;
char mcc_dig2;
char mcc_dig3;
char mnc_dig1;
char mnc_dig2;
char mnc_dig3;
/*s1ap information*/
g_s1ap_cfg.mme_name = get_string_scalar("mme.name");
if(NULL == g_s1ap_cfg.mme_name) return -1;
g_s1ap_cfg.s1ap_local_ip = get_ip_scalar("s1ap.s1ap_local_addr");
if(-1 == g_s1ap_cfg.s1ap_local_ip) return -1;
g_s1ap_cfg.sctp_port = get_int_scalar("s1ap.sctp_port");
if(-1 == g_s1ap_cfg.sctp_port) return -1;
g_s1ap_cfg.enb_ip = get_ip_scalar("s1ap.enb_addr");
if(-1 == g_s1ap_cfg.enb_ip) return -1;
g_s1ap_cfg.enb_port = get_int_scalar("s1ap.enb_port");
if(-1 == g_s1ap_cfg.enb_port) return -1;
g_s1ap_cfg.mme_group_id = get_int_scalar("mme.group_id");
if(-1 == g_s1ap_cfg.mme_group_id) return -1;
g_s1ap_cfg.mme_code = get_int_scalar("mme.code");
if(-1 == g_s1ap_cfg.mme_code) return -1;
mcc_dig1 = get_int_scalar("mme.mcc.dig1");
if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
mcc_dig2 = get_int_scalar("mme.mcc.dig2");
if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
mcc_dig3 = get_int_scalar("mme.mcc.dig3");
if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
mnc_dig1 = get_int_scalar("mme.mnc.dig1");
if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
mnc_dig2 = get_int_scalar("mme.mnc.dig2");
if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
mnc_dig3 = get_int_scalar("mme.mnc.dig3");
if(E_PARSING_FAILED == mcc_dig1) return E_PARSING_FAILED;
g_s1ap_cfg.mme_plmn_id.idx[0] = mcc_dig2 << 4 | mcc_dig1;
g_s1ap_cfg.mme_plmn_id.idx[1] = mnc_dig3 << 4 | mcc_dig3;
g_s1ap_cfg.mme_plmn_id.idx[2] = mnc_dig2 << 4 | mnc_dig1;
return SUCCESS;
}