printf("SCHEDULER fapi_dl_tpc rnti %x (%d) not existing in MAC\n",dci->rnti,dci->rnti);
printf("SCHEDULER fapi_dl_tpc rnti %x (%d) not existing in MAC\n",dci->rnti,dci->rnti);
#endif
dci->tpc=0;
dci->tpc=0;
return;
return;
}
}
...
@@ -105,7 +107,9 @@ return;
...
@@ -105,7 +107,9 @@ return;
// this assumes accumulated tpc
// this assumes accumulated tpc
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
if(global_subframe<ue_last_pucch_tpc[UE_id]+10){
if(global_subframe<ue_last_pucch_tpc[UE_id]+10){
#if MEGALOG
printf("TPC PUCCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,tpc_accumulated);
printf("TPC PUCCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,tpc_accumulated);
#endif
dci->tpc=0;
dci->tpc=0;
return;
return;
}
}
...
@@ -130,7 +134,9 @@ printf("TPC PUCCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent
...
@@ -130,7 +134,9 @@ printf("TPC PUCCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent
dci->tpc=0;
dci->tpc=0;
}
}
}
}
#if MEGALOG
printf("TPC PUCCH global sf %ld (%ld/%ld) UE %x: TPC %d (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,dci->tpc,tpc_accumulated);
printf("TPC PUCCH global sf %ld (%ld/%ld) UE %x: TPC %d (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,dci->tpc,tpc_accumulated);
printf("SCHEDULER fapi_ul_tpc rnti %x (%d) not existing in MAC\n",dci->rnti,dci->rnti);
printf("SCHEDULER fapi_ul_tpc rnti %x (%d) not existing in MAC\n",dci->rnti,dci->rnti);
#endif
dci->tpc=0;
dci->tpc=0;
return;
return;
}
}
...
@@ -152,7 +160,9 @@ return;
...
@@ -152,7 +160,9 @@ return;
// this assumes accumulated tpc
// this assumes accumulated tpc
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
if(global_subframe<ue_last_pusch_tpc[UE_id]+10){
if(global_subframe<ue_last_pusch_tpc[UE_id]+10){
#if MEGALOG
printf("TPC PUSCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,tpc_accumulated);
printf("TPC PUSCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,tpc_accumulated);
#endif
dci->tpc=0;
dci->tpc=0;
return;
return;
}
}
...
@@ -175,7 +185,9 @@ printf("TPC PUSCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent
...
@@ -175,7 +185,9 @@ printf("TPC PUSCH global sf %ld (%ld/%ld) UE %x: no TPC, last one is too recent
if(dci->tpc!=0){
if(dci->tpc!=0){
ue_last_pusch_tpc[UE_id]=global_subframe;
ue_last_pusch_tpc[UE_id]=global_subframe;
}
}
#if MEGALOG
printf("TPC PUSCH global sf %ld (%ld/%ld) UE %x: TPC %d (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,dci->tpc,tpc_accumulated);
printf("TPC PUSCH global sf %ld (%ld/%ld) UE %x: TPC %d (accumulated %d)\n",global_subframe,global_subframe/10,global_subframe%10,dci->rnti,dci->tpc,tpc_accumulated);
#endif
}
}
/* this structure is used to store downlink ack/nack information
/* this structure is used to store downlink ack/nack information