blob: 6a33b37265eebde1a127594127db724b1039ce88 [file] [log] [blame]
#ifndef __D2APN_STRUCT_H__
#define __D2APN_STRUCT_H__
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "atcmd_enum.h"
#include "atcmd_struct.h"
#include "mcd_l3_inc_struct.h"
#include "ddm_enum.h"
#include "d2apn_public_defs.h"
// Type definition
typedef struct d2apn_hdr d2apn_hdr_t;
typedef struct d2apn_hdr* d2apn_hdr_ptr_t;
// Macros
#define D2APN_REQ_LOCAL_PARA_HDR \
LOCAL_PARA_HDR \
kal_uint16 seq_num;
#define D2APN_CNF_LOCAL_PARA_HDR \
LOCAL_PARA_HDR \
kal_uint16 seq_num;
#define D2APN_IND_LOCAL_PARA_HDR \
LOCAL_PARA_HDR \
kal_uint16 seq_num;
#define D2APN_RSP_LOCAL_PARA_HDR \
LOCAL_PARA_HDR \
kal_uint16 seq_num;
// Interface
// N/A
// Implementation
struct d2apn_hdr
{
LOCAL_PARA_HDR
kal_uint16 seq_num;
};
/*******************************************************************************
* User to D2APN REQ *
*******************************************************************************/
// MSG_ID_D2APN_SET_APNS_INFO_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
d2apn_set_apns_info_req_type_enum type;
plmn_id_struct plmn_id;
kal_uint8 imsi[D2_IMSI_STR_LEN];
kal_bool mia; // KAL_TRUE indicates no APN settings for the owner; otherwise, a default case that the owner may give APN settings
}d2apn_set_apns_info_req_struct;
// MSG_ID_D2APN_SET_APNS_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
d2apn_set_apns_req_type_enum type;
kal_char apn[APN_STRING_LEN];
kal_uint32 apn_idx;
kal_uint32 apn_type;
pdp_addr_type_enum pdx_type;
kal_char usrname[USERID_STRING_LEN];
kal_char passwd[PASSWORD_STRING_LEN];
kal_int8 auth_type;
kal_uint32 bearer_bitmask;
/* conditional part */
struct
{
struct
{
pdp_addr_type_enum pdx_type; // by default NULL_PDP_ADDR_TYPE
}roam;
struct
{
kal_char dnn[APN_STRING_LEN]; // by default a NULL string
pdp_addr_type_enum pdx_type; // by default NULL_PDP_ADDR_TYPE
atcmd_SSC_mode_enum ssc_mode; // by default ATCMD_SSC_MODE_MAX
at_s_nssai_struct s_nssai; // by default is_sst_present, is_sd_present, is_mapped_configured_sst_present, is_mapped_configured_sd_present) = (KAL_FALSE, KAL_FALSE, KAL_FALSE, KAL_FALSE)
atcmd_Access_type_enum access_type; // by default ATCMD_ACCESS_TYPE_MAX
}vg;
struct
{
pdp_addr_type_enum pdx_type; // by default NULL_PDP_ADDR_TYPE
}vg_roam;
/* operator part */
struct
{
kal_uint32 wapn; // by default 0 to disable VzW
kal_uint32 apncl;
kal_uint32 apned;
kal_uint32 max_conn;
kal_uint32 max_conn_t;
kal_uint32 wait_time;
}vzw;
struct
{
kal_uint32 inact_time; // by default 0
}sprint;
}cond;
}d2apn_set_apns_req_struct;
// MSG_ID_D2APN_RESET_APNS_INFO_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
d2apn_reset_apns_info_req_type_enum type;
}d2apn_reset_apns_info_req_struct;
// MSG_ID_D2APN_RESET_APNS_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
d2apn_reset_apns_req_type_enum type;
kal_char apn[APN_STRING_LEN];
kal_uint32 apn_idx;
}d2apn_reset_apns_req_struct;
// MSG_ID_D2APN_COPY_APNS_TBL_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
// N/A
}d2apn_copy_apns_tbl_req_struct;
// MSG_ID_D2APN_GET_APNS_INFO_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
d2apn_get_apns_info_req_type_enum type;
module_type owner;
}d2apn_get_apns_info_req_struct;
// MSG_ID_D2APN_GET_APNS_REQ
typedef struct
{
D2APN_REQ_LOCAL_PARA_HDR
/* common part */
d2apn_get_apns_req_type_enum type;
union
{
// querying one by APN and APN index
struct
{
kal_char apn[APN_STRING_LEN];
kal_uint32 apn_idx;
}apn_idx;
// querying a group of APN setting by owner
struct
{
module_type owner;
}owner;
// querying a group by APN
struct
{
kal_char apn[APN_STRING_LEN];
}apn;
}param;
}d2apn_get_apns_req_struct;
/*******************************************************************************
* D2APN to User CNF *
*******************************************************************************/
// MSG_ID_D2APN_SET_APNS_INFO_CNF
typedef struct
{
D2APN_CNF_LOCAL_PARA_HDR
/* common part */
d2apn_res_enum res;
}d2apn_set_apns_info_cnf_struct;
// MSG_ID_D2APN_SET_APNS_CNF
typedef d2apn_set_apns_info_cnf_struct d2apn_set_apns_cnf_struct;
// MSG_ID_D2APN_RESET_APNS_INFO_CNF
typedef d2apn_set_apns_info_cnf_struct d2apn_reset_apns_info_cnf_struct;
// MSG_ID_D2APN_RESET_APNS_CNF
typedef d2apn_set_apns_info_cnf_struct d2apn_reset_apns_cnf_struct;
// MSG_ID_D2APN_COPY_APNS_TBL_CNF
typedef d2apn_set_apns_info_cnf_struct d2apn_copy_apns_tbl_cnf_struct;
// MSG_ID_D2APN_GET_APNS_INFO_CNF
typedef d2apn_set_apns_info_cnf_struct d2apn_get_apns_info_cnf_struct;
// MSG_ID_D2APN_GET_APNS_CNF
typedef d2apn_set_apns_cnf_struct d2apn_get_apns_cnf_struct;
/*******************************************************************************
* D2APN to User IND *
*******************************************************************************/
// MSG_ID_D2APN_GET_APNS_INFO_IND
typedef struct
{
D2APN_IND_LOCAL_PARA_HDR
/* common part */
module_type owner;
plmn_id_struct plmn_id;
kal_uint8 imsi[D2_IMSI_STR_LEN];
kal_bool mia; // KAL_TRUE indicates no APN settings for the owner; otherwise, a default case that the owner may give APN settings
}d2apn_get_apns_info_ind_struct;
// MSG_ID_D2APN_GET_APNS_IND
typedef struct
{
D2APN_IND_LOCAL_PARA_HDR
/* common part */
kal_char apn[APN_STRING_LEN];
kal_uint32 apn_idx;
kal_uint32 apn_type;
pdp_addr_type_enum pdx_type;
kal_char usrname[USERID_STRING_LEN];
kal_char passwd[PASSWORD_STRING_LEN];
kal_int8 auth_type;
kal_uint32 bearer_bitmask;
/* conditional part */
struct
{
struct
{
pdp_addr_type_enum pdx_type;
}roam;
struct
{
kal_char dnn[APN_STRING_LEN];
pdp_addr_type_enum pdx_type;
atcmd_SSC_mode_enum ssc_mode;
at_s_nssai_struct s_nssai;
atcmd_Access_type_enum access_type;
}vg;
struct
{
pdp_addr_type_enum pdx_type;
}vg_roam;
/* operator part */
struct
{
kal_uint32 wapn;
kal_uint32 apncl;
kal_uint32 apned;
kal_uint32 max_conn;
kal_uint32 max_conn_t;
kal_uint32 wait_time;
}vzw;
struct
{
kal_uint32 inact_time;
}sprint;
}cond;
}d2apn_get_apns_ind_struct;
// MSG_ID_D2APN_APNS_CHG_IND
typedef struct
{
D2APN_IND_LOCAL_PARA_HDR
/* common part */
d2apn_apns_chg_ind_type_enum type;
union
{
// APN-setting information based on a owner changed
struct
{
module_type owner;
}info;
// a single APN setting changed
struct
{
kal_char apn[APN_STRING_LEN];
kal_uint32 apn_idx;
}apn_idx;
// a group of APN settings based on a owner changed
struct
{
module_type owner;
}owner;
}param; // NEED_TO_BE_NOTICED. should be 'info'
}d2apn_apns_chg_ind_struct;
/*******************************************************************************
* User to D2APN RSP *
*******************************************************************************/
// N/A
#endif