[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/general/n3epc_public_defs.h b/mcu/interface/protocol/general/n3epc_public_defs.h
new file mode 100644
index 0000000..6d0da07
--- /dev/null
+++ b/mcu/interface/protocol/general/n3epc_public_defs.h
@@ -0,0 +1,130 @@
+/*****************************************************************************
+*  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 __N3EPC_PUBLIC_DEFS_H__
+#define __N3EPC_PUBLIC_DEFS_H__
+
+#include "kal_public_defs.h"
+
+typedef enum {
+    N3EPC_PDN_REJECT_NONE = 0,
+    N3EPC_PDN_REJECT_DNS_TIMEOUT = 1040,
+    N3EPC_PDN_REJECT_DNS_NO_ADDRESS = 1041,
+
+    N3EPC_PDN_REJECT_CERTIFICATE_VALIDATE_FAIL = 1010,
+    N3EPC_PDN_REJECT_CERTIFICATE_EXPIRED = 1011,
+
+    N3EPC_PDN_REJECT_TUNNEL_ESTABLISH_TIMEOUT = 1081,
+    N3EPC_PDN_REJECT_TUNNEL_ESTABLISH_FAILED = 1082,
+
+    N3EPC_PDN_REJECT_HANDOVER_IP_DISCONTINUITY = 1999,
+
+    N3EPC_PDN_REJECT_HANDOVER_PROTOCOL_NOT_MATCHED = 2006,
+    N3EPC_PDN_REJECT_ABORT = 2008,
+    N3EPC_PDN_REJECT_IS_BLOCKED = 2013,
+    N3EPC_PDN_REJECT_UNKNOWN_REASON = 2014,
+    N3EPC_PDN_REJECT_WIFI_NOT_READY = 2015,
+    N3EPC_PDN_REJECT_ACT_REQ_IN_WRONG_STATE = 2016,
+} n3epc_pdn_reject_enum;
+
+typedef enum {
+    N3EPC_STATUS_OK = 0,
+    N3EPC_STATUS_FAIL = 1,  // Can't be used in the errcause of
+                            // d2rm_n3epc_act_data_call_cnf_prv_struct
+
+    N3EPC_STATUS_MAIN_ERROR_START = 1001,
+
+    /* NW error */
+    N3EPC_STATUS_DNS_QUERY_TIMEOUT = 1040,
+    N3EPC_STATUS_FQDN_NO_ADDRESS = 1041,
+    N3EPC_STATUS_UNABLE_CONNET_EPDG = 1081,  // from strongswan
+    N3EPC_STATUS_UNABLE_MAKE_IPSEC_TUNNEL = 1082,
+    N3EPC_STATUS_UNABLE_TO_VALIDATE_SERVER_CERTIFICATE =
+            1010,  // Not support for ePDG
+    N3EPC_STATUS_UNABLE_TO_VALIDATE_SERVER_CERTIFICATE_EPDG = 1101,
+    N3EPC_STATUS_INVALID_CERTIFICATE = 1011,  // Not support for ePDG
+    N3EPC_STATUS_INVALID_CERTIFICATE_EPDG = 1111,
+    N3EPC_STATUS_INVALID_IP_IN_HANDOVER = 1999,
+
+    /* Internal error  */
+    N3EPC_STATUS_NOT_READY = 2001,
+    N3EPC_STATUS_NO_APN_CONNECTION = 2002,
+    N3EPC_STATUS_PDN_INFO_NOT_MATCHED = 2003,
+    N3EPC_STATUS_PDN_CAN_NOT_CREATE = 2004,
+    N3EPC_STATUS_REJECT_PDN_ACT_REQ_IN_WRONG_STATE = 2005,
+    N3EPC_STATUS_HO_ADDR_PROTO_NOT_MATCHED = 2006,
+    N3EPC_STATUS_WRONG_PDN_REQ_TYPE = 2007,
+    N3EPC_STATUS_PDN_ACT_ABORT = 2008,
+    N3EPC_STATUS_PDN_ACT_TIMEOUT = 2009,
+    N3EPC_STATUS_EMERGENCY_NO_IMEI = 2010,
+    N3EPC_STATUS_PDN_LOCAL_RELEASE = 2011,
+    N3EPC_STATUS_TUNNEL_SETUP_TIMEOUT = 2012,
+    N3EPC_STATUS_MAIN_ERROR_END = 3000,
+} n3epc_status_enum;
+
+typedef enum {
+    IKE_NOTIFICATION_NONE = 0,
+    UNSUPPORTED_CRITICAL_PAYLOAD = 1,
+    INVALID_IKE_SPI = 4,
+    INVALID_MAJOR_VERSION = 5,
+    INVALID_SYNTAX = 7,
+    INVALID_MESSAGE_ID = 9,
+    INVALID_SPI = 11,
+    NO_PROPOSAL_CHOSEN = 14,
+    INVALID_KE_PAYLOAD = 17,
+    AUTHENTICATION_FAILED = 24,
+    SINGLE_PAIR_REQUIRED = 34,
+    NO_ADDITIONAL_SAS = 35,
+    INTERNAL_ADDRESS_FAILURE = 36,
+    FAILED_CP_REQUIRED = 37,
+    TS_UNACCEPTABLE = 38,
+    INVALID_SELECTORS = 39,
+    UNACCEPTABLE_ADDRESSES = 40,
+    UNEXPECTED_NAT_DETECTED = 41,
+    USE_ASSIGNED_HoA = 42,
+    TEMPORARY_FAILURE = 43,
+    CHILD_SA_NOT_FOUND = 44,
+
+    /*
+     * Unassigned: 47-8191
+     * private use: 8192-16383
+     */
+    NOTIFY_ERROR_END = 16383,
+
+    /* reactivation_requested_cause,ref 24.302-d80 */
+    REACTIVATION_REQUESTED_CAUSE = 40961,
+} n3epc_ike_error_notify_enum;
+
+#endif /* __N3EPC_PUBLIC_DEFS_H__ */