[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/general/lpp_msg_struct.h b/mcu/interface/protocol/general/lpp_msg_struct.h
new file mode 100644
index 0000000..c3a7e44
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_msg_struct.h
@@ -0,0 +1,620 @@
+/******************************************************************************
+*  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) 2013
+*
+*  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).
+*
+*******************************************************************************/
+
+/******************************************************************************
+ * Filename:
+ * --------------------------------------------------------
+ *   lpp_msg_struct.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ *   LTE project
+ *
+ * Description:
+ * --------------------------------------------------------
+ *   LTE Positioning Protocol - Message Structure Definition
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 05 12 2021 jie-yu.wang
+ * [MOLY00628543] [A32 5G NA] request to fix OTDOA issue
+ * 	
+ * 	[SWRD][NR15.R3.MD700] OTDOA response
+ *
+ * 11 10 2020 jie-yu.wang
+ * [MOLY00589182] [Gen97][MP7][Memory reduction] Stage V - LTE POS preempt LTE/NR HARQ buffer
+ * 	
+ * 	[Interface][LPP].
+ *
+ * 11 29 2019 jie-yu.wang
+ * [MOLY00461947] [LPP] Patch back from 1001.DEV to VMOLY
+ * [SWRD] LPP patch back
+ *
+ * 06 20 2019 jie-yu.wang
+ * [MOLY00415205] [AGPS] [LBS] NR Neighbor cell information for SUPL
+ * [OA][LBS] SUPL Nbr Cell Interface.
+ *
+ * 06 12 2019 jie-yu.wang
+ * [MOLY00413168] [LPP] Inter RAT OTDOA modification for adding NRRC IND
+ * [OA][LPP] InterRAT OTDOA interface change for NRRC.
+ *
+ * 05 29 2019 jie-yu.wang
+ * [MOLY00394881] [LPP] Inter RAT OTDOA modification
+ * [OA][LPP] OTDOA RefCell Global ID.
+ *
+ * 05 15 2019 andrew.wu
+ * [MOLY00406240] [VGMM] DL NAS TRANSPORT with type multiple payload
+ * DL NAS TRANSPORT with type multiple payload.
+ *
+ * 03 28 2019 jie-yu.wang
+ * [MOLY00394881] [LPP] Inter RAT OTDOA modification
+ * [LPP] InterRAT OTDOA interface.
+ *
+ * 11 29 2018 roland.li
+ * [MOLY00363204] [Gen97] NR positioning interface check-in
+ * [LPP] 5G positioning interface.
+ *
+ * 02 05 2018 jie-yu.wang
+ * [MOLY00306235] [UMOLYE] LPP ASN Release 14 upgrade
+ * [LPP] R14 ASN upgrade.
+ *
+ * 12 01 2017 lawrence.chen
+ * [MOLY00292511] [Coverity Scanned Code Defect]CID:2540031 code defect happened in /mcu/l1core/modem/el1/el1c/meas/src/el1_lpp.c
+ * Coverity warning fix.
+ *
+ * 09 20 2017 lawrence.chen
+ * [MOLY00278366]LPP OTDOA new procedure architecture development.
+ *
+ * 07 07 2017 jie-yu.wang
+ * [MOLY00261827] [UMOYLA] LPPe development
+ * [LPP] LPPe code change check-in.
+ *
+ * 06 27 2016 jie-yu.wang
+ * [MOLY00183642] new task EL1_MPC definition for 6293
+ * (LPP) UMOLYA MessageID change.
+ *
+ * 01 14 2015 roland.li
+ * [MOLY00092193] [UMOLY][LPP]LPP R10R11 feature checkin
+ * .
+ *
+ * 01 13 2015 roland.li
+ * [MOLY00092193] [UMOLY][LPP]LPP R10R11 feature checkin
+ * 	.
+ *
+ * 10 08 2014 roland.li
+ * [MOLY00080296] [LPP] Always trun on LPP CP options for L1 stand alone build
+ * 	.
+ *
+ * 08 04 2014 doug.shih
+ * [MOLY00073990] [LPP CP] LPP code check-in for OTDOA feature
+ * .
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_MSG_STRUCT_H
+#define _LPP_MSG_STRUCT_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+/*Always trun on LPP CP options for L1 stand alone build*/
+
+#include "lpp_msg_enum.h"
+#include "ps_public_struct.h"  /* for L4C SS struct */
+#include "as2l4c_struct.h"     /* for L4CPS NBR cell info */
+#include "mcd_l3_inc_struct.h" /* for PLMN id */
+#include "l3_inc_enums.h"      /* for LCS/EMM enum */
+#include "l3_inc_local.h"      /* for VGMM struct */
+
+/*****************************************************************************
+ * Macros Without Parameters
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Macros With Parameters
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Enums without tags
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Type Definitions
+ *****************************************************************************/
+/* LPP -> ERRC */
+/* This structure for MSG_ID_LPP_EL1MPC_OTDOA_MEAS_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+    kal_uint8   responseTime;     /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+} lpp_el1mpc_otdoa_meas_req_struct;
+
+typedef struct
+{
+   lpp_otdoa_prs_info_bandwidth_enum     prsBandwidth;
+   kal_uint16                            prsConfigIndex;     /* [0..4095] */
+   lpp_otdoa_prs_info_num_dl_frame_enum  numDLFrames;
+   kal_bool                              prsMutingInfoValid;
+   lpp_otdoa_prs_info_muting_po_enum     prsMutingInfoType;
+   kal_uint16                            prsMutingInfoBits;  /* Position Occasion: PO-2: 2 bits, PO-4: 4 bits, PO-8: 8 bits, PO-16: 16 bits */
+} lpp_otdoa_prs_info;
+
+
+typedef struct
+{
+    kal_uint16          phyCellId;                 /* [0..503] */
+    kal_uint32          earfcn;                    /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present; LPP assign reference cell if received message IE does not present */
+    kal_bool            isFourAntPortConfig;       /* TRUE: 4 antenna ports for CRS are used in the assistance data reference cell, FALSE: 1 (or 2) antenna port(s) */
+    kal_bool            isCPLengthExtended;        /* TRUE: cyclic prefix length of PRS or CRS is extended, FALSE: cyclic prefix length is normal */
+    lpp_otdoa_prs_info  prsInfo;
+    /* ECGI info */
+    kal_bool            isRefGlobalCellIdValid;    /*Indecate the validity of ECGI element, including plmnId and refCellId*/
+    plmn_id_struct      plmnId;
+    kal_uint32          refCellId;                    /* eutra 28 bits */
+} lpp_otdoa_ref_cell_info_struct;
+
+
+typedef struct
+{
+    kal_uint16          phyCellId;                 /* [0..503] */
+    kal_uint32          earfcn;                    /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present; LPP assign reference cell if received message IE does not present */
+    kal_bool            isCPLengthExtended;        /* TRUE: cyclic prefix length of PRS or CRS is extended, FALSE: cyclic prefix length is normal */
+    kal_bool            isFourAntPortConfig;       /* TRUE: 4 antenna ports for CRS are used in the assistance data reference cell, FALSE: 1 (or 2) antenna port(s) */
+    lpp_otdoa_prs_info  prsInfo;
+    kal_uint8           slotNumberOffset;          /* [0..19] */
+    kal_uint16          prsSubFrameOffset;         /* [0..1279] */
+    kal_uint16          expectedRSTD;              /* [0..16383] */
+    kal_uint16          expectedRSTDUnc;           /* [0..1023] */
+} lpp_otdoa_nbr_cell_info_struct;
+
+typedef struct
+{
+    /**
+        * Number of neighbor frequency layers
+        * - Range  :  1 .. 3
+        */
+    kal_uint8                       numCellInfo;
+   /**
+        * OTDOA assistant data neighbor cell for neighbor frequency layer
+        */
+    lpp_otdoa_nbr_cell_info_struct  cellInfo[LPP_OTDOA_MAX_NBR_CELL_LIST_NUM];
+} lpp_otdoa_nbr_cell_info_list_struct;
+
+
+typedef struct
+{
+    kal_uint8                            numFreqInfo;
+    lpp_otdoa_nbr_cell_info_list_struct  freqInfo[LPP_OTDOA_MAX_NBR_CELL_FREQ_LAYER_NUM+1];
+}  lpp_otdoa_nbr_freq_info_list_struct;
+
+typedef struct
+{
+    /**
+        * OTDOA assistant data reference cell received from location server. LPP shall ensure all IEs are present when sending it to ERRC/EL1.
+        */
+    lpp_otdoa_ref_cell_info_struct       refCellInfo;
+    /**
+        * OTDOA assistant data neighbor cell received from location server. LPP shall ensure all IEs are present when sending it to ERRC/EL1.
+        */
+    lpp_otdoa_nbr_freq_info_list_struct  nbrCellInfo;
+} lpp_otdoa_assist_data_struct;
+
+
+/* This structure for MSG_ID_LPP_ERRC_OTDOA_MEAS_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+    kal_bool    isResponseTimeEarlyFixValid;
+    kal_uint8   earlyResponseTime;     /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement early Fix, but LPP still controls the response timer */
+    kal_uint8   responseTime;     /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+    lpp_otdoa_assist_data_struct otdoaAssistData;
+    kal_uint32  responseTimeinTick;
+} lpp_errc_otdoa_meas_req_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+    kal_bool    isResponseTimeEarlyFixValid;
+    kal_uint8   earlyResponseTime;     /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement early Fix, but LPP still controls the response timer */
+    kal_uint8   responseTime;     /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+    lpp_otdoa_assist_data_struct otdoaAssistData;
+    kal_bool   isNrLteSfnOffsetValid;   /* The validity of following parameter nrLteSfnOffset. */
+    kal_uint16   nrLteSfnOffset;   /* [0...1023], specifies the SFN offset between the serving NR cell and the assistance data reference cell. */
+    kal_bool     isNrLteFineTimingOffsetValid;  /* The validity of following parameter NrLteFineTimingOffset. */
+    kal_uint8    NrLteFineTimingOffset;   /* [0...19],unit in 0.5ms. specifies the frame boundary offset between the NR serving cell and the LTE assistance data reference cell. */
+	kal_uint32   responseTimeinTick;
+} lpp_nrrc_otdoa_meas_req_struct;
+
+
+/* This structure for MSG_ID_LPP_ERRC_OTDOA_MEAS_ABORT_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+} lpp_errc_otdoa_meas_abort_req_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_ABORT_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+} lpp_nrrc_otdoa_meas_abort_req_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_ECID_MEAS_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+    kal_bool    rsrpReq;
+    kal_bool    rsrqReq;
+    kal_bool    ueRxTxTimeDiffReq;
+    kal_bool    ueRxTxSupTDD;
+} lpp_errc_ecid_meas_req_struct;
+
+/* MSG_ID_LPP_ERRC_IRAT_ECID_MEAS_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+} lpp_errc_irat_ecid_meas_req_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_ECID_MEAS_ABORT_REQ */
+/* the conditions LPP will send abort request to ERRC:
+ * (1) network abort ECID session or LPP protocol error
+ * (2) ECID response timer expiry
+ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  transactionID;
+} lpp_errc_ecid_meas_abort_req_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_SRB_STATUS_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool active; /*to request ERRC to send SRB2 status, TRUE: send, FALSE: stop*/
+} lpp_errc_srb_status_req_struct;
+
+/* ERRC -> LPP */
+/**
+ *   error-Resolution 
+ *   This field specifies the resolution R used in error-Value field. The encoding on two bits is as follows: 
+ *        '00'            5 meters 
+ *        '01'           10 meters 
+ *        '10'           20 meters 
+ *        '11'           30 meters. 
+ *   
+ *   error-Value 
+ *   This field specifies the target device"s best estimate of the uncertainty of the OTDOA (or TOA) measurement. 
+ *   The encoding on five bits is as follows: 
+ *        '00000'     0    to   (R*1-1) meters 
+ *        '00001'     R*1  to   (R*2-1) meters 
+ *        '00010'     R*2  to   (R*3-1) meters 
+ *        ¡K 
+ *        '11111'     R*31  meters or more; 
+ *   where R is the resolution defined by error-Resolution field.  
+ *   e.g. , R=20 m corresponds to 0-19 m, 20-39 m,¡K,620+ m.  
+ *
+ *   error-NumSamples 
+ *   If the error-Value field provides the sample uncertainty of the OTDOA (or TOA) measurement, this field specifies how 
+ *   many measurements have been used by the target device to determine this (i.e., sample size). Following 3 bit 
+ *   encoding is used: 
+ *        "000"         Not the baseline metric 
+ *        '001'         5-9 
+ *        '010'         10-14 
+ *        '011'         15-24 
+ *        '100'         25-34 
+ *        '101'         35-44 
+ *        '110'         45-54 
+ *        '111'         55 or more. 
+ *   In case of the value "000", the error-Value field contains the target device"s best estimate of the uncertainty of the 
+ *   OTDOA (or TOA) measurement not based on the baseline metric. E.g., other measurements such as signal-to-noise-
+ *   ratio or signal strength can be utilized to estimate the error-Value. 
+ *   If this field is absent, the value of this field is "000". 
+ */
+typedef struct
+{
+    kal_uint8  errResolution;     /* 2 bits, refer description as above */
+    kal_uint8  errValue;          /* 5 bits, refer description as above */
+    kal_bool   errSamplesValid;
+    kal_uint8  errSamples;        /* 3 bits, refer description as above */
+} lpp_otdoa_measured_quality_struct;
+
+typedef struct
+{
+    /**
+        * This field specifies the physical cell identity of the neighbour cell for which the RSTDs are provided.
+        * - Range  :  0 .. 503
+        */
+    kal_uint16                         phyCellId;
+    /**
+        * This field specifies the EARFCN of the neighbour cell used for the RSTD measurements.
+        * - Range  :  0 .. 262143
+        */
+    EARFCN                             earfcn;
+    /**
+        * This field specifies the relative timing difference between this neighbour cell and the RSTD reference cell, as defined
+        * in TS 36.214. Mapping of the measured quantity is defined as in TS 36.133 subclause 9.1.10.3.
+        * - Range  :  0 .. 12711
+        */
+    kal_uint16                         rstd;
+    /**
+        * This field specifies the target device"s best estimate of the quality of the measured rstd.
+        */
+    lpp_otdoa_measured_quality_struct  rstdQuality;
+} lpp_otdoa_measured_nbr_cell_struct;
+
+typedef struct
+{
+    /**
+        * This field specifies the SFN of the RSTD reference cell containing the starting subframe of the PRS positioning
+        * occasion if PRS are available on the RSTD reference cell, or subframe of the CRS for RSTD measurements if PRS
+        * are not available on the RSTD reference cell during which the most recent neighbour cell RSTD measurement was
+        * performed.
+        * - 10 bits
+        */
+    kal_uint16                          sysFrameNumber;
+    /**
+        * This field specifies the physical cell identity of the RSTD reference cell.
+        * - Range  :  0 .. 503
+        */
+    kal_uint16                          refPhyCellId;
+    /**
+        * This field specifies the EARFCN of the RSTD reference cell.
+        * - Range  :  0 .. 262143
+        */
+    EARFCN                              refEarfcn;
+    /**
+        * This field specifies the presence of optional IE "referenceQuality".
+        */
+    kal_bool                            refQualityValid;
+    /**
+        * This field specifies the target device's best estimate of the quality of the TOA measurement from the RSTD reference
+        * cell, T_SubframeRxRef , where T_SubframeRxRef is the time of arrival of the signal from the RSTD reference cell.
+        */    
+    lpp_otdoa_measured_quality_struct   refQuality;
+    /**
+        * Number of neighbour cells
+        * - Range  :  1 .. 24
+        */
+    kal_uint8                           numMeasuredNbrCell;
+    /**
+        * This list contains the measured RSTD values for neighbour cells together with the RSTD reference cell, along with
+        * quality for each measurement.
+        */
+    lpp_otdoa_measured_nbr_cell_struct  measuredNbrCell[LPP_OTDOA_MAX_NBR_CELL_LIST_NUM_TOTAL];
+}  lpp_otdoa_measured_info_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_OTDOA_MEAS_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                      transactionID;
+    lpp_otdoa_req_stop_enum         status;  //request perform status, (0: succ; 1: reStarts for SUS; 2: reStart with longer time period)
+    kal_bool                        isEarlyFixReport;
+    lpp_otdoa_measured_info_struct  measurementResult;
+} lpp_errc_otdoa_meas_cnf_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                      transactionID;
+    kal_bool                        isEarlyFixReport;
+    lpp_otdoa_measured_info_struct  measurementResult;
+} lpp_nrrc_otdoa_meas_ind_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                      transactionID;
+    lpp_otdoa_req_stop_enum         status;  //request perform status, (0: succ; 1: reStarts for SUS; 2: reStart with longer time period)
+    lpp_otdoa_measured_info_struct  measurementResult;
+} lpp_nrrc_otdoa_meas_cnf_struct;
+
+typedef struct
+{
+    kal_uint16      phyCellId;            /* [0..503] */
+    kal_bool        plmnIdValid;
+    plmn_id_struct  plmnId;
+    kal_bool        cellIdValid;
+    kal_uint32      cellId;               /* eutra 28 bits */
+    kal_uint32      earfcn;               /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present */
+    kal_bool        sysFrameNumberValid;
+    kal_uint16      sysFrameNumber;       /* 10 bits */
+    /* measured result */
+    kal_bool        rsrpResultValid;
+    kal_uint8       rsrpResult;           /* [0..97]  */
+    kal_bool        rsrqResultValid;
+    kal_uint8       rsrqResult;           /* [0..34] */
+    kal_bool        ueRxTxTimeDiffValid;
+    kal_uint16      ueRxTxTimeDiff;       /* [0..4095] */
+} lpp_ecid_cell_measured_info_struct;
+
+typedef struct
+{
+    /**
+     * Please note that the interface here is more straight-forward than ECID-SignalMeasurementInformation IE of LPP Message:
+     * when ERRC has measured primary cell, the result will place in primaryCellMeasuredResult;
+     * (if serving (primary) cell is not present, the whole measured info should be ignored since result will be error)
+     *
+     * in addition to primary cell, if ERRC also measured neighbor cells, they will be put into the array of measuredCellResult[],
+     * and the number of neighbor will specify in numMeasuredCellResult
+     */
+    lpp_ecid_cell_measured_info_struct  primaryCellMeasuredResult;
+    kal_uint8                           numMeasuredCellResult;
+    lpp_ecid_cell_measured_info_struct  measuredCellResult[LPP_ECID_MAX_MEASURED_CELL_INFO_NUM];
+} lpp_ecid_measured_info_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_ECID_MEAS_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                     transactionID;
+    lpp_loc_ecid_result_enum       result;
+    lpp_ecid_measured_info_struct  measurementResult;
+} lpp_errc_ecid_meas_cnf_struct;
+
+typedef struct
+{
+    kal_uint8 numMeasuredCellResult;
+    lpp_ecid_cell_measured_info_struct measuredCellResult[LPP_ECID_MAX_MEASURED_CELL_INFO_NUM];
+} lpp_irat_ecid_measured_info_struct;
+
+/* MSG_ID_LPP_ERRC_IRAT_ECID_MEAS_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 transactionID;
+    kal_bool measurementResultValid;
+    lpp_irat_ecid_measured_info_struct measurementResult;
+} lpp_errc_irat_ecid_meas_cnf_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_SRB_STATUS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool isConnected;  /*TRUE: SRB2 active, FALSE: not sent*/
+} lpp_errc_srb_status_ind_struct;
+
+
+/* This structure for MSG_ID_LPP_SASE_START_OTDOA_MEAS_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool     isAllowedOtdoa;   
+} lpp_sase_start_otdoa_meas_cnf_struct;
+
+
+
+/* LPP -> EMM (EVAL) */
+/* This structure for MSG_ID_LPP_EVAL_DATA_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16  mui;
+    /* for Additional Information IE of UL generic NAS transport */
+    kal_uint8   addInfoLen;
+    kal_uint8   *addInfo;
+    /* raw data is in peer buffer */
+} lpp_eval_data_req_struct;
+
+/* This structure for MSG_ID_LPP_EVAL_DATA_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    /* for Additional Information IE of DL generic NAS transport */
+    kal_uint8   addInfoLen;
+    kal_uint8   *addInfo;
+    lcs_emm_status_enum result;
+    /* raw data is in peer buffer */
+} lpp_eval_data_ind_struct;
+
+/* This structure for MSG_ID_LPP_EVAL_DATA_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    lcs_emm_status_enum  result;
+    kal_uint16           mui;
+} lpp_eval_data_cnf_struct;
+
+/* This structure for MSG_ID_EVAL_LPP_NW_RESET_UE_STORED_POS_INFO_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ue_pos_tech_enum  pos_tech;
+} eval_lpp_nw_reset_ue_stored_pos_info_ind_struct;
+
+
+/* This structure for MSG_ID_ETC_LPP_NW_RESET_UE_STORED_POS_INFO_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ue_pos_tech_enum  pos_tech;
+} etc_lpp_nw_reset_ue_stored_pos_info_ind_struct;
+
+
+/* LPP <-- VGMM */
+/* This structure for MSG_ID_LPP_VGMM_DATA_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    /* for Additional Information IE of DL generic NAS transport */
+    kal_uint8   addInfoLen;
+    kal_uint8   *addInfo;
+    lcs_vgmm_status_enum result;
+    kal_uint8 no_optional_ie;
+    vgmm_payload_opt_ie_struct optional_ie[MAX_NUM_OF_OPT_IE_MULTI];
+    /* raw data is in peer buffer */
+} lpp_vgmm_data_ind_struct;
+
+/* This structure for MSG_ID_LPP_VGMM_DATA_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8  serial_num;
+    lcs_vgmm_status_enum  result;
+} lpp_vgmm_data_cnf_struct;
+
+/* LPP --> VGMM */
+/* This structure for MSG_ID_LPP_VGMM_DATA_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8  serial_num;
+    /* for Additional Information IE of UL generic NAS transport */
+    kal_uint8   addInfoLen;
+    kal_uint8   *addInfo;
+    /* raw data is in peer buffer */
+} lpp_vgmm_data_req_struct;
+
+
+#endif /* _LPP_MSG_STRUCT_H */