MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen
Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/include/s6a/s6a.h b/include/s6a/s6a.h
new file mode 100644
index 0000000..e4aa383
--- /dev/null
+++ b/include/s6a/s6a.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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.
+ */
+
+#ifndef __S6A_H_
+#define __S6A_H_
+
+#include <freeDiameter/freeDiameter-host.h>
+#include <freeDiameter/libfdproto.h>
+#include <freeDiameter/libfdcore.h>
+
+#include "log.h"
+#include "hss_message.h"
+
+#define S6A_FD_CONF "conf/s6a_fd.conf"
+#define HSS_RESP_THREADPOOL_SIZE 10
+#define STR_IMSI_LEN 16
+#define SESS_ID_LEN 128
+
+/**
+ * brief: Structure to store s6a freediameter session information
+ */
+struct s6a_sess_info {
+ unsigned char imsi[8];
+ char sess_id[SESS_ID_LEN];
+ int sess_id_len;
+};
+
+/**
+ * @brief Handle HSS reponse message
+ * @param[in] message buffer
+ * @return void
+ */
+void
+hss_resp_handler(void *message);
+
+/**
+ * @brief Handler thread for AIR/ULR request coming from mme-app
+ * This function sends both AIR and ULR
+ * @param[in] data- message buffer
+ * @return void*
+ */
+void*
+AIR_handler(void *data);
+
+/**
+ * @brief Handler thread for detach request coming from mme-app
+ * @param[in] data- message buffer
+ * @return void *
+ */
+void*
+detach_handler(void *data);
+
+/*Handler for AIA coming from built in perf HS*/
+void
+handle_perf_hss_aia(int ue_idx, struct hss_aia_msg *aia);
+
+/*Handler for ULA coming from built in perf HS*/
+void
+handle_perf_hss_ula(int ue_idx, struct hss_ula_msg *ula);
+
+/*Handler for AIA coming from built in perf HS*/
+void
+handle_perf_hss_purge_resp(int ue_idx);
+
+
+//NI Detach
+/*Handler for CLR coming from built in perf HSS*/
+void
+handle_perf_hss_clr(int ue_idx, struct hss_clr_msg *clr);
+
+/**
+ * @brief convert binary imsi to string imsi
+ * Binary imsi is stored in 8 bytes, each nibble representing each imsi char.
+ * char imsi stroes each char in 1 byte.
+ * @param[in] b_imsi : Binary imsi
+ * @param[out] s_imsi : Converted string imsi
+ * @return void
+ */
+void
+imsi_bin_to_str(unsigned char *b_imsi, char *s_imsi);
+
+#endif /*S6A*/