blob: 4d4842b69a28ab78d79c41176bb51c281f84db0f [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/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * NWSEL_PAM_STRUCT.H
41 *
42 * Project:
43 * --------
44 *
45 *
46 * Description:
47 * ------------
48 *
49 *
50 * Author:
51 * -------
52 *
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 *
60 * removed!
61 * removed!
62 * removed!
63 * removed!
64 *
65 * removed!
66 * removed!
67 * removed!
68 * removed!
69 *
70 * removed!
71 * removed!
72 * removed!
73 *
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 * removed!
81 *
82 *
83 *------------------------------------------------------------------------------
84 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
85 *============================================================================
86 ****************************************************************************/
87
88#ifndef NWSEL_PAM_STRUCT_H
89#define NWSEL_PAM_STRUCT_H
90
91/* enum */
92#include "kal_general_types.h"
93#include "l3_inc_enums.h"
94
95/* struct */
96#include "kal_public_defs.h"
97#include "mcd_l3_inc_struct.h"
98
99/** MOD_NWSEL -> MOD_PAM: Update eq-plmn-list[] when registered to PS domain.
100 * Design assumption
101 * =================
102 * - 23G: Since GMM always completes its PS-ATTACH (REG) before PDP-ACT-REQ procedure,
103 * for the rejection case below, PAM always has a current_eq_plmn_list[] to use
104 * - 4G : Since PDN-CONN-REQ would be embedded in ATTACH-REQ,
105 * for 4G attach-reject case, the plmn info would be sent from EMM -> ESM -> PAM
106 * - Note: NWSEL always updates eq-plmn-list[] to PAM, no matter it is 23G or 4G now
107 *
108 * How to use
109 * ==========
110 * - 1: When receiving this message, PAM saves eq_plmn_id[] into its context: current_eq_plmn_list[]
111 * - 2: When receiving PDP-ACT-REJ from SM,
112 * PAM refers current_eq_plmn_list[] and saves both current-plmn and eq-plmns into the arbitration table
113 * - 3: When receiving a new PDP-ACT-REQ from TCM,
114 * PAM checks current_eq_plmn_list[0] against the arbitration table
115 * - If current_eq_plmn_list[0] exists, then PAM rejects the incoming PDP-ACT-REQ
116 * .
117 */
118typedef struct {
119 LOCAL_PARA_HDR
120
121 kal_uint8 eq_plmn_count;
122
123 /** The eq_plmn_id[0] would be Registered PLMN. */
124 plmn_id_struct eq_plmn_id[MAX_NUM_EQ_PLMN];
125} nwsel_pam_eq_plmn_list_update_ind_struct;
126
127/** MOD_NWSEL -> MOD_PAM: indicts there is no available PDN for current PLMN
128 * Design assumption
129 * =================
130 * - 4G : To replace EMM report EVENT to notify NWSEL no available PDN,
131 * in order to avoid 4G skip but 3G4 IRCR infinite loop. Disable EUTRAN for 3396 running is neccesary
132 *
133 * How to use
134 * ==========
135 * - 1: If there is 3396 (for VzW, there are two PDNs internet & IMS, use shorter one after all tried)
136 * PAM give the timer and NWSEL start a PLMN base timer to disable EUTRAN
137 * - 2: If there is no 3396, just follow original design skip current 4G and rollback after search round
138 * - 3: APN changes PAM will notify NWSEL to clear all records.
139 * - 4: No need to keep in NVRAM, retry all network after power cycle
140 */
141
142typedef struct {
143 LOCAL_PARA_HDR
144 pdn_update_event_enum type;
145 kal_uint32 time_value;
146} nwsel_pam_pdn_availability_update_req_struct;
147
148typedef struct {
149 plmn_id_struct plmn_id;
150
151 /* The apn_type is bitmap format. An APN may have multiple type attribute, so it is possible to have more
152 than one bit as '1'. for example, the CHT emome APN has "default" type + "mms" type.*/
153 pam_nwsel_apn_type_enum apn_type;
154
155 rat_enum reject_rat;
156 kal_bool timer_is_deactivated;
157 kal_uint32 throttling_timestamp;
158} throttling_apn_block_struct;
159
160typedef struct {
161 LOCAL_PARA_HDR
162 kal_uint8 throttling_apn_block_count;
163 throttling_apn_block_struct throttling_apn_block[MAX_THROTTLING_APN_BLOCK_NUM];
164 kal_bool is_last_reject_rat_nr; // Indicate MSG_NWSEL_PAM_THROTTLING_APN_UPDATE_IND is triggerd due to 5G Reject Cause is received.
165} nwsel_pam_throttling_apn_update_ind_struct;
166
167#endif /* NWSEL_PAM_STRUCT_H */