Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
32201bf3
Commit
32201bf3
authored
Aug 15, 2017
by
islam.galal
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit before merge from repository
parent
4a067bd1
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
93 additions
and
37 deletions
+93
-37
openair1/PHY/LTE_TRANSPORT/defs.h
openair1/PHY/LTE_TRANSPORT/defs.h
+16
-3
openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
+32
-5
openair1/PHY/LTE_TRANSPORT/pmch.c
openair1/PHY/LTE_TRANSPORT/pmch.c
+2
-1
openair1/PHY/LTE_TRANSPORT/proto.h
openair1/PHY/LTE_TRANSPORT/proto.h
+1
-0
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+25
-20
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+6
-1
openair2/LAYER2/MAC/eNB_scheduler_bch.c
openair2/LAYER2/MAC/eNB_scheduler_bch.c
+10
-6
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf
...JECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf
+1
-1
No files found.
openair1/PHY/LTE_TRANSPORT/defs.h
View file @
32201bf3
...
...
@@ -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
;
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c
View file @
32201bf3
...
...
@@ -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
]);
...
...
openair1/PHY/LTE_TRANSPORT/pmch.c
View file @
32201bf3
...
...
@@ -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
,
...
...
openair1/PHY/LTE_TRANSPORT/proto.h
View file @
32201bf3
...
...
@@ -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
,
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
32201bf3
...
...
@@ -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
);
}
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
32201bf3
...
...
@@ -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
...
...
openair2/LAYER2/MAC/eNB_scheduler_bch.c
View file @
32201bf3
...
...
@@ -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
);
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf
View file @
32201bf3
...
...
@@ -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
=
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment