Commit e8c0c024 authored by Raymond Knopp's avatar Raymond Knopp

RIV allocation computation for SL

parent 5a61d21c
...@@ -351,6 +351,25 @@ uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL) ...@@ -351,6 +351,25 @@ uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL)
return(nprb); return(nprb);
} }
void RIV2_alloc(uint16_t N_RB_DL,uint16_t RIV, int *Lcrbs, int *RBstart) {
int A = RIV/N_RB_DL;
int B = RIV%N_RB_DL;
*Lcrbs = A+1;
// check condition RBstart <= N_RB_DL + 1 - Lcrbs
if (A <= N_RB_DL - B) {
*Lcrbs = A+1;
*RBstart = B;
}
else {
*Lcrbs = N_RB_DL+1-A;
*RBstart = N_RB_DL-1-B;
}
}
uint16_t computeRIV(uint16_t N_RB_DL,uint16_t RBstart,uint16_t Lcrbs) uint16_t computeRIV(uint16_t N_RB_DL,uint16_t RBstart,uint16_t Lcrbs)
{ {
......
...@@ -1605,7 +1605,7 @@ uint8_t get_transmission_mode(module_id_t Mod_id, uint8_t CC_id, rnti_t rnti); ...@@ -1605,7 +1605,7 @@ uint8_t get_transmission_mode(module_id_t Mod_id, uint8_t CC_id, rnti_t rnti);
*/ */
uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL); uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL);
void conv_RIV(int N_RB_UL, int RIV, int *L_CRBs, int *RB_start); void RIV2_alloc(uint16_t N_RB_DL,uint16_t RIV, int *Lcrbs, int *RBstart);
int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint8_t mod_order,uint8_t Nl,uint8_t num_pdcch_symbols,int frame,uint8_t subframe, uint8_t beamforming_mode); int get_G(LTE_DL_FRAME_PARMS *frame_parms,uint16_t nb_rb,uint32_t *rb_alloc,uint8_t mod_order,uint8_t Nl,uint8_t num_pdcch_symbols,int frame,uint8_t subframe, uint8_t beamforming_mode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment