From 76e163625858c025c4dc6b217c3e2cb8cfd07ecf Mon Sep 17 00:00:00 2001
From: Louis Adrien Dufrene <swmt1841@yd-CZC6227X3N.orangeai.mey>
Date: Mon, 12 Nov 2018 17:38:19 +0100
Subject: [PATCH] RRC timer reset in scheduler: format of some functions before
 first test

---
 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c  |  94 +++++++------
 openair2/LAYER2/MAC/eNB_scheduler_fairRR.c | 146 +++++++++++----------
 openair2/LAYER2/MAC/eNB_scheduler_ulsch.c  | 113 +++++++++-------
 openair2/RRC/LTE/rrc_eNB_S1AP.c            |   4 -
 4 files changed, 198 insertions(+), 159 deletions(-)

diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index d4f7c04d03..4b922e89a5 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -1033,68 +1033,82 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP,
 	  // TODO: check if the lcid is active
 
 	  LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n",
-		module_idP, frameP, lcid, TBS,
-                TBS - ta_len - header_length_total - sdu_length_total - 3);
+		  module_idP, 
+      frameP, 
+      lcid, 
+      TBS,
+      TBS - ta_len - header_length_total - sdu_length_total - 3);
 
 	  if (TBS - ta_len - header_length_total - sdu_length_total - 3 > 0) {
 	    rlc_status = mac_rlc_status_ind(module_idP,
-					    rnti,
-					    module_idP,
-					    frameP,
-					    subframeP,
-					    ENB_FLAG_YES,
-					    MBMS_FLAG_NO,
-					    lcid,
-					    TBS - ta_len - header_length_total - sdu_length_total - 3
+                    rnti,
+                    module_idP,
+                    frameP,
+                    subframeP,
+                    ENB_FLAG_YES,
+                    MBMS_FLAG_NO,
+                    lcid,
+                    TBS - ta_len - header_length_total - sdu_length_total - 3
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
-                                                    ,0, 0
+                  , 0, 0
 #endif
-                                           );
-
-
+                    );
 
 	    if (rlc_status.bytes_in_buffer > 0) {
-	      LOG_D(MAC,
-		    "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n",
-		    module_idP, frameP,
-                    TBS - ta_len - header_length_total - sdu_length_total - 3,
+	      LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n",
+		    module_idP, 
+        frameP,
+        TBS - ta_len - header_length_total - sdu_length_total - 3,
 		    lcid,
 		    header_length_total);
 
-	      sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, lcid,
-                                                       TBS, //not used
-						       (char *)&dlsch_buffer[sdu_length_total]
+	      sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, 
+                                  rnti, 
+                                  module_idP, 
+                                  frameP, 
+                                  ENB_FLAG_YES, 
+                                  MBMS_FLAG_NO, 
+                                  lcid,
+                                  TBS, //not used
+						                      (char *)&dlsch_buffer[sdu_length_total]
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
-                          ,0, 0
+                                  , 0, 0
 #endif
-	      );
-
-	      T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP),
-		T_INT(CC_id), T_INT(rnti), T_INT(frameP),
-		T_INT(subframeP), T_INT(harq_pid),
-		T_INT(lcid), T_INT(sdu_lengths[num_sdus]));
-
-	      LOG_D(MAC,
-		    "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n",
-		    module_idP, sdu_lengths[num_sdus], lcid);
+	                                );
+
+	      T(T_ENB_MAC_UE_DL_SDU, 
+          T_INT(module_idP),
+		      T_INT(CC_id), 
+          T_INT(rnti), 
+          T_INT(frameP),
+		      T_INT(subframeP), 
+          T_INT(harq_pid),
+		      T_INT(lcid), 
+          T_INT(sdu_lengths[num_sdus]));
+
+	      LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n",
+		      module_idP, 
+          sdu_lengths[num_sdus], 
+          lcid);
 
 	      sdu_lcids[num_sdus] = lcid;
 	      sdu_length_total += sdu_lengths[num_sdus];
+
 	      UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid]++;
-              UE_list->eNB_UE_stats[CC_id][UE_id].lcid_sdu[num_sdus] = lcid;
-              UE_list->eNB_UE_stats[CC_id][UE_id].sdu_length_tx[lcid] = sdu_lengths[num_sdus];
+        UE_list->eNB_UE_stats[CC_id][UE_id].lcid_sdu[num_sdus] = lcid;
+        UE_list->eNB_UE_stats[CC_id][UE_id].sdu_length_tx[lcid] = sdu_lengths[num_sdus];
 	      UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus];
 
-              header_length_last = 1 + 1 + (sdu_lengths[num_sdus] >= 128);
-              header_length_total += header_length_last;
+        header_length_last = 1 + 1 + (sdu_lengths[num_sdus] >= 128);
+        header_length_total += header_length_last;
 
 	      num_sdus++;
 
 	      UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0;
-	    }
-	  } else {
-            // no TBS left
-	    break;
+
+	    } // end if (rlc_status.bytes_in_buffer > 0)
+	  } else {  // no TBS left
+	    break;  // break for (lcid = NB_RB_MAX - 1; lcid >= DTCH; lcid--)
 	  }
 	}
 
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
index 9ab4306000..282d906098 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
@@ -1404,85 +1404,95 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
 		header_len_dtch = 0;
 		header_len_dtch_last = 0;	// the header length of the last mac sdu
 		// lcid has to be sorted before the actual allocation (similar struct as ue_list).
-	    /* TODO limited lcid for performance */
-        for (lcid = DTCH; lcid >= DTCH; lcid--) {
-		    // TBD: check if the lcid is active
-
-		    header_len_dtch += 3;
-		    header_len_dtch_last = 3;
-		    LOG_D(MAC,
-			  "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n",
-			  module_idP, frameP, lcid, TBS,
-			  TBS - ta_len - header_len_dcch -
-			  sdu_length_total - header_len_dtch);
-
-		    if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) {	// NN: > 2 ? 
-			rlc_status = mac_rlc_status_ind(module_idP,
-							rnti,
-							module_idP,
-							frameP,
-							subframeP,
-							ENB_FLAG_YES,
-							MBMS_FLAG_NO,
-							lcid,
-							TBS - ta_len -
-							header_len_dcch -
-							sdu_length_total -
-							header_len_dtch
+	  /* TODO limited lcid for performance */
+    for (lcid = DTCH; lcid >= DTCH; lcid--) {
+		  // TBD: check if the lcid is active
+      header_len_dtch += 3;
+      header_len_dtch_last = 3;
+
+      LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n",
+        module_idP, 
+        frameP, 
+        lcid, 
+        TBS,
+        TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch);
+
+		  if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) {	// NN: > 2 ? 
+			  rlc_status = mac_rlc_status_ind(module_idP,
+                      rnti,
+                      module_idP,
+                      frameP,
+                      subframeP,
+                      ENB_FLAG_YES,
+                      MBMS_FLAG_NO,
+                      lcid,
+                      TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch
 #ifdef Rel14
-                                                        ,0, 0
+                    , 0, 0
 #endif
-                                                       );
+                      );
 
 
-			if (rlc_status.bytes_in_buffer > 0) {
-
-			    LOG_D(MAC,
-				  "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n",
-				  module_idP, frameP,
-				  TBS - header_len_dcch -
-				  sdu_length_total - header_len_dtch, lcid,
+			  if (rlc_status.bytes_in_buffer > 0) {
+			    LOG_D(MAC,"[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n",
+				  module_idP, 
+          frameP,
+				  TBS - header_len_dcch - sdu_length_total - header_len_dtch, 
+          lcid,
 				  header_len_dtch);
-			    sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, rnti, module_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, lcid, TBS,	//not used
-								     (char
-								      *)
-								     &dlsch_buffer
-								     [sdu_length_total]
-#ifdef Rel14
-                                                                     ,0, 0
+
+			    sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, 
+                                    rnti, 
+                                    module_idP, 
+                                    frameP, 
+                                    ENB_FLAG_YES, 
+                                    MBMS_FLAG_NO, 
+                                    lcid, 
+                                    TBS,	//not used
+								                    (char *)&dlsch_buffer[sdu_length_total]
+#ifdef Rel14 
+                                  , 0, 0
 #endif
-                                                                    );
-			    T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP),
-			      T_INT(CC_id), T_INT(rnti), T_INT(frameP),
-			      T_INT(subframeP), T_INT(harq_pid),
-			      T_INT(lcid), T_INT(sdu_lengths[num_sdus]));
+                                    );
+
+			    T(T_ENB_MAC_UE_DL_SDU, 
+            T_INT(module_idP),
+			      T_INT(CC_id), 
+            T_INT(rnti), 
+            T_INT(frameP),
+			      T_INT(subframeP), 
+            T_INT(harq_pid),
+			      T_INT(lcid), 
+            T_INT(sdu_lengths[num_sdus]));
+
+			    LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n",
+				    module_idP, 
+            sdu_lengths[num_sdus], 
+            lcid);
 
-			    LOG_D(MAC,
-				  "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n",
-				  module_idP, sdu_lengths[num_sdus], lcid);
 			    sdu_lcids[num_sdus] = lcid;
 			    sdu_length_total += sdu_lengths[num_sdus];
-			    UE_list->
-				eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid]
-				+= 1;
-			    UE_list->
-				eNB_UE_stats[CC_id][UE_id].num_bytes_tx
-				[lcid] += sdu_lengths[num_sdus];
-			    if (sdu_lengths[num_sdus] < 128) {
-				header_len_dtch--;
-				header_len_dtch_last--;
+			    UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] += 1;
+			    UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus];
+			    
+          if (sdu_lengths[num_sdus] < 128) {
+    				header_len_dtch--;
+	    			header_len_dtch_last--;
 			    }
+
 			    num_sdus++;
-                            UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0;
-			}	// no data for this LCID
-			else {
-			    header_len_dtch -= 3;
-			}
-		    }		// no TBS left
-		    else {
-			header_len_dtch -= 3;
-			break;
-		    }
+
+          UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0;
+          
+			  }	else { // no data for this LCID
+          header_len_dtch -= 3;
+        }
+      
+      } else {  // no TBS left
+  			header_len_dtch -= 3;
+	  		
+        break;
+		  }
 		}
 		if (header_len_dtch == 0)
 		    header_len_dtch_last = 0;
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index 31c11e2c0a..8ad23798f7 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -669,69 +669,88 @@ rx_sdu(const module_id_t enb_mod_idP,
       // }
       break;
 
-      // all the DRBS
+    // all the DRBS
     case DTCH:
+    
     default:
 
 #if defined(ENABLE_MAC_PAYLOAD_DEBUG)
+      
       LOG_T(MAC, "offset: %d\n",
-	    (unsigned char) ((unsigned char *) payload_ptr - sduP));
+	      (unsigned char) ((unsigned char *) payload_ptr - sduP));
+      
       for (j = 0; j < 32; j++) {
-	LOG_T(MAC, "%x ", payload_ptr[j]);
+	      LOG_T(MAC, "%x ", payload_ptr[j]);
       }
+      
       LOG_T(MAC, "\n");
+
 #endif
-      if (rx_lcids[i] < NB_RB_MAX) {
-	LOG_D(MAC,
-	      "[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DTCH, received %d bytes from UE %d for lcid %d\n",
-	      enb_mod_idP, CC_idP, frameP, rx_lengths[i], UE_id,
-	      rx_lcids[i]);
 
-	if (UE_id != -1) {
-	  // adjust buffer occupancy of the correponding logical channel group
-	  LOG_D(MAC,
-		"[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DTCH, received %d bytes from UE %d for lcid %d, removing from LCGID %ld, %d\n",
-		enb_mod_idP, CC_idP, frameP, rx_lengths[i],
-		UE_id, rx_lcids[i],
-		UE_list->UE_template[CC_idP][UE_id].
-		lcgidmap[rx_lcids[i]],
-		UE_list->UE_template[CC_idP][UE_id].
-		ul_buffer_info[UE_list->UE_template[CC_idP]
-			       [UE_id].lcgidmap[rx_lcids[i]]]);
+      if (rx_lcids[i] < NB_RB_MAX) {
+      	
+        LOG_D(MAC, "[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DTCH, received %d bytes from UE %d for lcid %d\n",
+	        enb_mod_idP, 
+          CC_idP, 
+          frameP, 
+          rx_lengths[i], 
+          UE_id,
+	        rx_lcids[i]);
+
+	      if (UE_id != -1) {
+          // adjust buffer occupancy of the correponding logical channel group
+          LOG_D(MAC, "[eNB %d] CC_id %d Frame %d : ULSCH -> UL-DTCH, received %d bytes from UE %d for lcid %d, removing from LCGID %ld, %d\n",
+            enb_mod_idP, 
+            CC_idP, 
+            frameP, 
+            rx_lengths[i],
+            UE_id, 
+            rx_lcids[i],
+            UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]],
+            UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]]);
 
           if (lcgid_updated[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] == 0) {
-	    if (UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] >= rx_lengths[i])
-	      UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] -= rx_lengths[i];
-	    else
-	      UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] = 0;
+	          if (UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] >= rx_lengths[i]) {
+              UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] -= rx_lengths[i];
+            } else {
+	            UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[UE_list->UE_template[CC_idP][UE_id].lcgidmap[rx_lcids[i]]] = 0;
+            }
 
             UE_list->UE_template[CC_idP][UE_id].estimated_ul_buffer =
-               UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[0] +
-               UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[1] +
-               UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[2] +
-               UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[3];
-            //UE_list->UE_template[CC_idP][UE_id].estimated_ul_buffer += UE_list->UE_template[CC_idP][UE_id].estimated_ul_buffer / 4;
+              UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[0] +
+              UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[1] +
+              UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[2] +
+              UE_list->UE_template[CC_idP][UE_id].ul_buffer_info[3];
           }
 
-	  if ((rx_lengths[i] < SCH_PAYLOAD_SIZE_MAX) && (rx_lengths[i] > 0)) {	// MAX SIZE OF transport block
-	    mac_rlc_data_ind(enb_mod_idP, current_rnti, enb_mod_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, rx_lcids[i], (char *) payload_ptr, rx_lengths[i], 1, NULL);	//(unsigned int*)crc_status);
-
-	    UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]] += 1;
-	    UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]] += rx_lengths[i];
-	    //clear uplane_inactivity_timer
-	    UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0;
-	  } else {	/* rx_length[i] */
-	    UE_list->eNB_UE_stats[CC_idP][UE_id].num_errors_rx += 1;
-	    LOG_E(MAC,
-		  "[eNB %d] CC_id %d Frame %d : Max size of transport block reached LCID %d from UE %d ",
-		  enb_mod_idP, CC_idP, frameP, rx_lcids[i],
-		  UE_id);
-	  }
-	} else {	/*(UE_id != -1 */
-	  LOG_E(MAC,
-		"[eNB %d] CC_id %d Frame %d : received unsupported or unknown LCID %d from UE %d ",
-		enb_mod_idP, CC_idP, frameP, rx_lcids[i], UE_id);
-	}
+	        if ((rx_lengths[i] < SCH_PAYLOAD_SIZE_MAX) && (rx_lengths[i] > 0)) {	// MAX SIZE OF transport block
+	          mac_rlc_data_ind(enb_mod_idP, current_rnti, enb_mod_idP, frameP, ENB_FLAG_YES, MBMS_FLAG_NO, rx_lcids[i], (char *) payload_ptr, rx_lengths[i], 1, NULL);
+
+	          UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]] += 1;
+	          UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]] += rx_lengths[i];
+
+            //clear uplane_inactivity_timer
+            UE_list->UE_sched_ctrl[UE_id].uplane_inactivity_timer = 0;
+
+          } else {	/* rx_length[i] */
+            UE_list->eNB_UE_stats[CC_idP][UE_id].num_errors_rx += 1;
+            
+            LOG_E(MAC, "[eNB %d] CC_id %d Frame %d : Max size of transport block reached LCID %d from UE %d ",
+            enb_mod_idP, 
+            CC_idP, 
+            frameP, 
+            rx_lcids[i],
+            UE_id);
+          }
+
+	      } else {	/*(UE_id != -1 */
+          LOG_E(MAC,"[eNB %d] CC_id %d Frame %d : received unsupported or unknown LCID %d from UE %d ",
+          enb_mod_idP, 
+          CC_idP, 
+          frameP, 
+          rx_lcids[i], 
+          UE_id);
+	      }
       }
 
       break;
diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c
index f89bb76cff..c1371e2ef1 100644
--- a/openair2/RRC/LTE/rrc_eNB_S1AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c
@@ -256,7 +256,6 @@ rrc_eNB_S1AP_get_ue_ids(
         * This case is uncommon, but can happen when:
         * -> if the first NAS message was a Detach Request (non exhaustiv), the UE RRC context exist 
         * but is not associated with eNB_ue_s1ap_id
-        * -> if the UE is in IDLE, hence no S1 context exist (in this case [h_rc != HASH_TABLE_OK] is normal)
         * -> ... (?)
         */
         LOG_E(S1AP, "[eNB %ld] In hashtable_get, couldn't find in s1ap_id2_s1ap_ids eNB_ue_s1ap_id %"PRIu32", trying to find it through S1AP context\n", 
@@ -267,9 +266,6 @@ rrc_eNB_S1AP_get_ue_ids(
 
         s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance); // get s1ap_eNB_instance
 
-        // s1ap_eNB_instance_p = s1ap_eNB_get_instance((uint8_t) rrc_instance_pP - RC.rrc[0]); // get s1ap_eNB_instance
-        // s1ap_eNB_instance_t *s1ap_eNB_get_instance(uint8_t mod_id);
-
         ue_desc_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p, eNB_ue_s1ap_id); // get s1ap_eNB_ue_context
 
         if (ue_desc_p != NULL) {
-- 
GitLab