[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpmip.h b/mcu/interface/protocol/l2_c2k/common/hlpmip.h
new file mode 100644
index 0000000..4019366
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpmip.h
@@ -0,0 +1,249 @@
+/*****************************************************************************
+* 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) 2016
+*
+* 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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 2006-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _HLPMIP_H_
+#define _HLPMIP_H_
+/*****************************************************************************
+*
+* FILE NAME : hlpmip.h
+*
+* DESCRIPTION :
+*
+* This include file provides type declarations and constants for Mobile IP
+*
+* HISTORY :
+* See Log at end of file.
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "pswnam.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define AAA_AUTH_MAX_SIZE 8
+#define DMU_ENCRYPTED_DATA_MAX_SIZE 128
+
+#define MAX_RSA_PUBLIC_KEY_SUPPORTED 2
+
+#define HLP_DEFAULT_INLAND_NAI_REALM "@inland3g.com"
+#define HLP_DEFAULT_IVC_NAI_REALM "@ivcdata.com" /* IIIinois Valley Cellular */
+#define HLP_DEFAULT_APPALACHIAN_NAI_REALM "@myawi.com" /* Applalachian */
+typedef struct {
+ kal_uint8 MN_AAAH_Key[MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_HA_Key[MN_PASSWD_MAX_SIZE];
+ kal_uint8 CHAP_Key[MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE];
+ kal_uint8 AAA_Authenticator[AAA_AUTH_MAX_SIZE];
+} HlpDMUKeyDataT;
+
+typedef struct {
+ kal_uint8 MN_AAA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_HA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_SIP_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_AN_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+} HlpDmuSecureDataMsgT;
+
+typedef enum
+{
+ MIP_WFR_REREG_WINDOW,
+ MIP_REREG_WINDOW,
+ MIP_REREG_RRQ_SENT_WINDOW,
+ MIP_REREG_LIFETIME_EXPIRED,
+ MIP_DEREG_ALREADY
+} ReRegStateT;
+
+typedef enum
+{
+ MIP_RRP_TYPE,
+ MIP_RRP_CODE,
+ MIP_RRP_IDENT,
+ MIP_RRP_VENDOR_ID,
+ MIP_RRP_PUBLIC_KEY,
+ MIP_RRP_KEY_ENCRYPT,
+ MIP_RRP_CVSE_LEN,
+ MIP_RRP_AAA_AUTHENTICATOR,
+ MIP_RRP_CVSE_VENDOR_TYPE,
+ MIP_RRP_CVSE_TYPE_NUMBER,
+ MIP_RRP_LIFETIME,
+ MIP_RRP_AUTH_DATA,
+ MIP_RRP_EXT_TYPE,
+ MIP_RRP_EXT_LEN,
+ MIP_RRP_MAX_NUM
+} HlpMipRrpErrTypeT;
+
+typedef enum
+{
+ MIP_ADV_TYPE,
+ MIP_ADV_CODE,
+ MIP_ADV_ROUTER_NUM,
+ MIP_ADV_ENTRY_SIZE,
+ MIP_ADV_MOB_EXT_TYPE,
+ MIP_ADV_CHALL_EXT_TYPE,
+ MIP_ADV_FA_BUSY,
+ MIP_ADV_COA_NUM,
+ MIP_ADV_EXT_LEN,
+ MIP_ADV_MAX_NUM
+} HlpMipAdvErrTypeT;
+
+#define SECURE_DATA_SIP_PWD_BIT (1<<0)
+#define SECURE_DATA_AN_PWD_BIT (1<<1)
+#define SECURE_PROFILE_BIT (1<<2)
+#ifdef CBP7_EHRPD
+#define SECURE_DATA_AKA_PWD_BIT (1<<3)
+#endif
+
+typedef enum
+{
+ SECURE_DATA_SIP_PWD_SET = SECURE_DATA_SIP_PWD_BIT,
+ SECURE_DATA_AN_PWD_SET = SECURE_DATA_AN_PWD_BIT,
+#ifdef CBP7_EHRPD
+ SECURE_DATA_AKA_PWD_SET = SECURE_DATA_AKA_PWD_BIT,
+#endif
+ SECURE_SET_BOTH = RSA_PUBLIC_KEY_BIT|SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT,
+ SECURE_PROFILE_SET = SECURE_PROFILE_BIT,
+#ifdef CBP7_EHRPD
+ SET_ALL = SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT|SECURE_PROFILE_BIT|SECURE_DATA_AKA_PWD_BIT
+#else
+ SET_ALL = SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT|SECURE_PROFILE_BIT
+#endif
+}SecureDataSetE;
+
+typedef enum
+{
+ HLP_MIP_ERR_INVALID_STATE, /* MIP error codes */
+ HLP_MIP_ERR_INVALID_TIMER_ID,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_TYPE,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_CODE,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_NUM_ROUTER,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_ENTRY_SIZE,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_NUM_COA,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_EXT_TYPE, /* 0x10 */
+ HLP_MIP_ERR_AGENT_ADV_INVALID_EXT_LEN,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_AGENT,
+ HLP_MIP_ERR_AGENT_ADV_FA_BUSY,
+ HLP_MIP_ERR_AGENT_SOL_BUFFER_BUSY,
+ HLP_MIP_ERR_RRP_INVALID_TYPE,
+ HLP_MIP_ERR_RRP_INVALID_CODE,
+ HLP_MIP_ERR_RRP_INVALID_LIFETIME,
+ HLP_MIP_ERR_RRP_INVALID_IDENT,
+ HLP_MIP_ERR_RRP_INVALID_EXT_TYPE,
+ HLP_MIP_ERR_RRP_INVALID_EXT_LEN,
+ HLP_MIP_ERR_RRP_INVALID_AUTH_DATA,
+ HLP_MIP_ERR_RRP_INVALID_CHALLENGE_DATA,
+ HLP_MIP_ERR_RRQ_TOO_LARGE,
+ HLP_MIP_ERR_RRQ_BUFFER_BUSY,
+ HLP_MIP_ERR_USER_DATA_GET_FAILED,
+ HLP_MIP_ERR_INVALID_CVSE_TYPE_NUMBER, /* 0x20 */
+ HLP_MIP_ERR_INVALID_VENDOR_ID,
+ HLP_MIP_ERR_INVALID_CVSE_VENDOR_TYPE,
+ HLP_MIP_ERR_INVALID_PUBLIC_KEY,
+ HLP_MIP_ERR_INVALID_CVSE_LEN,
+ HLP_MIP_ERR_MIP_KEY_ENCRYPT_INVALID,
+ HLP_MIP_ERR_INVALID_AAA_AUTHENTICATOR,
+} HlpMipErrCodeE;
+
+/*----------------------------------------------------------------------------
+ Externs Declarations
+----------------------------------------------------------------------------*/
+extern void HlpMipInit(void);
+extern void HlpMipFallbackSipSet(kal_bool bEnable);
+extern kal_bool HlpMipFallbackSipGet(void);
+extern void HlpMipFallbackSipActive(void);
+
+extern void HlpMipRrpMsg(void *MsgDataP);
+extern void HlpMipAgentAdvMsg(void *MsgDataP);
+extern void HlpMipUmPppStatusMsg(void *MsgDataP);
+extern void HlpMipNvmMiscData(void* MsgDataP);
+extern void HlpMipNvmRRAUpdate(kal_uint16 Rra);
+extern void HlpMipNvmNumRegRetriesUpdate(kal_uint8 Num);
+extern void HlpMipNvmDeRegRetriesUpdate(kal_uint8 Num);
+extern void HlpMipNvmReRegOnlyIfTrafficUpdate(kal_bool ReRegOnlyIfTraffic);
+extern void HlpMipNvmMipNaiEnabledUpdate(kal_bool NaiEnabled);
+extern void HlpMipNvmRegTimeoutUpdate(kal_uint8 Timeout);
+extern void HlpMipNvmActivedProfileDataUpdate(HlpHspdSegData * MsgDataP);
+extern void HlpMipNvmSecureProfileDataUpdate(kal_uint8 SetType, HlpHspdSecureSegData* MsgDataP);
+
+extern void HlpDMUInit(void);
+extern void HlpMipKeysGenEnc(void);
+/*extern void HlpResetMNAuthMsg(void *MsgDataP);*/
+/*extern void HlpSetMNAuthMsg(void *MsgDataP);*/
+extern void HlpPswSDmuKeyGenRspMsg(void);
+extern void HlpPswSDmuKeyEncRspMsg(void);
+extern void HlpDmuRsaPublicKeyActiveAndMNAuthSetMsg(kal_uint8 SetType, HlpRSAPublicKeyOrgIdInfoT *MsgDataP);
+
+extern void HlpMipStartRrpAdminProhibRetry(void);
+extern kal_bool HlpMipCheckRrpAdminProhibRetry(void);
+extern kal_bool HlpMipCheckRrpAdminProhibRetryOtherErr(void);
+extern void HlpMipClearRrpAdminProhibRetry(void);
+
+extern void HlpMipResetRrpCode(void);
+extern void HlpMipSetRrpCode(kal_uint8 RrpCode);
+extern kal_uint8 HlpMipGetRrpCode(void);
+extern void HlpMIPReRegistration(MipReRegReasonT Reason);
+extern void HlpReturnToService(void);
+
+extern void HlpToReadNVRSAPublicKeyInfo(void);
+extern kal_bool HlpCheckRSAPublicKeyInfo(kal_uint8 nPKOID);
+extern kal_bool HlpIsAcgOpTetheringMode(void);
+extern kal_bool HlpIsAcgOpMipOnlyMode(void);
+extern kal_bool HlpCheckIsAcgSpecialNAI(char *pStr);
+extern kal_uint8 HlpDeriveTetheredNAIForACG(kal_uint8 *InputNAI, kal_uint8 InNAILen);
+/*****************************************************************************
+* $Log: hlpmip.h $
+*
+* 11 09 2016 sue.zhong
+* [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+* Update C2K PS code (1/2)
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
+
+