forked from acouzens/open5gs
55 lines
1.5 KiB
C
55 lines
1.5 KiB
C
#ifndef __HSS_CONTEXT_H__
|
|
#define __HSS_CONTEXT_H__
|
|
|
|
#include "core_errno.h"
|
|
#include "core_mutex.h"
|
|
|
|
#include "s6a_message.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#define HSS_KEY_LEN 16
|
|
#define HSS_AMF_LEN 2
|
|
|
|
typedef struct _hss_db_auth_info_t {
|
|
c_uint8_t k[HSS_KEY_LEN];
|
|
c_uint8_t op[HSS_KEY_LEN];
|
|
c_uint8_t amf[HSS_AMF_LEN];
|
|
c_uint8_t rand[RAND_LEN];
|
|
c_uint64_t sqn;
|
|
} hss_db_auth_info_t;
|
|
|
|
typedef struct _hss_context_t {
|
|
char *fd_conf_path; /* HSS freeDiameter conf path */
|
|
|
|
void *subscriberCollection;
|
|
mutex_id db_lock;
|
|
} hss_context_t;
|
|
|
|
CORE_DECLARE(status_t) hss_context_init(void);
|
|
CORE_DECLARE(status_t) hss_context_final(void);
|
|
CORE_DECLARE(hss_context_t*) hss_self(void);
|
|
|
|
CORE_DECLARE(status_t) hss_context_parse_config(void);
|
|
CORE_DECLARE(status_t) hss_context_setup_trace_module(void);
|
|
|
|
CORE_DECLARE(status_t) hss_db_init(void);
|
|
CORE_DECLARE(status_t) hss_db_final(void);
|
|
|
|
CORE_DECLARE(status_t) hss_db_auth_info(
|
|
char *imsi_bcd, hss_db_auth_info_t *auth_info);
|
|
CORE_DECLARE(status_t) hss_db_update_rand_and_sqn(
|
|
char *imsi_bcd, c_uint8_t *rand, c_uint64_t sqn);
|
|
CORE_DECLARE(status_t) hss_db_increment_sqn(char *imsi_bcd);
|
|
|
|
CORE_DECLARE(status_t) hss_db_subscription_data(
|
|
char *imsi_bcd, s6a_subscription_data_t *subscription_data);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __HSS_CONTEXT_H__ */
|