commit before merge from repository
This commit is contained in:
@@ -148,6 +148,8 @@ typedef struct {
|
||||
uint16_t nb_rb;
|
||||
/// downlink power offset field
|
||||
uint8_t dl_power_off;
|
||||
/// start symbold of pdsch
|
||||
uint8_t pdsch_start;
|
||||
/// Concatenated "e"-sequences (for definition see 36-212 V8.6 2009-03, p.17-18)
|
||||
uint8_t e[MAX_NUM_CHANNEL_BITS] __attribute__((aligned(32)));
|
||||
/// Turbo-code outputs (36-212 V8.6 2009-03, p.12
|
||||
@@ -172,8 +174,8 @@ typedef struct {
|
||||
uint8_t Nlayers;
|
||||
/// First layer for this PSCH transmission
|
||||
uint8_t first_layer;
|
||||
/// codeword this transport block is mapped to
|
||||
uint8_t codeword;
|
||||
/// codeword this transport block is mapped to
|
||||
uint8_t codeword;
|
||||
} LTE_DL_eNB_HARQ_t;
|
||||
|
||||
typedef struct {
|
||||
@@ -250,11 +252,18 @@ typedef struct {
|
||||
uint8_t decode_phich;
|
||||
} LTE_UL_UE_HARQ_t;
|
||||
|
||||
#ifdef Rel14
|
||||
typedef enum {
|
||||
CEmodeA = 0,
|
||||
CEmodeB = 1
|
||||
} CEmode_t;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
/// TX buffers for UE-spec transmission (antenna ports 5 or 7..14, prior to precoding)
|
||||
int32_t *txdataF[8];
|
||||
/// beamforming weights for UE-spec transmission (antenna ports 5 or 7..14), for each codeword, maximum 4 layers?
|
||||
int32_t **ue_spec_bf_weights[4];
|
||||
int32_t **ue_spec_bf_weights[4];
|
||||
/// dl channel estimates (estimated from ul channel estimates)
|
||||
int32_t **calib_dl_ch_estimates;
|
||||
/// Allocated RNTI (0 means DLSCH_t is not currently used)
|
||||
@@ -292,7 +301,11 @@ typedef struct {
|
||||
/// amplitude of PDSCH (compared to RS) in symbols containing pilots
|
||||
int16_t sqrt_rho_b;
|
||||
#ifdef Rel14
|
||||
/// indicator that this DLSCH corresponds to SIB1-BR, needed for c_init for scrambling
|
||||
uint8_t sib1_br_flag;
|
||||
/// initial absolute subframe (see 36.211 Section 6.3.1), needed for c_init for scrambling
|
||||
uint16_t i0;
|
||||
CEmode_t CEmode;
|
||||
#endif
|
||||
} LTE_eNB_DLSCH_t;
|
||||
|
||||
|
||||
@@ -74,23 +74,50 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int harq_pid,
|
||||
int G,
|
||||
uint8_t q,
|
||||
uint16_t frame,
|
||||
uint8_t Ns)
|
||||
{
|
||||
|
||||
int i;
|
||||
int n;
|
||||
// uint8_t reset;
|
||||
uint32_t x1, x2, s=0;
|
||||
uint8_t *dlsch_e=dlsch->harq_processes[harq_pid]->e;
|
||||
uint8_t *e=dlsch_e;
|
||||
#ifdef Rel14
|
||||
// Rule for accumulation of subframes for BL/CE UEs
|
||||
uint8_t Nacc=4;
|
||||
uint16_t j0,j,idelta;
|
||||
uint16_t i = (Ns>>1) + (10*frame);
|
||||
uint16_t i0 = dlsch->i0;
|
||||
|
||||
if (dlsch->sib1_br_flag==1) Nacc=1;
|
||||
else if (dlsch->rnti == 0xFFFF || dlsch->rnti == 0xFFFE) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4;
|
||||
// Note: above SC-RNTI will also have to be added when/if implemented
|
||||
else if (dlsch->CEmode == CEmodeA) Nacc=1;
|
||||
else if (dlsch->CEmode == CEmodeB) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4;
|
||||
|
||||
if (frame_parms->frame_type == FDD || Nacc == 1) idelta = 0;
|
||||
else idelta = Nacc-2;
|
||||
|
||||
j0 = (i0+idelta)/Nacc;
|
||||
j = (i - i0)/Nacc;
|
||||
#endif
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_SCRAMBLING, VCD_FUNCTION_IN);
|
||||
|
||||
// reset = 1;
|
||||
// x1 is set in lte_gold_generic
|
||||
if (mbsfn_flag == 0) {
|
||||
x2 = (dlsch->rnti<<14) + (q<<13) + ((Ns>>1)<<9) + frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.3.1
|
||||
#ifdef Rel14
|
||||
if (dlsch->i0 != 0xFFFF) {
|
||||
// rule for BL/CE UEs from Section 6.3.1 in 36.211
|
||||
x2= (dlsch->rnti<<14) + (q<<13) + ((((j0+j)*Nacc)%10)<<9) + frame_parms->Nid_cell;
|
||||
if ((frame&1023) < 200) LOG_D(PHY,"Scrambling init for (i0 %d, i %d, j0 %d, j %d, Nacc %d) => x2 %d\n",i0,i,j0,j,Nacc,x2);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
x2 = (dlsch->rnti<<14) + (q<<13) + ((Ns>>1)<<9) + frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.3.1 for PDSCH
|
||||
} else {
|
||||
x2 = ((Ns>>1)<<9) + frame_parms->Nid_cell_mbsfn; //this is c_init in 36.211 Sec 6.3.1
|
||||
x2 = ((Ns>>1)<<9) + frame_parms->Nid_cell_mbsfn; //this is c_init in 36.211 Sec 6.3.1 for PMCH
|
||||
}
|
||||
|
||||
#ifdef DEBUG_SCRAMBLING
|
||||
@@ -98,7 +125,7 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
#endif
|
||||
s = lte_gold_scram(&x1, &x2, 1);
|
||||
|
||||
for (i=0; i<(1+(G>>5)); i++) {
|
||||
for (n=0; n<(1+(G>>5)); n++) {
|
||||
|
||||
#ifdef DEBUG_SCRAMBLING
|
||||
printf("scrambling %d : %d => ",k,e[k]);
|
||||
|
||||
@@ -285,6 +285,7 @@ void generate_mch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t *a)
|
||||
|
||||
int G;
|
||||
int subframe = proc->subframe_tx;
|
||||
int frame = proc->frame_tx;
|
||||
|
||||
if (eNB->abstraction_flag != 0) {
|
||||
if (eNB_transport_info_TB_index[eNB->Mod_id][eNB->CC_id]!=0)
|
||||
@@ -324,7 +325,7 @@ void generate_mch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t *a)
|
||||
&eNB->dlsch_interleaving_stats)==0,
|
||||
"problem in dlsch_encoding");
|
||||
|
||||
dlsch_scrambling(&eNB->frame_parms,1,eNB->dlsch_MCH,0,G,0,subframe<<1);
|
||||
dlsch_scrambling(&eNB->frame_parms,1,eNB->dlsch_MCH,0,G,0,frame,subframe<<1);
|
||||
|
||||
|
||||
mch_modulation(eNB->common_vars.txdataF,
|
||||
|
||||
@@ -1973,6 +1973,7 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int hard_pid,
|
||||
int G,
|
||||
uint8_t q,
|
||||
uint16_t frame,
|
||||
uint8_t Ns);
|
||||
|
||||
void dlsch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
|
||||
@@ -705,8 +705,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
LTE_eNB_DLSCH_t *dlsch,
|
||||
LTE_eNB_DLSCH_t *dlsch1,
|
||||
LTE_eNB_UE_stats *ue_stats,
|
||||
int ra_flag,
|
||||
int num_pdcch_symbols) {
|
||||
int ra_flag) {
|
||||
|
||||
int frame=proc->frame_tx;
|
||||
int subframe=proc->subframe_tx;
|
||||
@@ -717,15 +716,15 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
|
||||
if (frame < 20) {
|
||||
LOG_I(PHY,
|
||||
"[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", num_pdcch_symbols %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n",
|
||||
"[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n",
|
||||
eNB->Mod_id, dlsch->rnti,harq_pid,
|
||||
frame, subframe, input_buffer_length, num_pdcch_symbols,
|
||||
frame, subframe, input_buffer_length, dlsch_harq->pdsch_start,
|
||||
get_G(fp,
|
||||
dlsch_harq->nb_rb,
|
||||
dlsch_harq->rb_alloc,
|
||||
dlsch_harq->Qm,
|
||||
dlsch_harq->Nl,
|
||||
num_pdcch_symbols,
|
||||
dlsch_harq->pdsch_start,
|
||||
frame,
|
||||
subframe,
|
||||
dlsch_harq->mimo_mode==TM7?7:0),
|
||||
@@ -751,7 +750,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
dlsch_harq->rb_alloc,
|
||||
dlsch_harq->Qm,
|
||||
dlsch_harq->Nl,
|
||||
num_pdcch_symbols,
|
||||
dlsch_harq->pdsch_start,
|
||||
frame,
|
||||
subframe,
|
||||
dlsch_harq->mimo_mode==TM7?7:0),
|
||||
@@ -857,7 +856,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
start_meas(&eNB->dlsch_encoding_stats);
|
||||
eNB->te(eNB,
|
||||
dlsch_harq->pdu,
|
||||
num_pdcch_symbols,
|
||||
dlsch_harq->pdsch_start,
|
||||
dlsch,
|
||||
frame,subframe,
|
||||
&eNB->dlsch_rate_matching_stats,
|
||||
@@ -875,10 +874,11 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
dlsch_harq->rb_alloc,
|
||||
dlsch_harq->Qm,
|
||||
dlsch_harq->Nl,
|
||||
num_pdcch_symbols,
|
||||
dlsch_harq->pdsch_start,
|
||||
frame,subframe,
|
||||
0),
|
||||
0,
|
||||
frame,
|
||||
subframe<<1);
|
||||
stop_meas(&eNB->dlsch_scrambling_stats);
|
||||
|
||||
@@ -889,7 +889,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
eNB->common_vars.txdataF,
|
||||
AMP,
|
||||
subframe,
|
||||
num_pdcch_symbols,
|
||||
dlsch_harq->pdsch_start,
|
||||
dlsch,
|
||||
dlsch1);
|
||||
|
||||
@@ -991,6 +991,9 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
|
||||
uint8_t *sdu) {
|
||||
|
||||
nfapi_dl_config_dlsch_pdu_rel8_t *rel8 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8;
|
||||
#ifndef Rel8
|
||||
nfapi_dl_config_dlsch_pdu_rel10_t *rel10 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10;
|
||||
#endif
|
||||
#ifdef Rel14
|
||||
nfapi_dl_config_dlsch_pdu_rel13_t *rel13 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13;
|
||||
#endif
|
||||
@@ -1017,6 +1020,12 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
|
||||
dlsch1_harq = dlsch1->harq_processes[harq_pid];
|
||||
AssertFatal(dlsch0_harq!=NULL,"dlsch_harq is null\n");
|
||||
|
||||
|
||||
dlsch0_harq->pdsch_start = eNB->pdcch_vars[proc->subframe_tx & 1].num_pdcch_symbols;
|
||||
|
||||
|
||||
|
||||
|
||||
LOG_D(PHY,"NFAPI: frame %d, subframe %d: programming dlsch, rnti %x, UE_id %d, harq_pid %d\n",
|
||||
proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid);
|
||||
if (codeword_index == 0) dlsch0_harq->pdu = sdu;
|
||||
@@ -1025,10 +1034,12 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
|
||||
#ifdef Rel14
|
||||
dlsch0->sib1_br_flag=0;
|
||||
if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR
|
||||
dlsch0->rnti = 0xFFFF;
|
||||
dlsch0->Kmimo = 1;
|
||||
dlsch0->Mdlharq = 4;
|
||||
dlsch0->Nsoft = 25344;
|
||||
dlsch0->rnti = 0xFFFF;
|
||||
dlsch0->Kmimo = 1;
|
||||
dlsch0->Mdlharq = 4;
|
||||
dlsch0->Nsoft = 25344;
|
||||
dlsch0->i0 = rel13->initial_transmission_sf_io;
|
||||
dlsch0_harq->pdsch_start = rel10->pdsch_start;
|
||||
|
||||
if (rel13->pdsch_payload_type == 0) dlsch0->sib1_br_flag=1;
|
||||
|
||||
@@ -1470,13 +1481,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
dlsch0,
|
||||
dlsch1,
|
||||
&eNB->UE_stats[(uint32_t)UE_id],
|
||||
0,
|
||||
#ifdef Rel14
|
||||
dlsch0->sib1_br_flag==0 ? num_pdcch_symbols : 3
|
||||
#else
|
||||
num_pdcch_symbols
|
||||
#endif
|
||||
);
|
||||
0);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -310,7 +310,10 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1;
|
||||
// dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ;
|
||||
|
||||
|
||||
// Rel10 fields
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13;
|
||||
// Rel13 fields
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10*frameP)+subframeP;
|
||||
@@ -658,6 +661,8 @@ void generate_Msg4(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1;
|
||||
// dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ;
|
||||
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13;
|
||||
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message
|
||||
|
||||
@@ -196,7 +196,7 @@ schedule_SIB1_BR(
|
||||
|
||||
AssertFatal(bcch_sdu_length <= TBS, "length returned by RRC %d is not compatible with the TBS %d from MIB\n",bcch_sdu_length,TBS);
|
||||
|
||||
if ((frameP&1023) < 200) LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx);
|
||||
if ((frameP&1023) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx);
|
||||
|
||||
// allocate all 6 PRBs in narrowband for SIB1_BR
|
||||
|
||||
@@ -235,6 +235,8 @@ schedule_SIB1_BR(
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1;
|
||||
// Rel10 fields
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = 3;
|
||||
// Rel13 fields
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 1; // CEModeA UE
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 0; // SIB1-BR
|
||||
@@ -311,7 +313,7 @@ schedule_SI_BR(
|
||||
nfapi_dl_config_request_body_t *dl_req;
|
||||
int i;
|
||||
int rvidx;
|
||||
|
||||
int absSF = (frameP*10)+subframeP;
|
||||
|
||||
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
@@ -362,7 +364,7 @@ schedule_SI_BR(
|
||||
|
||||
// check if the SI is to be scheduled now
|
||||
int period_in_sf = 80<<si_Periodicity; // 2^i * 80 subframes, note: si_Periodicity is 2^i * 80ms
|
||||
int sf_mod_period = ((frameP*10)+subframeP)%period_in_sf;
|
||||
int sf_mod_period = absSF%period_in_sf;
|
||||
int k = sf_mod_period&3;
|
||||
// Note: definition of k and rvidx from 36.321 section 5.3.1
|
||||
rvidx = (((3*k)>>1) + (k&1))&3;
|
||||
@@ -398,7 +400,7 @@ schedule_SI_BR(
|
||||
vrb_map[first_rb+4] = 1;
|
||||
vrb_map[first_rb+5] = 1;
|
||||
|
||||
if ((frameP%1000) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n",
|
||||
if ((frameP&1023) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n",
|
||||
module_idP,frameP,subframeP,CC_id,si_Narrowband_r13-1,rvidx,
|
||||
sf_mod_period,si_WindowLength_BR_r13,si_RepetitionPattern_r13,
|
||||
bcch_sdu_length);
|
||||
@@ -432,10 +434,12 @@ schedule_SI_BR(
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1;
|
||||
// Rel10 fields (for PDSCH starting symbol)
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13;
|
||||
// Rel13 fields
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 1; // CEModeA UE
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 1; // SI-BR
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF; // absolute SF
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = absSF - sf_mod_period;
|
||||
|
||||
// dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ;
|
||||
dl_req->number_pdu++;
|
||||
@@ -757,7 +761,7 @@ schedule_SI(
|
||||
|
||||
#ifdef Rel14
|
||||
schedule_SIB1_BR(module_idP,frameP,subframeP);
|
||||
// schedule_SI_BR(module_idP,frameP,subframeP);
|
||||
schedule_SI_BR(module_idP,frameP,subframeP);
|
||||
#endif
|
||||
|
||||
stop_meas(&eNB->schedule_si);
|
||||
|
||||
@@ -129,7 +129,7 @@ eNBs =
|
||||
fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern10-r13"
|
||||
fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0;
|
||||
fdd_UplinkSubframeBitmapBR_r13 = 0;
|
||||
startSymbolBR_r13 = 1;
|
||||
startSymbolBR_r13 = 3;
|
||||
si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF !
|
||||
si_ValidityTime_r13 = 0;
|
||||
system_info_value_tag_SI =
|
||||
|
||||
Reference in New Issue
Block a user