blob: 8f500c2ccabbb2fd2865f73f3b8f6db2c7aaf8d5 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36#ifndef TCM_PAM_STRUCT_H
37#define TCM_PAM_STRUCT_H
38
39#include "kal_public_api.h"
40#include "ps_public_enum_public.h"
41#include "l3_inc_local.h"
42#include "tcm2sm_struct.h"
43#include "ps_public_struct.h"
44#include "ps_public_enum.h"
45#include "vgsm_common_def_public.h"
46#include "tftlib_common_struct.h"
47/********************************************
48 * MACROS *
49 ********************************************/
50
51/********************************************
52 * TYPE DEFINITIONS & ENUMS *
53 ********************************************/
54
55/* MSG_ID_TCM_PAM_PDU_SESSION_EST_REQ */
56typedef struct {
57 LOCAL_PARA_HDR
58 kal_uint8 psi;
59 kal_bool is_pdu_session_type_present;
60 pdp_addr_type_enum pdu_session_type;
61
62 kal_bool is_ssc_mode_present;
63 kal_uint8 ssc_mode;
64
65 kal_bool is_s_nssai_present;
66 pdus_s_nssai_struct s_nssai;
67
68 kal_bool is_dnn_present;
69 apn_struct dnn;
70
71 pdn_request_type_enum request_type; // @ ESTABLISHMENT REQUEST
72 pdus_access_type_enum access_type;
73 kal_bool rqos_support; // @ ESTABLISHMENT REQUEST (default: N)
74 kal_bool mh6_support; // @ ESTABLISHMENT REQUEST (default: N)
75
76 kal_bool is_always_on_pdu_session_req_present;
77 always_on_pdu_session_req_enum always_on_pdu_session_req;
78
79 kal_uint8 epco_num;
80 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
81
82 kal_bool is_old_psi_present;
83 kal_uint8 old_psi;
84
85 tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
86 req_processing_info_struct req_processing_info;
87
88 kal_bool is_ladn_dnn;
89} tcm_pam_pdu_session_est_req_struct;
90
91/* MSG_ID_TCM_PAM_PDU_SESSION_EST_CNF */
92typedef struct {
93 LOCAL_PARA_HDR
94 kal_uint8 psi;
95 pdp_addr_type_enum selected_pdu_session_type;
96 kal_uint8 selected_ssc_mode;
97 kal_bool is_dnn_present;
98 apn_struct dnn;
99
100 //tft_info_struct rules_per_qos_flow[VGSM_MAX_QFI_NUM]; // remove after tftlib is ready for 5G
101
102 pdus_session_ambr_struct session_ambr;
103
104 ps_cause_enum cause;
105
106 kal_bool is_pdu_address_present;
107 ip_addr_struct pdu_address;
108
109 /** rq_timer_value_in_sec:
110 * If UE sent RqoS supported in capability IE, but NW did not provide it -> return default value (60s)
111 * If UE sent RqoS not supported in capability IE,
112 * - and NW did not provide it -> return timer deactivated (0xFFFF)
113 * - but NW provided it -> return timer deactivated (0xFFFF)
114 */
115 kal_uint32 rq_timer_value_in_sec;
116
117 kal_bool is_s_nssai_present;
118 pdus_s_nssai_struct s_nssai;
119
120 kal_bool is_always_on_pdu_session_ind_present;
121 always_on_pdu_session_ind_enum always_on_pdu_session_ind;
122
123 // change to a standalone IND?
124 //kal_bool is_mapped_eps_bearer_contexts_present;
125 //pdus_mapped_epsb_context_struct mapped_eps_bearer_contexts;
126
127 kal_bool is_eap_message_present;
128 pdus_eap_message_struct eap_message;
129
130 kal_uint8 epco_num;
131 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
132
133 pkt_filters_act_list_node_struct *pf_action_list_node;
134
135 kal_uint8 qfi_with_default_rule;
136 qos_params_struct *qos_profiles[VGSM_MAX_QFI_NUM]; /* all qos profiles under PDU session */
137 qos_flow_action_table_struct qf_action_table;
138
139 pdus_access_type_enum access_type;
140} tcm_pam_pdu_session_est_cnf_struct;
141
142/* MSG_ID_TCM_PAM_PDU_SESSION_EST_REJ */
143typedef struct {
144 LOCAL_PARA_HDR
145 kal_uint8 psi;
146 ps_cause_enum cause;
147
148 kal_bool is_backoff_timer_value_present;
149 kal_uint32 backoff_timer_value_in_sec; // 0xFFFF = timer deactivated
150
151 kal_bool is_allowed_ssc_mode_present;
152 kal_uint8 allowed_ssc_mode;
153
154 kal_bool is_eap_message_present;
155 pdus_eap_message_struct eap_message;
156
157 kal_uint8 epco_num;
158 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
159
160 kal_bool is_re_attempt_indicator_present;
161 kal_uint8 re_attempt_indicator;
162
163 kal_bool is_vgsm_congestion_reattempt_ind_present;
164 vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind;
165} tcm_pam_pdu_session_est_rej_struct;
166
167/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_REQ */
168typedef struct {
169 LOCAL_PARA_HDR
170 kal_uint8 psi;
171
172 // SM capability (currently used in iRAT case)
173 kal_bool rqos_support; /* TCM always brings it to VGSM */
174 kal_bool mh6_support; /* TCM always brings it to VGSM */
175
176 kal_bool is_cause_present; /* used by VGSM */
177 ps_cause_enum cause; /* used by VGSM */
178
179 kal_bool is_always_on_pdu_session_req_present; /* TCM always brings it to VGSM */
180 always_on_pdu_session_req_enum always_on_pdu_session_req;
181
182 kal_bool is_requested_qos_rules_present;
183 qrs_raw_struct requested_qos_rules;
184
185 kal_uint8 epco_num;
186 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
187
188 /** if operation code of qos_flow_description VGSM decided is "modify existing QoS flow description"
189 * VGSM should set E bit = 1 (parameters list replacement)
190 * and VGSM should bring all parameters to NW (include NW provided previoulsy, and user(upper layer) given)
191 * if operation code of qos_flow_description VGSM decided is "create new qos flow description"
192 * VGSM bring user(upper layer) given parameters to NW
193 */
194 qos_flow_descriptions_struct requested_qf_descriptions;
195
196 req_processing_info_struct req_processing_info;
197
198 /* VGSM use only */
199 kal_bool need_to_update_capability_to_nw;
200 kal_uint16 to_delete_mapped_epsb_ebi_bitmap;
201 kal_uint16 vgsm_init_mod_reason_bitmap;
202} tcm_pam_pdu_session_mod_req_struct;
203
204/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_IND */
205typedef struct {
206 LOCAL_PARA_HDR
207 kal_uint8 psi;
208 ps_cause_enum cause;
209 pdus_session_ambr_struct session_ambr;
210
211 /** rq_timer_value_in_sec:
212 * If UE sent RqoS supported in capability IE, but NW did not provide it -> return default value (60s)
213 * If UE sent RqoS not supported in capability IE,
214 * - and NW did not provide it -> return timer deactivated (0xFFFF)
215 * - but NW provided it -> return timer deactivated (0xFFFF)
216 */
217 kal_uint32 rq_timer_value_in_sec;
218
219 kal_bool is_always_on_pdu_session_ind_present;
220 always_on_pdu_session_ind_enum always_on_pdu_session_ind;
221
222
223 // change to a standalone IND?
224 //kal_bool is_mapped_eps_bearer_contexts_present;
225 //pdus_mapped_epsb_context_struct mapped_eps_bearer_contexts;
226
227 kal_uint8 epco_num;
228 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
229
230 pkt_filters_act_list_node_struct *pf_action_list_node;
231
232 kal_uint8 qfi_with_default_rule;
233 qos_params_struct *qos_profiles[VGSM_MAX_QFI_NUM]; /* all qos profiles under PDU session */
234 qos_flow_action_table_struct qf_action_table;
235
236} tcm_pam_pdu_session_mod_ind_struct;
237
238/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_CNF */
239typedef tcm_pam_pdu_session_mod_ind_struct tcm_pam_pdu_session_mod_cnf_struct;
240
241/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_REJ */
242typedef struct {
243 LOCAL_PARA_HDR
244 kal_uint8 psi;
245 ps_cause_enum cause;
246
247 kal_bool is_backoff_timer_value_present;
248 kal_uint32 backoff_timer_value_in_sec;
249
250 kal_uint8 epco_num;
251 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
252
253 kal_bool is_re_attempt_indicator_present;
254 kal_uint8 re_attempt_indicator;
255
256 kal_bool is_vgsm_congestion_reattempt_ind_present;
257 vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind;
258} tcm_pam_pdu_session_mod_rej_struct;
259
260/* MSG_ID_TCM_PAM_PDU_SESSION_REL_REQ */
261typedef struct {
262 LOCAL_PARA_HDR
263 kal_uint8 psi;
264
265 rel_req_behavior_enum rel_behavior;
266
267 kal_bool is_cause_present; /* used by VGSM */
268 ps_cause_enum cause; /* used by VGSM */
269
270 tcm_pdp_deact_reason_enum rel_reason; /* used by PAM for VzW SA DR requirement*/
271
272 kal_uint8 epco_num;
273 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
274
275 req_processing_info_struct req_processing_info;
276} tcm_pam_pdu_session_rel_req_struct;
277
278/* MSG_ID_TCM_PAM_PDU_SESSION_REL_IND */
279typedef struct {
280 LOCAL_PARA_HDR
281 kal_uint8 psi;
282 ps_cause_enum cause;
283
284 kal_bool is_backoff_timer_value_present;
285 kal_uint32 backoff_timer_value_in_sec;
286
287 kal_bool is_eap_message_present;
288 pdus_eap_message_struct eap_message;
289
290 kal_uint8 epco_num;
291 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
292
293 kal_bool is_vgsm_congestion_reattempt_ind_present;
294 vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind;
295} tcm_pam_pdu_session_rel_ind_struct;
296
297/* MSG_ID_TCM_PAM_PDU_SESSION_REL_CNF */
298typedef tcm_pam_pdu_session_rel_ind_struct tcm_pam_pdu_session_rel_cnf_struct;
299
300/* MSG_ID_TCM_PAM_PDU_SESSION_REL_REJ */
301typedef struct {
302 LOCAL_PARA_HDR
303 kal_uint8 psi;
304 ps_cause_enum cause;
305
306 kal_uint8 epco_num;
307 config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
308} tcm_pam_pdu_session_rel_rej_struct;
309
310/* MSG_ID_TCM_PAM_4G5_CONTEXT_TRANSFERRED_IND */
311typedef struct {
312 LOCAL_PARA_HDR
313
314 kal_uint8 num_of_pdus_info;
315 context_transfer_pdus_info_struct *pdus_info[MAX_NUM_OF_SUPPORTED_PDUS];
316
317 kal_uint8 num_of_map_info;
318 ebi_map_to_psi_info_struct map_info[MAX_L4_PS_EBI_NUM];
319} tcm_pam_4g5_context_transferred_ind_struct;
320
321
322/********************************************
323 * VARIABLES *
324 ********************************************/
325
326/********************************************
327 * FUNCTION DECLARATIONS *
328 ********************************************/
329
330#endif /* TCM_PAM_STRUCT_H */