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
zzha zzha
OpenXG-RAN
Commits
58f62a41
Commit
58f62a41
authored
Jan 08, 2020
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/nr_fix_easycppcheck' into integration-develop-nr-2020w02
parents
cfc73e98
aaaa6d5c
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
394 additions
and
373 deletions
+394
-373
executables/nr-ru.c
executables/nr-ru.c
+2
-4
openair1/PHY/CODING/TESTBENCH/ldpctest.c
openair1/PHY/CODING/TESTBENCH/ldpctest.c
+1
-0
openair1/PHY/CODING/TESTBENCH/polartest.c
openair1/PHY/CODING/TESTBENCH/polartest.c
+4
-2
openair1/PHY/CODING/nrLDPC_encoder/ldpc_generate_coefficient.c
...ir1/PHY/CODING/nrLDPC_encoder/ldpc_generate_coefficient.c
+2
-1
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
+2
-0
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c
+1
-1
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+10
-6
openair1/PHY/NR_TRANSPORT/nr_dlsch.h
openair1/PHY/NR_TRANSPORT/nr_dlsch.h
+1
-1
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+7
-6
openair1/PHY/NR_UE_TRANSPORT/cic_filter_nr.c
openair1/PHY/NR_UE_TRANSPORT/cic_filter_nr.c
+1
-0
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+11
-10
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+17
-16
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+4
-3
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
+23
-17
openair1/PHY/TOOLS/nr_phy_scope.c
openair1/PHY/TOOLS/nr_phy_scope.c
+6
-6
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+3
-1
openair1/SIMULATION/NR_PHY/dlschsim.c
openair1/SIMULATION/NR_PHY/dlschsim.c
+1
-1
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+100
-99
openair2/ENB_APP/enb_paramdef.h
openair2/ENB_APP/enb_paramdef.h
+110
-110
openair2/ENB_APP/enb_paramdef_emtc.h
openair2/ENB_APP/enb_paramdef_emtc.h
+81
-81
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+5
-6
targets/RT/USER/lte-hwlat2.c
targets/RT/USER/lte-hwlat2.c
+1
-1
No files found.
executables/nr-ru.c
View file @
58f62a41
...
...
@@ -806,7 +806,6 @@ static void *ru_thread_asynch_rxtx( void *param ) {
printf
(
"devices ok (ru_thread_asynch_rx)
\n
"
);
while
(
!
oai_exit
)
{
if
(
oai_exit
)
break
;
if
(
subframe
==
9
)
{
subframe
=
0
;
...
...
@@ -854,7 +853,7 @@ static void *ru_thread_prach( void *param ) {
LOG_I
(
PHY
,
"%s() RU configured - RACH processing thread running
\n
"
,
__FUNCTION__
);
while
(
!
oai_exit
)
{
if
(
oai_exit
)
break
;
if
(
wait_on_condition
(
&
proc
->
mutex_prach
,
&
proc
->
cond_prach
,
&
proc
->
instance_cnt_prach
,
"ru_prach_thread"
)
<
0
)
break
;
...
...
@@ -1159,7 +1158,7 @@ int setup_RU_buffers(RU_t *ru) {
frame_parms
=
ru
->
nr_frame_parms
;
printf
(
"setup_RU_buffers: frame_parms = %p
\n
"
,
frame_parms
);
}
else
{
printf
(
"
RU[%d] not initialized
\n
"
,
ru
->
idx
);
printf
(
"
ru pointer is NULL
\n
"
);
return
(
-
1
);
}
...
...
@@ -1259,7 +1258,6 @@ static void *ru_thread_tx( void *param ) {
}
while
(
!
oai_exit
)
{
if
(
oai_exit
)
break
;
LOG_D
(
PHY
,
"ru_thread_tx: Waiting for TX processing
\n
"
);
// wait until eNBs are finished subframe RX n and TX n+4
...
...
openair1/PHY/CODING/TESTBENCH/ldpctest.c
View file @
58f62a41
...
...
@@ -317,6 +317,7 @@ int test_ldpc(short No_iteration,
for
(
i
=
0
;
i
<
block_length
+
(
nrows
-
no_punctured_columns
)
*
Zc
-
removed_bit
;
i
++
)
if
(
channel_input
[
j
][
i
]
!=
channel_input_optim
[
j
][
i
])
{
printf
(
"differ in seg %u pos %u (%u,%u)
\n
"
,
j
,
i
,
channel_input
[
j
][
i
],
channel_input_optim
[
j
][
i
]);
free
(
channel_output
);
return
(
-
1
);
}
//else{
...
...
openair1/PHY/CODING/TESTBENCH/polartest.c
View file @
58f62a41
...
...
@@ -215,6 +215,8 @@ if (logFlag){
free
(
encoder_outputByte
);
free
(
channel_output
);
free
(
modulated_input
);
if
(
logFlag
)
fclose
(
logFile
);
return
0
;
#endif
...
...
@@ -317,13 +319,13 @@ if (logFlag){
if
(
nBitError
>
0
)
blockErrorState
=
1
;
#ifdef DEBUG_POLARTEST
for
(
int
i
=
0
;
i
<
testArrayLength
;
i
++
)
printf
(
"[polartest/decoderState=%
d
] testInput[%d]=0x%08x, estimatedOutput[%d]=0x%08x
\n
"
,
decoderState
,
i
,
testInput
[
i
],
i
,
estimatedOutput
[
i
]);
printf
(
"[polartest/decoderState=%
u
] testInput[%d]=0x%08x, estimatedOutput[%d]=0x%08x
\n
"
,
decoderState
,
i
,
testInput
[
i
],
i
,
estimatedOutput
[
i
]);
#endif
//Iteration times are in microseconds.
timeEncoderCumulative
+=
(
timeEncoder
.
diff
/
(
cpu_freq_GHz
*
1000
.
0
));
timeDecoderCumulative
+=
(
timeDecoder
.
diff
/
(
cpu_freq_GHz
*
1000
.
0
));
if
(
logFlag
)
fprintf
(
logFile
,
",%f,%d,%
d
,%f,%f
\n
"
,
SNR
,
nBitError
,
blockErrorState
,
(
timeEncoder
.
diff
/
(
cpu_freq_GHz
*
1000
.
0
)),
(
timeDecoder
.
diff
/
(
cpu_freq_GHz
*
1000
.
0
)));
if
(
logFlag
)
fprintf
(
logFile
,
",%f,%d,%
u
,%f,%f
\n
"
,
SNR
,
nBitError
,
blockErrorState
,
(
timeEncoder
.
diff
/
(
cpu_freq_GHz
*
1000
.
0
)),
(
timeDecoder
.
diff
/
(
cpu_freq_GHz
*
1000
.
0
)));
if
(
nBitError
<
0
)
{
blockErrorCumulative
++
;
...
...
openair1/PHY/CODING/nrLDPC_encoder/ldpc_generate_coefficient.c
View file @
58f62a41
...
...
@@ -494,7 +494,8 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,int
fprintf
(
fd
,
" int i2;
\n
"
);
fprintf
(
fd2
,
" int i2;
\n
"
);
fprintf
(
fd
,
" for (i2=0; i2<%d; i2++) {
\n
"
,
Zc
>>
shift
);
fprintf
(
fd2
,
" for (i2=0; i2<%d; i2++) {
\n
"
,
Zc
>>
(
shift
-
1
));
if
(
shift
>
0
)
fprintf
(
fd2
,
" for (i2=0; i2<%d; i2++) {
\n
"
,
Zc
>>
(
shift
-
1
));
for
(
i2
=
0
;
i2
<
1
;
i2
++
)
{
//t=Kb*Zc+i2;
...
...
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
View file @
58f62a41
...
...
@@ -252,6 +252,7 @@ int8_t polar_decoder(double *input,
nr_free_uint8_3D_array
(
bit
,
polarParams
->
N
,
(
polarParams
->
n
+
1
));
nr_free_double_3D_array
(
llr
,
polarParams
->
N
,
(
polarParams
->
n
+
1
));
nr_free_uint8_2D_array
(
crcChecksum
,
polarParams
->
crcParityBits
);
free
(
tempECGM
);
return
(
-
1
);
}
...
...
@@ -522,6 +523,7 @@ int8_t polar_decoder_dci(double *input,
nr_free_uint8_3D_array
(
bit
,
polarParams
->
N
,
(
polarParams
->
n
+
1
));
nr_free_double_3D_array
(
llr
,
polarParams
->
N
,
(
polarParams
->
n
+
1
));
nr_free_uint8_2D_array
(
crcChecksum
,
polarParams
->
crcParityBits
);
free
(
tempECGM
);
return
(
-
1
);
}
...
...
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c
View file @
58f62a41
...
...
@@ -470,7 +470,7 @@ void computeBeta(const t_nrPolar_params *pp,decoder_node_t *node) {
int
ssr4len
=
node
->
Nv
/
2
/
8
;
register
__m128i
allones
=*
((
__m128i
*
)
all1
);
for
(
int
i
=
0
;
i
<
sse4len
;
i
++
)
{
((
__m256i
*
)
betav
)[
i
]
=
_mm_or_si128
(
_mm_cmpeq_epi16
(((
__m128i
*
)
betar
)[
i
],
((
__m128i
*
)
betal
)[
i
]),
allones
)
)
;
((
__m256i
*
)
betav
)[
i
]
=
_mm_or_si128
(
_mm_cmpeq_epi16
(((
__m128i
*
)
betar
)[
i
],
((
__m128i
*
)
betal
)[
i
]),
allones
);
}
}
else
if
(
sse4mod
==
4
)
{
...
...
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
View file @
58f62a41
...
...
@@ -103,7 +103,11 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
break
;
default:
printf
(
"pusch_channel_estimation: nushift=%d -> ERROR
\n
"
,
nushift
);
#ifdef DEBUG_CH
if
(
debug_ch_est
)
fclose
(
debug_ch_est
);
#endif
return
(
-
1
);
break
;
}
...
...
@@ -193,7 +197,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
ch
[
0
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
ch
[
1
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
#ifdef DEBUG_CH
fprintf
(
debug_ch_est
,
"pilot %
d
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
fprintf
(
debug_ch_est
,
"pilot %
u
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
//printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
#endif
multadd_real_vector_complex_scalar
(
fm
,
...
...
@@ -208,7 +212,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
ch
[
0
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
ch
[
1
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
#ifdef DEBUG_PUSCH
printf
(
"pilot %d
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
+
1
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
printf
(
"pilot %u
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
+
1
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
#endif
multadd_real_vector_complex_scalar
(
fmm
,
ch
,
...
...
@@ -225,7 +229,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
ch
[
0
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
ch
[
1
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
#ifdef DEBUG_PUSCH
printf
(
"pilot %d
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
printf
(
"pilot %u
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
#endif
multadd_real_vector_complex_scalar
(
fm
,
ch
,
...
...
@@ -243,7 +247,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
ch
[
1
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
#ifdef DEBUG_PUSCH
printf
(
"ch 0 %d
\n
"
,((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
]));
printf
(
"pilot %
d
: rxF - > (%d,%d) addr %p ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
+
1
,
rxF
[
0
],
rxF
[
1
],
&
rxF
[
0
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
printf
(
"pilot %
u
: rxF - > (%d,%d) addr %p ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
+
1
,
rxF
[
0
],
rxF
[
1
],
&
rxF
[
0
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
#endif
multadd_real_vector_complex_scalar
(
fmr
,
ch
,
...
...
@@ -258,7 +262,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
ch
[
0
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
0
]
-
(
int32_t
)
pil
[
1
]
*
rxF
[
1
])
>>
15
);
ch
[
1
]
=
(
int16_t
)(((
int32_t
)
pil
[
0
]
*
rxF
[
1
]
+
(
int32_t
)
pil
[
1
]
*
rxF
[
0
])
>>
15
);
#ifdef DEBUG_PUSCH
printf
(
"pilot %
d
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
+
2
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
printf
(
"pilot %
u
: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d)
\n
"
,
pilot_cnt
+
2
,
rxF
[
0
],
rxF
[
1
],
ch
[
0
],
ch
[
1
],
pil
[
0
],
pil
[
1
]);
#endif
multadd_real_vector_complex_scalar
(
fr
,
ch
,
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch.h
View file @
58f62a41
...
...
@@ -80,7 +80,7 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t *dlsch,
time_stats_t
*
dlsch_modulation_stats
);
void
free_gNB_dlsch
(
NR_gNB_DLSCH_t
*
dlsch
);
void
free_gNB_dlsch
(
NR_gNB_DLSCH_t
*
*
dlschptr
);
void
clean_gNB_dlsch
(
NR_gNB_DLSCH_t
*
dlsch
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
58f62a41
...
...
@@ -48,11 +48,12 @@
//#define DEBUG_DLSCH_CODING
//#define DEBUG_DLSCH_FREE 1
void
free_gNB_dlsch
(
NR_gNB_DLSCH_t
*
dlsch
)
void
free_gNB_dlsch
(
NR_gNB_DLSCH_t
*
*
dlschptr
)
{
int
i
;
int
r
;
NR_gNB_DLSCH_t
*
dlsch
=
*
dlschptr
;
if
(
dlsch
)
{
#ifdef DEBUG_DLSCH_FREE
printf
(
"Freeing dlsch %p
\n
"
,
dlsch
);
...
...
@@ -232,7 +233,7 @@ NR_gNB_DLSCH_t *new_gNB_dlsch(unsigned char Kmimo,
LOG_D
(
PHY
,
"new_gNB_dlsch exit flag %d, size of %ld
\n
"
,
exit_flag
,
sizeof
(
NR_gNB_DLSCH_t
));
free_gNB_dlsch
(
dlsch
);
free_gNB_dlsch
(
&
dlsch
);
return
(
NULL
);
...
...
@@ -278,7 +279,7 @@ int nr_dlsch_encoding(unsigned char *a,
unsigned
int
G
;
unsigned
int
crc
=
1
;
uint8_t
harq_pid
=
dlsch
->
harq_ids
[
frame
%
2
][
slot
];
uint8_t
harq_pid
=
dlsch
->
harq_ids
[
frame
&
2
][
slot
];
AssertFatal
(
harq_pid
<
8
&&
harq_pid
>=
0
,
"illegal harq_pid %d
\b
"
,
harq_pid
);
nfapi_nr_dl_config_dlsch_pdu_rel15_t
rel15
=
dlsch
->
harq_processes
[
harq_pid
]
->
dlsch_pdu
.
dlsch_pdu_rel15
;
uint16_t
nb_rb
=
rel15
.
n_prb
;
...
...
@@ -458,7 +459,7 @@ int nr_dlsch_encoding(unsigned char *a,
#ifdef DEBUG_DLSCH_CODING
for
(
int
i
=
0
;
i
<
16
;
i
++
)
printf
(
"output ratematching e[%d]= %d r_offset %
d
\n
"
,
i
,
dlsch
->
harq_processes
[
harq_pid
]
->
e
[
i
+
r_offset
],
r_offset
);
printf
(
"output ratematching e[%d]= %d r_offset %
u
\n
"
,
i
,
dlsch
->
harq_processes
[
harq_pid
]
->
e
[
i
+
r_offset
],
r_offset
);
#endif
nr_interleaving_ldpc
(
E
,
...
...
@@ -469,7 +470,7 @@ int nr_dlsch_encoding(unsigned char *a,
#ifdef DEBUG_DLSCH_CODING
for
(
int
i
=
0
;
i
<
16
;
i
++
)
printf
(
"output interleaving f[%d]= %d r_offset %
d
\n
"
,
i
,
dlsch
->
harq_processes
[
harq_pid
]
->
f
[
i
+
r_offset
],
r_offset
);
printf
(
"output interleaving f[%d]= %d r_offset %
u
\n
"
,
i
,
dlsch
->
harq_processes
[
harq_pid
]
->
f
[
i
+
r_offset
],
r_offset
);
if
(
r
==
dlsch
->
harq_processes
[
harq_pid
]
->
C
-
1
)
write_output
(
"enc_output.m"
,
"enc"
,
dlsch
->
harq_processes
[
harq_pid
]
->
f
,
G
,
1
,
4
);
...
...
openair1/PHY/NR_UE_TRANSPORT/cic_filter_nr.c
View file @
58f62a41
...
...
@@ -438,6 +438,7 @@ void cic_decimator(int16_t *input_buffer, int16_t *output_buffer, int length, in
fir_filter_basic
(
input
,
output
,
new_length
,
FIR_TAPS_NUMBER
,
filter_taps
,
SHARPENED_FIR_SCALING_ACC
);
#endif
free
(
filter_taps_fixed_point
);
}
else
{
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
58f62a41
...
...
@@ -253,6 +253,7 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext,
avg128P
=
_mm_setzero_si128
();
dl_ch128
=
(
__m128i
*
)
&
dl_ch_estimates_ext
[
aarx
][
0
];
#elif defined(__arm__)
dl_ch128
=
(
int16x8_t
*
)
&
dl_ch_estimates_ext
[
aarx
][
0
];
#endif
for
(
rb
=
0
;
rb
<
(
nb_rb
*
3
)
>>
2
;
rb
++
)
{
...
...
@@ -375,7 +376,7 @@ void nr_pdcch_extract_rbs_single(int32_t **rxdataF,
* then the IQ symbol is going to be found at the position 0+c_rb-N_RB_DL/2 in rxdataF and
* we have to point the pointer at (1+c_rb-N_RB_DL/2) in rxdataF
*/
LOG_DDD
(
"n_BWP_start=%
d, coreset_nbr_rb=%d
\n
"
,
n_BWP_start
,
coreset_nbr_rb
);
LOG_DDD
(
"n_BWP_start=%
u, coreset_nbr_rb=%u
\n
"
,
n_BWP_start
,
coreset_nbr_rb
);
for
(
c_rb
=
n_BWP_start
;
c_rb
<
(
n_BWP_start
+
coreset_nbr_rb
+
(
BIT_TO_NBR_RB_CORESET_FREQ_DOMAIN
*
offset_discontiguous
));
c_rb
++
)
{
//c_rb_tmp = 0;
...
...
@@ -762,8 +763,8 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
}
}
LOG_DD
(
"symbol_mon=(%
d) and start_symbol=(%d
)
\n
"
,
symbol_mon
,
start_symbol
);
LOG_DD
(
"coreset_freq_dom=(%l
d) n_rb_offset=(%d
) coreset_time_dur=(%d) n_shift=(%d) reg_bundle_size_L=(%d) coreset_interleaver_size_R=(%d) scrambling_ID=(%d)
\n
"
,
LOG_DD
(
"symbol_mon=(%
u) and start_symbol=(%u
)
\n
"
,
symbol_mon
,
start_symbol
);
LOG_DD
(
"coreset_freq_dom=(%l
u) n_rb_offset=(%u
) coreset_time_dur=(%d) n_shift=(%d) reg_bundle_size_L=(%d) coreset_interleaver_size_R=(%d) scrambling_ID=(%d)
\n
"
,
coreset_freq_dom
,
n_rb_offset
,
coreset_time_dur
,
n_shift
,
reg_bundle_size_L
,
coreset_interleaver_size_R
,
pdcch_DMRS_scrambling_id
);
//
// according to 38.213 v15.1.0: a PDCCH monitoring pattern within a slot,
...
...
@@ -780,7 +781,7 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
// for (int j=0; j < coreset_nbr_act; j++) {
// for each active CORESET (max number of active CORESETs in a BWP is 3),
// we calculate the number of RB for each CORESET bitmap
LOG_DD
(
"coreset_freq_dom=(%l
d
)
\n
"
,
coreset_freq_dom
);
LOG_DD
(
"coreset_freq_dom=(%l
u
)
\n
"
,
coreset_freq_dom
);
int
i
;
//for each bit in the coreset_freq_dom bitmap
for
(
i
=
0
;
i
<
45
;
i
++
)
{
...
...
@@ -789,8 +790,8 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
}
coreset_nbr_rb
=
6
*
coreset_nbr_rb
;
// coreset_nbr_rb has to be multiplied by 6 to indicate the number of PRB or REG(=12 RE) within the CORESET
LOG_DD
(
"coreset_freq_dom=(%l
d,%lx), coreset_nbr_rb=%d
\n
"
,
coreset_freq_dom
,
coreset_freq_dom
,
coreset_nbr_rb
);
LOG_DD
(
"coreset_nbr_rb=%
d, coreset_nbr_reg=%d, coreset_C=(%d/(%d*%d))=%d
\n
"
,
LOG_DD
(
"coreset_freq_dom=(%l
u,%lx), coreset_nbr_rb=%u
\n
"
,
coreset_freq_dom
,
coreset_freq_dom
,
coreset_nbr_rb
);
LOG_DD
(
"coreset_nbr_rb=%
u, coreset_nbr_reg=%u, coreset_C=(%u/(%d*%d))=%u
\n
"
,
coreset_nbr_rb
,
coreset_time_dur
*
coreset_nbr_rb
,
coreset_time_dur
*
coreset_nbr_rb
,
...
...
@@ -1163,9 +1164,9 @@ void nr_dci_decoding_procedure0(int s,
LOG_DDD
(
"debug1(%d)=nCCE[p]/L2 | nCCE[%d](%d) | L2(%d)
\n
"
,
nCCE
[
p
]
/
L2
,
p
,
nCCE
[
p
],
L2
);
LOG_DDD
(
"debug2(%d)=L2*m_p_s_L_max | L2(%d) | m_p_s_L_max(%d)
\n
"
,
L2
*
m_p_s_L_max
,
L2
,
m_p_s_L_max
);
CCEind
=
(((
Yk
+
(
uint16_t
)(
floor
((
m
*
nCCE
[
p
])
/
(
L2
*
m_p_s_L_max
)))
+
n_ci
)
%
(
uint16_t
)(
floor
(
nCCE
[
p
]
/
L2
)))
*
L2
);
LOG_DDD
(
"CCEind(%
d) = (((Yk(%u) + ((m(%u)*nCCE[p](%d
))/(L2(%d)*m_p_s_L_max(%d)))) %% (nCCE[p] / L2)) * L2)
\n
"
,
LOG_DDD
(
"CCEind(%
u) = (((Yk(%u) + ((m(%u)*nCCE[p](%u
))/(L2(%d)*m_p_s_L_max(%d)))) %% (nCCE[p] / L2)) * L2)
\n
"
,
CCEind
,
Yk
,
m
,
nCCE
[
p
],
L2
,
m_p_s_L_max
);
LOG_DDD
(
"n_candidate(m)=%u | CCEind=%
d
|"
,
m
,
CCEind
);
LOG_DDD
(
"n_candidate(m)=%u | CCEind=%
u
|"
,
m
,
CCEind
);
if
(
CCEind
<
32
)
CCEmap
=
CCEmap0
;
...
...
@@ -1173,7 +1174,7 @@ void nr_dci_decoding_procedure0(int s,
CCEmap
=
CCEmap1
;
else
if
(
CCEind
<
96
)
CCEmap
=
CCEmap2
;
else
AssertFatal
(
1
==
0
,
"Illegal CCEind %
d (Yk %u, m %u, nCCE %d, L2 %d
\n
"
,
CCEind
,
Yk
,
m
,
nCCE
[
p
],
L2
);
else
AssertFatal
(
1
==
0
,
"Illegal CCEind %
u (Yk %u, m %u, nCCE %u, L2 %u
\n
"
,
CCEind
,
Yk
,
m
,
nCCE
[
p
],
L2
);
switch
(
L2
)
{
case
1
:
...
...
@@ -1220,7 +1221,7 @@ void nr_dci_decoding_procedure0(int s,
LOG_DDD
(
"... we enter function dci_decoding(sizeof_bits=%d L=%d) -----
\n
"
,
sizeof_bits
,
L
);
LOG_DDD
(
"... we have to replace this part of the code by polar decoding
\n
"
);
// for (int m=0; m < (nCCE[p]*6*9*2); m++)
LOG_DDD
(
"(polar decoding)-> polar intput (with coreset_time_dur=%d, coreset_nbr_rb=%d, p=%d, CCEind=%
d
):
\n
"
,
LOG_DDD
(
"(polar decoding)-> polar intput (with coreset_time_dur=%d, coreset_nbr_rb=%d, p=%d, CCEind=%
u
):
\n
"
,
coreset_time_dur
,
coreset_nbr_rb
,
p
,
CCEind
);
/*
int reg_p=0,reg_e=0;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
58f62a41
...
...
@@ -380,10 +380,10 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
]);
#if DISABLE_LOG_X
printf
(
"[AbsSFN %
d
.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f
\n
"
,
printf
(
"[AbsSFN %
u
.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
high_speed_flag
,
type
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
"[AbsSFN %
d
.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f
\n
"
,
LOG_I
(
PHY
,
"[AbsSFN %
u
.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
high_speed_flag
,
type
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
#endif
...
...
@@ -404,9 +404,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
]);
#if DISABLE_LOG_X
printf
(
"[AbsSFN %
d
.%d] Slot%d Symbol %d: Channel Scale %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
printf
(
"[AbsSFN %
u
.%d] Slot%d Symbol %d: Channel Scale %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
"[AbsSFN %
d
.%d] Slot%d Symbol %d: Channel Scale %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
LOG_I
(
PHY
,
"[AbsSFN %
u
.%d] Slot%d Symbol %d: Channel Scale %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
#endif
...
...
@@ -483,9 +483,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
]);
#if DISABLE_LOG_X
printf
(
"[AbsSFN %
d
.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
first_symbol_flag
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
printf
(
"[AbsSFN %
u
.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
first_symbol_flag
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
"[AbsSFN %
d
.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
first_symbol_flag
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
LOG_I
(
PHY
,
"[AbsSFN %
u
.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
first_symbol_flag
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
#endif
...
...
@@ -596,9 +596,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
]);
#if DISABLE_LOG_X
printf
(
"[AbsSFN %
d
.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
pdsch_vars
[
eNB_id
]
->
log2_maxh
,
proc
->
channel_level
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
printf
(
"[AbsSFN %
u
.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
pdsch_vars
[
eNB_id
]
->
log2_maxh
,
proc
->
channel_level
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
"[AbsSFN %
d
.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
pdsch_vars
[
eNB_id
]
->
log2_maxh
,
proc
->
channel_level
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
LOG_I
(
PHY
,
"[AbsSFN %
u
.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
pdsch_vars
[
eNB_id
]
->
log2_maxh
,
proc
->
channel_level
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
#endif
// MRC
...
...
@@ -641,9 +641,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
]);
#if DISABLE_LOG_X
printf
(
"[AbsSFN %
d
.%d] Slot%d Symbol %d: Channel Combine %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
printf
(
"[AbsSFN %
u
.%d] Slot%d Symbol %d: Channel Combine %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
"[AbsSFN %
d
.%d] Slot%d Symbol %d: Channel Combine %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
LOG_I
(
PHY
,
"[AbsSFN %
u
.%d] Slot%d Symbol %d: Channel Combine %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
#endif
...
...
@@ -1018,9 +1018,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
]);
#if DISABLE_LOG_X
printf
(
"[AbsSFN %
d
.%d] Slot%d Symbol %d: LLR Computation %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
printf
(
"[AbsSFN %
u
.%d] Slot%d Symbol %d: LLR Computation %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
"[AbsSFN %
d
.%d] Slot%d Symbol %d: LLR Computation %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
LOG_I
(
PHY
,
"[AbsSFN %
u
.%d] Slot%d Symbol %d: LLR Computation %5.2f
\n
"
,
frame
,
nr_tti_rx
,
slot
,
symbol
,
ue
->
generic_stat_bis
[
ue
->
current_thread_id
[
nr_tti_rx
]][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
#endif
// Please keep it: useful for debugging
...
...
@@ -1091,7 +1091,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol,
uint32_t
*
bundle_deint
=
malloc
(
N_bundle
*
sizeof
(
uint32_t
));
printf
(
"N_bundle %
d
L %d nb_rb_pdsch %d
\n
"
,
N_bundle
,
L
,
nb_rb_pdsch
);
printf
(
"N_bundle %
u
L %d nb_rb_pdsch %d
\n
"
,
N_bundle
,
L
,
nb_rb_pdsch
);
if
(
symbol
==
start_symbol
)
nb_re
=
6
;
...
...
@@ -1117,6 +1117,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol,
//printf("k %d m %d bundle_deint %d llr_deint %d\n", k, m, bundle_deint[k], llr_deint[bundle_deint[k]*nb_re*L+m]);
}
}
free
(
bundle_deint
);
}
//==============================================================================================
...
...
@@ -2455,7 +2456,7 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF,
int
prb
,
nb_rb
=
0
;
unsigned
short
k
;
int
i
,
j
,
aarx
;
int32_t
*
dl_ch0
=
NULL
,
*
dl_ch0
p
=
NULL
,
*
dl_ch0_ext
=
NULL
,
*
dl_ch1
=
NULL
,
*
dl_ch1p
=
NULL
,
*
dl_ch1_ext
=
NULL
,
*
rxF
=
NULL
,
*
rxF_ext
=
NULL
;
int32_t
*
dl_ch0
=
NULL
,
*
dl_ch0
_ext
=
NULL
,
*
dl_ch1
=
NULL
,
*
dl_ch1_ext
=
NULL
,
*
rxF
=
NULL
,
*
rxF_ext
=
NULL
;
k
=
frame_parms
->
first_carrier_offset
+
516
;
//0
...
...
@@ -2511,8 +2512,8 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF,
if
((
i
&
1
)
!=
frame_parms
->
nushift
)
{
rxF_ext
[
j
]
=
rxF
[
i
];
// printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
dl_ch0_ext
[
j
]
=
dl_ch0
p
[
i
];
dl_ch1_ext
[
j
++
]
=
dl_ch1
p
[
i
];
dl_ch0_ext
[
j
]
=
dl_ch0
[
i
];
dl_ch1_ext
[
j
++
]
=
dl_ch1
[
i
];
}
}
dl_ch0_ext
+=
6
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
58f62a41
...
...
@@ -61,7 +61,7 @@ void free_nr_ue_dlsch(NR_UE_DLSCH_t **dlsch);
NR_UE_DLSCH_t
*
new_nr_ue_dlsch
(
uint8_t
Kmimo
,
uint8_t
Mdlharq
,
uint32_t
Nsoft
,
uint8_t
max_turbo_iterations
,
uint8_t
N_RB_DL
,
uint8_t
abstraction_flag
);
void
free_nr_ue_ulsch
(
NR_UE_ULSCH_t
*
ulsch
);
void
free_nr_ue_ulsch
(
NR_UE_ULSCH_t
*
*
ulsch
);
NR_UE_ULSCH_t
*
new_nr_ue_ulsch
(
unsigned
char
N_RB_UL
,
int
number_of_harq_pids
,
uint8_t
abstraction_flag
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
View file @
58f62a41
...
...
@@ -42,9 +42,10 @@
void
free_nr_ue_ulsch
(
NR_UE_ULSCH_t
*
ulsch
)
void
free_nr_ue_ulsch
(
NR_UE_ULSCH_t
*
*
ulschptr
)
{
int
i
,
r
;
NR_UE_ULSCH_t
*
ulsch
=
*
ulschptr
;
if
(
ulsch
)
{
#ifdef DEBUG_ULSCH_FREE
...
...
@@ -80,7 +81,7 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t *ulsch)
}
}
free16
(
ulsch
,
sizeof
(
NR_UE_ULSCH_t
));
ulsch
=
NULL
;
*
ulschptr
=
NULL
;
}
}
...
...
@@ -179,7 +180,7 @@ NR_UE_ULSCH_t *new_nr_ue_ulsch(unsigned char N_RB_UL,
}
LOG_E
(
PHY
,
"new_ue_ulsch exit flag, size of %d , %zu
\n
"
,
exit_flag
,
sizeof
(
LTE_UE_ULSCH_t
));
free_nr_ue_ulsch
(
ulsch
);
free_nr_ue_ulsch
(
&
ulsch
);
return
(
NULL
);
...
...
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
View file @
58f62a41
...
...
@@ -77,7 +77,7 @@ void nr_group_sequence_hopping (pucch_GroupHopping_t PUCCH_GroupHopping,
// initialization to be removed
PUCCH_GroupHopping
=
neither
;
n_id
=
10
;
printf
(
"
\t\t
[nr_group_sequence_hopping] initialization PUCCH_GroupHopping=%
d, n_id=%d
-> variable initializations TO BE REMOVED
\n
"
,
PUCCH_GroupHopping
,
n_id
);
printf
(
"
\t\t
[nr_group_sequence_hopping] initialization PUCCH_GroupHopping=%
u, n_id=%u
-> variable initializations TO BE REMOVED
\n
"
,
PUCCH_GroupHopping
,
n_id
);
#endif
uint8_t
f_ss
=
0
,
f_gh
=
0
;
*
u
=
0
;
...
...
@@ -159,14 +159,14 @@ double nr_cyclic_shift_hopping(uint32_t n_id,
#ifdef DEBUG_NR_PUCCH_TX
// initialization to be remo.ved
c_init
=
10
;
printf
(
"
\t\t
[nr_cyclic_shift_hopping] initialization c_init=%
d
-> variable initialization TO BE REMOVED
\n
"
,
c_init
);
printf
(
"
\t\t
[nr_cyclic_shift_hopping] initialization c_init=%
u
-> variable initialization TO BE REMOVED
\n
"
,
c_init
);
#endif
uint32_t
x1
,
s
=
lte_gold_generic
(
&
x1
,
&
c_init
,
1
);
// TS 38.211 Subclause 5.2.1
uint8_t
n_cs
=
0
;
int
l
=
32
,
minShift
=
(
14
*
8
*
nr_tti_tx
)
+
8
*
(
lnormal
+
lprime
);
int
tmpShift
=
0
;
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t\t
[nr_cyclic_shift_hopping] calculating alpha (cyclic shift) using c_init=%
d
->
\n
"
,
c_init
);
printf
(
"
\t\t
[nr_cyclic_shift_hopping] calculating alpha (cyclic shift) using c_init=%
u
->
\n
"
,
c_init
);
#endif
for
(
int
m
=
0
;
m
<
8
;
m
++
)
{
...
...
@@ -306,7 +306,7 @@ void nr_generate_pucch0(PHY_VARS_NR_UE *ue,
//((int16_t *)txptr[0][re_offset])[1] = (int16_t)((int32_t)amp * x_n_im[(12*l)+n])>>15;
//txptr[re_offset] = (x_n_re[(12*l)+n]<<16) + x_n_im[(12*l)+n];
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch0] mapping to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
txptr(%
d
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch0] mapping to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
txptr(%
u
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -330,7 +330,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
uint8_t
timeDomainOCC
,
uint8_t
nr_bit
)
{
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch1] start function at slot(nr_tti_tx)=%d payload=%
d
m0=%d nrofSymbols=%d startingSymbolIndex=%d startingPRB=%d startingPRB_intraSlotHopping=%d timeDomainOCC=%d nr_bit=%d
\n
"
,
printf
(
"
\t
[nr_generate_pucch1] start function at slot(nr_tti_tx)=%d payload=%
lu
m0=%d nrofSymbols=%d startingSymbolIndex=%d startingPRB=%d startingPRB_intraSlotHopping=%d timeDomainOCC=%d nr_bit=%d
\n
"
,
nr_tti_tx
,
payload
,
m0
,
nrofSymbols
,
startingSymbolIndex
,
startingPRB
,
startingPRB_intraSlotHopping
,
timeDomainOCC
,
nr_bit
);
#endif
/*
...
...
@@ -368,7 +368,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
}
// printf("d_re=%d\td_im=%d\n",(int)d_re,(int)d_im);
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch1] sequence modulation: payload=%x
\t
de_re=%d
\t
de_im=%d
\n
"
,
payload
,
d_re
,
d_im
);
printf
(
"
\t
[nr_generate_pucch1] sequence modulation: payload=%
l
x
\t
de_re=%d
\t
de_im=%d
\n
"
,
payload
,
d_re
,
d_im
);
#endif
/*
* Defining cyclic shift hopping TS 38.211 Subclause 6.3.2.2.2
...
...
@@ -625,7 +625,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
]
=
z_re
[
i
+
n
];
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]
=
z_im
[
i
+
n
];
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch1] mapping PUCCH to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_pucch[%d]=txptr(%
d
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch1] mapping PUCCH to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_pucch[%d]=txptr(%
u
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
i
+
n
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -635,7 +635,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
]
=
z_dmrs_re
[
i
+
n
];
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]
=
z_dmrs_im
[
i
+
n
];
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch1] mapping DM-RS to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_dm-rs[%d]=txptr(%
d
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch1] mapping DM-RS to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_dm-rs[%d]=txptr(%
u
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
i
+
n
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -961,7 +961,7 @@ inline void nr_pucch2_3_4_scrambling(uint16_t M_bit,uint16_t rnti,uint16_t n_id,
x2
=
((
rnti
)
<<
15
)
+
n_id
;
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
1
);
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t\t
[nr_pucch2_3_4_scrambling] gold sequence s=%
l
x
\n
"
,
s
);
printf
(
"
\t\t
[nr_pucch2_3_4_scrambling] gold sequence s=%x
\n
"
,
s
);
#endif
for
(
i
=
0
;
i
<
M_bit
;
i
++
)
{
...
...
@@ -1094,7 +1094,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
uint16_t
startingPRB
,
uint8_t
nr_bit
)
{
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch2] start function at slot(nr_tti_tx)=%d with payload=%
d
and nr_bit=%d
\n
"
,
nr_tti_tx
,
payload
,
nr_bit
);
printf
(
"
\t
[nr_generate_pucch2] start function at slot(nr_tti_tx)=%d with payload=%
lu
and nr_bit=%d
\n
"
,
nr_tti_tx
,
payload
,
nr_bit
);
#endif
// b is the block of bits transmitted on the physical channel after payload coding
uint64_t
b
;
...
...
@@ -1170,7 +1170,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
int
m
=
0
;
for
(
int
l
=
0
;
l
<
nrofSymbols
;
l
++
)
{
x2
=
(((
1
<<
17
)
*
((
14
*
nr_tti_tx
)
+
(
l
+
startingSymbolIndex
)
+
1
)
*
((
2
*
n_id
)
+
1
))
+
(
2
*
n_id
))
%
(
1
<<
31
);
// c_init calculation according to TS38.211 subclause
x2
=
(((
1
<<
17
)
*
((
14
*
nr_tti_tx
)
+
(
l
+
startingSymbolIndex
)
+
1
)
*
((
2
*
n_id
)
+
1
))
+
(
2
*
n_id
))
%
(
1
U
<<
31
);
// c_init calculation according to TS38.211 subclause
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
1
);
m
=
0
;
...
...
@@ -1210,7 +1210,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
]
=
d_re
[
i
+
k
];
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]
=
d_im
[
i
+
k
];
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch2] (n=%d,i=%d) mapping PUCCH to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_pucch[%d]=txptr(%
d
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch2] (n=%d,i=%d) mapping PUCCH to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_pucch[%d]=txptr(%
u
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
n
,
i
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
i
+
k
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -1222,7 +1222,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]
=
(
int16_t
)((
int32_t
)(
amp
*
ONE_OVER_SQRT2
*
(
1
-
(
2
*
((
uint8_t
)((
s
>>
((
2
*
m
)
+
1
))
&
1
)))))
>>
15
);
m
++
;
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch2] (n=%d,i=%d) mapping DM-RS to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_dm-rs[%d]=txptr(%
d
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch2] (n=%d,i=%d) mapping DM-RS to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_dm-rs[%d]=txptr(%
u
)=(x_n(l=%d,n=%d)=(%d,%d))
\n
"
,
n
,
i
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
i
+
kk
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -1240,6 +1240,9 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
}
}
}
free
(
d_re
);
free
(
d_im
);
free
(
btilde
);
}
//#if 0
void
nr_generate_pucch3_4
(
PHY_VARS_NR_UE
*
ue
,
...
...
@@ -1260,7 +1263,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
uint8_t
occ_length_format4
,
uint8_t
occ_index_format4
)
{
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch3_4] start function at slot(nr_tti_tx)=%d with payload=%
d
and nr_bit=%d
\n
"
,
nr_tti_tx
,
payload
,
nr_bit
);
printf
(
"
\t
[nr_generate_pucch3_4] start function at slot(nr_tti_tx)=%d with payload=%
lu
and nr_bit=%d
\n
"
,
nr_tti_tx
,
payload
,
nr_bit
);
#endif
// b is the block of bits transmitted on the physical channel after payload coding
uint64_t
b
;
...
...
@@ -1665,7 +1668,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
}
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"re_offset=%
d
,(rb+startingPRB)=%d
\n
"
,
re_offset
,(
rb
+
startingPRB
));
printf
(
"re_offset=%
u
,(rb+startingPRB)=%d
\n
"
,
re_offset
,(
rb
+
startingPRB
));
#endif
//txptr = &txdataF[0][re_offset];
...
...
@@ -1679,7 +1682,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
]
=
z_re
[
n
+
k
];
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]
=
z_im
[
n
+
k
];
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,k=%d) mapping PUCCH to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_pucch[%d]=txptr(%
d
)=(z(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,k=%d) mapping PUCCH to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_pucch[%d]=txptr(%
u
)=(z(l=%d,n=%d)=(%d,%d))
\n
"
,
l
,
rb
,
n
,
k
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
n
+
k
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -1691,7 +1694,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]
=
(
int16_t
)((((
int32_t
)(
32767
*
cos
(
alpha
*
((
n
+
j
)
%
N_ZC
)))
*
r_u_v_base_im
[
n
+
j
])
>>
15
)
+
(((
int32_t
)(
32767
*
sin
(
alpha
*
((
n
+
j
)
%
N_ZC
)))
*
r_u_v_base_re
[
n
+
j
])
>>
15
));
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,j=%d) mapping DM-RS to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_dm-rs[%d]=txptr(%
d
)=(r_u_v(l=%d,n=%d)=(%d,%d))
\n
"
,
printf
(
"
\t
[nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,j=%d) mapping DM-RS to RE
\t
amp=%d
\t
ofdm_symbol_size=%d
\t
N_RB_DL=%d
\t
first_carrier_offset=%d
\t
z_dm-rs[%d]=txptr(%
u
)=(r_u_v(l=%d,n=%d)=(%d,%d))
\n
"
,
l
,
rb
,
n
,
j
,
amp
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
N_RB_DL
,
frame_parms
->
first_carrier_offset
,
n
+
j
,
re_offset
,
l
,
n
,((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
0
],((
int16_t
*
)
&
txdataF
[
0
][
re_offset
])[
1
]);
#endif
...
...
@@ -1705,5 +1708,8 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
if
(
table_6_4_1_3_3_2_1_dmrs_positions
[
nrofSymbols
-
4
][
l
]
==
1
)
j
+=
12
;
}
}
free
(
z_re
);
free
(
z_im
);
free
(
btilde
);
}
openair1/PHY/TOOLS/nr_phy_scope.c
View file @
58f62a41
...
...
@@ -345,9 +345,9 @@ void phy_scope_gNB(FD_phy_scope_gnb *form,
I_pucch
[
ind
]
=
(
float
)
pucch1ab_comp
[
2
*
(
ind
)];
Q_pucch
[
ind
]
=
(
float
)
pucch1ab_comp
[
2
*
(
ind
)
+
1
];
A_pucch
[
ind
]
=
10
*
log10
(
pucch1_comp
[
ind
])
;
A_pucch
[
ind
]
=
pucch1_comp
?
(
10
*
log10
(
pucch1_comp
[
ind
]))
:
0
;
B_pucch
[
ind
]
=
ind
;
C_pucch
[
ind
]
=
(
float
)
pucch1_thres
[
ind
]
;
C_pucch
[
ind
]
=
pucch1_thres
?
(
float
)
pucch1_thres
[
ind
]
:
0
;
}
fl_set_xyplot_data
(
form
->
pucch_comp
,
I_pucch
,
Q_pucch
,
10240
,
""
,
""
,
""
);
fl_set_xyplot_data
(
form
->
pucch_comp1
,
B_pucch
,
A_pucch
,
1024
,
""
,
""
,
""
);
...
...
@@ -840,7 +840,7 @@ void phy_scope_nrUE(FD_phy_scope_nrue *form,
free
(
bit
);
free
(
bit_pdcch
);
free
(
llr_pdcch
);
free
(
chest_t_abs
);
/*
free(chest_f_abs);
for (arx=0; arx<nb_antennas_rx; arx++) {
...
...
@@ -898,9 +898,9 @@ void reset_stats_gNB(FL_OBJECT *button,
static
void
*
scope_thread_gNB
(
void
*
arg
)
{
int
UE_id
,
CC_id
;
int
ue_cnt
=
0
;
# ifdef ENABLE_XFORMS_WRITE_STATS
FILE
*
gNB_stats
=
fopen
(
"gNB_stats.txt"
,
"w"
);
#endif
//
# ifdef ENABLE_XFORMS_WRITE_STATS
//
FILE *gNB_stats = fopen("gNB_stats.txt", "w");
//
#endif
while
(
!
oai_exit
)
{
ue_cnt
=
0
;
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
58f62a41
...
...
@@ -3351,10 +3351,12 @@ void nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int eNB
int
i_mod
,
eNB_id_i
,
dual_stream_UE
;
int
first_symbol_flag
=
0
;
if
(
!
dlsch0
)
return
;
if
(
dlsch0
->
active
==
0
)
return
;
if
(
dlsch0
&&
(
!
dlsch1
)
)
{
if
(
!
dlsch1
)
{
int
harq_pid
=
dlsch0
->
current_harq_pid
;
uint16_t
pdsch_start_rb
=
dlsch0
->
harq_processes
[
harq_pid
]
->
start_rb
;
uint16_t
pdsch_nb_rb
=
dlsch0
->
harq_processes
[
harq_pid
]
->
nb_rb
;
...
...
openair1/SIMULATION/NR_PHY/dlschsim.c
View file @
58f62a41
...
...
@@ -621,7 +621,7 @@ int main(int argc, char **argv)
for
(
i
=
0
;
i
<
2
;
i
++
)
{
printf
(
"gNB %d
\n
"
,
i
);
free_gNB_dlsch
(
gNB
->
dlsch
[
0
][
i
]
);
free_gNB_dlsch
(
&
(
gNB
->
dlsch
[
0
][
i
])
);
printf
(
"UE %d
\n
"
,
i
);
free_nr_ue_dlsch
(
&
(
UE
->
dlsch
[
0
][
0
][
i
]));
}
...
...
openair2/ENB_APP/enb_config.c
View file @
58f62a41
...
...
@@ -183,7 +183,7 @@ void RCconfig_L1(void) {
if
(
RC
.
eNB
[
j
]
==
NULL
)
{
RC
.
eNB
[
j
]
=
(
PHY_VARS_eNB
**
)
malloc
((
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
));
LOG_I
(
PHY
,
"RC.eNB[%d] = %p
\n
"
,
j
,
RC
.
eNB
[
j
]);
memset
(
RC
.
eNB
[
j
],
0
,(
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
*
));
memset
(
RC
.
eNB
[
j
],
0
,(
1
+
MAX_NUM_CCs
)
*
sizeof
(
PHY_VARS_eNB
**
*
));
}
for
(
i
=
0
;
i
<
RC
.
nb_L1_CC
[
j
];
i
++
)
{
...
...
@@ -277,6 +277,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
int
nb_cc
=
0
;
int32_t
offsetMaxLimit
=
0
;
int32_t
cycleNb
=
0
;
MessageDef
*
msg_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
RRC_CONFIGURATION_REQ
);
ccparams_lte_t
ccparams_lte
;
ccparams_sidelink_t
SLconfig
;
...
...
@@ -310,7 +311,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
config_get
(
ENBSParams
,
sizeof
(
ENBSParams
)
/
sizeof
(
paramdef_t
),
NULL
);
num_enbs
=
ENBSParams
[
ENB_ACTIVE_ENBS_IDX
].
numelt
;
AssertFatal
(
i
<
num_enbs
,
"Failed to parse config file no %
i
th element in %s
\n
"
,
i
,
ENB_CONFIG_STRING_ACTIVE_ENBS
);
"Failed to parse config file no %
u
th element in %s
\n
"
,
i
,
ENB_CONFIG_STRING_ACTIVE_ENBS
);
if
(
num_enbs
>
0
)
{
// Output a list of all eNBs.
...
...
@@ -334,7 +335,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
(
strcmp
(
*
(
ENBParamList
.
paramarray
[
i
][
ENB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"f1"
)
==
0
)
{
paramdef_t
SCTPParams
[]
=
SCTPPARAMS_DESC
;
char
aprefix
[
MAX_OPTNAME_SIZE
*
2
+
8
];
sprintf
(
aprefix
,
"%s.[%
i
].%s"
,
ENB_CONFIG_STRING_ENB_LIST
,
i
,
ENB_CONFIG_STRING_SCTP_CONFIG
);
sprintf
(
aprefix
,
"%s.[%
u
].%s"
,
ENB_CONFIG_STRING_ENB_LIST
,
i
,
ENB_CONFIG_STRING_SCTP_CONFIG
);
config_get
(
SCTPParams
,
sizeof
(
SCTPParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
rrc
->
node_id
=
*
(
ENBParamList
.
paramarray
[
0
][
ENB_ENB_ID_IDX
].
uptr
);
LOG_I
(
ENB_APP
,
"F1AP: gNB_CU_id[%d] %d
\n
"
,
k
,
rrc
->
node_id
);
...
...
@@ -443,16 +444,16 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
// Cell params, MIB/SIB1 in DU
RRC_CONFIGURATION_REQ
(
msg_p
).
tdd_config
[
j
]
=
ccparams_lte
.
tdd_config
;
AssertFatal
(
ccparams_lte
.
tdd_config
<=
LTE_TDD_Config__subframeAssignment_sa6
,
"Failed to parse eNB configuration file %s, enb %
d
illegal tdd_config %d (should be 0-%d)!"
,
"Failed to parse eNB configuration file %s, enb %
u
illegal tdd_config %d (should be 0-%d)!"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
tdd_config
,
LTE_TDD_Config__subframeAssignment_sa6
);
RRC_CONFIGURATION_REQ
(
msg_p
).
tdd_config_s
[
j
]
=
ccparams_lte
.
tdd_config_s
;
AssertFatal
(
ccparams_lte
.
tdd_config_s
<=
LTE_TDD_Config__specialSubframePatterns_ssp8
,
"Failed to parse eNB configuration file %s, enb %
d
illegal tdd_config_s %d (should be 0-%d)!"
,
"Failed to parse eNB configuration file %s, enb %
u
illegal tdd_config_s %d (should be 0-%d)!"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
tdd_config_s
,
LTE_TDD_Config__specialSubframePatterns_ssp8
);
if
(
!
ccparams_lte
.
prefix_type
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: NORMAL,EXTENDED!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: NORMAL,EXTENDED!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PREFIX_TYPE
);
else
if
(
strcmp
(
ccparams_lte
.
prefix_type
,
"NORMAL"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
prefix_type
[
j
]
=
NORMAL
;
...
...
@@ -460,13 +461,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
prefix_type
[
j
]
=
EXTENDED
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for prefix_type choice: NORMAL or EXTENDED !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for prefix_type choice: NORMAL or EXTENDED !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
prefix_type
);
}
if
(
!
ccparams_lte
.
pbch_repetition
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: TRUE,FALSE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: TRUE,FALSE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PBCH_REPETITION
);
else
if
(
strcmp
(
ccparams_lte
.
pbch_repetition
,
"TRUE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
pbch_repetition
[
j
]
=
1
;
...
...
@@ -474,7 +475,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
pbch_repetition
[
j
]
=
0
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pbch_repetition choice: TRUE or FALSE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pbch_repetition choice: TRUE or FALSE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pbch_repetition
);
}
...
...
@@ -485,7 +486,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
(
ccparams_lte
.
Nid_cell
>
503
)
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for Nid_cell choice: 0...503 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for Nid_cell choice: 0...503 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
Nid_cell
);
}
...
...
@@ -498,7 +499,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
N_RB_DL
!=
75
)
&&
(
ccparams_lte
.
N_RB_DL
!=
100
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for N_RB_DL choice: 6,15,25,50,75,100 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for N_RB_DL choice: 6,15,25,50,75,100 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
N_RB_DL
);
}
...
...
@@ -508,7 +509,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
frame_type
[
j
]
=
TDD
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for frame_type choice: FDD or TDD !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for frame_type choice: FDD or TDD !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
frame_type
);
}
...
...
@@ -522,7 +523,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
nb_antenna_ports
<
1
)
||
(
ccparams_lte
.
nb_antenna_ports
>
2
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for nb_antenna_ports choice: 1..2 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for nb_antenna_ports choice: 1..2 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
nb_antenna_ports
);
RRC_CONFIGURATION_REQ
(
msg_p
).
nb_antenna_ports
[
j
]
=
ccparams_lte
.
nb_antenna_ports
;
...
...
@@ -533,19 +534,19 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
prach_root
<
0
)
||
(
ccparams_lte
.
prach_root
>
1023
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for prach_root choice: 0..1023 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for prach_root choice: 0..1023 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
prach_root
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
prach_config_index
=
ccparams_lte
.
prach_config_index
;
if
((
ccparams_lte
.
prach_config_index
<
0
)
||
(
ccparams_lte
.
prach_config_index
>
63
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for prach_config_index choice: 0..1023 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for prach_config_index choice: 0..1023 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
prach_config_index
);
if
(
!
ccparams_lte
.
prach_high_speed
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PRACH_HIGH_SPEED
);
else
if
(
strcmp
(
ccparams_lte
.
prach_high_speed
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
prach_high_speed
=
TRUE
;
...
...
@@ -553,7 +554,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
prach_high_speed
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for prach_config choice: ENABLE,DISABLE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for prach_config choice: ENABLE,DISABLE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
prach_high_speed
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
prach_zero_correlation
=
ccparams_lte
.
prach_zero_correlation
;
...
...
@@ -561,7 +562,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
prach_zero_correlation
<
0
)
||
(
ccparams_lte
.
prach_zero_correlation
>
15
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for prach_zero_correlation choice: 0..15!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for prach_zero_correlation choice: 0..15!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
prach_zero_correlation
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
prach_freq_offset
=
ccparams_lte
.
prach_freq_offset
;
...
...
@@ -569,7 +570,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
prach_freq_offset
<
0
)
||
(
ccparams_lte
.
prach_freq_offset
>
94
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for prach_freq_offset choice: 0..94!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for prach_freq_offset choice: 0..94!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
prach_freq_offset
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_delta_shift
=
ccparams_lte
.
pucch_delta_shift
-
1
;
...
...
@@ -577,7 +578,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pucch_delta_shift
<
1
)
||
(
ccparams_lte
.
pucch_delta_shift
>
3
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pucch_delta_shift choice: 1..3!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pucch_delta_shift choice: 1..3!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_delta_shift
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_nRB_CQI
=
ccparams_lte
.
pucch_nRB_CQI
;
...
...
@@ -585,7 +586,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pucch_nRB_CQI
<
0
)
||
(
ccparams_lte
.
pucch_nRB_CQI
>
98
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pucch_nRB_CQI choice: 0..98!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pucch_nRB_CQI choice: 0..98!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_nRB_CQI
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_nCS_AN
=
ccparams_lte
.
pucch_nCS_AN
;
...
...
@@ -593,7 +594,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pucch_nCS_AN
<
0
)
||
(
ccparams_lte
.
pucch_nCS_AN
>
7
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pucch_nCS_AN choice: 0..7!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pucch_nCS_AN choice: 0..7!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_nCS_AN
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_n1_AN
=
ccparams_lte
.
pucch_n1_AN
;
...
...
@@ -601,7 +602,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pucch_n1_AN
<
0
)
||
(
ccparams_lte
.
pucch_n1_AN
>
2047
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pucch_n1_AN choice: 0..2047!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pucch_n1_AN choice: 0..2047!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_n1_AN
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pdsch_referenceSignalPower
=
ccparams_lte
.
pdsch_referenceSignalPower
;
...
...
@@ -609,7 +610,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pdsch_referenceSignalPower
<-
60
)
||
(
ccparams_lte
.
pdsch_referenceSignalPower
>
50
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pdsch_referenceSignalPower choice:-60..50!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pdsch_referenceSignalPower choice:-60..50!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pdsch_referenceSignalPower
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pdsch_p_b
=
ccparams_lte
.
pdsch_p_b
;
...
...
@@ -617,7 +618,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pdsch_p_b
<
0
)
||
(
ccparams_lte
.
pdsch_p_b
>
3
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pdsch_p_b choice: 0..3!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pdsch_p_b choice: 0..3!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pdsch_p_b
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_n_SB
=
ccparams_lte
.
pusch_n_SB
;
...
...
@@ -625,12 +626,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pusch_n_SB
<
1
)
||
(
ccparams_lte
.
pusch_n_SB
>
4
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pusch_n_SB choice: 1..4!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pusch_n_SB choice: 1..4!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_n_SB
);
if
(
!
ccparams_lte
.
pusch_hoppingMode
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: interSubframe,intraAndInterSubframe!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: interSubframe,intraAndInterSubframe!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_HOPPINGMODE
);
else
if
(
strcmp
(
ccparams_lte
.
pusch_hoppingMode
,
"interSubFrame"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_hoppingMode
=
LTE_PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame
;
...
...
@@ -638,7 +639,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_hoppingMode
=
LTE_PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_hoppingMode
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_hoppingOffset
=
ccparams_lte
.
pusch_hoppingOffset
;
...
...
@@ -646,12 +647,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pusch_hoppingOffset
<
0
)
||
(
ccparams_lte
.
pusch_hoppingOffset
>
98
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pusch_hoppingOffset choice: 0..98!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pusch_hoppingOffset choice: 0..98!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_hoppingMode
);
if
(
!
ccparams_lte
.
pusch_enable64QAM
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_ENABLE64QAM
);
else
if
(
strcmp
(
ccparams_lte
.
pusch_enable64QAM
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_enable64QAM
=
TRUE
;
...
...
@@ -659,12 +660,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_enable64QAM
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pusch_enable64QAM choice: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pusch_enable64QAM choice: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_enable64QAM
);
if
(
!
ccparams_lte
.
pusch_groupHoppingEnabled
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN
);
else
if
(
strcmp
(
ccparams_lte
.
pusch_groupHoppingEnabled
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_groupHoppingEnabled
=
TRUE
;
...
...
@@ -672,7 +673,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_groupHoppingEnabled
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_groupHoppingEnabled
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_groupAssignment
=
ccparams_lte
.
pusch_groupAssignment
;
...
...
@@ -680,12 +681,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pusch_groupAssignment
<
0
)
||
(
ccparams_lte
.
pusch_groupAssignment
>
29
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pusch_groupAssignment choice: 0..29!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pusch_groupAssignment choice: 0..29!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_groupAssignment
);
if
(
!
ccparams_lte
.
pusch_sequenceHoppingEnabled
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN
);
else
if
(
strcmp
(
ccparams_lte
.
pusch_sequenceHoppingEnabled
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_sequenceHoppingEnabled
=
TRUE
;
...
...
@@ -693,7 +694,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_sequenceHoppingEnabled
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_sequenceHoppingEnabled
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_nDMRS1
=
ccparams_lte
.
pusch_nDMRS1
;
//cyclic_shift in RRC!
...
...
@@ -701,7 +702,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pusch_nDMRS1
<
0
)
||
(
ccparams_lte
.
pusch_nDMRS1
>
7
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pusch_nDMRS1 choice: 0..7!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pusch_nDMRS1 choice: 0..7!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_nDMRS1
);
if
(
strcmp
(
ccparams_lte
.
phich_duration
,
"NORMAL"
)
==
0
)
{
...
...
@@ -710,7 +711,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
phich_duration
=
LTE_PHICH_Config__phich_Duration_extended
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for phich_duration choice: NORMAL,EXTENDED!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for phich_duration choice: NORMAL,EXTENDED!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
phich_duration
);
if
(
strcmp
(
ccparams_lte
.
phich_resource
,
"ONESIXTH"
)
==
0
)
{
...
...
@@ -723,7 +724,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
phich_resource
=
LTE_PHICH_Config__phich_Resource_two
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for phich_resource choice: ONESIXTH,HALF,ONE,TWO!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for phich_resource choice: ONESIXTH,HALF,ONE,TWO!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
phich_resource
);
printf
(
"phich.resource %ld (%s), phich.duration %ld (%s)
\n
"
,
...
...
@@ -736,7 +737,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
srs_enable
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for srs_BandwidthConfig choice: ENABLE,DISABLE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for srs_BandwidthConfig choice: ENABLE,DISABLE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
srs_enable
);
if
(
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
srs_enable
==
TRUE
)
{
...
...
@@ -744,7 +745,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
srs_BandwidthConfig
<
0
)
||
(
ccparams_lte
.
srs_BandwidthConfig
>
7
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value %d for srs_BandwidthConfig choice: 0...7
\n
"
,
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value %d for srs_BandwidthConfig choice: 0...7
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
srs_BandwidthConfig
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
srs_SubframeConfig
=
ccparams_lte
.
srs_SubframeConfig
;
...
...
@@ -752,7 +753,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
srs_SubframeConfig
<
0
)
||
(
ccparams_lte
.
srs_SubframeConfig
>
15
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for srs_SubframeConfig choice: 0..15 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for srs_SubframeConfig choice: 0..15 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
srs_SubframeConfig
);
if
(
strcmp
(
ccparams_lte
.
srs_ackNackST
,
"ENABLE"
)
==
0
)
{
...
...
@@ -761,7 +762,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
srs_ackNackST
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for srs_BandwidthConfig choice: ENABLE,DISABLE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for srs_BandwidthConfig choice: ENABLE,DISABLE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
srs_ackNackST
);
if
(
strcmp
(
ccparams_lte
.
srs_MaxUpPts
,
"ENABLE"
)
==
0
)
{
...
...
@@ -770,7 +771,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
srs_MaxUpPts
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for srs_MaxUpPts choice: ENABLE,DISABLE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for srs_MaxUpPts choice: ENABLE,DISABLE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
srs_MaxUpPts
);
}
...
...
@@ -779,7 +780,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pusch_p0_Nominal
<-
126
)
||
(
ccparams_lte
.
pusch_p0_Nominal
>
24
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pusch_p0_Nominal choice: -126..24 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pusch_p0_Nominal choice: -126..24 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_p0_Nominal
);
if
(
strcmp
(
ccparams_lte
.
pusch_alpha
,
"AL0"
)
==
0
)
{
...
...
@@ -800,7 +801,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pusch_alpha
=
LTE_Alpha_r12_al1
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pusch_alpha
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_p0_Nominal
=
ccparams_lte
.
pucch_p0_Nominal
;
...
...
@@ -808,7 +809,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
pucch_p0_Nominal
<-
127
)
||
(
ccparams_lte
.
pucch_p0_Nominal
>-
96
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pucch_p0_Nominal choice: -127..-96 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pucch_p0_Nominal choice: -127..-96 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_p0_Nominal
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
msg3_delta_Preamble
=
ccparams_lte
.
msg3_delta_Preamble
;
...
...
@@ -816,7 +817,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
msg3_delta_Preamble
<-
1
)
||
(
ccparams_lte
.
msg3_delta_Preamble
>
6
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for msg3_delta_Preamble choice: -1..6 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for msg3_delta_Preamble choice: -1..6 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
msg3_delta_Preamble
);
if
(
strcmp
(
ccparams_lte
.
pucch_deltaF_Format1
,
"deltaF_2"
)
==
0
)
{
...
...
@@ -827,7 +828,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_deltaF_Format1
=
LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_deltaF_Format1
);
if
(
strcmp
(
ccparams_lte
.
pucch_deltaF_Format1b
,
"deltaF1"
)
==
0
)
{
...
...
@@ -838,7 +839,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_deltaF_Format1b
=
LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_deltaF_Format1b
);
if
(
strcmp
(
ccparams_lte
.
pucch_deltaF_Format2
,
"deltaF_2"
)
==
0
)
{
...
...
@@ -851,7 +852,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_deltaF_Format2
=
LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_deltaF_Format2
);
if
(
strcmp
(
ccparams_lte
.
pucch_deltaF_Format2a
,
"deltaF_2"
)
==
0
)
{
...
...
@@ -862,7 +863,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_deltaF_Format2a
=
LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_deltaF_Format2a
);
if
(
strcmp
(
ccparams_lte
.
pucch_deltaF_Format2b
,
"deltaF_2"
)
==
0
)
{
...
...
@@ -873,7 +874,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pucch_deltaF_Format2b
=
LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pucch_deltaF_Format2b
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_numberOfRA_Preambles
=
(
ccparams_lte
.
rach_numberOfRA_Preambles
/
4
)
-
1
;
...
...
@@ -882,7 +883,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
rach_numberOfRA_Preambles
>
64
)
||
((
ccparams_lte
.
rach_numberOfRA_Preambles
&
3
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_numberOfRA_Preambles choice: 4,8,12,...,64!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_numberOfRA_Preambles choice: 4,8,12,...,64!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_numberOfRA_Preambles
);
if
(
strcmp
(
ccparams_lte
.
rach_preamblesGroupAConfig
,
"ENABLE"
)
==
0
)
{
...
...
@@ -893,7 +894,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
rach_numberOfRA_Preambles
>
60
)
||
((
ccparams_lte
.
rach_numberOfRA_Preambles
&
3
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_sizeOfRA_PreamblesGroupA
);
switch
(
ccparams_lte
.
rach_messageSizeGroupA
)
{
...
...
@@ -915,7 +916,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_messageSizeGroupA choice: 56,144,208,256!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_messageSizeGroupA choice: 56,144,208,256!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_messageSizeGroupA
);
break
;
}
...
...
@@ -938,13 +939,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_messagePowerOffsetGroupB
=
LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_messagePowerOffsetGroupB
);
}
else
if
(
strcmp
(
ccparams_lte
.
rach_preamblesGroupAConfig
,
"DISABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_preamblesGroupAConfig
=
FALSE
;
}
else
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_preamblesGroupAConfig
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_preambleInitialReceivedTargetPower
=
(
ccparams_lte
.
rach_preambleInitialReceivedTargetPower
+
120
)
/
2
;
...
...
@@ -953,7 +954,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
rach_preambleInitialReceivedTargetPower
>-
90
)
||
((
ccparams_lte
.
rach_preambleInitialReceivedTargetPower
&
1
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_preambleInitialReceivedTargetPower
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_powerRampingStep
=
ccparams_lte
.
rach_powerRampingStep
/
2
;
...
...
@@ -962,7 +963,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
rach_powerRampingStep
>
6
)
||
((
ccparams_lte
.
rach_powerRampingStep
&
1
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_powerRampingStep choice: 0,2,4,6 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_powerRampingStep choice: 0,2,4,6 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_powerRampingStep
);
switch
(
ccparams_lte
.
rach_preambleTransMax
)
{
...
...
@@ -1012,7 +1013,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_preambleTransMax
);
break
;
}
...
...
@@ -1023,7 +1024,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
rach_raResponseWindowSize
==
9
)
||
(
ccparams_lte
.
rach_raResponseWindowSize
>
10
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_preambleTransMax
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_macContentionResolutionTimer
=
(
ccparams_lte
.
rach_macContentionResolutionTimer
/
8
)
-
1
;
...
...
@@ -1032,7 +1033,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
(
ccparams_lte
.
rach_macContentionResolutionTimer
>
64
)
||
((
ccparams_lte
.
rach_macContentionResolutionTimer
&
7
)
!=
0
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_macContentionResolutionTimer choice: 8,16,...,56,64!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_macContentionResolutionTimer choice: 8,16,...,56,64!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_preambleTransMax
);
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
rach_maxHARQ_Msg3Tx
=
ccparams_lte
.
rach_maxHARQ_Msg3Tx
;
...
...
@@ -1040,7 +1041,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
rach_maxHARQ_Msg3Tx
<
0
)
||
(
ccparams_lte
.
rach_maxHARQ_Msg3Tx
>
8
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for rach_maxHARQ_Msg3Tx choice: 1..8!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for rach_maxHARQ_Msg3Tx choice: 1..8!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
rach_preambleTransMax
);
switch
(
ccparams_lte
.
pcch_defaultPagingCycle
)
{
...
...
@@ -1062,7 +1063,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for pcch_defaultPagingCycle choice: 32,64,128,256!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for pcch_defaultPagingCycle choice: 32,64,128,256!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pcch_defaultPagingCycle
);
break
;
}
...
...
@@ -1084,7 +1085,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
}
else
if
(
strcmp
(
ccparams_lte
.
pcch_nB
,
"oneThirtySecondT"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
pcch_nB
=
LTE_PCCH_Config__nB_oneThirtySecondT
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !
\n
"
,
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
pcch_nB
);
...
...
@@ -1098,7 +1099,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_Config_present
=
LTE_DRX_Config_PR_setup
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for drx_Config_present choice: prNothing, prRelease, prSetup!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for drx_Config_present choice: prNothing, prRelease, prSetup!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_Config_present
);
}
...
...
@@ -1136,7 +1137,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_onDurationTimer
=
(
long
)
LTE_DRX_Config__setup__onDurationTimer_psf200
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for drx_onDurationTimer choice !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for drx_onDurationTimer choice !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_onDurationTimer
);
break
;
}
...
...
@@ -1207,7 +1208,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_InactivityTimer
=
(
long
)
LTE_DRX_Config__setup__drx_InactivityTimer_spare1
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for drx_InactivityTimer choice !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for drx_InactivityTimer choice !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_InactivityTimer
);
break
;
}
...
...
@@ -1216,7 +1217,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
(
!
ccparams_lte
.
mbms_dedicated_serving_cell
)
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
define %s: TRUE,FALSE!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
define %s: TRUE,FALSE!
\n
"
,
RC
.
config_file_name
,
i
,
ENB_CONFIG_STRING_MBMS_DEDICATED_SERVING_CELL
);
else
if
(
strcmp
(
ccparams_lte
.
mbms_dedicated_serving_cell
,
"ENABLE"
)
==
0
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
mbms_dedicated_serving_cell
=
TRUE
;
...
...
@@ -1224,7 +1225,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
mbms_dedicated_serving_cell
=
FALSE
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for mbms_dedicated_serving_cell choice: TRUE or FALSE !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for mbms_dedicated_serving_cell choice: TRUE or FALSE !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
mbms_dedicated_serving_cell
);
}
...
...
@@ -1233,7 +1234,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
ue_multiple_max
<
1
)
||
(
ccparams_lte
.
ue_multiple_max
>
4
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..4!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..4!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_multiple_max
);
break
;
...
...
@@ -1242,7 +1243,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
ue_multiple_max
<
1
)
||
(
ccparams_lte
.
ue_multiple_max
>
8
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..8!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..8!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_multiple_max
);
break
;
...
...
@@ -1251,14 +1252,14 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
ue_multiple_max
<
1
)
||
(
ccparams_lte
.
ue_multiple_max
>
16
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..16!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..16!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_multiple_max
);
break
;
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for N_RB_DL choice: 25,50,100 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for N_RB_DL choice: 25,50,100 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
N_RB_DL
);
break
;
}
...
...
@@ -1281,7 +1282,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_RetransmissionTimer
=
(
long
)
LTE_DRX_Config__setup__drx_RetransmissionTimer_psf33
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for drx_RetransmissionTimer choice !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for drx_RetransmissionTimer choice !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_RetransmissionTimer
);
break
;
}
...
...
@@ -1339,7 +1340,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
offsetMaxLimit
=
2560
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file
\"
%s
\"
, enb %
d
unknown string value
\"
%s
\"
for drx_longDrx_CycleStartOffset_present choice !
\n
"
,
"Failed to parse eNB configuration file
\"
%s
\"
, enb %
u
unknown string value
\"
%s
\"
for drx_longDrx_CycleStartOffset_present choice !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_longDrx_CycleStartOffset_present
);
}
...
...
@@ -1347,7 +1348,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_longDrx_CycleStartOffset
=
ccparams_lte
.
drx_longDrx_CycleStartOffset
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
incoherent value
\"
%d
\"
for drx_longDrx_CycleStartOffset !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
incoherent value
\"
%d
\"
for drx_longDrx_CycleStartOffset !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_longDrx_CycleStartOffset
);
}
}
...
...
@@ -1355,7 +1356,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
(
strcmp
(
ccparams_lte
.
drx_shortDrx_Cycle
,
""
)
==
0
||
ccparams_lte
.
drx_shortDrx_ShortCycleTimer
==
0
)
{
if
(
strcmp
(
ccparams_lte
.
drx_shortDrx_Cycle
,
""
)
!=
0
||
ccparams_lte
.
drx_shortDrx_ShortCycleTimer
!=
0
)
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
incoherent values
\"
%s
\"
-
\"
%d
\"
for drx_shortDrx_Cycle or drx_shortDrx_ShortCycleTimer choice !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
incoherent values
\"
%s
\"
-
\"
%d
\"
for drx_shortDrx_Cycle or drx_shortDrx_ShortCycleTimer choice !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_shortDrx_Cycle
,
ccparams_lte
.
drx_shortDrx_ShortCycleTimer
);
}
else
{
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_shortDrx_Cycle
=
-
1
;
...
...
@@ -1412,13 +1413,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_shortDrx_Cycle
=
LTE_DRX_Config__setup__shortDRX__shortDRX_Cycle_sf640
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
incoherent value
\"
%s
\"
for drx_shortDrx_Cycle !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
incoherent value
\"
%s
\"
for drx_shortDrx_Cycle !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_shortDrx_Cycle
);
}
if
(
cycleNb
>
0
&&
(
offsetMaxLimit
%
cycleNb
!=
0
||
cycleNb
==
offsetMaxLimit
))
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
incompatible (not multiple) values
\"
%d
\"
-
\"
%d
\"
for drx_shortDrx_Cycle and drx_longDrx_CycleStartOffset choice !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
incompatible (not multiple) values
\"
%d
\"
-
\"
%d
\"
for drx_shortDrx_Cycle and drx_longDrx_CycleStartOffset choice !
\n
"
,
RC
.
config_file_name
,
i
,
cycleNb
,
offsetMaxLimit
);
}
...
...
@@ -1426,7 +1427,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ
(
msg_p
).
radioresourceconfig
[
j
].
drx_shortDrx_ShortCycleTimer
=
ccparams_lte
.
drx_shortDrx_ShortCycleTimer
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for drx_shortDrx_ShortCycleTimer choice !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for drx_shortDrx_ShortCycleTimer choice !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
drx_shortDrx_ShortCycleTimer
);
}
}
...
...
@@ -1450,7 +1451,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for bcch_modificationPeriodCoeff choice: 2,4,8,16"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for bcch_modificationPeriodCoeff choice: 2,4,8,16"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
bcch_modificationPeriodCoeff
);
break
;
}
...
...
@@ -1493,7 +1494,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_TransmissionMode choice: 1,2,3,4,5,6,7"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_TransmissionMode choice: 1,2,3,4,5,6,7"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_TransmissionMode
);
break
;
}
...
...
@@ -1505,7 +1506,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
ue_multiple_max
<
1
)
||
(
ccparams_lte
.
ue_multiple_max
>
4
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..4!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..4!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_multiple_max
);
break
;
...
...
@@ -1514,7 +1515,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
ue_multiple_max
<
1
)
||
(
ccparams_lte
.
ue_multiple_max
>
8
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..8!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..8!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_multiple_max
);
break
;
...
...
@@ -1523,14 +1524,14 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
if
((
ccparams_lte
.
ue_multiple_max
<
1
)
||
(
ccparams_lte
.
ue_multiple_max
>
16
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..16!
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for ue_multiple_max choice: 1..16!
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
ue_multiple_max
);
break
;
default:
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%d
\"
for N_RB_DL choice: 25,50,100 !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%d
\"
for N_RB_DL choice: 25,50,100 !
\n
"
,
RC
.
config_file_name
,
i
,
ccparams_lte
.
N_RB_DL
);
break
;
}
...
...
@@ -1599,7 +1600,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %
d srb1_max_retx_threshold %u
!
\n
"
,
"Bad config value when parsing eNB configuration file %s, enb %
u srb1_max_retx_threshold %d
!
\n
"
,
RC
.
config_file_name
,
i
,
srb1_params
.
srb1_max_retx_threshold
);
}
...
...
@@ -1637,7 +1638,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
rrc
->
srb1_poll_pdu
=
LTE_PollPDU_pInfinity
;
else
AssertFatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %
d srb1_poll_pdu %u
!
\n
"
,
"Bad config value when parsing eNB configuration file %s, enb %
u srb1_poll_pdu %d
!
\n
"
,
RC
.
config_file_name
,
i
,
srb1_params
.
srb1_poll_pdu
);
}
...
...
@@ -1705,7 +1706,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
rrc
->
srb1_poll_byte
=
LTE_PollByte_kBinfinity
;
else
AssertFatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %
d srb1_poll_byte %u
!
\n
"
,
"Bad config value when parsing eNB configuration file %s, enb %
u srb1_poll_byte %d
!
\n
"
,
RC
.
config_file_name
,
i
,
srb1_params
.
srb1_poll_byte
);
}
...
...
@@ -1715,7 +1716,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
rrc
->
srb1_timer_poll_retransmit
=
(
srb1_params
.
srb1_timer_poll_retransmit
-
300
)
/
50
+
50
;
}
else
{
AssertFatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %
d srb1_timer_poll_retransmit %u
!
\n
"
,
"Bad config value when parsing eNB configuration file %s, enb %
u srb1_timer_poll_retransmit %d
!
\n
"
,
RC
.
config_file_name
,
i
,
srb1_params
.
srb1_timer_poll_retransmit
);
}
...
...
@@ -1725,7 +1726,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
rrc
->
srb1_timer_status_prohibit
=
(
srb1_params
.
srb1_timer_status_prohibit
-
300
)
/
50
+
51
;
}
else
{
AssertFatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %
d srb1_timer_status_prohibit %u
!
\n
"
,
"Bad config value when parsing eNB configuration file %s, enb %
u srb1_timer_status_prohibit %d
!
\n
"
,
RC
.
config_file_name
,
i
,
srb1_params
.
srb1_timer_status_prohibit
);
}
...
...
@@ -1856,7 +1857,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
default:
AssertFatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %
d srb1_timer_reordering %u
!
\n
"
,
"Bad config value when parsing eNB configuration file %s, enb %
u srb1_timer_reordering %d
!
\n
"
,
RC
.
config_file_name
,
i
,
srb1_params
.
srb1_timer_reordering
);
}
}
...
...
@@ -1879,13 +1880,13 @@ int RCconfig_DU_F1(MessageDef *msg_p, uint32_t i) {
config_get
(
ENBSParams
,
sizeof
(
ENBSParams
)
/
sizeof
(
paramdef_t
),
NULL
);
int
num_enbs
=
ENBSParams
[
ENB_ACTIVE_ENBS_IDX
].
numelt
;
AssertFatal
(
i
<
num_enbs
,
"Failed to parse config file no %
i
th element in %s
\n
"
,
i
,
ENB_CONFIG_STRING_ACTIVE_ENBS
);
"Failed to parse config file no %
u
th element in %s
\n
"
,
i
,
ENB_CONFIG_STRING_ACTIVE_ENBS
);
if
(
num_enbs
>
0
)
{
// Output a list of all eNBs.
config_getlist
(
&
ENBParamList
,
ENBParams
,
sizeof
(
ENBParams
)
/
sizeof
(
paramdef_t
),
NULL
);
AssertFatal
(
ENBParamList
.
paramarray
[
i
][
ENB_ENB_ID_IDX
].
uptr
!=
NULL
,
"eNB id %
d
is not defined in configuration file
\n
"
,
i
);
"eNB id %
u
is not defined in configuration file
\n
"
,
i
);
F1AP_SETUP_REQ
(
msg_p
).
num_cells_available
=
0
;
for
(
k
=
0
;
k
<
num_enbs
;
k
++
)
{
...
...
@@ -2125,7 +2126,7 @@ int RCconfig_S1(
S1AP_REGISTER_ENB_REQ
(
msg_p
).
cell_type
=
CELL_HOME_ENB
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !
\n
"
,
RC
.
config_file_name
,
i
,
*
(
ENBParamList
.
paramarray
[
k
][
ENB_CELL_TYPE_IDX
].
strptr
));
...
...
@@ -2354,7 +2355,7 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
X2AP_REGISTER_ENB_REQ
(
msg_p
).
cell_type
=
CELL_HOME_ENB
;
}
else
{
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %
d
unknown value
\"
%s
\"
for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !
\n
"
,
"Failed to parse eNB configuration file %s, enb %
u
unknown value
\"
%s
\"
for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !
\n
"
,
RC
.
config_file_name
,
i
,
*
(
ENBParamList
.
paramarray
[
k
][
ENB_CELL_TYPE_IDX
].
strptr
));
}
...
...
@@ -2832,7 +2833,7 @@ void read_config_and_init(void) {
for
(
uint32_t
enb_id
=
0
;
enb_id
<
RC
.
nb_inst
;
enb_id
++
)
{
RC
.
rrc
[
enb_id
]
=
malloc
(
sizeof
(
eNB_RRC_INST
));
AssertFatal
(
RC
.
rrc
[
enb_id
],
"RRC context for eNB %
d
not allocated
\n
"
,
enb_id
);
AssertFatal
(
RC
.
rrc
[
enb_id
],
"RRC context for eNB %
u
not allocated
\n
"
,
enb_id
);
memset
((
void
*
)
RC
.
rrc
[
enb_id
],
0
,
sizeof
(
eNB_RRC_INST
));
RCconfig_RRC
(
enb_id
,
RC
.
rrc
[
enb_id
],
macrlc_has_f1
[
enb_id
]);
}
...
...
openair2/ENB_APP/enb_paramdef.h
View file @
58f62a41
...
...
@@ -539,122 +539,122 @@ typedef struct ccparams_lte_s {
}
ccparams_lte_t
;
#define CCPARAMS_CHECK { \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} ,\
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } , \
{
.s5 =
{ NULL } } \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } , \
{ { NULL } } \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
...
...
openair2/ENB_APP/enb_paramdef_emtc.h
View file @
58f62a41
...
...
@@ -258,93 +258,93 @@ typedef struct ccparams_eMTC_s {
}
#define EMTCPARAMS_CHECK { \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} , \
{ .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} , \
{ .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} , \
{
.s5= {NULL
}} , \
{
.s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{ .s5= {NULL
}} , \
{
{NULL
}} , \
{
{NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
{ {NULL
}} , \
}
#define SYSTEM_INFO_VALUE_TAG_SI_DESC(eMTCconfig) { \
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
58f62a41
...
...
@@ -187,9 +187,8 @@ uint8_t do_MIB_FeMBMS(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_
LTE_BCCH_BCH_Message_MBMS_t
*
mib_fembms
=&
carrier
->
mib_fembms
;
uint8_t
sfn
=
(
uint8_t
)((
frame
>>
2
)
&
0xff
);
uint16_t
*
spare
=
calloc
(
1
,
sizeof
(
uint16_t
));
uint16_t
*
additionalNonMBSFNSubframes
=
calloc
(
1
,
sizeof
(
uint16_t
));
if
(
spare
==
NULL
||
additionalNonMBSFNSubframes
==
NULL
)
abort
();
if
(
spare
==
NULL
)
abort
();
switch
(
N_RB_DL
)
{
case
6
:
...
...
@@ -217,7 +216,7 @@ uint8_t do_MIB_FeMBMS(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown dl_Bandwidth %
d
\n
"
,
N_RB_DL
);
AssertFatal
(
1
==
0
,
"Unknown dl_Bandwidth %
u
\n
"
,
N_RB_DL
);
}
LOG_I
(
RRC
,
"[MIB] systemBandwidth %x, additional non MBMS subframes %x, sfn %x
\n
"
,
...
...
@@ -287,7 +286,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown dl_Bandwidth %
d
\n
"
,
N_RB_DL
);
AssertFatal
(
1
==
0
,
"Unknown dl_Bandwidth %
u
\n
"
,
N_RB_DL
);
}
AssertFatal
(
phich_Resource
<=
LTE_PHICH_Config__phich_Resource_two
,
"Illegal phich_Resource
\n
"
);
...
...
@@ -1021,7 +1020,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
calloc
(
1
,
sizeof
(
struct
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13
));
memset
(
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
,
0
,
sizeof
(
s
izeof
(
struct
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13
)
));
sizeof
(
s
truct
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13
));
if
(
*
configuration
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
[
CC_id
])
{
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
->
present
...
...
@@ -1183,7 +1182,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
=
calloc
(
1
,
sizeof
(
struct
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13
));
memset
(
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
,
0
,
sizeof
(
s
izeof
(
struct
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13
)
));
sizeof
(
s
truct
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13
));
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
->
present
=
LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13
;
sib1_1310
->
bandwidthReducedAccessRelatedInfo_r13
->
fdd_DownlinkOrTddSubframeBitmapBR_r13
->
choice
.
subframePattern10_r13
.
buf
=
calloc
(
2
,
sizeof
(
uint8_t
));
...
...
targets/RT/USER/lte-hwlat2.c
View file @
58f62a41
...
...
@@ -1197,7 +1197,7 @@ void histogram_save_in_csv( histo_time_t *histo , char *file_sufix)
fprintf
(
fp
,
"%d-%.0f;%u
\n
"
,
min_val
,
histo
[
i
].
max
,
histo
[
i
].
count
);
min_val
=
histo
[
i
].
max
;
}
free
(
csv_filename
);
fclose
(
fp
);
}
...
...
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