Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spbro
OpenXG-RAN
Commits
11147c2e
Commit
11147c2e
authored
Dec 02, 2019
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop-nr' into bug-fix-channel-est
parents
62003822
a54362dd
Changes
14
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
748 additions
and
415 deletions
+748
-415
executables/nr-ru.c
executables/nr-ru.c
+6
-6
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+13
-20
openair1/PHY/INIT/nr_parms.c
openair1/PHY/INIT/nr_parms.c
+25
-16
openair1/PHY/INIT/phy_init.h
openair1/PHY/INIT/phy_init.h
+1
-1
openair1/SCHED_NR/nr_ru_procedures.c
openair1/SCHED_NR/nr_ru_procedures.c
+4
-4
openair1/SCHED_NR/phy_procedures_nr_common.c
openair1/SCHED_NR/phy_procedures_nr_common.c
+2
-3
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+5
-4
openair1/SCHED_NR/sched_nr.h
openair1/SCHED_NR/sched_nr.h
+1
-1
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+1
-1
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+380
-340
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+15
-17
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+7
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
+287
-0
No files found.
executables/nr-ru.c
View file @
11147c2e
...
...
@@ -321,7 +321,7 @@ static inline void fh_if4p5_south_out(RU_t *ru, int frame, int slot, uint64_t ti
LOG_D
(
PHY
,
"Sending IF4p5 for frame %d subframe %d
\n
"
,
ru
->
proc
.
frame_tx
,
ru
->
proc
.
tti_tx
);
if
(
nr_slot_select
(
&
ru
->
gNB_list
[
0
]
->
gNB_config
,
ru
->
proc
.
tti_tx
)
!=
SF_UL
)
send_IF4p5
(
ru
,
frame
,
slot
,
IF4p5_PDLFFT
);
if
(
nr_slot_select
(
&
ru
->
gNB_list
[
0
]
->
gNB_config
,
ru
->
proc
.
tti_tx
,
frame
)
!=
SF_UL
)
send_IF4p5
(
ru
,
frame
,
slot
,
IF4p5_PDLFFT
);
}
/*************************************************************/
...
...
@@ -536,10 +536,10 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *slot) {
do
{
recv_IF4p5
(
ru
,
&
frame_tx
,
&
slot_tx
,
&
packet_type
,
&
symbol_number
);
if
((
nr_slot_select
(
cfg
,
slot_tx
)
==
SF_DL
)
&&
(
symbol_number
==
0
))
start_meas
(
&
ru
->
rx_fhaul
);
if
((
nr_slot_select
(
cfg
,
slot_tx
,
frame_tx
)
==
SF_DL
)
&&
(
symbol_number
==
0
))
start_meas
(
&
ru
->
rx_fhaul
);
LOG_D
(
PHY
,
"subframe %d (%d): frame %d, subframe %d, symbol %d
\n
"
,
*
slot
,
nr_slot_select
(
cfg
,
*
slot
),
frame_tx
,
slot_tx
,
symbol_number
);
*
slot
,
nr_slot_select
(
cfg
,
*
slot
,
*
frame
),
frame_tx
,
slot_tx
,
symbol_number
);
if
(
proc
->
first_tx
!=
0
)
{
*
frame
=
frame_tx
;
...
...
@@ -558,7 +558,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *slot) {
}
else
AssertFatal
(
1
==
0
,
"Illegal IF4p5 packet type (should only be IF4p5_PDLFFT%d
\n
"
,
packet_type
);
}
while
(
symbol_mask
!=
symbol_mask_full
);
if
(
nr_slot_select
(
cfg
,
slot_tx
)
==
SF_DL
)
stop_meas
(
&
ru
->
rx_fhaul
);
if
(
nr_slot_select
(
cfg
,
slot_tx
,
frame_tx
)
==
SF_DL
)
stop_meas
(
&
ru
->
rx_fhaul
);
proc
->
tti_tx
=
slot_tx
;
proc
->
frame_tx
=
frame_tx
;
...
...
@@ -728,7 +728,7 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
T
(
T_ENB_PHY_OUTPUT_SIGNAL
,
T_INT
(
0
),
T_INT
(
0
),
T_INT
(
frame
),
T_INT
(
slot
),
T_INT
(
0
),
T_BUFFER
(
&
ru
->
common
.
txdata
[
0
][
slot
*
fp
->
samples_per_slot
],
fp
->
samples_per_slot
*
4
));
int
sf_extension
=
0
;
//nr_subframe_t SF_type = nr_slot_select(cfg,slot%fp->slots_per_frame);
//nr_subframe_t SF_type = nr_slot_select(cfg,slot%fp->slots_per_frame
,frame
);
if
((
slot
==
0
)
||
(
slot
==
1
)
||
IS_SOFTMODEM_RFSIM
)
{
...
...
@@ -819,7 +819,7 @@ static void *ru_thread_asynch_rxtx( void *param ) {
if
(
ru
->
fh_south_asynch_in
)
ru
->
fh_south_asynch_in
(
ru
,
&
frame
,
&
subframe
);
// asynchronous receive from north (RRU IF4/IF5)
else
if
(
ru
->
fh_north_asynch_in
)
{
if
(
nr_slot_select
(
&
ru
->
gNB_list
[
0
]
->
gNB_config
,
subframe
)
!=
SF_UL
)
if
(
nr_slot_select
(
&
ru
->
gNB_list
[
0
]
->
gNB_config
,
subframe
,
frame
)
!=
SF_UL
)
ru
->
fh_north_asynch_in
(
ru
,
&
frame
,
&
subframe
);
}
else
AssertFatal
(
1
==
0
,
"Unknown function in ru_thread_asynch_rxtx
\n
"
);
}
...
...
executables/nr-uesoftmodem.c
View file @
11147c2e
...
...
@@ -521,14 +521,23 @@ void init_openair0(void) {
if
(
frame_parms
[
0
]
->
threequarter_fs
)
{
openair0_cfg
[
card
].
sample_rate
=
92.16e6
;
openair0_cfg
[
card
].
samples_per_frame
=
921600
;
openair0_cfg
[
card
].
tx_bw
=
40e6
;
openair0_cfg
[
card
].
rx_bw
=
40e6
;
}
else
{
openair0_cfg
[
card
].
sample_rate
=
122.88e6
;
openair0_cfg
[
card
].
samples_per_frame
=
1228800
;
openair0_cfg
[
card
].
tx_bw
=
40e6
;
openair0_cfg
[
card
].
rx_bw
=
40e6
;
}
}
else
{
LOG_E
(
PHY
,
"Unsupported numerology!
\n
"
);
exit
(
-
1
);
}
}
else
if
(
frame_parms
[
0
]
->
N_RB_DL
==
273
)
{
if
(
numerology
==
1
)
{
if
(
frame_parms
[
0
]
->
threequarter_fs
)
{
AssertFatal
(
0
==
1
,
"three quarter sampling not supported for N_RB 273
\n
"
);
}
else
{
openair0_cfg
[
card
].
sample_rate
=
122.88e6
;
openair0_cfg
[
card
].
samples_per_frame
=
1228800
;
}
}
else
{
LOG_E
(
PHY
,
"Unsupported numerology!
\n
"
);
...
...
@@ -539,32 +548,22 @@ void init_openair0(void) {
if
(
frame_parms
[
0
]
->
threequarter_fs
)
{
openair0_cfg
[
card
].
sample_rate
=
23.04e6
;
openair0_cfg
[
card
].
samples_per_frame
=
230400
;
openair0_cfg
[
card
].
tx_bw
=
10e6
;
openair0_cfg
[
card
].
rx_bw
=
10e6
;
}
else
{
openair0_cfg
[
card
].
sample_rate
=
30.72e6
;
openair0_cfg
[
card
].
samples_per_frame
=
307200
;
openair0_cfg
[
card
].
tx_bw
=
10e6
;
openair0_cfg
[
card
].
rx_bw
=
10e6
;
}
}
else
if
(
numerology
==
1
)
{
if
(
frame_parms
[
0
]
->
threequarter_fs
)
{
openair0_cfg
[
card
].
sample_rate
=
46.08e6
;
openair0_cfg
[
card
].
samples_per_frame
=
480800
;
openair0_cfg
[
card
].
tx_bw
=
20e6
;
openair0_cfg
[
card
].
rx_bw
=
20e6
;
}
else
{
openair0_cfg
[
card
].
sample_rate
=
61.44e6
;
openair0_cfg
[
card
].
samples_per_frame
=
614400
;
openair0_cfg
[
card
].
tx_bw
=
20e6
;
openair0_cfg
[
card
].
rx_bw
=
20e6
;
}
}
else
if
(
numerology
==
2
)
{
openair0_cfg
[
card
].
sample_rate
=
122.88e6
;
openair0_cfg
[
card
].
samples_per_frame
=
1228800
;
openair0_cfg
[
card
].
tx_bw
=
40e6
;
openair0_cfg
[
card
].
rx_bw
=
40e6
;
}
else
{
LOG_E
(
PHY
,
"Unsupported numerology!
\n
"
);
exit
(
-
1
);
...
...
@@ -572,18 +571,12 @@ void init_openair0(void) {
}
else
if
(
frame_parms
[
0
]
->
N_RB_DL
==
50
)
{
openair0_cfg
[
card
].
sample_rate
=
15.36e6
;
openair0_cfg
[
card
].
samples_per_frame
=
153600
;
openair0_cfg
[
card
].
tx_bw
=
5e6
;
openair0_cfg
[
card
].
rx_bw
=
5e6
;
}
else
if
(
frame_parms
[
0
]
->
N_RB_DL
==
25
)
{
openair0_cfg
[
card
].
sample_rate
=
7.68e6
;
openair0_cfg
[
card
].
samples_per_frame
=
76800
;
openair0_cfg
[
card
].
tx_bw
=
2.5e6
;
openair0_cfg
[
card
].
rx_bw
=
2.5e6
;
}
else
if
(
frame_parms
[
0
]
->
N_RB_DL
==
6
)
{
openair0_cfg
[
card
].
sample_rate
=
1.92e6
;
openair0_cfg
[
card
].
samples_per_frame
=
19200
;
openair0_cfg
[
card
].
tx_bw
=
1.5e6
;
openair0_cfg
[
card
].
rx_bw
=
1.5e6
;
}
else
{
LOG_E
(
PHY
,
"Unknown NB_RB %d!
\n
"
,
frame_parms
[
0
]
->
N_RB_DL
);
...
...
openair1/PHY/INIT/nr_parms.c
View file @
11147c2e
...
...
@@ -79,30 +79,39 @@ int nr_get_ssb_start_symbol(NR_DL_FRAME_PARMS *fp, uint8_t i_ssb, uint8_t half_f
return
symbol
;
}
int
nr_is_ssb_slot
(
nfapi_nr_config_request_t
*
cfg
,
int
slot
)
int
nr_is_ssb_slot
(
nfapi_nr_config_request_t
*
cfg
,
int
slot
,
int
frame
)
{
uint8_t
n_hf
;
uint16_t
p
,
mu
,
hf_slots
;
uint64_t
ssb_map
;
int
rel_slot
;
mu
=
cfg
->
subframe_config
.
numerology_index_mu
.
value
;
ssb_map
=
cfg
->
sch_config
.
ssb_scg_position_in_burst
.
value
;
p
=
cfg
->
sch_config
.
ssb_periodicity
.
value
;
n_hf
=
cfg
->
sch_config
.
half_frame_index
.
value
;
// checking if the ssb is transmitted in given frame according to periodicity
if
(
(
p
>
10
)
&&
(
frame
%
(
p
/
10
))
)
return
0
;
else
{
hf_slots
=
(
10
<<
mu
)
>>
1
;
// number of slots per half frame
// if SSB periodicity is 5ms, they are transmitted in both half frames
if
(
cfg
->
sch_config
.
ssb_periodicity
.
value
==
5
)
{
if
(
slot
<
10
)
if
(
p
==
5
)
{
if
(
slot
<
hf_slots
)
n_hf
=
0
;
else
n_hf
=
1
;
}
// to set a effective slot number between 0 to 9 in the half frame where the SSB is supposed to be
rel_slot
=
(
n_hf
)
?
(
slot
-
10
)
:
slot
;
if
(
rel_slot
<
10
&&
rel_slot
>=
0
)
return
1
;
else
return
0
;
// to set a effective slot number between 0 to hf_slots-1 in the half frame where the SSB is supposed to be
rel_slot
=
(
n_hf
)
?
(
slot
-
hf_slots
)
:
slot
;
// there are two potential SSB per slot
return
(
((
ssb_map
>>
rel_slot
*
2
)
&
0x01
)
||
((
ssb_map
>>
(
1
+
rel_slot
*
2
))
&
0x01
)
);
}
}
...
...
openair1/PHY/INIT/phy_init.h
View file @
11147c2e
...
...
@@ -378,7 +378,7 @@ void phy_config_request(PHY_Config_t *phy_config);
int
init_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
osf
);
void
dump_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
);
int
nr_get_ssb_start_symbol
(
NR_DL_FRAME_PARMS
*
fp
,
uint8_t
i_ssb
,
uint8_t
half_frame_index
);
int
nr_is_ssb_slot
(
nfapi_nr_config_request_t
*
cfg
,
int
slot
);
int
nr_is_ssb_slot
(
nfapi_nr_config_request_t
*
cfg
,
int
slot
,
int
frame
);
int
nr_init_frame_parms
(
nfapi_nr_config_request_t
*
config
,
NR_DL_FRAME_PARMS
*
frame_parms
);
int
nr_init_frame_parms_ue
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int
mu
,
int
Ncp
,
int
N_RB_DL
,
int
n_ssb_crb
,
int
ssb_subcarrier_offset
);
int
init_nr_ue_signal
(
PHY_VARS_NR_UE
*
ue
,
int
nb_connected_eNB
,
uint8_t
abstraction_flag
);
...
...
openair1/SCHED_NR/nr_ru_procedures.c
View file @
11147c2e
...
...
@@ -123,7 +123,7 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
start_meas
(
&
ru
->
ofdm_mod_stats
);
if
(
nr_slot_select
(
cfg
,
slot
)
==
SF_UL
)
return
;
if
(
nr_slot_select
(
cfg
,
slot
,
frame_tx
)
==
SF_UL
)
return
;
// this copy should be done in the precoding thread (currently inactive)
for
(
int
aa
=
0
;
aa
<
ru
->
nb_tx
;
aa
++
)
...
...
@@ -133,7 +133,7 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM
,
1
);
if
(
nr_slot_select
(
cfg
,
slot
)
==
SF_DL
)
{
if
(
nr_slot_select
(
cfg
,
slot
,
frame_tx
)
==
SF_DL
)
{
// If this is not an S-tti
if
(
pthread_mutex_timedlock
(
&
proc
->
mutex_feptx
,
&
wait
)
!=
0
)
{
printf
(
"[RU] ERROR pthread_mutex_lock for feptx thread (IC %d)
\n
"
,
proc
->
instance_cnt_feptx
);
...
...
@@ -232,8 +232,8 @@ void nr_feptx_ofdm(RU_t *ru,int frame_tx,int tti_tx) {
memcpy
((
void
*
)
ru
->
common
.
txdataF_BF
[
aa
],
(
void
*
)
ru
->
gNB_list
[
0
]
->
common_vars
.
txdataF
[
aa
],
fp
->
samples_per_slot_wCP
*
sizeof
(
int32_t
));
if
((
nr_slot_select
(
cfg
,
slot
)
==
SF_DL
)
||
((
nr_slot_select
(
cfg
,
slot
)
==
SF_S
)))
{
if
((
nr_slot_select
(
cfg
,
slot
,
frame_tx
)
==
SF_DL
)
||
((
nr_slot_select
(
cfg
,
slot
,
frame_tx
)
==
SF_S
)))
{
// LOG_D(HW,"Frame %d: Generating slot %d\n",frame,next_slot);
nr_feptx0
(
ru
,
slot
,
0
,
fp
->
symbols_per_slot
);
...
...
openair1/SCHED_NR/phy_procedures_nr_common.c
View file @
11147c2e
...
...
@@ -33,10 +33,9 @@
#include "sched_nr.h"
#include "PHY/INIT/phy_init.h"
nr_subframe_t
nr_slot_select
(
nfapi_nr_config_request_t
*
cfg
,
unsigned
char
slot
)
nr_subframe_t
nr_slot_select
(
nfapi_nr_config_request_t
*
cfg
,
unsigned
char
slot
,
int
frame
)
{
if
(
cfg
->
subframe_config
.
duplex_mode
.
value
==
FDD
||
slot
==
NR_DOWNLINK_SLOT
)
if
(
cfg
->
subframe_config
.
duplex_mode
.
value
==
FDD
||
slot
==
NR_DOWNLINK_SLOT
||
nr_is_ssb_slot
(
cfg
,
slot
,
frame
)
==
1
)
return
(
SF_DL
);
else
if
(
slot
==
NR_UPLINK_SLOT
)
return
(
SF_UL
);
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
11147c2e
...
...
@@ -96,23 +96,24 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
uint8_t
*
pbch_pdu
=&
gNB
->
pbch_pdu
[
0
];
uint8_t
ssb_index
,
n_hf
;
int
ssb_start_symbol
,
rel_slot
;
uint16_t
slots_per_hf
=
fp
->
slots_per_frame
/
2
;
n_hf
=
cfg
->
sch_config
.
half_frame_index
.
value
;
// if SSB periodicity is 5ms, they are transmitted in both half frames
if
(
cfg
->
sch_config
.
ssb_periodicity
.
value
==
5
)
{
if
(
slot
<
10
)
if
(
slot
<
slots_per_hf
)
n_hf
=
0
;
else
n_hf
=
1
;
}
// to set a effective slot number between 0 to 9 in the half frame where the SSB is supposed to be
rel_slot
=
(
n_hf
)
?
(
slot
-
10
)
:
slot
;
rel_slot
=
(
n_hf
)
?
(
slot
-
slots_per_hf
)
:
slot
;
LOG_D
(
PHY
,
"common_signal_procedures: frame %d, slot %d
\n
"
,
frame
,
slot
);
if
(
rel_slot
<
10
&&
rel_slot
>=
0
)
{
if
(
rel_slot
<
slots_per_hf
&&
rel_slot
>=
0
)
{
for
(
int
i
=
0
;
i
<
2
;
i
++
)
{
// max two SSB per frame
ssb_index
=
i
+
2
*
rel_slot
;
// computing the ssb_index
...
...
@@ -160,7 +161,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
else
ssb_frame_periodicity
=
(
cfg
->
sch_config
.
ssb_periodicity
.
value
)
/
10
;
// 10ms is the frame length
if
((
cfg
->
subframe_config
.
duplex_mode
.
value
==
TDD
)
&&
(
nr_slot_select
(
cfg
,
slot
)
==
SF_UL
))
return
;
if
((
cfg
->
subframe_config
.
duplex_mode
.
value
==
TDD
)
&&
(
nr_slot_select
(
cfg
,
slot
,
frame
)
==
SF_UL
))
return
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX
+
offset
,
1
);
...
...
openair1/SCHED_NR/sched_nr.h
View file @
11147c2e
...
...
@@ -34,7 +34,7 @@
#include "PHY/NR_TRANSPORT/nr_dci.h"
nr_slot_t
nr_slot_select
(
nfapi_nr_config_request_t
*
cfg
,
unsigned
char
slot
);
nr_slot_t
nr_slot_select
(
nfapi_nr_config_request_t
*
cfg
,
unsigned
char
slot
,
int
frame
);
void
nr_set_ssb_first_subcarrier
(
nfapi_nr_config_request_t
*
cfg
,
NR_DL_FRAME_PARMS
*
fp
);
void
phy_procedures_gNB_TX
(
PHY_VARS_gNB
*
gNB
,
int
frame_tx
,
int
slot_tx
,
int
do_meas
);
void
phy_procedures_gNB_common_RX
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
);
...
...
openair2/GNB_APP/gnb_config.c
View file @
11147c2e
...
...
@@ -807,7 +807,7 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
NRRRC_CONFIGURATION_REQ
(
msg_p
).
N_RB_DL
[
j
]
=
N_RB_DL
;
//if(N_RB_DL == 217) sf_ahead = 2;
//else if(N_RB_DL == 106) sf_ahead = 4;
if
((
N_RB_DL
!=
217
)
&&
(
N_RB_DL
!=
106
))
if
((
N_RB_DL
!=
2
73
)
&&
(
N_RB_DL
!=
2
17
)
&&
(
N_RB_DL
!=
106
))
AssertFatal
(
0
,
"Failed to parse gNB configuration file %s, gnb %d unknown value
\"
%d
\"
for N_RB_DL choice: 106, 217 !
\n
"
,
RC
.
config_file_name
,
i
,
N_RB_DL
);
/*
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
11147c2e
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
11147c2e
...
...
@@ -72,23 +72,21 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
uint32_t
subCarrierSpacingCommon
,
uint32_t
dmrs_TypeA_Position
);
/**
\brief Generate configuration for SIB1 (
e
NB).
\brief Generate configuration for SIB1 (
g
NB).
@param carrier pointer to Carrier information
@param Mod_id Instance of eNB
@param Component carrier Component carrier to configure
@param configuration Pointer Configuration Request structure
@return size of encoded bit stream in bytes*/
uint8_t
do_SIB1_NR
(
rrc_gNB_carrier_data_t
*
carrier
,
int
Mod_id
,
int
CC_id
,
gNB_RrcConfigurationReq
*
configuration
);
uint8_t
do_SIB1_NR
(
rrc_gNB_carrier_data_t
*
carrier
#if defined(ENABLE_ITTI)
,
gNB_RrcConfigurationReq
*
configuration
#endif
);
void
do_SERVINGCELLCONFIGCOMMON
(
uint8_t
Mod_id
,
int
CC_id
,
#if defined(ENABLE_ITTI)
#if defined(ENABLE_ITTI)
gNB_RrcConfigurationReq
*
configuration
,
#endif
#endif
int
initial_flag
);
void
do_RLC_BEARER
(
uint8_t
Mod_id
,
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
11147c2e
...
...
@@ -56,8 +56,10 @@
//#include "RRCConnectionRequest.h"
//#include "RRCConnectionReestablishmentRequest.h"
#include "NR_RRCReestablishmentRequest.h"
//#include "
BCCH-DL-SCH-Message.h"
#include "NR_
BCCH-DL-SCH-Message.h"
#include "NR_BCCH-BCH-Message.h"
#include "NR_PLMN-IdentityInfo.h"
#include "NR_MCC-MNC-Digit.h"
//#include "MCCH-Message.h"
//#include "MBSFNAreaConfiguration-r9.h"
//#include "SCellToAddMod-r10.h"
...
...
@@ -374,6 +376,9 @@ typedef struct {
uint8_t
*
MIB
;
uint8_t
sizeof_MIB
;
uint8_t
*
SIB1
;
uint8_t
sizeof_SIB1
;
uint8_t
*
ServingCellConfigCommon
;
uint8_t
sizeof_servingcellconfigcommon
;
...
...
@@ -388,6 +393,7 @@ typedef struct {
//are the only static one (memory has been already allocated)
NR_BCCH_BCH_Message_t
mib
;
NR_BCCH_DL_SCH_Message_t
*
siblock1
;
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
View file @
11147c2e
...
...
@@ -262,7 +262,7 @@ RUs = (
THREAD_STRUCT
= (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config
=
"PARALLEL_
SINGLE_THREAD
"
;
parallel_config
=
"PARALLEL_
RU_L1_TRX_SPLIT
"
;
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config
=
"WORKER_DISABLE"
;
}
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
0 → 100644
View file @
11147c2e
This diff is collapsed.
Click to expand it.
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