[Feature][Modem]1.merge MTK P2 patch 2.RF:bias modification of frequency band

Change-Id: I846de8f085e50c1b9557ad8c5d0b2cc088b18d86
diff --git a/mcu/interface/service/nvram/csg_nvram_def.h b/mcu/interface/service/nvram/csg_nvram_def.h
index 66448f9..246c4d8 100755
--- a/mcu/interface/service/nvram/csg_nvram_def.h
+++ b/mcu/interface/service/nvram/csg_nvram_def.h
@@ -59,6 +59,9 @@
  *
  * removed!
  * removed!
+ *
+ * removed!
+ * removed!
  * removed!
  * removed!
  * removed!
@@ -95,15 +98,17 @@
 
 // VERNO
 #if (defined(__3G_CSG_SUPPORT__) || defined(__LTE_RAT__))
-#define NVRAM_EF_UE_CSG_LIST_LID_VERNO                       "001"
-#define NVRAM_EF_UE_CSG_LIST_LID_HASH                        0x4D0D10AA
+#define NVRAM_EF_UE_CSG_LIST_LID_VERNO                       "002"
+#define NVRAM_EF_UE_CSG_LIST_LID_HASH                        0x2B76AE90
 #endif
 
 #if (defined(__3G_CSG_SUPPORT__) || defined(__LTE_RAT__))
 
 // Size and Total 
+#define NVRAM_EF_UE_CSG_SIZE                                   (sizeof(nvram_ef_ue_csg_list_struct))
 #define NVRAM_EF_UE_CSG_LIST_SIZE                              2500
 #define NVRAM_EF_UE_CSG_LIST_TOTAL                             (1 * NVRAM_DUAL_RECORD)
+#define NVRAM_EF_UE_CSG_IMSI_MAX_LEN                           15
 #endif
 
 #ifdef __cplusplus
diff --git a/mcu/interface/service/nvram/csg_nvram_editor.h b/mcu/interface/service/nvram/csg_nvram_editor.h
index 97b1394..07dbaeb 100755
--- a/mcu/interface/service/nvram/csg_nvram_editor.h
+++ b/mcu/interface/service/nvram/csg_nvram_editor.h
@@ -59,6 +59,9 @@
  *
  * removed!
  * removed!
+ *
+ * removed!
+ * removed!
  * removed!
  * removed!
  *
@@ -81,7 +84,9 @@
 // Data Structure of Each LID
 typedef  struct
 {
-    kal_uint8 data[NVRAM_EF_UE_CSG_LIST_SIZE];
+	kal_uint8    imsi_length;
+    kal_uint8    imsi[NVRAM_EF_UE_CSG_IMSI_MAX_LEN];
+    kal_uint8    data[NVRAM_EF_UE_CSG_LIST_SIZE];
 } nvram_ef_ue_csg_list_struct;
 
 #endif
@@ -101,9 +106,9 @@
 *********************************************************************************************/
 LID_BIT VER_LID(NVRAM_EF_UE_CSG_LIST_LID) nvram_ef_ue_csg_list_struct * NVRAM_EF_UE_CSG_LIST_TOTAL
 {
-    data: "csg white list[2500]"
-    {
-    };  
+    imsi_length:"IMSI length[1]"{};
+    imsi:"IMSI to which this CSG list belongs to[15]"{};  
+    data:"UE based CSG allowed list[2500]"{};  
 };
 #endif
 END_NVRAM_DATA
diff --git a/mcu/interface/service/nvram/mrs_nvram_def.h b/mcu/interface/service/nvram/mrs_nvram_def.h
index d60327f..cde8c0b 100755
--- a/mcu/interface/service/nvram/mrs_nvram_def.h
+++ b/mcu/interface/service/nvram/mrs_nvram_def.h
@@ -217,6 +217,7 @@
     NVRAM_EF_MRS_CUSTOM_SEARCH_ORDER_TABLE_LID = NVRAM_LID_GRP_MRS(18),
     NVRAM_EF_MRS_RAT_CAPABILITY_CONFIG_LID  = NVRAM_LID_GRP_MRS(21),
     NVRAM_EF_MRS_NR_PARTIAL_BAND_TABLE_LID  = NVRAM_LID_GRP_MRS(22),
+	NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_LID  = NVRAM_LID_GRP_MRS(23),
     NVRAM_EF_MRS_LAST_LID                   = NVRAM_LID_GRP_MRS(63)
 } nvram_lid_mrs_enum;
 
@@ -256,6 +257,11 @@
 #define NVRAM_EF_MRS_RAT_CAPABILITY_CONFIG_LID_VERNO   "000"
 #define NVRAM_EF_MRS_RAT_CAPABILITY_CONFIG_LID_HASH    0x682739BF
 
+#define NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_SIZE        (sizeof(nvram_ef_mrs_voice_unavail_leave_rat_config_struct))
+#define NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_TOTAL       (1)
+#define NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_LID_VERNO   "000"
+#define NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_LID_HASH    0xBF8E072E
+
 #define NVRAM_EF_MRS_NR_BAND_DISABLE_LIST_SIZE        (sizeof(nvram_ef_nr_custom_band_disable_list_struct))
 #define NVRAM_EF_MRS_NR_BAND_DISABLE_LIST_TOTAL       (1 * NVRAM_DUAL_RECORD)
 #define NVRAM_EF_MRS_NR_BAND_DISABLE_LIST_LID_VERNO   "007"
diff --git a/mcu/interface/service/nvram/mrs_nvram_editor.h b/mcu/interface/service/nvram/mrs_nvram_editor.h
index 5a68f6a..10353f5 100755
--- a/mcu/interface/service/nvram/mrs_nvram_editor.h
+++ b/mcu/interface/service/nvram/mrs_nvram_editor.h
@@ -207,6 +207,8 @@
 
 #define NVRAM_MAX_MRS_RAT_CAPABILITY_CONFIG_NUM 300
 
+#define NVRAM_MAX_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_NUM 300
+
 #define NVRAM_MAX_MRS_DISABLE_VG_ROAMING_ENTRY_NUM 300
 
 #define NVRAM_NR_BAND_DISABLE_POSITIVE_PLMN_NUM_MAX 30
@@ -398,6 +400,7 @@
 
 typedef enum {
     NVRAM_GSM_CAPABILITY = 0x01,
+	NVRAM_UMTS_CAPABILITY = 0x02,
 } nvram_rat_capability_enum;
 
 typedef struct {
@@ -416,6 +419,37 @@
 } nvram_ef_mrs_rat_capability_config_struct;
 
 typedef enum {
+    APPLY_SCOPE_GENERAL,
+    APPLY_SCOPE_ROAMING,
+    APPLY_SCOPE_HOME,
+} nvram_ef_apply_scope_enum;
+
+typedef enum {
+    NVRAM_LEAVE_LTE = 0x01,
+    NVRAM_LEAVE_NR  = 0x02,
+} nvram_voice_unavail_leave_rat_enum;
+
+typedef enum {
+    NO_NEED_LEAVE,
+    NEED_LEAVE,
+} nvram_voice_unavail_leave_status_enum;
+
+typedef struct {
+    nvram_plmn_id_struct hplmn;                              /* Home PLMN derived from IMSI */
+    nvram_plmn_id_struct splmn;                              /* Serving PLMN */
+    nvram_voice_unavail_leave_rat_enum leave_rat;            /* Only support leave LTE/NR currently */
+    nvram_voice_unavail_leave_status_enum leave_status;      /* Need leave or no need leave */
+    nvram_ef_apply_scope_enum scope;                         /* Rule applied scope */
+    kal_uint8 num_of_exception;                              /* Number of exception rules */
+} nvram_ef_mrs_voice_unavail_leave_rat_struct;
+
+typedef struct {
+    kal_bool is_valid;
+    kal_uint32 num_of_entry;
+    nvram_ef_mrs_voice_unavail_leave_rat_struct voice_unavail_leave_rat_config_list[NVRAM_MAX_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_NUM];
+} nvram_ef_mrs_voice_unavail_leave_rat_config_struct;
+
+typedef enum {
     NV_MRS_SEARCH_PRIORITY_ENUM_ENDC,
     NV_MRS_SEARCH_PRIORITY_ENUM_SIGNAL_LEVEL,
     NV_MRS_SEARCH_PRIORITY_ENUM_LARGE_BW,
@@ -913,6 +947,30 @@
                         partial_band_table[*].partial_band_info.freq_range_info.range_list[*].ul_phy_freq_max:"[MCF]UL max frequency (MHz)" {};
      };
 
+/********************************************************************************************
+* LID_NAME
+*      NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_LID
+* DESCRIPTION
+*      This LID is used to store voice unavail leave rat configuration
+* INFOMATION
+*      Can OTA Reset: Yes
+*      Update Scenario: This LID need to be manual updated.
+*********************************************************************************************/
+LID_BIT VER_LID(NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_LID)
+nvram_ef_mrs_voice_unavail_leave_rat_config_struct * NVRAM_EF_MRS_VOICE_UNAVAIL_LEAVE_RAT_CONFIG_TOTAL
+     {
+        is_valid:"[MCF,RUNTIME]Validity of voice unavail leave rat config table" {};
+
+        num_of_entry:"[MCF,RUNTIME]Number of valid entries" {};
+        voice_unavail_leave_rat_config_list:"[MCF,RUNTIME]Rules for leave/not leave rat when voice unavailable for specific SIM/network" {};
+        voice_unavail_leave_rat_config_list[*].hplmn: "PLMN ID of Home PLMN" {};
+        voice_unavail_leave_rat_config_list[*].splmn: "PLMN ID of Serving PLMN" {};
+        voice_unavail_leave_rat_config_list[*].leave_rat: "enum of rat to leave" {};
+        voice_unavail_leave_rat_config_list[*].leave_status: "need leave or no need leave" {};
+        voice_unavail_leave_rat_config_list[*].scope: "rule applied scope" {};
+        voice_unavail_leave_rat_config_list[*].num_of_exception: "number of exception rules" {};
+    };
+
 END_NVRAM_DATA
 #endif	/* GEN FOR PC */
 
diff --git a/mcu/interface/service/nvram/nrrc_nvram_def.h b/mcu/interface/service/nvram/nrrc_nvram_def.h
index 686fcb6..c75dc61 100755
--- a/mcu/interface/service/nvram/nrrc_nvram_def.h
+++ b/mcu/interface/service/nvram/nrrc_nvram_def.h
@@ -74,6 +74,21 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -291,8 +306,8 @@
 #define NVRAM_NRRC_SEARCH_MAX_LEARNED_INFO_NUM     50
 #define NVRAM_NRRC_SEARCH_MAX_MOST_RECENT_MCC_NUM  6
 
-#define NVRAM_EF_NRRC_COMMON_CONFIG_LID_VERNO "036"
-#define NVRAM_EF_NRRC_COMMON_CONFIG_LID_HASH  0x639CC9B9
+#define NVRAM_EF_NRRC_COMMON_CONFIG_LID_VERNO "035"
+#define NVRAM_EF_NRRC_COMMON_CONFIG_LID_HASH  0xED98C676
 
 #define NVRAM_EF_NRRC_COMMON_CONFIG_SIZE      (sizeof(nvram_ef_nrrc_common_config_struct))
 #define NVRAM_EF_NRRC_COMMON_CONFIG_TOTAL     (1 * NVRAM_DUAL_RECORD)
diff --git a/mcu/interface/service/nvram/nrrc_nvram_editor.h b/mcu/interface/service/nvram/nrrc_nvram_editor.h
index bb5ba08..a4d99d3 100755
--- a/mcu/interface/service/nvram/nrrc_nvram_editor.h
+++ b/mcu/interface/service/nvram/nrrc_nvram_editor.h
@@ -65,6 +65,27 @@
  * removed!
  * removed!
  * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
  * removed!
  *
  * removed!
@@ -580,6 +601,14 @@
                     meas_mob_performance.lte_B1_B2_force_th.nbr_rsrp_th: "neighbor cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
                     meas_mob_performance.lte_B1_B2_force_th.nbr_rsrq_th: "neighbor cell rsrq threshold, unit: qdB , range: -180~80, disable: 0x8000."{};
                     meas_mob_performance.lte_B1_B2_force_th.nbr_sinr_th: "neighbor cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
+                meas_mob_performance.lte_B1_B2_force_th_vonr: "srv<srv_th && nbr>nbr_th force LTE B1 report."{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.ctrl_bmp: "0x01: disable on high speed, 0x02: enable srv_th, 0x04: enable nbr_th, 0x08: disable on test SIM, 0x40: B1 enable, 0x80: B2 enable"{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.srv_rsrp_th: "serving cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.srv_rsrq_th: "serving cell rsrq threshold, unit: qdB , range: -180~80, disable: 0x8000."{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.srv_sinr_th: "serving cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.nbr_rsrp_th: "neighbor cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.nbr_rsrq_th: "neighbor cell rsrq threshold, unit: qdB , range: -180~80, disable: 0x8000."{};
+                    meas_mob_performance.lte_B1_B2_force_th_vonr.nbr_sinr_th: "neighbor cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
                 meas_mob_performance.lte_B1_B2_force_th_serv_per_band_list: "Serving threshold per band list for lte_B1_B2_force_th. One of srv_rsrp_th/srv_rsrq_th/srv_sinr_th in lte_B1_B2_force_th must be valid. Unspecified band will use value in lte_B1_B2_force_th"{};
                     meas_mob_performance.lte_B1_B2_force_th_serv_per_band_list.per_band_threshold: "Threshold for specific band"{};
                         meas_mob_performance.lte_B1_B2_force_th_serv_per_band_list.per_band_threshold.band: "NR band, range: 1~65535, disable: 0x0000"{};
@@ -608,6 +637,11 @@
                     meas_mob_performance.ping_pong_parameter.ping_pong_cell_bar_time: "ping-pong cell bar time(300s), range: 60~600, disable: 0x8000."{};
                     meas_mob_performance.ping_pong_parameter.ping_pong_cell_monitor_period: "ping-pong cell monitor period(20s), range: 10~30 , disable: 0x8000."{};
                     meas_mob_performance.ping_pong_parameter.ping_pong_hit_count_threshold: "ping-pong hit count threshold, range: 2~5 , disable: 0x80."{};
+                meas_mob_performance.irat_ping_pong_parameter: "Parameters for nr irat ping-pong bar enhancement."{};
+                    meas_mob_performance.irat_ping_pong_parameter.ctrl_bmp: "0x01: enable nr irat pingpong_bar, 0x02: disable on test SIM"{};
+                    meas_mob_performance.irat_ping_pong_parameter.ping_pong_cell_bar_time: "ping-pong cell bar time(300s), range: 60~600, disable: 0x8000."{};
+                    meas_mob_performance.irat_ping_pong_parameter.ping_pong_cell_monitor_period: "ping-pong cell monitor period(60s), range: 30~180 , disable: 0x8000."{};
+                    meas_mob_performance.irat_ping_pong_parameter.ping_pong_hit_count_threshold: "ping-pong hit count threshold, range: 2~5 , disable: 0x80."{};
                 meas_mob_performance.a2_adjust_th: "srv>srv_th, adjust a2 thresh as MAX(ori, good_a2_rsrp_th). srv<=srv_th, adjust a2 thresh as MAX(ori, bad_a2_rsrq_th)"{};
                     meas_mob_performance.a2_adjust_th.ctrl_bmp: "0x01: disable on high speed, 0x02: enable good_a2_rsrp_th, 0x04: enable bad_a2_rsrp_th, 0x08: disable on test SIM"{};
                     meas_mob_performance.a2_adjust_th.srv_rsrp_th: "serving cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
@@ -615,6 +649,13 @@
                     meas_mob_performance.a2_adjust_th.srv_sinr_th: "serving cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
                     meas_mob_performance.a2_adjust_th.good_a2_rsrp_th: "good_a2_rsrp_th, unit: qdBm, range: -640~-120, disable: 0x8000."{};
                     meas_mob_performance.a2_adjust_th.bad_a2_rsrp_th: "bad_a2_rsrp_th, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                meas_mob_performance.a2_adjust_th_vonr: "srv>srv_th, adjust a2 thresh as MAX(ori, good_a2_rsrp_th). srv<=srv_th, adjust a2 thresh as MAX(ori, bad_a2_rsrq_th)"{};
+                    meas_mob_performance.a2_adjust_th_vonr.ctrl_bmp: "0x01: disable on high speed, 0x02: enable good_a2_rsrp_th, 0x04: enable bad_a2_rsrp_th, 0x08: disable on test SIM"{};
+                    meas_mob_performance.a2_adjust_th_vonr.srv_rsrp_th: "serving cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                    meas_mob_performance.a2_adjust_th_vonr.srv_rsrq_th: "serving cell rsrq threshold, unit: qdB , range: -180~80, disable: 0x8000."{};
+                    meas_mob_performance.a2_adjust_th_vonr.srv_sinr_th: "serving cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
+                    meas_mob_performance.a2_adjust_th_vonr.good_a2_rsrp_th: "good_a2_rsrp_th, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                    meas_mob_performance.a2_adjust_th_vonr.bad_a2_rsrp_th: "bad_a2_rsrp_th, unit: qdBm, range: -640~-120, disable: 0x8000."{};
                 meas_mob_performance.a2_adjust_th_per_band_list: "Per band list for a2_adjust_th. One of srv_rsrp_th/srv_rsrq_th/srv_sinr_th in a2_adjust_th must be valid. Unspecified band will use value in a2_adjust_th"{};
                     meas_mob_performance.a2_adjust_th_per_band_list.per_band_threshold: "Threshold for specific band"{};
                         meas_mob_performance.a2_adjust_th_per_band_list.per_band_threshold.band: "NR band, range: 1~65535, disable: 0x0000"{};
@@ -636,12 +677,18 @@
                     meas_mob_performance.A3A4A5_prefer_cell.rsrp_th_for_ignore_rpt: "neighbor cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
                     meas_mob_performance.A3A4A5_prefer_cell.rsrq_th_for_ignore_rpt: "neighbor cell rsrq threshold, unit: qdB , range: -180~80, disable: 0x8000."{};
                     meas_mob_performance.A3A4A5_prefer_cell.sinr_th_for_ignore_rpt: "neighbor cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
-                    meas_mob_performance.postpone_a2_for_b1b2: "srv>srv_th, postpone a2 if b1b2 configured for timer_postpone_b1b2"{};
+                meas_mob_performance.postpone_a2_for_b1b2: "srv>srv_th, postpone a2 if b1b2 configured for timer_postpone_b1b2"{};
                     meas_mob_performance.postpone_a2_for_b1b2.ctrl_bmp: "0x01: disable on high speed, 0x02: enable lower_a2_rsrp_th, 0x04: enable lower_a2_rsrq_th, 0x08: disable on test SIM"{};
                     meas_mob_performance.postpone_a2_for_b1b2.timer_postpone_a2: "to postpone a2 for how long in ms if B1 or B2 configured"{};
                     meas_mob_performance.postpone_a2_for_b1b2.srv_rsrp_th: "serving cell rsrp threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
                     meas_mob_performance.postpone_a2_for_b1b2.srv_rsrq_th: "serving cell rsrq threshold, unit: qdB , range: -180~80, disable: 0x8000."{};
                     meas_mob_performance.postpone_a2_for_b1b2.srv_sinr_th: "serving cell sinr threshold, unit: qdB , range: -100~160, disable: 0x8000."{};
+                meas_mob_performance.nr_lte_prefer_rat_rsrp_th: "Customized nr lte prefer rat rsrp threshold config."{};
+                    meas_mob_performance.nr_lte_prefer_rat_rsrp_th.ctrl_bmp: "0x01: enable nr lte prefer rat rsrp threshold, 0x02: disable on test SIM"{};
+                    meas_mob_performance.nr_lte_prefer_rat_rsrp_th.nr_good_rsrp_th: "nr serving cell rsrp good threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                    meas_mob_performance.nr_lte_prefer_rat_rsrp_th.nr_bad_rsrp_th: "nr serving cell rsrp bad threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                    meas_mob_performance.nr_lte_prefer_rat_rsrp_th.lte_rsrp_th: "lte candidate cell rsrp good threshold, unit: qdBm, range: -640~-120, disable: 0x8000."{};
+                meas_mob_performance.game_nbr_bad_rsrp_th:  "set the rsrp lower bound of gaming neighbor cell, unit: qdBm, range: -640~-120, disable: 0x8000."{};
             scg_bar_info: "[MCF] Configuration for SCG bar info."{};
                 scg_bar_info.scg_bar_th: "Number of SCG failures more than the scg_bar_th, scg cell will be barred."{};
                 scg_bar_info.scg_bar_time: "SCG cell bar timer."{};
@@ -662,20 +709,26 @@
                 nrrc_erm_param_info.short_monitor_duration: "abnormal monitor duration in sec"{};
                 nrrc_erm_param_info.bar_time:"bar time when abnormal threshold match"{};
                 nrrc_erm_param_info.long_monitor_duration:"monitor duration to fully alleviate"{};
+                nrrc_erm_param_info.nw_reject_with_long_wait_time_counter :"Counter for NW reject with a long wait time"{};
+                nrrc_erm_param_info.nw_reject_with_long_wait_time_monitoring_time :"Monitoring time for NW reject with a long wait time"{};
+                nrrc_erm_param_info.nw_reject_with_long_wait_time_bar_time :"Bar time for NW reject with a long wait time"{};
+                nrrc_erm_param_info.nw_reject_with_long_wait_time_threshold :"Threshold for NW reject with a long wait time"{};
             nrrc_idle_param:"[MCF] Configuration for idle mode behavior parameters."{};
                 nrrc_idle_param.nr_tacless_bar_cell_timer:"Bar timer when 4G5 redirection to NR TACLESS cell."{};
                 nrrc_idle_param.nrrc_idle_custom_redir_param_info: "parameters for handling redirection failed in subway scenario"{};
                     nrrc_idle_param.nrrc_idle_custom_redir_param_info.offset_penalty: "offset penalty value when intra-NR redirection failed in subway scenario"{};
                     nrrc_idle_param.nrrc_idle_custom_redir_param_info.offset_time: "offset penalty time when intra-NR redirection failed in subway scenario"{};
             nrrc_si_param:"[MCF] Configuration for SIB reception behaviour parameters."{};
-                nrrc_si_param.q_rx_lv_min.is_valid:"[MCF] validity of custom NR_Q_RxLevMin"{};
-                nrrc_si_param.q_rx_lv_min.custom_val:"[MCF] custom value of custom NR_Q_RxLevMin"{};
-                nrrc_si_param.q_rx_lv_min.threshold_high:"[MCF] threshold high of custom NR_Q_RxLevMin"{};
-                nrrc_si_param.q_rx_lv_min.threshold_low:"[MCF] threshold low of custom NR_Q_RxLevMin"{};
-                nrrc_si_param.q_qual_lv_min.is_valid:"[MCF] validity of custom NR_Q_QualMin"{};
-                nrrc_si_param.q_qual_lv_min.custom_val:"[MCF] custom value of custom NR_Q_QualMin"{};
-                nrrc_si_param.q_qual_lv_min.threshold_high:"[MCF] threshold high custom NR_Q_QualMin"{};
-                nrrc_si_param.q_qual_lv_min.threshold_low:"[MCF] threshold low of custom NR_Q_QualMin"{};
+                nrrc_si_param.q_rx_lv_min:"[MCF] customized NR_Q_RxLevMin"{};
+                    nrrc_si_param.q_rx_lv_min.is_valid:"[MCF] validity of customized NR_Q_RxLevMin"{};
+                    nrrc_si_param.q_rx_lv_min.custom_val:"[MCF] custom value of customized NR_Q_RxLevMin"{};
+                    nrrc_si_param.q_rx_lv_min.threshold_high:"[MCF] threshold high of customized NR_Q_RxLevMin"{};
+                    nrrc_si_param.q_rx_lv_min.threshold_low:"[MCF] threshold low of customized NR_Q_RxLevMin"{};
+                nrrc_si_param.q_qual_lv_min:"[MCF] customized NR_Q_QualMin"{};
+                    nrrc_si_param.q_qual_lv_min.is_valid:"[MCF] validity of customized NR_Q_QualMin"{};
+                    nrrc_si_param.q_qual_lv_min.custom_val:"[MCF] custom value of customized NR_Q_QualMin"{};
+                    nrrc_si_param.q_qual_lv_min.threshold_high:"[MCF] threshold high customized NR_Q_QualMin"{};
+                    nrrc_si_param.q_qual_lv_min.threshold_low:"[MCF] threshold low of customized NR_Q_QualMin"{};
             hst_cell_param:"[MCF] Configuration for cell power threshold."{};
                 hst_cell_param.rsrp_threshold:"[MCF] custom value of rsrp threshold for hst enhance"{};
                 hst_cell_param.rsrq_threshold:"[MCF] custom value of rsrq threshold for hst enhance"{};
@@ -1121,6 +1174,10 @@
     kal_uint32       short_monitor_duration;
     kal_uint32       bar_time;
     kal_uint32       long_monitor_duration;
+    kal_uint8        nw_reject_with_long_wait_time_counter;
+    kal_uint8        nw_reject_with_long_wait_time_monitoring_time;
+    kal_uint32       nw_reject_with_long_wait_time_bar_time;
+    kal_uint8        nw_reject_with_long_wait_time_threshold;
 } nvram_nrrc_abnormal_control_params_struct;
 
 typedef struct {