diff --git a/src/s1ap/handlers/ie_parsers.c b/src/s1ap/handlers/ie_parsers.c
new file mode 100644
index 0000000..1d9cfc0
--- /dev/null
+++ b/src/s1ap/handlers/ie_parsers.c
@@ -0,0 +1,67 @@
+/*
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <unistd.h>
+#include <arpa/inet.h>
+
+#include "log.h"
+#include "err_codes.h"
+#include "message_queues.h"
+#include "s1ap_ie.h"
+
+void* 
+ie_parse_global_enb_id(char *msg, int len)
+{
+	/*8 bytes
+	1- ignore
+	2,3,4 - plmn
+	5,6,7,8 - mactoeNBID*/
+	static struct ie_global_enb_id global_enb_id;
+	
+	memcpy(&(global_enb_id.plmn), msg, sizeof(int));
+	memcpy(&(global_enb_id.macro_enb_id), msg+(sizeof(int)), MACRO_ENB_ID_SIZE);
+	global_enb_id.plmn = ntohl(global_enb_id.plmn);
+	//global_enb_id.macro_enb_id = ntohl(global_enb_id.macro_enb_id);
+	log_msg(LOG_INFO, "plmn %x\n", global_enb_id.plmn);
+	log_msg(LOG_INFO, "Macro enb id %x-%x-%x-%x\n", global_enb_id.macro_enb_id[0],
+		global_enb_id.macro_enb_id[4],global_enb_id.macro_enb_id[8],global_enb_id.macro_enb_id[12]);
+	
+	return (void*)&global_enb_id;
+}
+
+void* 
+ie_parse_enb_name(char *msg, int len)
+{
+	return NULL;
+}
+
+void* 
+ie_parse_supported_TAs(char *msg, int len)
+{
+	return NULL;
+}
+
+void* 
+ie_parse_pagins_DRX(char *msg, int len)
+{
+	return NULL;
+}
