blob: 1474046e4a3948dd14e35f83ae024251000e6c94 [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) 2012
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 __D2_NETIF_STRUCT_H__
37#define __D2_NETIF_STRUCT_H__
38
39#include "kal_general_types.h"
40#include "kal_public_defs.h"
41#include "ps_public_enum.h"
42//#include "pdn_public_defs.h"
43#include "netinfo_common_struct.h"
44#include "iwlan_public_defs.h"
45
46typedef enum {
47 D2_NETIF_IF_CAUSE_NO_ERROR = 0,
48 D2_NETIF_IF_CAUSE_NET_IP_CHG = 11,
49 D2_NETIF_IF_CAUSE_MD_IP_CHG = 12,
50 D2_NETIF_IF_CAUSE_AP_IP_CHG = 13,
51 D2_NETIF_IF_CAUSE_NET_INFO_CHG = 14,
52 D2_NETIF_IF_CAUSE_RAN_CHG = 15,
53 D2_NETIF_IF_CAUSE_CHG = 20,
54 D2_NETIF_IF_CAUSE_NO_RA_I = 21,
55 D2_NETIF_IF_CAUSE_NO_RA_R = 22,
56 D2_NETIF_IF_CAUSE_AP_UP_SUCC = 31,
57 D2_NETIF_IF_CAUSE_AP_UP_FAIL = 32,
58 D2_NETIF_IF_CAUSE_AP_DOWN_SUCC = 33,
59 D2_NETIF_IF_CAUSE_AP_DOWN_FAIL = 34,
60 D2_NETIF_IF_CAUSE_MD_UP_SUCC = 41,
61 D2_NETIF_IF_CAUSE_MD_UP_FAIL = 41,
62//[TH 20191202] Workaround for STKBRG CNF Fail -> D2 do not have error handling for CNF_FAIL-> run out of interface_id
63//D2_NETIF_IF_CAUSE_MD_UP_FAIL = 42,
64 D2_NETIF_IF_CAUSE_MD_DOWN_SUCC = 43,
65 D2_NETIF_IF_CAUSE_MD_DOWN_FAIL = 43,
66//[TH 20191202] Workaround for STKBRG CNF Fail -> D2 do not have error handling for CNF_FAIL-> run out of interface_id
67//D2_NETIF_IF_CAUSE_MD_DOWN_FAIL = 44,
68 D2_NETIF_IF_CAUSE_sAP_UP_SUCC = 51,
69 D2_NETIF_IF_CAUSE_sAP_UP_FAIL = 52,
70 D2_NETIF_IF_CAUSE_sAP_DOWN_SUCC = 53,
71 D2_NETIF_IF_CAUSE_sAP_DOWN_FAIL = 54,
72} d2_netif_interface_cause_enum;
73
74typedef enum {
75 D2_NETIF_RA_ERROR = -1,
76 D2_NETIF_RA_DEFAULT = 0,
77 D2_NETIF_RA_SUCCESS = 1,
78 D2_NETIF_RA_INITIAL_FAIL = 2,
79 D2_NETIF_RA_REFRESH_FAIL = 3,
80 D2_NETIF_RA_OOXX = 0x7FFFFFFF
81} d2_netif_ra_state_enum;
82
83typedef enum {
84 D2_NETIF_IF_STATE_DOWN = 0,
85 D2_NETIF_IF_STATE_UP = 1,
86
87 D2_NETIF_IF_STATE_DOWNING = 10,
88 D2_NETIF_IF_STATE_UPING = 11,
89 D2_NETIF_IF_STATE_OOXX = 0x7FFFFFFF
90} d2_netif_interface_state_enum;
91
92typedef struct {
93 network_ip_info_struct cellular;
94 network_ip_info_struct epdg;
95 ipstk_ip_info_struct md_ipstk;
96 ipstk_ip_info_struct ap_ipstk;
97 //ipstk_ip_info_struct sap_ipstk;
98} d2_netif_ip_info_t;
99
100/*
101typedef struct {
102 d2_netif_interface_state_enum state;
103 kal_uint16 is_use;
104} d2_netif_interface_status;
105*/
106
107typedef struct {
108 net_info_struct net_info;
109} d2_netif_net_info_t;
110
111typedef struct {
112 d2_netif_interface_state_enum md_if;
113 d2_netif_interface_state_enum ap_if;
114 d2_netif_interface_state_enum sap_if;
115 d2_netif_ra_state_enum ra_state;
116 d2_netif_ip_info_t ip;
117 kal_bool net_present;
118 d2_netif_net_info_t net;
119 kal_bool ran_present;
120 iwlan_ran_e ran;
121 kal_bool is_no_ra;
122} d2_netif_interface_info_t;
123
124typedef struct {
125 kal_uint8 is_used;
126 kal_uint8 ps_id;
127 kal_uint16 transaction_id;
128 // kal_uint32 interface_id;
129 d2_netif_interface_info_t info;
130} d2_netif_interface_dump_item_t;
131
132#define D2_NETIF_MAX_INTERFACE_ID (20)
133#define D2_NETIF_MAX_DUMP_INTERFACE_ID (D2_NETIF_MAX_INTERFACE_ID) //(8)
134
135// MSG_ID_D2_NETIF_CONTEXT_DUMP_IND
136typedef struct
137{
138 LOCAL_PARA_HDR
139
140 kal_int32 interface_id;
141 kal_int32 num;
142 kal_char str[32];
143 d2_netif_interface_dump_item_t item[D2_NETIF_MAX_DUMP_INTERFACE_ID];
144}d2_netif_context_dump_ind_struct;
145
146typedef d2_netif_context_dump_ind_struct d2_netif_context_dump_end_ind_struct;
147typedef d2_netif_context_dump_ind_struct d2_netif_context_dump_start_ind_struct;
148
149
150#define D2_NETIF_API_PARAM_TYPE(name) netif_api_param_type_##name
151#define D2_NETIF_API_PARAM_VAR(name) netif_api_param_var_##name
152
153typedef enum {
154#define D2_NETIF_API_PARAM(name) D2_NETIF_API_PARAM_TYPE(name),
155#include "d2_netif_api_param.def"
156#undef D2_NETIF_API_PARAM
157} d2_netif_api_param_type_e;
158
159// MSG_ID_D2_NETIF_API_DUMP_IND
160typedef struct
161{
162 LOCAL_PARA_HDR
163
164 kal_bool is_sensitive;
165 kal_char func[32];
166 kal_uint32 line;
167 kal_int32 interface_id;
168 kal_int32 value[6];
169 d2_netif_api_param_type_e type;
170 union {
171 char buf[0];
172#define D2_NETIF_API_PARAM(name) name D2_NETIF_API_PARAM_VAR(name);
173#include "d2_netif_api_param.def"
174#undef D2_NETIF_API_PARAM
175 } param;
176} d2_netif_api_dump_ind_struct;
177
178
179/**
180 * @brief Callback function type "d2_netif_interface_cb"
181 *
182 * When any interface event occurs, NETIF will notify the interface owner through this callback
183 * * You can also through custom_d2_netif_event_notify_cb() know all interface event
184 * @param t_interface_id the id of the interface in which the event occurred
185 * @param cause the cause of the event. See @ref d2_netif_interface_cause_enum
186 * @param user_data user data returned in callback
187 */
188typedef void (*d2_netif_interface_cb)(kal_int32 t_interface_id, d2_netif_interface_cause_enum cause, void *user_data);
189
190#endif