diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c
index 84aa00210db2cbc462284c74a646ca4700ac38f8..e7af164877c6889b50b885fac1c83f826762832d 100644
--- a/executables/nr-gnb.c
+++ b/executables/nr-gnb.c
@@ -103,8 +103,8 @@ extern openair0_config_t openair0_cfg[MAX_CARDS];
 
 extern int transmission_mode;
 
-uint16_t sf_ahead=3;
-uint16_t sl_ahead;
+extern uint16_t sf_ahead;
+extern uint16_t sl_ahead;
 //pthread_t                       main_gNB_thread;
 
 time_stats_t softmodem_stats_mt; // main thread
diff --git a/executables/nr-ru.c b/executables/nr-ru.c
index fdf07d4f79a46ba15f52ca0519875ecf7a4fe728..fe1098846296e0d9972c2a6085f23aeae541908f 100644
--- a/executables/nr-ru.c
+++ b/executables/nr-ru.c
@@ -131,8 +131,8 @@ void configure_rru(int idx, void *arg);
 int attach_rru(RU_t *ru);
 int connect_rau(RU_t *ru);
 
-extern uint16_t sf_ahead;
-extern uint16_t sl_ahead;
+uint16_t sf_ahead;
+uint16_t sl_ahead;
 
 extern int emulate_rf;
 extern int numerology;
@@ -1454,6 +1454,7 @@ void *ru_thread( void *param ) {
     }
   }
 
+  sf_ahead = (uint16_t) ceil((float)6/(0x01<<fp->numerology_index));
   LOG_I(PHY, "Signaling main thread that RU %d is ready\n",ru->idx);
   pthread_mutex_lock(&RC.ru_mutex);
   RC.ru_mask &= ~(1<<ru->idx);