Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
3c5a5364
Commit
3c5a5364
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
4af13aa7
1e3a7e1a
Changes
23
Show 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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -494,6 +494,7 @@ 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
);
if
(
shift
>
0
)
fprintf
(
fd2
,
" for (i2=0; i2<%d; i2++) {
\n
"
,
Zc
>>
(
shift
-
1
));
for
(
i2
=
0
;
i2
<
1
;
i2
++
)
{
...
...
openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
View file @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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 @
3c5a5364
...
...
@@ -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