Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
dc5993be
Commit
dc5993be
authored
Jul 07, 2021
by
Fang-WANG
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
100M ok for rfsim, ssb not at the center
parent
24edd58f
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
341 additions
and
22 deletions
+341
-22
executables/nr-softmodem-common.h
executables/nr-softmodem-common.h
+3
-0
executables/nr-softmodem.c
executables/nr-softmodem.c
+3
-0
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+12
-7
executables/softmodem-common.h
executables/softmodem-common.h
+4
-0
openair1/PHY/INIT/nr_parms.c
openair1/PHY/INIT/nr_parms.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+1
-1
openair1/PHY/phy_extern_nr_ue.h
openair1/PHY/phy_extern_nr_ue.h
+3
-0
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+2
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+1
-1
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+2
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+4
-4
openair2/RRC/LTE/rrc_UE.c
openair2/RRC/LTE/rrc_UE.c
+2
-2
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+3
-2
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+2
-2
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.273PRB_disaligned.usrpb210.conf
...GC/CONF/gnb.sa.band78.fr1.273PRB_disaligned.usrpb210.conf
+297
-0
No files found.
executables/nr-softmodem-common.h
View file @
dc5993be
...
@@ -137,6 +137,9 @@ extern int sync_var;
...
@@ -137,6 +137,9 @@ extern int sync_var;
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
extern
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
extern
int
point_a_15khz
;
extern
int
kssb_15khz
;
extern
int
rx_input_level_dBm
;
extern
int
rx_input_level_dBm
;
extern
uint64_t
num_missed_slots
;
// counter for the number of missed slots
extern
uint64_t
num_missed_slots
;
// counter for the number of missed slots
...
...
executables/nr-softmodem.c
View file @
dc5993be
...
@@ -112,6 +112,9 @@ int8_t threequarter_fs=0;
...
@@ -112,6 +112,9 @@ int8_t threequarter_fs=0;
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
int
point_a_15khz
;
int
kssb_15khz
;
//Temp fix for inexistent NR upper layer
//Temp fix for inexistent NR upper layer
unsigned
char
NB_gNB_INST
=
1
;
unsigned
char
NB_gNB_INST
=
1
;
...
...
executables/nr-uesoftmodem.c
View file @
dc5993be
...
@@ -127,6 +127,8 @@ int dumpframe = 0;
...
@@ -127,6 +127,8 @@ int dumpframe = 0;
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
int
rx_input_level_dBm
;
int
rx_input_level_dBm
;
int
point_a_15khz
;
int
kssb_15khz
;
#if MAX_NUM_CCs == 1
#if MAX_NUM_CCs == 1
rx_gain_t
rx_gain_mode
[
MAX_NUM_CCs
][
4
]
=
{{
max_gain
,
max_gain
,
max_gain
,
max_gain
}};
rx_gain_t
rx_gain_mode
[
MAX_NUM_CCs
][
4
]
=
{{
max_gain
,
max_gain
,
max_gain
,
max_gain
}};
...
@@ -489,13 +491,16 @@ int main( int argc, char **argv ) {
...
@@ -489,13 +491,16 @@ int main( int argc, char **argv ) {
nrUE_config
->
carrier_config
.
ul_grid_size
[
nrUE_config
->
ssb_config
.
scs_common
]
=
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
;
nrUE_config
->
carrier_config
.
ul_grid_size
[
nrUE_config
->
ssb_config
.
scs_common
]
=
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
;
nrUE_config
->
carrier_config
.
dl_frequency
=
(
downlink_frequency
[
0
][
0
]
-
(
6
*
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
*
(
15000
<<
nrUE_config
->
ssb_config
.
scs_common
)))
/
1000
;
nrUE_config
->
carrier_config
.
dl_frequency
=
(
downlink_frequency
[
0
][
0
]
-
(
6
*
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
*
(
15000
<<
nrUE_config
->
ssb_config
.
scs_common
)))
/
1000
;
nrUE_config
->
carrier_config
.
uplink_frequency
=
(
downlink_frequency
[
0
][
0
]
-
(
6
*
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
*
(
15000
<<
nrUE_config
->
ssb_config
.
scs_common
)))
/
1000
;
nrUE_config
->
carrier_config
.
uplink_frequency
=
(
downlink_frequency
[
0
][
0
]
-
(
6
*
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
*
(
15000
<<
nrUE_config
->
ssb_config
.
scs_common
)))
/
1000
;
nrUE_config
->
ssb_table
.
ssb_offset_point_a
=
(
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
-
20
)
>>
1
;
nrUE_config
->
ssb_table
.
ssb_offset_point_a
=
point_a_15khz
>>
1
;
// used as 30kHZ //(UE[CC_id]->frame_parms.N_RB_DL - 20)>>1;
if
((
UE
[
CC_id
]
->
frame_parms
.
N_RB_DL
&
0x01
)
==
1
)
nrUE_config
->
ssb_table
.
ssb_subcarrier_offset
=
kssb_15khz
;
// used as 15kHZ
{
nrUE_config
->
ssb_table
.
ssb_subcarrier_offset
=
12
;
// 15khz
LOG_I
(
PHY
,
"freq %d %d
\n
"
,
downlink_frequency
[
0
][
0
]
/
1000
,
nrUE_config
->
carrier_config
.
dl_frequency
);
}
// if ((UE[CC_id]->frame_parms.N_RB_DL & 0x01) == 1)
else
// {
nrUE_config
->
ssb_table
.
ssb_subcarrier_offset
=
0
;
// nrUE_config->ssb_table.ssb_subcarrier_offset = 12; // 15khz
// }
// else
// nrUE_config->ssb_table.ssb_subcarrier_offset = 0;
// Initialize values, will be updated upon SIB1 reception
// Initialize values, will be updated upon SIB1 reception
nrUE_config
->
cell_config
.
frame_duplex_type
=
TDD
;
nrUE_config
->
cell_config
.
frame_duplex_type
=
TDD
;
...
...
executables/softmodem-common.h
View file @
dc5993be
...
@@ -138,6 +138,8 @@ extern int usrp_tx_thread;
...
@@ -138,6 +138,8 @@ extern int usrp_tx_thread;
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \
{"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \
{"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \
{"C" , CONFIG_HLP_DLF, 0, u64ptr:&(downlink_frequency[0][0]), defuintval:3619200000, TYPE_UINT64, 0}, \
{"C" , CONFIG_HLP_DLF, 0, u64ptr:&(downlink_frequency[0][0]), defuintval:3619200000, TYPE_UINT64, 0}, \
{"pointA" , CONFIG_HLP_DLF, 0, iptr:&point_a_15khz, defintval:86, TYPE_INT, 0}, \
{"kssb" , CONFIG_HLP_DLF, 0, iptr:&kssb_15khz, defintval:0, TYPE_INT, 0}, \
{"CO" , CONFIG_HLP_ULF, 0, iptr:&(uplink_frequency_offset[0][0]), defintval:0, TYPE_INT, 0}, \
{"CO" , CONFIG_HLP_ULF, 0, iptr:&(uplink_frequency_offset[0][0]), defintval:0, TYPE_INT, 0}, \
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \
...
@@ -259,6 +261,8 @@ extern char *get_softmodem_function(uint64_t *sofmodemfunc_mask_ptr);
...
@@ -259,6 +261,8 @@ extern char *get_softmodem_function(uint64_t *sofmodemfunc_mask_ptr);
extern
void
set_softmodem_sighandler
(
void
);
extern
void
set_softmodem_sighandler
(
void
);
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
extern
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
extern
int
point_a_15khz
;
extern
int
kssb_15khz
;
extern
int
usrp_tx_thread
;
extern
int
usrp_tx_thread
;
extern
uint16_t
sl_ahead
;
extern
uint16_t
sl_ahead
;
extern
uint16_t
sf_ahead
;
extern
uint16_t
sf_ahead
;
...
...
openair1/PHY/INIT/nr_parms.c
View file @
dc5993be
...
@@ -318,7 +318,7 @@ int nr_init_frame_parms_ue(NR_DL_FRAME_PARMS *fp,
...
@@ -318,7 +318,7 @@ int nr_init_frame_parms_ue(NR_DL_FRAME_PARMS *fp,
fp
->
ssb_start_subcarrier
=
(
12
*
config
->
ssb_table
.
ssb_offset_point_a
+
sco
/
2
);
fp
->
ssb_start_subcarrier
=
(
12
*
config
->
ssb_table
.
ssb_offset_point_a
+
sco
/
2
);
LOG_I
(
PHY
,
"sco %d, ssb_subcarrier_offset %d, ssb_offset_point_a %d, ssb_start_subcarrier %d, ofdmsize %d
\n
"
,
LOG_I
(
PHY
,
"
ue init
sco %d, ssb_subcarrier_offset %d, ssb_offset_point_a %d, ssb_start_subcarrier %d, ofdmsize %d
\n
"
,
sco
,
// sco is 15khz
sco
,
// sco is 15khz
config
->
ssb_table
.
ssb_subcarrier_offset
,
config
->
ssb_table
.
ssb_subcarrier_offset
,
config
->
ssb_table
.
ssb_offset_point_a
,
config
->
ssb_table
.
ssb_offset_point_a
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
dc5993be
...
@@ -645,7 +645,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
...
@@ -645,7 +645,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
return
((
1
+
dlsch
->
max_ldpc_iterations
));
return
((
1
+
dlsch
->
max_ldpc_iterations
));
}
else
{
}
else
{
LOG_I
(
PHY
,
"[UE %d] DLSCH: Setting ACK for nr_slot_rx %d TBS %d mcs %d nb_rb %d harq_process->round %d
\n
"
,
LOG_I
(
PHY
,
"[UE %d] DLSCH: Setting ACK for
frame
nr_slot_rx %d TBS %d mcs %d nb_rb %d harq_process->round %d
\n
"
,
phy_vars_ue
->
Mod_id
,
nr_slot_rx
,
harq_process
->
TBS
,
harq_process
->
mcs
,
harq_process
->
nb_rb
,
harq_process
->
round
);
phy_vars_ue
->
Mod_id
,
nr_slot_rx
,
harq_process
->
TBS
,
harq_process
->
mcs
,
harq_process
->
nb_rb
,
harq_process
->
round
);
harq_process
->
status
=
SCH_IDLE
;
harq_process
->
status
=
SCH_IDLE
;
...
...
openair1/PHY/phy_extern_nr_ue.h
View file @
dc5993be
...
@@ -40,6 +40,9 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
...
@@ -40,6 +40,9 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
extern
int32_t
uplink_frequency_offset
[
MAX_NUM_CCs
][
4
];
extern
int
point_a_15khz
;
extern
int
kssb_15khz
;
extern
const
short
conjugate
[
8
],
conjugate2
[
8
];
extern
const
short
conjugate
[
8
],
conjugate2
[
8
];
extern
int
number_of_cards
;
extern
int
number_of_cards
;
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
dc5993be
...
@@ -363,6 +363,8 @@ void nr_ue_pbch_procedures(uint8_t gNB_id,
...
@@ -363,6 +363,8 @@ void nr_ue_pbch_procedures(uint8_t gNB_id,
if
(
ret
==
0
)
{
if
(
ret
==
0
)
{
LOG_I
(
PHY
,
"[UE %d] frame %d, nr_slot_rx %d, OK decoding PBCH!
\n
"
,
ue
->
Mod_id
,
frame_rx
,
nr_slot_rx
);
ue
->
pbch_vars
[
gNB_id
]
->
pdu_errors_conseq
=
0
;
ue
->
pbch_vars
[
gNB_id
]
->
pdu_errors_conseq
=
0
;
// Switch to PRACH state if it is first PBCH after initial synch and no timing correction is performed
// Switch to PRACH state if it is first PBCH after initial synch and no timing correction is performed
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
dc5993be
...
@@ -3396,7 +3396,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
...
@@ -3396,7 +3396,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
break
;
break
;
}
}
LOG_
D
(
MAC
,
"Coreset0: index_4msb=%d, num_rbs=%d, num_symb=%d, rb_offset=%d
\n
"
,
LOG_
I
(
MAC
,
"Coreset0: index_4msb=%d, num_rbs=%d, num_symb=%d, rb_offset=%d
\n
"
,
index_4msb
,
type0_PDCCH_CSS_config
->
num_rbs
,
type0_PDCCH_CSS_config
->
num_symbols
,
type0_PDCCH_CSS_config
->
rb_offset
);
index_4msb
,
type0_PDCCH_CSS_config
->
num_rbs
,
type0_PDCCH_CSS_config
->
num_symbols
,
type0_PDCCH_CSS_config
->
rb_offset
);
AssertFatal
(
type0_PDCCH_CSS_config
->
num_rbs
!=
-
1
,
"Type0 PDCCH coreset num_rbs undefined"
);
AssertFatal
(
type0_PDCCH_CSS_config
->
num_rbs
!=
-
1
,
"Type0 PDCCH coreset num_rbs undefined"
);
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
dc5993be
...
@@ -392,8 +392,9 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
...
@@ -392,8 +392,9 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
cfg
->
ssb_table
.
ssb_offset_point_a
=
scc_SIB
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
;
cfg
->
ssb_table
.
ssb_offset_point_a
=
scc_SIB
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
;
cfg
->
ssb_table
.
ssb_period
=
scc_SIB
->
ssb_PeriodicityServingCell
;
cfg
->
ssb_table
.
ssb_period
=
scc_SIB
->
ssb_PeriodicityServingCell
;
cfg
->
ssb_table
.
ssb_subcarrier_offset
=
0
;
// TODO currently not in RRC?
//
cfg->ssb_table.ssb_subcarrier_offset = 0; // TODO currently not in RRC?
LOG_I
(
PHY
,
"in SIB, ssb_offset_point_a %d, ssb_subcarrier_offset %d
\n
"
,
cfg
->
ssb_table
.
ssb_offset_point_a
,
cfg
->
ssb_table
.
ssb_subcarrier_offset
);
AssertFatal
(
scc_SIB
->
ssb_PositionsInBurst
.
groupPresence
==
NULL
,
"Cannot handle more than 8 SSBs for now (%x.%x.%x.%x.%x.%x.%x.%x)
\n
"
,
AssertFatal
(
scc_SIB
->
ssb_PositionsInBurst
.
groupPresence
==
NULL
,
"Cannot handle more than 8 SSBs for now (%x.%x.%x.%x.%x.%x.%x.%x)
\n
"
,
scc_SIB
->
ssb_PositionsInBurst
.
groupPresence
->
buf
[
0
],
scc_SIB
->
ssb_PositionsInBurst
.
groupPresence
->
buf
[
0
],
scc_SIB
->
ssb_PositionsInBurst
.
groupPresence
->
buf
[
1
],
scc_SIB
->
ssb_PositionsInBurst
.
groupPresence
->
buf
[
1
],
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
dc5993be
...
@@ -173,7 +173,7 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
...
@@ -173,7 +173,7 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
ssb_index
,
ssb_index
,
ssb_offset_point_a
);
ssb_offset_point_a
);
LOG_I
(
MAC
,
"ssb_start_subcarrier %d, ssb_subcarrier_offset %d, ssb_offset_point_a %d
\n
"
,
LOG_I
(
MAC
,
"
in mib :
ssb_start_subcarrier %d, ssb_subcarrier_offset %d, ssb_offset_point_a %d
\n
"
,
ssb_start_subcarrier
,
ssb_subcarrier_offset
,
ssb_offset_point_a
);
ssb_start_subcarrier
,
ssb_subcarrier_offset
,
ssb_offset_point_a
);
mac
->
type0_pdcch_ss_mux_pattern
=
mac
->
type0_PDCCH_CSS_config
.
type0_pdcch_ss_mux_pattern
;
mac
->
type0_pdcch_ss_mux_pattern
=
mac
->
type0_PDCCH_CSS_config
.
type0_pdcch_ss_mux_pattern
;
mac
->
type0_pdcch_ss_sfn_c
=
mac
->
type0_PDCCH_CSS_config
.
sfn_c
;
mac
->
type0_pdcch_ss_sfn_c
=
mac
->
type0_PDCCH_CSS_config
.
sfn_c
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
dc5993be
...
@@ -387,15 +387,15 @@ void schedule_control_sib1(module_id_t module_id,
...
@@ -387,15 +387,15 @@ void schedule_control_sib1(module_id_t module_id,
TBS
=
nr_compute_tbs
(
nr_get_Qm_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
TBS
=
nr_compute_tbs
(
nr_get_Qm_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
nr_get_code_rate_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
nr_get_code_rate_dl
(
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
mcs
,
gNB_mac
->
sched_ctrlCommon
->
pdsch_semi_static
.
mcsTableIdx
),
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
*
dmrs_length
,
0
,
0
,
1
)
>>
3
;
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
*
dmrs_length
,
0
,
0
,
1
)
>>
3
;
}
while
(
rbS
tart
+
rbS
ize
<
bwpSize
&&
!
vrb_map
[
rbStart
+
rbSize
+
type0_PDCCH_CSS_config
->
cset_start_rb
]
&&
TBS
<
gNB_mac
->
sched_ctrlCommon
->
num_total_bytes
);
}
while
(
rbSize
<
bwpSize
&&
!
vrb_map
[
rbStart
+
rbSize
+
type0_PDCCH_CSS_config
->
cset_start_rb
]
&&
TBS
<
gNB_mac
->
sched_ctrlCommon
->
num_total_bytes
);
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbSize
=
rbSize
;
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbSize
=
rbSize
;
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbStart
=
rbStart
;
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbStart
=
rbStart
;
LOG_D
(
MAC
,
"startSymbolIndex = %i
\n
"
,
startSymbolIndex
);
LOG_D
(
MAC
,
"startSymbolIndex = %i
\n
"
,
startSymbolIndex
);
LOG_D
(
MAC
,
"nrOfSymbols = %i
\n
"
,
nrOfSymbols
);
LOG_D
(
MAC
,
"nrOfSymbols = %i
\n
"
,
nrOfSymbols
);
LOG_
D
(
MAC
,
"rbSize = %i
\n
"
,
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rb
Size
);
LOG_
I
(
MAC
,
"rbSize = %i, %d, bwp %d %d
\n
"
,
rbStart
,
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbSize
,
type0_PDCCH_CSS_config
->
cset_start_rb
,
bwp
Size
);
LOG_
D
(
MAC
,
"TBS = %i
\n
"
,
TBS
);
LOG_
I
(
MAC
,
"TBS = %i, totalbyte %d
\n
"
,
TBS
,
gNB_mac
->
sched_ctrlCommon
->
num_total_bytes
);
LOG_D
(
MAC
,
"dmrs_length %d
\n
"
,
dmrs_length
);
LOG_D
(
MAC
,
"dmrs_length %d
\n
"
,
dmrs_length
);
LOG_D
(
MAC
,
"N_PRB_DMRS = %d
\n
"
,
N_PRB_DMRS
);
LOG_D
(
MAC
,
"N_PRB_DMRS = %d
\n
"
,
N_PRB_DMRS
);
LOG_D
(
MAC
,
"mappingtype = %d
\n
"
,
mappingtype
);
LOG_D
(
MAC
,
"mappingtype = %d
\n
"
,
mappingtype
);
...
@@ -537,7 +537,7 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
...
@@ -537,7 +537,7 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
LOG_D
(
MAC
,
"CyclicPrefix: %i
\n
"
,
pdcch_pdu_rel15
->
CyclicPrefix
);
LOG_D
(
MAC
,
"CyclicPrefix: %i
\n
"
,
pdcch_pdu_rel15
->
CyclicPrefix
);
LOG_D
(
MAC
,
"StartSymbolIndex: %i
\n
"
,
pdcch_pdu_rel15
->
StartSymbolIndex
);
LOG_D
(
MAC
,
"StartSymbolIndex: %i
\n
"
,
pdcch_pdu_rel15
->
StartSymbolIndex
);
LOG_D
(
MAC
,
"DurationSymbols: %i
\n
"
,
pdcch_pdu_rel15
->
DurationSymbols
);
LOG_D
(
MAC
,
"DurationSymbols: %i
\n
"
,
pdcch_pdu_rel15
->
DurationSymbols
);
for
(
int
n
=
0
;
n
<
6
;
n
++
)
LOG_
D
(
MAC
,
"FreqDomainResource[%i]: %x
\n
"
,
n
,
pdcch_pdu_rel15
->
FreqDomainResource
[
n
]);
for
(
int
n
=
0
;
n
<
6
;
n
++
)
LOG_
I
(
MAC
,
"FreqDomainResource[%i]: %x
\n
"
,
n
,
pdcch_pdu_rel15
->
FreqDomainResource
[
n
]);
LOG_D
(
MAC
,
"CceRegMappingType: %i
\n
"
,
pdcch_pdu_rel15
->
CceRegMappingType
);
LOG_D
(
MAC
,
"CceRegMappingType: %i
\n
"
,
pdcch_pdu_rel15
->
CceRegMappingType
);
LOG_D
(
MAC
,
"RegBundleSize: %i
\n
"
,
pdcch_pdu_rel15
->
RegBundleSize
);
LOG_D
(
MAC
,
"RegBundleSize: %i
\n
"
,
pdcch_pdu_rel15
->
RegBundleSize
);
LOG_D
(
MAC
,
"InterleaverSize: %i
\n
"
,
pdcch_pdu_rel15
->
InterleaverSize
);
LOG_D
(
MAC
,
"InterleaverSize: %i
\n
"
,
pdcch_pdu_rel15
->
InterleaverSize
);
...
...
openair2/RRC/LTE/rrc_UE.c
View file @
dc5993be
...
@@ -2577,9 +2577,9 @@ int decode_BCCH_DLSCH_Message(
...
@@ -2577,9 +2577,9 @@ int decode_BCCH_DLSCH_Message(
Sdu_len
);
Sdu_len
);
if
((
dec_rval
.
code
!=
RC_OK
)
&&
(
dec_rval
.
consumed
==
0
))
{
if
((
dec_rval
.
code
!=
RC_OK
)
&&
(
dec_rval
.
consumed
==
0
))
{
LOG_E
(
RRC
,
"[UE %"
PRIu8
"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)
\n
"
,
LOG_E
(
RRC
,
"[UE %"
PRIu8
"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)
%d
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
module_id
,
dec_rval
.
consumed
);
dec_rval
.
consumed
,
Sdu_len
);
log_dump
(
RRC
,
Sdu
,
Sdu_len
,
LOG_DUMP_CHAR
,
" Received bytes:
\n
"
);
log_dump
(
RRC
,
Sdu
,
Sdu_len
,
LOG_DUMP_CHAR
,
" Received bytes:
\n
"
);
// free the memory
// free the memory
SEQUENCE_free
(
&
asn_DEF_LTE_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
,
1
);
SEQUENCE_free
(
&
asn_DEF_LTE_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
,
1
);
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
dc5993be
...
@@ -419,8 +419,9 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -419,8 +419,9 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
nrMultiBandInfo
->
freqBandIndicatorNR
=
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
i
];
nrMultiBandInfo
->
freqBandIndicatorNR
=
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
i
];
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
frequencyBandList
.
list
,
nrMultiBandInfo
);
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
frequencyBandList
.
list
,
nrMultiBandInfo
);
}
}
//sib1->servingCellConfigCommon->downlinkConfigCommon.frequencyInfoDL.offsetToPointA = configuration->scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->offsetToCarrier;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
=
((
*
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
=
86
;
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
)
*
15
/
30
/
12
-
10
)
*
2
;
//sib1->servingCellConfigCommon->downlinkConfigCommon.frequencyInfoDL.offsetToPointA = 86;
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
}
}
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
dc5993be
...
@@ -1159,9 +1159,9 @@ int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(
...
@@ -1159,9 +1159,9 @@ int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(
}
}
if
((
dec_rval
.
code
!=
RC_OK
)
&&
(
dec_rval
.
consumed
==
0
))
{
if
((
dec_rval
.
code
!=
RC_OK
)
&&
(
dec_rval
.
consumed
==
0
))
{
LOG_E
(
NR_RRC
,
"[UE %"
PRIu8
"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)
\n
"
,
LOG_E
(
NR_RRC
,
"[UE %"
PRIu8
"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)
%d
\n
"
,
module_id
,
module_id
,
dec_rval
.
consumed
);
dec_rval
.
consumed
,
Sdu_len
);
log_dump
(
NR_RRC
,
Sdu
,
Sdu_len
,
LOG_DUMP_CHAR
,
" Received bytes:
\n
"
);
log_dump
(
NR_RRC
,
Sdu
,
Sdu_len
,
LOG_DUMP_CHAR
,
" Received bytes:
\n
"
);
// free the memory
// free the memory
SEQUENCE_free
(
&
asn_DEF_LTE_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
,
1
);
SEQUENCE_free
(
&
asn_DEF_LTE_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
,
1
);
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.273PRB_disaligned.usrpb210.conf
0 → 100644
View file @
dc5993be
Active_gNBs
= (
"gNB-Eurecom-DU"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
gNBs
=
(
{
//////////
Identification
parameters
:
gNB_ID
=
0
xe00
;
gNB_name
=
"gNB-Eurecom-DU"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= ({
mcc
=
208
;
mnc
=
99
;
mnc_length
=
2
;
snssaiList
= (
{
sst
=
1
;
sd
=
0
x1
; //
0
false
,
else
true
},
{
sst
=
1
;
sd
=
0
x112233
; //
0
false
,
else
true
}
);
});
nr_cellid
=
12345678
L
;
//////////
Physical
parameters
:
ssb_SubcarrierOffset
=
0
;
pdsch_AntennaPorts
=
1
;
pusch_AntennaPorts
=
1
;
pdcch_ConfigSIB1
= (
{
controlResourceSetZero
=
10
;
searchSpaceZero
=
0
;
}
);
servingCellConfigCommon
= (
{
#spCellConfigCommon
physCellId
=
0
;
# downlinkConfigCommon
#frequencyInfoDL
# this is 3600 MHz + 86 PRBs@30kHz SCS (same as initial BWP)
absoluteFrequencySSB
=
629952
; //
3479520
dl_frequencyBand
=
78
;
# this is 3600 MHz
dl_absoluteFrequencyPointA
=
629352
; //
#scs-SpecificCarrierList
dl_offstToCarrier
=
0
;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_subcarrierSpacing
=
1
;
dl_carrierBandwidth
=
273
;
#initialDownlinkBWP
#genericParameters
# this is RBstart=27,L=48 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth
=
1099
;
#13549; # 6366 12925 12956 28875 12952
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing
=
1
;
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero
=
0
;
initialDLBWPsearchSpaceZero
=
0
;
#pdsch-ConfigCommon
#pdschTimeDomainAllocationList (up to 16 entries)
initialDLBWPk0_0
=
0
;
#for DL slot
initialDLBWPmappingType_0
=
0
;
#0=typeA,1=typeB
initialDLBWPstartSymbolAndLength_0
=
40
;
#this is SS=1,L=13
initialDLBWPk0_1
=
0
;
#for mixed slot
initialDLBWPmappingType_1
=
0
;
initialDLBWPstartSymbolAndLength_1
=
57
;
#this is SS=1,L=5
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand
=
78
;
#scs-SpecificCarrierList
ul_offstToCarrier
=
0
;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_subcarrierSpacing
=
1
;
ul_carrierBandwidth
=
273
;
pMax
=
20
;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth
=
1099
;
#13549;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing
=
1
;
#rach-ConfigCommon
#rach-ConfigGeneric
prach_ConfigurationIndex
=
98
;
#prach_msg1_FDM
#0 = one, 1=two, 2=four, 3=eight
prach_msg1_FDM
=
0
;
prach_msg1_FrequencyStart
=
0
;
zeroCorrelationZoneConfig
=
13
;
preambleReceivedTargetPower
= -
96
;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax
=
6
;
#powerRampingStep
# 0=dB0,1=dB2,2=dB4,3=dB6
powerRampingStep
=
1
;
#ra_ReponseWindow
#1,2,4,8,10,20,40,80
ra_ResponseWindow
=
4
;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
4
;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB
=
15
;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer
=
7
;
rsrp_ThresholdSSB
=
19
;
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR
=
2
;
prach_RootSequenceIndex
=
1
;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
msg1_SubcarrierSpacing
=
1
,
# restrictedSetConfig
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig
=
0
,
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0
=
6
;
# used for UL slot
initialULBWPmappingType_0
=
1
initialULBWPstartSymbolAndLength_0
=
41
;
# this is SS=0 L=13
initialULBWPk2_1
=
6
;
# used for mixed slot
initialULBWPmappingType_1
=
1
;
initialULBWPstartSymbolAndLength_1
=
69
;
# this is SS=0 L=12
initialULBWPk2_2
=
7
;
# used for Msg.3 during RA
initialULBWPmappingType_2
=
1
;
initialULBWPstartSymbolAndLength_2
=
52
;
# this is SS=10 L=4
msg3_DeltaPreamble
=
1
;
p0_NominalWithGrant
=-
90
;
# pucch-ConfigCommon setup :
# pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping
=
0
;
hoppingId
=
40
;
p0_nominal
= -
90
;
# ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR
=
2
;
ssb_PositionsInBurst_Bitmap
=
1
; //
255
;
# ssb_periodicityServingCell
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
ssb_periodicityServingCell
=
2
;
# dmrs_TypeA_position
# 0 = pos2, 1 = pos3
dmrs_TypeA_Position
=
0
;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing
=
1
;
#tdd-UL-DL-ConfigurationCommon
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
referenceSubcarrierSpacing
=
1
;
# pattern1
# dl_UL_TransmissionPeriodicity
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
dl_UL_TransmissionPeriodicity
=
6
;
nrofDownlinkSlots
=
7
;
nrofDownlinkSymbols
=
6
;
nrofUplinkSlots
=
2
;
nrofUplinkSymbols
=
4
;
ssPBCH_BlockPower
= -
25
;
}
);
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
amf_ip_address
= ( {
ipv4
=
"192.168.70.132"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
GNB_INTERFACE_NAME_FOR_NG_AMF
=
"demo-oai"
;
GNB_IPV4_ADDRESS_FOR_NG_AMF
=
"192.168.70.129/24"
;
GNB_INTERFACE_NAME_FOR_NGU
=
"demo-oai"
;
GNB_IPV4_ADDRESS_FOR_NGU
=
"192.168.70.129/24"
;
GNB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
}
);
MACRLCs
= (
{
num_cc
=
1
;
tr_s_preference
=
"local_L1"
;
tr_n_preference
=
"local_RRC"
;
}
);
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"local_mac"
;
pusch_proc_threads
=
8
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
0
att_rx
=
0
;
bands
= [
7
];
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
114
;
eNB_instances
= [
0
];
#beamforming 1x4 matrix:
bf_weights
= [
0
x00007fff
,
0
x0000
,
0
x0000
,
0
x0000
];
clock_src
=
"internal"
;
}
);
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"
;
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config
=
"WORKER_ENABLE"
;
}
);
rfsimulator
:
{
serveraddr
=
"server"
;
serverport
=
"4043"
;
options
= ();
#("saviq"); or/and "chanmod"
modelname
=
"AWGN"
;
IQfile
=
"/tmp/rfsimulator.iqs"
;
};
log_config
:
{
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
ngap_log_level
=
"debug"
;
ngap_log_verbosity
=
"medium"
;
};
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