diff --git a/openair1/PHY/defs.h b/openair1/PHY/defs.h
index 876101324896fa31ce8a3bb9323c5e9527b0a44a..84a6fe1d03502042af8c67af1c604c06093816fd 100755
--- a/openair1/PHY/defs.h
+++ b/openair1/PHY/defs.h
@@ -172,7 +172,7 @@ enum transmission_access_mode{
       SLIST_ENTRY(ral_threshold_phy_s) ral_thresholds;
       ral_threshold_t                  threshold;
       ral_th_action_t                  th_action;
-      ral_link_param_type_t            link_param_type;
+      ral_link_param_t                 link_param;
       long                             timer_id;
   }ral_threshold_phy_t;
 #endif
diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c
index 8f0a94163be66e6d55d17d110cf43d18a6f7fdbb..5366932555bdb28e08ddc5eb18d2abf8eb5ca99f 100755
--- a/openair1/SCHED/phy_procedures_lte_ue.c
+++ b/openair1/SCHED/phy_procedures_lte_ue.c
@@ -3174,14 +3174,18 @@ int phy_procedures_RN_UE_RX(u8 last_slot, u8 next_slot, relaying_type_t r_type)
 
 #if defined(ENABLE_ITTI)
 #   if defined(ENABLE_RAL)
+extern PHY_MEASUREMENTS PHY_measurements;
 
 void phy_UE_lte_measurement_thresholds_test_and_report(instance_t instanceP, ral_threshold_phy_t* threshold_phy_pP, uint16_t valP) {
     MessageDef *message_p = NULL;
 
     if (
-       ((threshold_phy_pP->threshold.threshold_val >  valP) && (threshold_phy_pP->threshold.threshold_xdir == MIH_C_ABOVE_THRESHOLD)) ||
-       ((threshold_phy_pP->threshold.threshold_val <  valP) && (threshold_phy_pP->threshold.threshold_xdir == MIH_C_BELOW_THRESHOLD))
-       ) {
+           (
+               ((threshold_phy_pP->threshold.threshold_val >  valP) && (threshold_phy_pP->threshold.threshold_xdir == RAL_ABOVE_THRESHOLD)) ||
+               ((threshold_phy_pP->threshold.threshold_val <  valP) && (threshold_phy_pP->threshold.threshold_xdir == RAL_BELOW_THRESHOLD))
+           )  ||
+           (threshold_phy_pP->threshold.threshold_xdir == RAL_NO_THRESHOLD)
+       ){
         message_p = itti_alloc_new_message(TASK_PHY_UE , PHY_MEAS_REPORT_IND);
         memset(&PHY_MEAS_REPORT_IND(message_p), 0, sizeof(PHY_MEAS_REPORT_IND(message_p)));
 
@@ -3189,18 +3193,32 @@ void phy_UE_lte_measurement_thresholds_test_and_report(instance_t instanceP, ral
                 &threshold_phy_pP->threshold,
                 sizeof(PHY_MEAS_REPORT_IND (message_p).threshold));
 
-        memcpy(&PHY_MEAS_REPORT_IND (message_p).link_param_type,
-                &threshold_phy_pP->link_param_type,
-                sizeof(PHY_MEAS_REPORT_IND (message_p).link_param_type));
+        memcpy(&PHY_MEAS_REPORT_IND (message_p).link_param,
+                &threshold_phy_pP->link_param,
+                sizeof(PHY_MEAS_REPORT_IND (message_p).link_param));\
+
+        switch (threshold_phy_pP->link_param.choice) {
+            case RAL_LINK_PARAM_CHOICE_LINK_PARAM_VAL:
+                PHY_MEAS_REPORT_IND (message_p).link_param._union.link_param_val = valP;
+                break;
+            case RAL_LINK_PARAM_CHOICE_QOS_PARAM_VAL:
+                //PHY_MEAS_REPORT_IND (message_p).link_param._union.qos_param_val.
+                AssertFatal (1 == 0, "TO DO RAL_LINK_PARAM_CHOICE_QOS_PARAM_VAL\n");
+                break;
+        }
         itti_send_msg_to_task(TASK_RRC_UE, instanceP, message_p);
     }
 }
 
 void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold_phy_t* threshold_phy_pP) {
-    switch (threshold_phy_pP->link_param_type.choice) {
+    unsigned int  mod_id;
+
+    mod_id = instanceP - NB_eNB_INST;
+
+    switch (threshold_phy_pP->link_param.link_param_type.choice) {
 
         case RAL_LINK_PARAM_TYPE_CHOICE_GEN:
-            switch (threshold_phy_pP->link_param_type._union.link_param_gen) {
+            switch (threshold_phy_pP->link_param.link_param_type._union.link_param_gen) {
                 case RAL_LINK_PARAM_GEN_DATA_RATE:
                     phy_UE_lte_measurement_thresholds_test_and_report(instanceP, threshold_phy_pP, 0);
                     break;
@@ -3219,8 +3237,9 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
             break;
 
         case RAL_LINK_PARAM_TYPE_CHOICE_LTE:
-            switch (threshold_phy_pP->link_param_type._union.link_param_gen) {
+            switch (threshold_phy_pP->link_param.link_param_type._union.link_param_gen) {
                 case RAL_LINK_PARAM_LTE_UE_RSRP:
+                    phy_UE_lte_measurement_thresholds_test_and_report(instanceP, threshold_phy_pP, PHY_vars_UE_g[mod_id]->PHY_measurements.rx_rssi_dBm[0]);
                     break;
                 case RAL_LINK_PARAM_LTE_UE_RSRQ:
                     break;
@@ -3338,14 +3357,11 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
 #warning "TO DO LIST OF THRESHOLDS"
           LOG_I(PHY, "[UE %d] Received %s\n", Mod_id, msg_name);
           {
-              ral_transaction_id_t transaction_id;
               ral_threshold_phy_t* threshold_phy_p  = NULL;
               int                  index, res;
               long                 timer_id;
               hashtable_rc_t       hashtable_rc;
 
-
-              transaction_id = PHY_MEAS_THRESHOLD_REQ(msg_p).transaction_id;
               switch (PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.th_action) {
 
                   case RAL_TH_ACTION_CANCEL_THRESHOLD:
@@ -3356,9 +3372,9 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
                       for (index = 0; index < PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.num_thresholds; index++) {
                           threshold_phy_p                  = calloc(1, sizeof(ral_threshold_phy_t));
                           threshold_phy_p->th_action       = PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.th_action;
-                          memcpy(&threshold_phy_p->link_param_type,
+                          memcpy(&threshold_phy_p->link_param.link_param_type,
                                   &PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.link_param_type,
-                                  sizeof(threshold_phy_p->link_param_type));
+                                  sizeof(ral_link_param_type_t));
 
                           memcpy(&threshold_phy_p->threshold,
                                   &PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.thresholds[index],
@@ -3377,7 +3393,7 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
 
                                       case RAL_LINK_PARAM_TYPE_CHOICE_LTE:
                                           SLIST_INSERT_HEAD(
-                                              &PHY_vars_UE_g[Mod_id]->ral_thresholds_lte_polled[PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.link_param_type._union.link_param_gen],
+                                              &PHY_vars_UE_g[Mod_id]->ral_thresholds_lte_polled[PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.link_param_type._union.link_param_lte],
                                               threshold_phy_p,
                                               ral_thresholds);
                                           break;