diff --git a/src/s11/json_config.c b/src/s11/json_config.c
new file mode 100644
index 0000000..5c6c1af
--- /dev/null
+++ b/src/s11/json_config.c
@@ -0,0 +1,45 @@
+/*
+ * 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 "s11_config.h"
+#include "err_codes.h"
+
+s11_config g_s11_cfg;
+
+void
+init_parser(char *path)
+{
+	load_json(path);
+}
+
+int
+parse_s11_conf()
+{
+	/*s1ap information*/
+	g_s11_cfg.local_egtp_ip = get_ip_scalar("s11.egtp_local_addr");
+	if(-1 == g_s11_cfg.local_egtp_ip) return -1;
+	g_s11_cfg.egtp_def_port = get_int_scalar("s11.egtp_default_port");
+	if(-1 == g_s11_cfg.egtp_def_port) return -1;
+
+	g_s11_cfg.sgw_ip = get_ip_scalar("s11.sgw_addr");
+	if(-1 == g_s11_cfg.sgw_ip) return -1;
+	g_s11_cfg.pgw_ip = get_ip_scalar("s11.pgw_addr");
+	if(-1 == g_s11_cfg.pgw_ip) return -1;
+
+	return SUCCESS;
+}
