| /***************************************************************************** |
| * Copyright Statement: |
| * -------------------- |
| * This software is protected by Copyright and the information contained |
| * herein is confidential. The software may not be copied and the information |
| * contained herein may not be used or disclosed except with the written |
| * permission of MediaTek Inc. (C) 2005 |
| * |
| * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
| * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| * |
| * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| * |
| * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| * |
| *****************************************************************************/ |
| |
| #ifndef TCM_PAM_STRUCT_H |
| #define TCM_PAM_STRUCT_H |
| |
| #include "kal_public_api.h" |
| #include "ps_public_enum_public.h" |
| #include "l3_inc_local.h" |
| #include "tcm2sm_struct.h" |
| #include "ps_public_struct.h" |
| #include "ps_public_enum.h" |
| #include "vgsm_common_def_public.h" |
| #include "tftlib_common_struct.h" |
| /******************************************** |
| * MACROS * |
| ********************************************/ |
| |
| /******************************************** |
| * TYPE DEFINITIONS & ENUMS * |
| ********************************************/ |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_EST_REQ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| kal_bool is_pdu_session_type_present; |
| pdp_addr_type_enum pdu_session_type; |
| |
| kal_bool is_ssc_mode_present; |
| kal_uint8 ssc_mode; |
| |
| kal_bool is_s_nssai_present; |
| pdus_s_nssai_struct s_nssai; |
| |
| kal_bool is_dnn_present; |
| apn_struct dnn; |
| |
| pdn_request_type_enum request_type; // @ ESTABLISHMENT REQUEST |
| pdus_access_type_enum access_type; |
| kal_bool rqos_support; // @ ESTABLISHMENT REQUEST (default: N) |
| kal_bool mh6_support; // @ ESTABLISHMENT REQUEST (default: N) |
| |
| kal_bool is_always_on_pdu_session_req_present; |
| always_on_pdu_session_req_enum always_on_pdu_session_req; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| kal_bool is_old_psi_present; |
| kal_uint8 old_psi; |
| |
| tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag; |
| req_processing_info_struct req_processing_info; |
| |
| kal_bool is_ladn_dnn; |
| } tcm_pam_pdu_session_est_req_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_EST_CNF */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| pdp_addr_type_enum selected_pdu_session_type; |
| kal_uint8 selected_ssc_mode; |
| kal_bool is_dnn_present; |
| apn_struct dnn; |
| |
| //tft_info_struct rules_per_qos_flow[VGSM_MAX_QFI_NUM]; // remove after tftlib is ready for 5G |
| |
| pdus_session_ambr_struct session_ambr; |
| |
| ps_cause_enum cause; |
| |
| kal_bool is_pdu_address_present; |
| ip_addr_struct pdu_address; |
| |
| /** rq_timer_value_in_sec: |
| * If UE sent RqoS supported in capability IE, but NW did not provide it -> return default value (60s) |
| * If UE sent RqoS not supported in capability IE, |
| * - and NW did not provide it -> return timer deactivated (0xFFFF) |
| * - but NW provided it -> return timer deactivated (0xFFFF) |
| */ |
| kal_uint32 rq_timer_value_in_sec; |
| |
| kal_bool is_s_nssai_present; |
| pdus_s_nssai_struct s_nssai; |
| |
| kal_bool is_always_on_pdu_session_ind_present; |
| always_on_pdu_session_ind_enum always_on_pdu_session_ind; |
| |
| // change to a standalone IND? |
| //kal_bool is_mapped_eps_bearer_contexts_present; |
| //pdus_mapped_epsb_context_struct mapped_eps_bearer_contexts; |
| |
| kal_bool is_eap_message_present; |
| pdus_eap_message_struct eap_message; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| pkt_filters_act_list_node_struct *pf_action_list_node; |
| |
| kal_uint8 qfi_with_default_rule; |
| qos_params_struct *qos_profiles[VGSM_MAX_QFI_NUM]; /* all qos profiles under PDU session */ |
| qos_flow_action_table_struct qf_action_table; |
| |
| pdus_access_type_enum access_type; |
| } tcm_pam_pdu_session_est_cnf_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_EST_REJ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| ps_cause_enum cause; |
| |
| kal_bool is_backoff_timer_value_present; |
| kal_uint32 backoff_timer_value_in_sec; // 0xFFFF = timer deactivated |
| |
| kal_bool is_allowed_ssc_mode_present; |
| kal_uint8 allowed_ssc_mode; |
| |
| kal_bool is_eap_message_present; |
| pdus_eap_message_struct eap_message; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| kal_bool is_re_attempt_indicator_present; |
| kal_uint8 re_attempt_indicator; |
| |
| kal_bool is_vgsm_congestion_reattempt_ind_present; |
| vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind; |
| } tcm_pam_pdu_session_est_rej_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_MOD_REQ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| |
| // SM capability (currently used in iRAT case) |
| kal_bool rqos_support; /* TCM always brings it to VGSM */ |
| kal_bool mh6_support; /* TCM always brings it to VGSM */ |
| |
| kal_bool is_cause_present; /* used by VGSM */ |
| ps_cause_enum cause; /* used by VGSM */ |
| |
| kal_bool is_always_on_pdu_session_req_present; /* TCM always brings it to VGSM */ |
| always_on_pdu_session_req_enum always_on_pdu_session_req; |
| |
| kal_bool is_requested_qos_rules_present; |
| qrs_raw_struct requested_qos_rules; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| /** if operation code of qos_flow_description VGSM decided is "modify existing QoS flow description" |
| * VGSM should set E bit = 1 (parameters list replacement) |
| * and VGSM should bring all parameters to NW (include NW provided previoulsy, and user(upper layer) given) |
| * if operation code of qos_flow_description VGSM decided is "create new qos flow description" |
| * VGSM bring user(upper layer) given parameters to NW |
| */ |
| qos_flow_descriptions_struct requested_qf_descriptions; |
| |
| req_processing_info_struct req_processing_info; |
| |
| /* VGSM use only */ |
| kal_bool need_to_update_capability_to_nw; |
| kal_uint16 to_delete_mapped_epsb_ebi_bitmap; |
| kal_uint16 vgsm_init_mod_reason_bitmap; |
| } tcm_pam_pdu_session_mod_req_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_MOD_IND */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| ps_cause_enum cause; |
| pdus_session_ambr_struct session_ambr; |
| |
| /** rq_timer_value_in_sec: |
| * If UE sent RqoS supported in capability IE, but NW did not provide it -> return default value (60s) |
| * If UE sent RqoS not supported in capability IE, |
| * - and NW did not provide it -> return timer deactivated (0xFFFF) |
| * - but NW provided it -> return timer deactivated (0xFFFF) |
| */ |
| kal_uint32 rq_timer_value_in_sec; |
| |
| kal_bool is_always_on_pdu_session_ind_present; |
| always_on_pdu_session_ind_enum always_on_pdu_session_ind; |
| |
| |
| // change to a standalone IND? |
| //kal_bool is_mapped_eps_bearer_contexts_present; |
| //pdus_mapped_epsb_context_struct mapped_eps_bearer_contexts; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| pkt_filters_act_list_node_struct *pf_action_list_node; |
| |
| kal_uint8 qfi_with_default_rule; |
| qos_params_struct *qos_profiles[VGSM_MAX_QFI_NUM]; /* all qos profiles under PDU session */ |
| qos_flow_action_table_struct qf_action_table; |
| |
| } tcm_pam_pdu_session_mod_ind_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_MOD_CNF */ |
| typedef tcm_pam_pdu_session_mod_ind_struct tcm_pam_pdu_session_mod_cnf_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_MOD_REJ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| ps_cause_enum cause; |
| |
| kal_bool is_backoff_timer_value_present; |
| kal_uint32 backoff_timer_value_in_sec; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| kal_bool is_re_attempt_indicator_present; |
| kal_uint8 re_attempt_indicator; |
| |
| kal_bool is_vgsm_congestion_reattempt_ind_present; |
| vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind; |
| } tcm_pam_pdu_session_mod_rej_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_REL_REQ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| |
| rel_req_behavior_enum rel_behavior; |
| |
| kal_bool is_cause_present; /* used by VGSM */ |
| ps_cause_enum cause; /* used by VGSM */ |
| |
| tcm_pdp_deact_reason_enum rel_reason; /* used by PAM for VzW SA DR requirement*/ |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| req_processing_info_struct req_processing_info; |
| } tcm_pam_pdu_session_rel_req_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_REL_IND */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| ps_cause_enum cause; |
| |
| kal_bool is_backoff_timer_value_present; |
| kal_uint32 backoff_timer_value_in_sec; |
| |
| kal_bool is_eap_message_present; |
| pdus_eap_message_struct eap_message; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| |
| kal_bool is_vgsm_congestion_reattempt_ind_present; |
| vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind; |
| } tcm_pam_pdu_session_rel_ind_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_REL_CNF */ |
| typedef tcm_pam_pdu_session_rel_ind_struct tcm_pam_pdu_session_rel_cnf_struct; |
| |
| /* MSG_ID_TCM_PAM_PDU_SESSION_REL_REJ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 psi; |
| ps_cause_enum cause; |
| |
| kal_uint8 epco_num; |
| config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS]; |
| } tcm_pam_pdu_session_rel_rej_struct; |
| |
| /* MSG_ID_TCM_PAM_4G5_CONTEXT_TRANSFERRED_IND */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| |
| kal_uint8 num_of_pdus_info; |
| context_transfer_pdus_info_struct *pdus_info[MAX_NUM_OF_SUPPORTED_PDUS]; |
| |
| kal_uint8 num_of_map_info; |
| ebi_map_to_psi_info_struct map_info[MAX_L4_PS_EBI_NUM]; |
| } tcm_pam_4g5_context_transferred_ind_struct; |
| |
| |
| /******************************************** |
| * VARIABLES * |
| ********************************************/ |
| |
| /******************************************** |
| * FUNCTION DECLARATIONS * |
| ********************************************/ |
| |
| #endif /* TCM_PAM_STRUCT_H */ |