blob: 1474046e4a3948dd14e35f83ae024251000e6c94 [file] [log] [blame]
/*****************************************************************************
* 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) 2012
*
* 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 __D2_NETIF_STRUCT_H__
#define __D2_NETIF_STRUCT_H__
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "ps_public_enum.h"
//#include "pdn_public_defs.h"
#include "netinfo_common_struct.h"
#include "iwlan_public_defs.h"
typedef enum {
D2_NETIF_IF_CAUSE_NO_ERROR = 0,
D2_NETIF_IF_CAUSE_NET_IP_CHG = 11,
D2_NETIF_IF_CAUSE_MD_IP_CHG = 12,
D2_NETIF_IF_CAUSE_AP_IP_CHG = 13,
D2_NETIF_IF_CAUSE_NET_INFO_CHG = 14,
D2_NETIF_IF_CAUSE_RAN_CHG = 15,
D2_NETIF_IF_CAUSE_CHG = 20,
D2_NETIF_IF_CAUSE_NO_RA_I = 21,
D2_NETIF_IF_CAUSE_NO_RA_R = 22,
D2_NETIF_IF_CAUSE_AP_UP_SUCC = 31,
D2_NETIF_IF_CAUSE_AP_UP_FAIL = 32,
D2_NETIF_IF_CAUSE_AP_DOWN_SUCC = 33,
D2_NETIF_IF_CAUSE_AP_DOWN_FAIL = 34,
D2_NETIF_IF_CAUSE_MD_UP_SUCC = 41,
D2_NETIF_IF_CAUSE_MD_UP_FAIL = 41,
//[TH 20191202] Workaround for STKBRG CNF Fail -> D2 do not have error handling for CNF_FAIL-> run out of interface_id
//D2_NETIF_IF_CAUSE_MD_UP_FAIL = 42,
D2_NETIF_IF_CAUSE_MD_DOWN_SUCC = 43,
D2_NETIF_IF_CAUSE_MD_DOWN_FAIL = 43,
//[TH 20191202] Workaround for STKBRG CNF Fail -> D2 do not have error handling for CNF_FAIL-> run out of interface_id
//D2_NETIF_IF_CAUSE_MD_DOWN_FAIL = 44,
D2_NETIF_IF_CAUSE_sAP_UP_SUCC = 51,
D2_NETIF_IF_CAUSE_sAP_UP_FAIL = 52,
D2_NETIF_IF_CAUSE_sAP_DOWN_SUCC = 53,
D2_NETIF_IF_CAUSE_sAP_DOWN_FAIL = 54,
} d2_netif_interface_cause_enum;
typedef enum {
D2_NETIF_RA_ERROR = -1,
D2_NETIF_RA_DEFAULT = 0,
D2_NETIF_RA_SUCCESS = 1,
D2_NETIF_RA_INITIAL_FAIL = 2,
D2_NETIF_RA_REFRESH_FAIL = 3,
D2_NETIF_RA_OOXX = 0x7FFFFFFF
} d2_netif_ra_state_enum;
typedef enum {
D2_NETIF_IF_STATE_DOWN = 0,
D2_NETIF_IF_STATE_UP = 1,
D2_NETIF_IF_STATE_DOWNING = 10,
D2_NETIF_IF_STATE_UPING = 11,
D2_NETIF_IF_STATE_OOXX = 0x7FFFFFFF
} d2_netif_interface_state_enum;
typedef struct {
network_ip_info_struct cellular;
network_ip_info_struct epdg;
ipstk_ip_info_struct md_ipstk;
ipstk_ip_info_struct ap_ipstk;
//ipstk_ip_info_struct sap_ipstk;
} d2_netif_ip_info_t;
/*
typedef struct {
d2_netif_interface_state_enum state;
kal_uint16 is_use;
} d2_netif_interface_status;
*/
typedef struct {
net_info_struct net_info;
} d2_netif_net_info_t;
typedef struct {
d2_netif_interface_state_enum md_if;
d2_netif_interface_state_enum ap_if;
d2_netif_interface_state_enum sap_if;
d2_netif_ra_state_enum ra_state;
d2_netif_ip_info_t ip;
kal_bool net_present;
d2_netif_net_info_t net;
kal_bool ran_present;
iwlan_ran_e ran;
kal_bool is_no_ra;
} d2_netif_interface_info_t;
typedef struct {
kal_uint8 is_used;
kal_uint8 ps_id;
kal_uint16 transaction_id;
// kal_uint32 interface_id;
d2_netif_interface_info_t info;
} d2_netif_interface_dump_item_t;
#define D2_NETIF_MAX_INTERFACE_ID (20)
#define D2_NETIF_MAX_DUMP_INTERFACE_ID (D2_NETIF_MAX_INTERFACE_ID) //(8)
// MSG_ID_D2_NETIF_CONTEXT_DUMP_IND
typedef struct
{
LOCAL_PARA_HDR
kal_int32 interface_id;
kal_int32 num;
kal_char str[32];
d2_netif_interface_dump_item_t item[D2_NETIF_MAX_DUMP_INTERFACE_ID];
}d2_netif_context_dump_ind_struct;
typedef d2_netif_context_dump_ind_struct d2_netif_context_dump_end_ind_struct;
typedef d2_netif_context_dump_ind_struct d2_netif_context_dump_start_ind_struct;
#define D2_NETIF_API_PARAM_TYPE(name) netif_api_param_type_##name
#define D2_NETIF_API_PARAM_VAR(name) netif_api_param_var_##name
typedef enum {
#define D2_NETIF_API_PARAM(name) D2_NETIF_API_PARAM_TYPE(name),
#include "d2_netif_api_param.def"
#undef D2_NETIF_API_PARAM
} d2_netif_api_param_type_e;
// MSG_ID_D2_NETIF_API_DUMP_IND
typedef struct
{
LOCAL_PARA_HDR
kal_bool is_sensitive;
kal_char func[32];
kal_uint32 line;
kal_int32 interface_id;
kal_int32 value[6];
d2_netif_api_param_type_e type;
union {
char buf[0];
#define D2_NETIF_API_PARAM(name) name D2_NETIF_API_PARAM_VAR(name);
#include "d2_netif_api_param.def"
#undef D2_NETIF_API_PARAM
} param;
} d2_netif_api_dump_ind_struct;
/**
* @brief Callback function type "d2_netif_interface_cb"
*
* When any interface event occurs, NETIF will notify the interface owner through this callback
* * You can also through custom_d2_netif_event_notify_cb() know all interface event
* @param t_interface_id the id of the interface in which the event occurred
* @param cause the cause of the event. See @ref d2_netif_interface_cause_enum
* @param user_data user data returned in callback
*/
typedef void (*d2_netif_interface_cb)(kal_int32 t_interface_id, d2_netif_interface_cause_enum cause, void *user_data);
#endif