[Feature][Modem]Add Modem Patch P1

Change-Id: Idee4f9fd6700b484f7db86704cf5639cec4d71a2
diff --git a/mcu/protocol/interface/ddm/d2cm_struct.h b/mcu/protocol/interface/ddm/d2cm_struct.h
old mode 100644
new mode 100755
index cfae5c2..1ed58ae
--- a/mcu/protocol/interface/ddm/d2cm_struct.h
+++ b/mcu/protocol/interface/ddm/d2cm_struct.h
@@ -411,6 +411,7 @@
     d2cm_act_data_call_ran_info_struct fb_ran_info;    // RAN info of non-3GPP for fb_cid
     d2cm_act_data_call_retry_info_struct retry_info;    // retry timer for APN
     kal_int32 res;
+    res_info_struct res_info;
 
     /* private part */
     union
@@ -646,6 +647,7 @@
     d2cm_act_data_call_if_info_struct if_info;    // for interface information
     d2cm_act_data_call_ran_info_struct ran_info;    // RAN info of non-3GPP
     kal_int32 res;
+    res_info_struct res_info;
 
     /* private part */
     union
diff --git a/mcu/protocol/interface/errc/5g/errc_nrrc_struct.h b/mcu/protocol/interface/errc/5g/errc_nrrc_struct.h
old mode 100644
new mode 100755
index 76a122a..2966d69
--- a/mcu/protocol/interface/errc/5g/errc_nrrc_struct.h
+++ b/mcu/protocol/interface/errc/5g/errc_nrrc_struct.h
@@ -54,8 +54,23 @@
  * ==========================================================================
  * $Log$
  *
+ * 08 11 2022 ot_asmita.k
+ * [MOLY00822474] ?Transsion??requirement??feature?better RAT detection
+ * 	
+ * 	.
+ *
+ * 07 27 2022 aimee.li
+ * [MOLY00843682] ?????? 3429378: ?21121?????????????????21121 CU+CMCC(SA+IMS)??????EPSFB????????? ???3/3
+ * 	
+ * 	.
+ *
+ * 07 25 2022 aimee.li
+ * [MOLY00843682] 软件测试缺陷 3429378: ã€?21121】ã€?湖å?—湘潭】ã€?网优】ã€?扫网测试】21121 CU+CMCC(SA+IMS)å?¡ä¸€ä¸»å?¡è?”通EPSFB通è¯?过程中无法上网 概率:3/3
+ * 	
+ * Sec algorithm interface
+ *
  * 01 20 2022 tina.ma
- * [MOLY00750695] N77/78????????
+ * [MOLY00750695] N77/78频率范围��?制功能
  * 	
  * 	.
  *
@@ -87,7 +102,7 @@
  * 06 30 2020 doris.jiang
  * [MOLY00534637] [Gen97] EM/ICD check in for DMF feature
  * 	
- * 	[MOLY00525281] NSA°åç»´æ?求ïSCGæ·»å失败主动上报事件
+ * 	[MOLY00525281] NSA��维�?求�SCG添�失败主动上报事件
  * 	
  * 	[Huawei requirement] ICD development - SCG Failure event/ SCG release event
  *
@@ -685,6 +700,10 @@
     LOCAL_PARA_HDR
     kal_bool                                     result;
     kal_uint8                                    config_bitmap;
+    kal_bool                                     mn_ciphering_algorithm_valid;
+    enpdcp_ciphering_alg_enum                    mn_ciphering_algorithm;
+    kal_bool                                     mn_integrity_algorithm_valid;
+    enpdcp_integrity_alg_enum                    mn_integrity_algorithm;
     errc_nrrc_ie_check_cnf_chctrl_param_struct   chctrl_param;
 } errc_nrrc_ie_check_cnf_struct;
 
@@ -963,6 +982,7 @@
     nr_redirect_info_struct    redirect_info[MAX_NUM_NR_REDIRECTION_FREQ];
     kal_uint32                 nr_afr_timer;
     kal_bool                   is_elevator_mode;  // used for 4G5 elevator mode
+    kal_bool                   is_better_rat_detect_ongoing;  // used for better RAT detection
 } errc_nrrc_activate_nrcell_req_struct;
 
 /* MSG_ID_ERRC_NRRC_ACTIVATE_NRCELL_CNF */
diff --git a/mcu/protocol/interface/general/gmss_nwsel_struct.h b/mcu/protocol/interface/general/gmss_nwsel_struct.h
old mode 100644
new mode 100755
index 57a4b32..b77a0ef
--- a/mcu/protocol/interface/general/gmss_nwsel_struct.h
+++ b/mcu/protocol/interface/general/gmss_nwsel_struct.h
@@ -68,6 +68,11 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  *
@@ -1236,10 +1241,11 @@
 typedef struct
 {
     LOCAL_PARA_HDR
-    kal_uint32            trx_id;         /* Transaction ID */
-    rat_enum              available_rat;  /* rat need to be searched */
-    rat_enum              prefer_rat;     /* subset of available rat, search those RAT first. RATN_NONE if no preference */
-    module_type           source;         /* The source module of this service scan */
+    kal_uint32            trx_id;            /* Transaction ID */
+    rat_enum              available_rat;     /* rat need to be searched */
+    rat_enum              prefer_rat;        /* subset of available rat, search those RAT first. RATN_NONE if no preference */
+    module_type           source;            /* The source module of this service scan */
+	kal_bool              is_preempt_needed; /* Whether NWSEL need to abort current search action and do service scan first */
 } gmss_nwsel_service_scan_req_struct;
 
 typedef struct
diff --git a/mcu/protocol/interface/general/vdm_gmss_struct.h b/mcu/protocol/interface/general/vdm_gmss_struct.h
old mode 100644
new mode 100755
index b3db2b7..63705de
--- a/mcu/protocol/interface/general/vdm_gmss_struct.h
+++ b/mcu/protocol/interface/general/vdm_gmss_struct.h
@@ -104,6 +104,7 @@
     rat_enum        available_rat;        /* rat need to be searched */
     rat_enum        prefer_rat;           /* subset of available rat, search those RAT first. RATN_NONE if no preference */
     module_type     source;               /* The source module of this service scan */
+    kal_bool        is_preempt_needed;    /* indicate the current search request can preempt the ongoing search procedure */
 } vdm_gmss_service_scan_req_struct;
 
 typedef struct
diff --git a/mcu/protocol/interface/ims/d2pm_d2rm_struct.h b/mcu/protocol/interface/ims/d2pm_d2rm_struct.h
old mode 100644
new mode 100755
index a0b9aa2..22b617b
--- a/mcu/protocol/interface/ims/d2pm_d2rm_struct.h
+++ b/mcu/protocol/interface/ims/d2pm_d2rm_struct.h
@@ -352,6 +352,7 @@
     d2pm_d2rm_retry_info_struct retry_info;
     epdg_mapped_info_struct     epdg_mapped_info;
     d2pm_d2rm_res_enum res;
+    res_info_struct res_info;
 
     /* private part */
     d2pm_d2rm_act_data_call_cnf_prv_struct d2pm_d2rm_prv;
@@ -583,6 +584,7 @@
     d2pm_d2rm_net_info_struct net_info;    // for Internet information
     ran_info_struct ran_info;    // RAN info of non-3GPP
     d2pm_d2rm_res_enum res;
+    res_info_struct res_info;
 
     /* private part */
     d2pm_d2rm_act_data_call_ind_prv_struct d2pm_d2rm_prv;
diff --git a/mcu/protocol/interface/ims/d2rm_ddm_struct.h b/mcu/protocol/interface/ims/d2rm_ddm_struct.h
old mode 100644
new mode 100755
index 56af80e..5fc5bfd
--- a/mcu/protocol/interface/ims/d2rm_ddm_struct.h
+++ b/mcu/protocol/interface/ims/d2rm_ddm_struct.h
@@ -372,6 +372,9 @@
 
     // ddm_res_enum res_code;
     kal_uint32 res_code;
+    // result info
+    res_info_ps_cause_t ps_cause;
+    res_info_nw_cause_t nw_cause;
     /* private part */
     d2rm_ddm_act_data_call_cnf_prv_struct d2rm_ddm_prv;
     d2pm_ddm_act_data_call_cnf_prv_struct d2pm_ddm_prv;
@@ -532,6 +535,8 @@
     d2rm_ddm_ip_info_struct ip_info;
     d2rm_ddm_net_info_struct net_info;
     ddm_res_enum res_code;
+    res_info_ps_cause_t ps_cause;
+    res_info_nw_cause_t nw_cause;
     /* private part */
     d2rm_ddm_act_data_call_ind_prv_struct d2rm_ddm_prv;
     d2pm_ddm_act_data_call_ind_prv_struct d2pm_ddm_prv;
diff --git a/mcu/protocol/interface/ims/imcb_imc_struct.h b/mcu/protocol/interface/ims/imcb_imc_struct.h
old mode 100644
new mode 100755
index 14ea0b7..6850014
--- a/mcu/protocol/interface/ims/imcb_imc_struct.h
+++ b/mcu/protocol/interface/ims/imcb_imc_struct.h
@@ -1418,8 +1418,7 @@
     imcf_uint32           sip_uri_type; /* ims_reg_sip_uri_type_enum */
     imcf_uint8            retry_after_ongoing;
     imcf_uint8            emergency_type;
-    imcf_uint8            has_sent_register;
-    imcf_uint8            pad[1];
+    imcf_uint8            pad[2];
 } imcb_imc_ims_reg_state_req_struct;
 
 /**
diff --git a/mcu/protocol/interface/ims/ims_common_def.h b/mcu/protocol/interface/ims/ims_common_def.h
old mode 100644
new mode 100755
index f81a353..49b4b02
--- a/mcu/protocol/interface/ims/ims_common_def.h
+++ b/mcu/protocol/interface/ims/ims_common_def.h
@@ -53,6 +53,11 @@
  *===========================================================
  * $Log$
  *
+ * 07 28 2022 ot_gang.zhang
+ * [MOLY00823817] [MT6879][Figeac][S0][R2][JAPAN][SOFTBANK][TB][TrialNW][SIP PANI Info][CR Review Excluded] Supporting OTR-Voice-032066
+ * 	
+ * 	.
+ *
  * 07 07 2022 jasleen.k
  * [MOLY00846008] [MT6873][Margaux][Q0][R3][JAPAN][SOFTBANK][SA][SIM][Lab][Degrade, CORE_GEN-10n-22-1001] On W22.14.P1, UE kept sending PDU_REQ(for IMS) after received DEREGISTRATION_REQ(re-registration required). Note that W21.51.P3 didn't have this issue.
  * 	
@@ -3244,6 +3249,30 @@
     kal_uint8                       ua_enabled;         ///< UA enabled
 } VoLTE_Event_UA_State_t;
 
+/*PANI header necessary information , send from call UA to STACK*/
+typedef struct _VoLTE_Event_UA_Stack_PANI_Info_ {
+    LOCAL_PARA_HDR
+    //Basic information for PANI
+    kal_int32                       acct_id;
+    kal_uint8                       cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_int8                        cell_id_3gpp[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_int8                        g_emerg_cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_int8                        country_code[8];
+    kal_uint32                      net_type;               ///< VoLTE_Event_Network_Type_e
+    kal_int32                       sub_net_type;           ///< VoLTE_Event_Network_Type_e
+    kal_int8                        pani_access_category;   ///decide to carry access-type or access-class in PANI header, refer to VoLTE_Stack_PANI_Access_Category_e
+    kal_uint32                      is_emergency_call;
+
+    //Customization for PANI
+    kal_uint8                       set_zero_cell_id_in_wifi;
+    kal_uint8                       add_country_to_pani;
+    kal_uint8                       add_cellid_to_pani;
+    kal_uint8                       add_timezone_to_pani;
+    kal_uint8                       add_pani_in_ack;
+    kal_uint8                       add_pani_in_cancel;
+    
+} VoLTE_Event_UA_Stack_PANI_Info_t;
+
 /* Teardown Flow for IMCB/REG State un-sync */
 typedef struct {
     LOCAL_PARA_HDR
diff --git a/mcu/protocol/interface/ims/ims_interface_md.h b/mcu/protocol/interface/ims/ims_interface_md.h
old mode 100644
new mode 100755
index 8dfa807..e67f7f0
--- a/mcu/protocol/interface/ims/ims_interface_md.h
+++ b/mcu/protocol/interface/ims/ims_interface_md.h
@@ -42,6 +42,20 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -465,8 +479,9 @@
 typedef enum
 {
     SSDS_IMC_SS_INVALID_TYPE,
-	SSDS_IMC_SS_OPEATION_TYPE,	
-	SSDS_IMC_USSD_TYPE,
+    SSDS_IMC_SS_OPEATION_TYPE,
+    SSDS_IMC_USSD_TYPE,
+    SSDS_IMC_USSD_ENABLE_TYPE,
 }ssds_imc_cmd_class_enum;
     
 typedef enum
@@ -510,7 +525,7 @@
 	SSDS_IMC_OTHER_LOCAL_CLIENT_RESPOND,       /* 3 :other local client has responded X*/
 	SSDS_IMC_NW_NOT_SUPPORT,                   /* 4 :operation not supported*/
 	SSDS_IMC_NW_TIMER_OUT,                     /* 5 :network time out X*/
-
+    SSDS_IMC_NW_ERROR_SESSION_STILL_EXISTS = 10,
 }ssds_ussd_status_enum;
 
 
diff --git a/mcu/protocol/interface/ims/ltecsr_struct.h b/mcu/protocol/interface/ims/ltecsr_struct.h
old mode 100644
new mode 100755
index 07c0b8d..2baae25
--- a/mcu/protocol/interface/ims/ltecsr_struct.h
+++ b/mcu/protocol/interface/ims/ltecsr_struct.h
@@ -58,6 +58,11 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -1174,5 +1179,20 @@
     kal_int16                                   drx_adjustment;
 } nrrc_ltecsr_delay_budget_result_handle_req_struct;
 
+/**
+ * L5 LTECSR SAP
+ */
+typedef enum e_ltecsr_notify_recv_dtmf_event{
+    LTECSR_NOTIFY_RECV_DTMF_EVENT_START     =   0,
+    LTECSR_NOTIFY_RECV_DTMF_EVENT_STOP      =   1,
+    LTECSR_NOTIFY_RECV_DTMF_EVENT_STOP_ALL  =   2
+} ltecsr_notify_recv_dtmf_event_e;
+#define MAX_DTMF_RECV_REPORT_LENGTH 2
+/* L5_LTECSR_RECV_DTMF_IND (LTECSR -> L5) */
+typedef struct s_ltecsr_l5_recv_dtmf_ind_struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mode;                                     /* 0:START, 1:STOP, 2:STOP_ALL */
+    kal_char digit[MAX_DTMF_RECV_REPORT_LENGTH];        /* digit[0]: the DTMF event char, digit[1]: always ended with '\0' */
+} l5_ltecsr_recv_dtmf_ind_struct;
 #endif
 
diff --git a/mcu/protocol/interface/l4/l4c2rac_struct.h b/mcu/protocol/interface/l4/l4c2rac_struct.h
old mode 100644
new mode 100755
index 327cfca..084b1b5
--- a/mcu/protocol/interface/l4/l4c2rac_struct.h
+++ b/mcu/protocol/interface/l4/l4c2rac_struct.h
@@ -871,6 +871,13 @@
     kal_bool ims_pdn_activation_ongoing;
  } l4crac_ims_pdn_activation_req_struct;
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+    kal_bool is_nr_emc_service_available;
+} l4crac_nr_emc_service_availability_ind_struct;
+
 #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
 typedef struct
 {
diff --git a/mcu/protocol/interface/l4/mmi2mm_struct.h b/mcu/protocol/interface/l4/mmi2mm_struct.h
old mode 100644
new mode 100755
index 137bff1..5d103ce
--- a/mcu/protocol/interface/l4/mmi2mm_struct.h
+++ b/mcu/protocol/interface/l4/mmi2mm_struct.h
@@ -58,6 +58,9 @@
  *
  * removed!
  * removed!
+ *
+ * removed!
+ * removed!
  * removed!
  * removed!
  *
@@ -451,9 +454,7 @@
 #ifdef __TC02_SECURITY_REQUIREMENT__
     kal_uint8 nvram_imsi_loci_gloci[MAX_LEN_OF_IMSI_LOCI_GLOCI]; //mtk02475: for man-in-middle-attack prevention
 #endif
-#ifdef __MM_INTEGRITY_PREF__
-    kal_bool is_disable_integrity_check;
-#endif 
+    kal_bool is_disable_integrity_check; 
     nvram_ef_mm_data_struct    nvram_mm_data_info;
     nvram_ef_t3346_timer_info_struct t3346_info;
     init_cause_enum init_cause;
diff --git a/mcu/protocol/interface/l4/nas_sv_struct.h b/mcu/protocol/interface/l4/nas_sv_struct.h
old mode 100644
new mode 100755
index b3d1d2e..3d0c9e7
--- a/mcu/protocol/interface/l4/nas_sv_struct.h
+++ b/mcu/protocol/interface/l4/nas_sv_struct.h
@@ -1172,6 +1172,7 @@
     vg_emergency_service_ind_enum   emc_supported_indicator;
     vg_emergency_fallback_ind_enum  emc_fallback_supported_indicator;
     vgmm_5g_update_status_enum      vg_update_status;
+    kal_bool                        is_proc_reported_earlier;
 }vgmm_rat_specific_param_container_struct;
 
 typedef union
@@ -1192,6 +1193,17 @@
     nas_rat_specific_param_container_union nas_specific_container;
 } nas_sv_any_regn_result_ind_struct;
 
+typedef struct {
+    LOCAL_PARA_HDR
+    nas_proc_enum               nas_proc;
+    lr_result_enum              lr_result;
+    mm_cause_enum               lr_cause;    // This value may be replaced by customized cause.
+    kal_uint8                   attempt_counter;
+    mm_cause_enum               airlr_cause;
+} nas_sv_vgmm_proc_result_ind_struct;
+
+typedef nas_sv_vgmm_proc_result_ind_struct nwsel_nas_sv_vgmm_proc_result_ind_struct;
+
 typedef nas_sv_any_regn_result_ind_struct nwsel_nas_sv_regn_result_ind_struct;
 
 typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_ratcm_plmn_band_ind_struct;
@@ -1465,6 +1477,8 @@
 
     kal_bool                    vgmm_ims_voice_over_ps_ind_present;    
     ims_ind_enum                vgmm_ims_voice_over_ps_ind;
+
+    kal_bool                    vgmm_is_reattach_required;
     /* End of VGMM Definitions */
 }nas_sv_vgmm_broadcast_regn_result_struct;
 #endif //__FIVEG_NAS__
@@ -1480,6 +1494,8 @@
     /* Whether the UE is registered or not according to state  and current executing procedure in EMM view 
          used for EMM/VGMM un-sync state checking for any_xmm_broadcast_regn_result handling */
     emm_bcast_regn_update_enum  emm_regn_update_type;
+
+    kal_bool                    emm_is_reattach_required;
     /* End of EMM Definitions */
 }nas_sv_emm_broadcast_regn_result_struct;
 
@@ -1659,6 +1675,19 @@
     kal_bool is_searching;
 } nwsel_nas_sv_as_plmn_search_report_ind_struct;
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+    kal_bool is_nr_emc_service_available;
+} nwsel_nas_sv_nr_emc_service_availability_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+} nwsel_nas_sv_nr_emc_service_availability_rsp_struct;
+
 #if 0
 /* under construction !*/
 /* under construction !*/
diff --git a/mcu/protocol/interface/l4/rac2l4c_struct.h b/mcu/protocol/interface/l4/rac2l4c_struct.h
old mode 100644
new mode 100755
index 91846be..5a15392
--- a/mcu/protocol/interface/l4/rac2l4c_struct.h
+++ b/mcu/protocol/interface/l4/rac2l4c_struct.h
@@ -745,6 +745,7 @@
     rat_enum rat;
     esm_cause_enum esm_cause;
     lr_result_enum lr_result;
+    plmn_id_struct plmn_id;
 }l4crac_nw_reg_rej_ind_struct; //MOLY00293006
 
 typedef l4crac_plmn_found_ind_struct l4c_peer_plmn_found_ind_struct;
@@ -878,6 +879,13 @@
 } l4crac_nw_black_list_state_ind_struct;
 #endif
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+} l4crac_nr_emc_service_availability_rsp_struct;
+
+
 #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
 typedef struct
 {
diff --git a/mcu/protocol/interface/l4/rac_gmss_struct.h b/mcu/protocol/interface/l4/rac_gmss_struct.h
old mode 100644
new mode 100755
index 059a906..9b94664
--- a/mcu/protocol/interface/l4/rac_gmss_struct.h
+++ b/mcu/protocol/interface/l4/rac_gmss_struct.h
@@ -161,6 +161,7 @@
 #ifdef __FIVEG_NAS__
     nvram_ef_vgnas_5gmm_failure_list_struct vgnas_5gmm_failure_list;
 #endif
+    nvram_nwsel_enable_s1_n1_action_enum nwsel_action_enable_s1_n1[NVRAM_NWSEL_PROC_MAX];
     nvram_allowed_mcc_struct allowed_mcc_data;
 } rac_gmss_init_req_struct;
 
diff --git a/mcu/protocol/interface/l4/rac_nas_sv_struct.h b/mcu/protocol/interface/l4/rac_nas_sv_struct.h
old mode 100644
new mode 100755
index d161ac0..61d0d51
--- a/mcu/protocol/interface/l4/rac_nas_sv_struct.h
+++ b/mcu/protocol/interface/l4/rac_nas_sv_struct.h
@@ -236,6 +236,19 @@
 
 typedef nwsel_nas_sv_as_plmn_search_report_ind_struct rac_nas_sv_as_plmn_search_report_ind_struct;
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+    kal_bool is_nr_emc_service_available;
+} rac_nas_sv_nr_emc_service_availability_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+}  rac_nas_sv_nr_emc_service_availability_rsp_struct;
+
 #endif
 
 
diff --git a/mcu/protocol/interface/l4/rac_vgmm_struct.h b/mcu/protocol/interface/l4/rac_vgmm_struct.h
old mode 100644
new mode 100755
index f0cd013..3f8cfce
--- a/mcu/protocol/interface/l4/rac_vgmm_struct.h
+++ b/mcu/protocol/interface/l4/rac_vgmm_struct.h
@@ -376,6 +376,8 @@
     LOCAL_PARA_HDR
 } rac_vgmm_5gsloci_clear_req_struct;
 
+typedef l4crac_set_ms_sv_req_struct rac_vgmm_set_ms_sv_req_struct;
+
 typedef l4crac_vgmm_proc_failure_ind_struct rac_vgmm_proc_failure_ind_struct;
 
 typedef struct  {
@@ -429,6 +431,16 @@
     kal_uint8                   num_of_ladn_info;
     ladn_info_with_tai_list_type_struct   ladn_info[MAX_LADN_INFO];
 } rac_vgmm_nw_params_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                          is_ps_sim_valid;
+    nas_proc_enum                     event;
+    vgmm_cause_enum                   original_cause;
+    vgmm_cause_enum                   converted_cause;
+} rac_vgmm_cause_info_ind_struct;
+
 /********************************************
  *                VARIABLES                 *
  ********************************************/
diff --git a/mcu/protocol/interface/l4/vdm_l4c_struct.h b/mcu/protocol/interface/l4/vdm_l4c_struct.h
old mode 100644
new mode 100755
index 9403006..9975b43
--- a/mcu/protocol/interface/l4/vdm_l4c_struct.h
+++ b/mcu/protocol/interface/l4/vdm_l4c_struct.h
@@ -71,6 +71,7 @@
 #include "rac_vgmm_struct.h"
 #include "as_inter_core_enum.h"
 #include "rac2l4c_struct.h"
+#include "rac_nas_sv_struct.h"
 
 //copy from l4c_eval_ims_sys_info_ind_struct
 typedef struct
@@ -572,6 +573,10 @@
 /* MSG_ID_VDM_L4C_GMSS_SET_HVOLTE_MODE_CNF */
 typedef vdm_l4c_common_response_struct vdm_l4c_gmss_set_hvolte_mode_cnf_struct;
 
+typedef rac_nas_sv_nr_emc_service_availability_ind_struct vdm_l4c_nr_emc_service_availability_ind_struct;
+
+typedef rac_nas_sv_nr_emc_service_availability_rsp_struct vdm_l4c_nr_emc_service_availability_rsp_struct;
+
 /*MSG_ID_VDM_L4C_EMCS_REQ*/
 typedef struct
 {
diff --git a/mcu/protocol/interface/l4misc/l3_inc_enums.h b/mcu/protocol/interface/l4misc/l3_inc_enums.h
old mode 100644
new mode 100755
index a56e4b0..430e01f
--- a/mcu/protocol/interface/l4misc/l3_inc_enums.h
+++ b/mcu/protocol/interface/l4misc/l3_inc_enums.h
@@ -61,6 +61,22 @@
  * removed!
  * removed!
  *
+
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
  * removed!
  * removed!
  * removed!
@@ -2791,6 +2807,7 @@
 
     /* VzW VGMM NAS not allow cause */
     NWSEL_NAS_NOT_ALLOW_VZW_VGMM_N1_MODE_NOT_ALLOWED_TG,
+    NWSEL_N1_DISABLED_BY_NR_EMC_AVAILABILITY,
 } nwsel_capability_disabled_reason_enum;
 
 typedef enum {
@@ -5501,7 +5518,10 @@
     VGMM_CAUSE_MESSAGE_NOT_COMPATIBLE           = 0x65,
     VGMM_CAUSE_PROTOCOL_ERROR                   = 0x6f,
 
+    /* Causes in ts24.301 but not in ts24.501. There causes are used for interworking between LTE and NR. */
+    VGMM_CAUSE_NO_EPS_CTXT_ACT                  = EMM_CAUSE_NO_EPS_CTXT_ACT,
 
+    
     /* MTK internal-defined causes */
     /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
     VGMM_CAUSE_NO_COVERAGE                       = NO_COVERAGE,
diff --git a/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h b/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
old mode 100644
new mode 100755
index e94004b..06e5f2e
--- a/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
+++ b/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
@@ -107,6 +107,7 @@
 
 extern void l4c_lcs_ecc_info_req(kal_bool ecc_ongoing);
 extern void l4c_lcs_emt_info_req(kal_bool emt_ongoing);
+extern void l4c_lcs_emc_info_req(call_status_enum call_status);
 
 #endif /* _L4C_LCS_CMD_H */ 
 
diff --git a/mcu/protocol/interface/l4misc/l4c_utility.h b/mcu/protocol/interface/l4misc/l4c_utility.h
old mode 100644
new mode 100755
index 064228b..52a44f5
--- a/mcu/protocol/interface/l4misc/l4c_utility.h
+++ b/mcu/protocol/interface/l4misc/l4c_utility.h
@@ -138,6 +138,7 @@
 #define convert_to_bcd(source, dest, max_dest_len) convert_to_general_bcd(source, dest, max_dest_len, CONVERT_TO_BCD_NORMAL)
 #define convert_to_bcd_wild(source, dest, max_dest_len) convert_to_general_bcd(source, dest, max_dest_len, CONVERT_TO_BCD_WILD)
 extern kal_uint8 convert_to_general_bcd(kal_uint8 *source, kal_uint8 *dest, kal_uint8 max_dest_len, kal_uint8 type);
+extern kal_bool l4c_get_nw_cause(kal_uint16 ps_cause, kal_uint16 *nw_err_cause);
 
 
 #define convert_to_digit(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_NORMAL)
@@ -1072,4 +1073,6 @@
 extern kal_bool l4c_is_epsfb_needed(protocol_id_enum ps_id, rat_type_enum source_rat, rat_type_enum target_rat, irat_type_enum ir_type);
 #endif
 extern kal_bool l4c_is_call_ongoing_over_wifi();
+extern kal_bool l4c_is_vzw_private_uicc(kal_uint8 ps_id);
+extern void l4c_set_is_vzw_private_uicc();
 #endif /* _L4C_UTILITY_H */ /* l4c_utility.h */
diff --git a/mcu/protocol/interface/l4misc/rmmi_context.h b/mcu/protocol/interface/l4misc/rmmi_context.h
old mode 100644
new mode 100755
index 2e93695..b141afa
--- a/mcu/protocol/interface/l4misc/rmmi_context.h
+++ b/mcu/protocol/interface/l4misc/rmmi_context.h
@@ -500,6 +500,7 @@
     esm_cause_enum esm_rej_cause;
     rmmi_proc_result_type_enum proc_result;
     nas_proc_enum nas_proc;
+    plmn_id_struct plmn_id;
 } rmmi_nw_rej_cause_attemp_counter_struct;
 
 #if defined(__CDMA2000_RAT__)
diff --git a/mcu/protocol/layer4/l4/atci/include/at_cmd.def b/mcu/protocol/layer4/l4/atci/include/at_cmd.def
old mode 100644
new mode 100755
index 4f77d38..125f294
--- a/mcu/protocol/layer4/l4/atci/include/at_cmd.def
+++ b/mcu/protocol/layer4/l4/atci/include/at_cmd.def
@@ -542,7 +542,7 @@
 EXTEND_CMD("ewmpolicy", 11707131, 671599, "+EWMPOLICY: (1-4)", RMMI_CMD_ATEWMPOLICY, rmmi_ewmpolicy_hdlr)
 #ifndef __TC01__ /* ALPS04324129 */
 EXTEND_CMD("emodcfg", 11160831, 235, "+EMODCFG: (0-1)", RMMI_CMD_ATEMODCFG, rmmi_emodcfg_hdlr)
-#endif 
+#endif
 EXTEND_CMD("egmss", 10829297, 0, "", RMMI_CMD_ATEGMSS, rmmi_egmss_hdlr)
 
 #if defined(__MONITOR_PAGE_DURING_TRANSFER__)
@@ -720,6 +720,7 @@
 EXTEND_CMD("ehtmr", 10894048, 0, "+EHTMR: (0,1)", RMMI_CMD_ATEHTMR, rmmi_ehtmr_hdlr)
 
 EXTEND_CMD("ewsecmode", 11715365 , 735153, "", RMMI_CMD_ATEWSECMODE, rmmi_ewsecmode_hdlr)
+EXTEND_CMD("eretnr", 11421370 , 18, "", RMMI_CMD_ATERETNR, rmmi_eretnr_hdlr)
 
 #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
 EXTEND_CMD("esettimer", 11476248, 512828, "", RMMI_CMD_ATESETTIMER, rmmi_esettimer_hdlr)
@@ -1046,7 +1047,7 @@
 		EXTEND_CMD("egmr", 284980, 0, "+EGMR: (0,1),(0-5,7-9,13-15)", RMMI_CMD_ATEGMR, rmmi_egmr_hdlr)
 	#endif
 	EXTEND_CMD("egmr", 10829245, 932, "+EGMREXT: (0,1),(0-5,7-15)", RMMI_CMD_ATEGMREXT, rmmi_egmrext_hdlr)
-	
+
     EXTEND_CMD("eslp", 302268, 0, "+ESLP: (0,1)", RMMI_CMD_ATESLP, rmmi_eslp_hdlr)
     EXTEND_CMD("elnvrm", 11105214, 13, "+ELNVRM: (1)", RMMI_CMD_ATENVRM, rmmi_elnvrm_hdlr)
     EXTEND_CMD("erftx", 11422824, 0, "+ERFTX: (0)", RMMI_CMD_ATERFTX, rmmi_erftx_hdlr)
@@ -1974,3 +1975,4 @@
 CMD_ENUM(RMMI_CMD_EECSIMINFO)
 #endif /*__ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__*/
 CMD_ENUM(RMMI_CMD_ATEPNWCAUSE)
+CMD_ENUM(RMMI_CMD_ATERETNR)
\ No newline at end of file
diff --git a/mcu/protocol/layer4/l4/atci/include/rmmi_ind.h b/mcu/protocol/layer4/l4/atci/include/rmmi_ind.h
old mode 100644
new mode 100755
index b807a6e..845c3f6
--- a/mcu/protocol/layer4/l4/atci/include/rmmi_ind.h
+++ b/mcu/protocol/layer4/l4/atci/include/rmmi_ind.h
@@ -709,7 +709,7 @@
                                 endc_sib_status_enum endc_sib_status,
                                 kal_bool endc_available);
 
-extern void l4c_reject_event_info_rind(rat_enum active_rat, kal_uint16 event, kal_uint16 original_mm_cause, kal_uint16 converted_mm_cause, kal_bool is_ps_sim_valid, kal_bool 
+extern void l4c_reject_event_info_rind(rat_enum active_rat, kal_uint16 event, kal_uint16 original_mm_cause, kal_uint16 converted_mm_cause, kal_bool is_ps_sim_valid, kal_bool
 is_cs_sim_valid);
 
 extern void l4c_nw_rej_cause_attempt_counter_rind(rmmi_nw_rej_cause_attemp_counter_struct *nw_rej_cause_attemp_counter, kal_uint8 rat);
@@ -749,5 +749,6 @@
 
 extern void l4c_nw_e5guw_rind(l4c_nw_5guw_context_struct* l4c_5guw_param);
 extern void l4c_nw_enrcaband_rind(kal_bool is_endc, kal_uint8 num_of_bands, kal_uint16* bands_ary);
+extern void l4c_nw_eretnr_rind(kal_uint8 cause);
 
 #endif /* _RMMI_IND_H */
diff --git a/mcu/protocol/layer4/l4/atci/include/rmmi_validator.h b/mcu/protocol/layer4/l4/atci/include/rmmi_validator.h
old mode 100644
new mode 100755
index 4264ccb..9306245
--- a/mcu/protocol/layer4/l4/atci/include/rmmi_validator.h
+++ b/mcu/protocol/layer4/l4/atci/include/rmmi_validator.h
@@ -1370,5 +1370,6 @@
 extern void rmmi_eecregs_hdlr(rmmi_string_struct *source_string_ptr);
 extern void rmmi_eecsiminfo_hdlr(rmmi_string_struct *source_string_ptr);
 #endif /* __ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__*/
+extern void rmmi_eretnr_hdlr(rmmi_string_struct *source_string_ptr);
 
 #endif /* _RMMI_VALIDATOR_H */
diff --git a/mcu/protocol/layer4/l4/include/l4c_context.h b/mcu/protocol/layer4/l4/include/l4c_context.h
old mode 100644
new mode 100755
index 71e96de..c6e95ff
--- a/mcu/protocol/layer4/l4/include/l4c_context.h
+++ b/mcu/protocol/layer4/l4/include/l4c_context.h
@@ -1473,6 +1473,7 @@
 	kal_uint8 endc_nr_srv_bands_num;
 	kal_uint16 endc_nr_srv_bands[L4C_MAX_NR_SRV_BAND];
     kal_uint8 internet_cid;
+    kal_bool is_vzw_private_uicc;
 } l4c_context_struct;
 
 
diff --git a/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_cmd.h b/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_cmd.h
old mode 100644
new mode 100755
index c1437d7..d44012a
--- a/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_cmd.h
+++ b/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_cmd.h
@@ -23,7 +23,7 @@
 *  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. 
+*  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
@@ -137,7 +137,7 @@
 
 extern kal_bool l4c_nw_get_gprs_transfer_preference_req(kal_uint8 src_id, kal_uint8 * prefer);
 
-extern kal_bool l4c_nw_exe_cops_req(kal_uint8 src_id, kal_uint8 opcode, kal_uint8 *oper, kal_uint8 rat, endc_search_enum  endc_search_mode, kal_uint32 factory_mode_arfcn, kal_uint8 preference); 
+extern kal_bool l4c_nw_exe_cops_req(kal_uint8 src_id, kal_uint8 opcode, kal_uint8 *oper, kal_uint8 rat, endc_search_enum  endc_search_mode, kal_uint32 factory_mode_arfcn, kal_uint8 preference);
 
 extern kal_bool l4c_nw_get_plmn_list_req(kal_uint8 src_id, l4c_action_enum action);
 
@@ -153,7 +153,7 @@
                               kal_uint8 gsm_band, kal_uint8 *umts_fdd_band);
 
 extern kal_bool l4c_nw_set_preferred_band_req (kal_uint8 src_id,
-                                       kal_uint8 gsm_band, 
+                                       kal_uint8 gsm_band,
                                        kal_uint32 umts_band,
                                        kal_uint32 *lte_band,
                                        kal_uint32 *nr_band,
@@ -164,7 +164,7 @@
                              kal_uint8 *gsm_band,
                              kal_uint32 *umts_band,
                              kal_uint32 *lte_band,
-                             kal_uint32 *nr_band, 
+                             kal_uint32 *nr_band,
                              kal_uint32 *nsa_band,
                              kal_uint8 *supported_gsm_band,
                              kal_uint32 *supported_umts_fdd_band,
@@ -183,10 +183,10 @@
 
 extern kal_bool l4c_nw_lteca_band_set_ver2_req (l4c_source_id_enum src_id,
                                     kal_uint8 enable,
-                                    kal_uint8 num_band, 
+                                    kal_uint8 num_band,
                                     kal_uint8 *band_index,
-                                    kal_uint8 *dl_bw_class, 
-                                    kal_uint8 *ul_bw_class, 
+                                    kal_uint8 *dl_bw_class,
+                                    kal_uint8 *ul_bw_class,
                                     kal_uint8 bw_combination_set);
 
 extern kal_bool l4c_nw_band_comb_list_req(l4c_source_id_enum src_id, kal_uint8 cmd_type, kal_uint8 list_type, kal_char *ca_comb_list, kal_bool is_last);
@@ -255,10 +255,10 @@
 extern kal_bool l4c_nw_set_femtocell_system_selection_mode_req(kal_uint8 src_id, kal_uint8 mode);
 extern kal_uint8 l4c_nw_get_femtocell_system_selection_mode_req(kal_uint8 src_id);
 extern kal_bool l4c_nw_get_romaing_mode_req(kal_uint8 src_id, kal_bool* support_roaming);
-extern kal_bool l4c_nw_set_sysconfig_req(kal_uint8 src_id, 
-                                         kal_uint8 rat_mode, 
-                                         kal_uint8 prefer_rat, 
-                                         kal_bool support_roaming, 
+extern kal_bool l4c_nw_set_sysconfig_req(kal_uint8 src_id,
+                                         kal_uint8 rat_mode,
+                                         kal_uint8 prefer_rat,
+                                         kal_bool support_roaming,
                                          kal_uint8 mobile_class);
 
 #if defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__)
@@ -291,9 +291,9 @@
 
 extern kal_bool l4c_nw_get_ssac_param_req(kal_uint8 src_id);
 
-extern kal_bool l4c_nw_set_preferred_oper_list_req(kal_uint8 *ver_no, 
-                                                   kal_uint16 no_entry, 
-                                                   kal_uint8 *oper, 
+extern kal_bool l4c_nw_set_preferred_oper_list_req(kal_uint8 *ver_no,
+                                                   kal_uint16 no_entry,
+                                                   kal_uint8 *oper,
                                                    kal_uint8 *rat);
 
 extern kal_bool l4c_nw_get_preferred_oper_list_req(custom_plmn_type_enum type, kal_uint8 src_id);
@@ -316,7 +316,7 @@
                                                       kal_bool eutran_fdd,
                                                       kal_bool eutran_tdd,
                                                       kal_bool nr_fdd,
-                                                      kal_bool nr_tdd,													  
+                                                      kal_bool nr_tdd,
                                                       mode_switch_cause_enum  cause);
 
 
@@ -372,7 +372,7 @@
 extern kal_bool l4c_nw_guti_in_nv_clear_req(void);
 
 extern kal_bool l4c_check_rat_mode_to_update(kal_uint8 rat_mode);
-extern kal_bool l4c_nw_set_lte_only_setting_req(kal_uint8 change_rat_mode_lte_only_for_lte_capable_ps, 
+extern kal_bool l4c_nw_set_lte_only_setting_req(kal_uint8 change_rat_mode_lte_only_for_lte_capable_ps,
         kal_uint8 only_limited_camping_for_non_lte_capable_ps);
 
 extern kal_bool l4c_nw_set_lte_game_ho_req(kal_uint8 mode);
@@ -483,7 +483,7 @@
 
 extern void l4cas_get_wcdma_security_mode_param_req_hdlr(kal_uint8 src_id);
 
-extern void l4c_nw_set_handover_threshold(kal_uint8 mode, kal_uint8 signal_type, kal_int16 tin, 
+extern void l4c_nw_set_handover_threshold(kal_uint8 mode, kal_uint8 signal_type, kal_int16 tin,
                                     kal_int16 tout, kal_uint32 timer, kal_uint8 ext_thres_num, kal_int16 *ext_thres);
 
 extern kal_bool l4c_nw_set_rfpd_ind(kal_uint8 diff, kal_uint8 period);
@@ -495,7 +495,7 @@
 extern l4c_at_cmd_process_type_enum l4c_nw_set_sms_capability_req(kal_uint8 src_id, l4c_general_modem_configure_struct *cmd_param_ptr);
 
 #ifdef __WHITE_CELL_LOCK__
-extern kal_bool l4c_nw_cell_meas_scan_req(kal_uint8 src_id, rat_enum rat, 
+extern kal_bool l4c_nw_cell_meas_scan_req(kal_uint8 src_id, rat_enum rat,
                                          kal_uint32 *lte_band_bitmask, kal_uint32 *nr_band_bitmask);
 
 extern kal_bool l4c_nw_cell_meas_scan_abort_req(kal_uint8 src_id);
@@ -525,5 +525,6 @@
 extern kal_uint8 l4c_nw_get_roaming_mode_req( void );
 extern l4c_rtn_code_enum l4c_nw_handle_cops_auto_selection(protocol_id_enum ps_id, kal_uint8 src_id, kal_uint8 rat_mode, endc_search_enum  endc_search_mode );
 extern void l4c_nw_get_rf_status_req(void);
-#endif /* _L4C_NW_CMD_H */ 
+extern kal_bool l4c_nw_force_send_afr_to_nr(kal_uint8 src_id);
+#endif /* _L4C_NW_CMD_H */
 
diff --git a/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_msg.h b/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_msg.h
old mode 100644
new mode 100755
index 0c37552..2f1d9aa
--- a/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_msg.h
+++ b/mcu/protocol/layer4/l4/l4c/include/proc/l4c_nw_msg.h
@@ -468,6 +468,8 @@
 extern void l4c_eval_ecall_abort_test_call_attach_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
 extern void l4c_nw_ecall_registration_state_ind_hdlr(local_para_struct *local_para_ptr);
 #endif /* __NG_ECALL_SUPPORT__ */
-
+extern void l4c_nw_better_rat_detect_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_nw_better_rat_detect_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4crac_nr_emc_service_availability_rsp(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
 #endif /* _L4C_NW_MSG_H */ /* l4c_nw_msg.h */
 
diff --git a/mcu/protocol/layer4/l4/l4c/include/proc/l4c_vdm_rcv.h b/mcu/protocol/layer4/l4/l4c/include/proc/l4c_vdm_rcv.h
old mode 100644
new mode 100755
index 67a2d74..f10bc0e
--- a/mcu/protocol/layer4/l4/l4c/include/proc/l4c_vdm_rcv.h
+++ b/mcu/protocol/layer4/l4/l4c/include/proc/l4c_vdm_rcv.h
@@ -23,7 +23,7 @@
 *  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. 
+*  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
@@ -71,8 +71,8 @@
 
 extern void l4c_vdm_cs_list_current_calls_req_hdlr(local_para_struct * local_para_ptr);
 
-extern void l4c_vdm_cs_get_call_list_construct_func(l4c_call_entry_struct call_entry, 
-                                                            l4c_number_struct addr, 
+extern void l4c_vdm_cs_get_call_list_construct_func(l4c_call_entry_struct call_entry,
+                                                            l4c_number_struct addr,
                                                             void *vdm_l4c_cnf_ptr);
 
 extern void l4c_vdm_cs_cc_ext_error_report_req_hdlr(local_para_struct * local_para_ptr);
@@ -133,5 +133,6 @@
 #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
 extern void l4c_vdm_cs_cc_cecall_req_hdlr(local_para_struct * local_para_ptr);
 #endif
+extern void l4c_vdm_nr_emc_service_availability_ind(local_para_struct *local_para_ptr);
 #endif /* _L4C_VDM_RCV_H */
 
diff --git a/mcu/protocol/layer4/l4/rac/common/include/rac_context.h b/mcu/protocol/layer4/l4/rac/common/include/rac_context.h
old mode 100644
new mode 100755
index e7acf14..025b2ca
--- a/mcu/protocol/layer4/l4/rac/common/include/rac_context.h
+++ b/mcu/protocol/layer4/l4/rac/common/include/rac_context.h
@@ -399,9 +399,7 @@
 #endif /* __IMS_SUPPORT__ */
 
     kal_bool                            is_srvcc;
-#ifdef __MM_INTEGRITY_PREF__
     kal_bool                            is_disable_integrity_check;
-#endif
     //for VZW 7799, to record susp_id in rac_gmss_suspend_status_ind_struct
     kal_uint8                           gmss_susp_id;
     kal_bool                            gmss_is_suspend;