| #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 |