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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
e924caa6
Commit
e924caa6
authored
May 01, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix phy-simulators
parent
64ce543b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
62 additions
and
26 deletions
+62
-26
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
+2
-2
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+21
-12
openair1/SIMULATION/NR_PHY/prachsim.c
openair1/SIMULATION/NR_PHY/prachsim.c
+13
-0
openair1/SIMULATION/NR_PHY/pucchsim.c
openair1/SIMULATION/NR_PHY/pucchsim.c
+5
-4
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+17
-6
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+1
-1
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+3
-1
No files found.
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
View file @
e924caa6
...
...
@@ -59,11 +59,11 @@ void nr_generate_pucch0(PHY_VARS_NR_UE *ue,
int16_t
amp
,
int
nr_slot_tx
,
uint8_t
m0
,
uint8_t
mcs
,
uint8_t
mcs
,
uint8_t
nrofSymbols
,
uint8_t
startingSymbolIndex
,
uint16_t
startingPRB
,
uint16_t
secondHopPRB
)
{
uint16_t
secondHopPRB
)
{
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch0] start function at slot(nr_slot_tx)=%d
\n
"
,
nr_slot_tx
);
#endif
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
e924caa6
...
...
@@ -86,7 +86,7 @@ uint64_t downlink_frequency[MAX_NUM_CCs][4];
THREAD_STRUCT
thread_struct
;
nfapi_ue_release_request_body_t
release_rntis
;
msc_interface_t
msc_interface
;
uint32_t
N_RB_DL
=
106
;
// dummy functions
int
dummy_nr_ue_ul_indication
(
nr_uplink_indication_t
*
ul_info
)
{
return
(
0
);
}
...
...
@@ -202,6 +202,17 @@ int is_x2ap_enabled(void)
return
0
;
}
int
DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER
(
module_id_t
module_idP
,
int
CC_idP
,
int
UE_id
,
rnti_t
rntiP
,
const
uint8_t
*
sduP
,
sdu_size_t
sdu_lenP
,
const
uint8_t
*
sdu2P
,
sdu_size_t
sdu2_lenP
)
{
return
0
;
}
//nFAPI P7 dummy functions
int
oai_nfapi_dl_tti_req
(
nfapi_nr_dl_tti_request_t
*
dl_config_req
)
{
return
(
0
);
}
...
...
@@ -213,7 +224,7 @@ int oai_nfapi_ul_tti_req(nfapi_nr_ul_tti_request_t *ul_tti_req){ return(0); }
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
void
update_ptrs_config
(
NR_CellGroupConfig_t
*
secondaryCellGroup
,
uint16_t
*
rbSize
,
uint8_t
*
mcsIndex
,
int8_t
*
ptrs_arg
);
void
update_dmrs_config
(
NR_CellGroupConfig_t
*
scg
,
PHY_VARS_NR_UE
*
ue
,
int8_t
*
dmrs_arg
);
extern
void
fix_scd
(
NR_ServingCellConfig_t
*
scd
);
// forward declaration
extern
void
fix_scd
(
NR_ServingCellConfig_t
*
scd
);
// forward declaration
/* specific dlsim DL preprocessor: uses rbStart/rbSize/mcs from command line of
dlsim, does not search for CCE/PUCCH occasion but simply sets to 0 */
...
...
@@ -224,22 +235,22 @@ void nr_dlsim_preprocessor(module_id_t module_id,
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
module_id
]
->
UE_info
;
AssertFatal
(
UE_info
->
num_UEs
==
1
,
"can have only a single UE
\n
"
);
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
0
];
NR_ServingCellConfigCommon_t
*
scc
=
RC
.
nrmac
[
0
]
->
common_channels
[
0
].
ServingCellConfigCommon
;
/* manually set free CCE to 0 */
const
int
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
sched_ctrl
->
search_space
=
get_searchspace
(
sc
hed_ctrl
->
active_bwp
,
target_ss
);
sched_ctrl
->
search_space
=
get_searchspace
(
sc
c
,
sched_ctrl
->
active_bwp
?
sched_ctrl
->
active_bwp
->
bwp_Dedicated
:
NULL
,
target_ss
);
uint8_t
nr_of_candidates
;
find_aggregation_candidates
(
&
sched_ctrl
->
aggregation_level
,
&
nr_of_candidates
,
sched_ctrl
->
search_space
);
sched_ctrl
->
coreset
=
get_coreset
(
sched_ctrl
->
active_bwp
,
sched_ctrl
->
search_space
,
1
/* dedicated */
);
sched_ctrl
->
coreset
=
get_coreset
(
scc
,
sched_ctrl
->
active_bwp
,
sched_ctrl
->
search_space
,
target_ss
);
sched_ctrl
->
cce_index
=
0
;
NR_pdsch_semi_static_t
*
ps
=
&
sched_ctrl
->
pdsch_semi_static
;
const
NR_ServingCellConfigCommon_t
*
scc
=
RC
.
nrmac
[
0
]
->
common_channels
[
0
].
ServingCellConfigCommon
;
nr_set_pdsch_semi_static
(
scc
,
UE_info
->
secondary
CellGroup
[
0
],
UE_info
->
CellGroup
[
0
],
sched_ctrl
->
active_bwp
,
/* tda = */
2
,
/* num_dmrs_cdm_grps_no_data = */
1
,
...
...
@@ -349,8 +360,6 @@ int main(int argc, char **argv)
NR_UE_MAC_INST_t
*
UE_mac
;
int
cyclic_prefix_type
=
NFAPI_CP_NORMAL
;
int
run_initial_sync
=
0
;
int
pusch_tgt_snrx10
=
200
;
int
pucch_tgt_snrx10
=
200
;
int
loglvl
=
OAILOG_INFO
;
//float target_error_rate = 0.01;
...
...
@@ -742,9 +751,9 @@ int main(int argc, char **argv)
AssertFatal
((
gNB
->
if_inst
=
NR_IF_Module_init
(
0
))
!=
NULL
,
"Cannot register interface"
);
gNB
->
if_inst
->
NR_PHY_config_req
=
nr_phy_config_request
;
// common configuration
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
1
,
pusch_tgt_snrx10
,
pucch_tgt_snrx10
,
scc
,
0
,
0
,
NULL
);
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
n_tx
,
scc
,
0
,
0
,
NULL
);
// UE dedicated configuration
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
1
,
pusch_tgt_snrx10
,
pucch_tgt_snrx10
,
NULL
,
1
,
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
,
secondaryCellGroup
);
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
n_tx
,
scc
,
1
,
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
,
secondaryCellGroup
);
// reset preprocessor to the one of DLSIM after it has been set during
// rrc_mac_config_req_gNB
gNB_mac
->
pre_processor_dl
=
nr_dlsim_preprocessor
;
...
...
@@ -899,7 +908,7 @@ int main(int argc, char **argv)
rrc
.
carrier
.
MIB
=
(
uint8_t
*
)
malloc
(
4
);
rrc
.
carrier
.
sizeof_MIB
=
do_MIB_NR
(
&
rrc
,
0
);
nr_rrc_mac_config_req_ue
(
0
,
0
,
0
,
rrc
.
carrier
.
mib
.
message
.
choice
.
mib
,
secondaryCellGroup
);
nr_rrc_mac_config_req_ue
(
0
,
0
,
0
,
rrc
.
carrier
.
mib
.
message
.
choice
.
mib
,
rrc
.
carrier
.
sib1
->
servingCellConfigCommon
,
UE_info
->
CellGroup
[
0
],
secondaryCellGroup
);
nr_dcireq_t
dcireq
;
...
...
openair1/SIMULATION/NR_PHY/prachsim.c
View file @
e924caa6
...
...
@@ -66,8 +66,10 @@ double cpuf;
extern
uint16_t
prach_root_sequence_map0_3
[
838
];
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
//uint8_t nfapi_mode=0;
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
uint16_t
sl_ahead
=
0
;
msc_interface_t
msc_interface
;
uint32_t
N_RB_DL
=
106
;
//void dump_nr_prach_config(NR_DL_FRAME_PARMS *frame_parms,uint8_t subframe);
...
...
@@ -174,6 +176,17 @@ int nr_derive_key(int alg_type, uint8_t alg_id,
return
0
;
}
int
DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER
(
module_id_t
module_idP
,
int
CC_idP
,
int
UE_id
,
rnti_t
rntiP
,
const
uint8_t
*
sduP
,
sdu_size_t
sdu_lenP
,
const
uint8_t
*
sdu2P
,
sdu_size_t
sdu2_lenP
)
{
return
0
;
}
int
main
(
int
argc
,
char
**
argv
){
char
c
;
...
...
openair1/SIMULATION/NR_PHY/pucchsim.c
View file @
e924caa6
...
...
@@ -91,6 +91,7 @@ int main(int argc, char **argv)
//uint8_t nacktoack_flag=0;
int16_t
amp
=
0x7FFF
;
int
nr_slot_tx
=
0
;
int
nr_frame_tx
=
0
;
uint64_t
actual_payload
=
0
,
payload_received
;
int
nr_bit
=
1
;
// maximum value possible is 2
uint8_t
m0
=
0
;
// higher layer paramater initial cyclic shift
...
...
@@ -501,13 +502,13 @@ int main(int argc, char **argv)
for
(
trial
=
0
;
trial
<
n_trials
;
trial
++
)
{
bzero
(
txdataF
[
aa
],
frame_parms
->
ofdm_symbol_size
*
sizeof
(
int
));
if
(
format
==
0
){
nr_generate_pucch0
(
UE
,
txdataF
,
frame_parms
,
PUCCH_GroupHopping
,
hopping_id
,
amp
,
nr_slot_tx
,
m0
,
mcs
,
nrofSymbols
,
startingSymbolIndex
,
startingPRB
);
nr_generate_pucch0
(
UE
,
txdataF
,
frame_parms
,
PUCCH_GroupHopping
,
hopping_id
,
amp
,
nr_slot_tx
,
m0
,
mcs
,
nrofSymbols
,
startingSymbolIndex
,
startingPRB
,
0
);
}
else
if
(
format
==
1
){
nr_generate_pucch1
(
UE
,
txdataF
,
frame_parms
,
UE
->
pucch_config_dedicated
,
actual_payload
,
amp
,
nr_slot_tx
,
m0
,
nrofSymbols
,
startingSymbolIndex
,
startingPRB
,
startingPRB_intraSlotHopping
,
0
,
nr_bit
);
}
else
{
nr_generate_pucch2
(
UE
,
0x1234
,
dmrs_scrambling_id
,
data_scrambling_id
,
txdataF
,
frame_parms
,
UE
->
pucch_config_dedicated
,
actual_payload
,
amp
,
nr_slot_tx
,
nrofSymbols
,
startingSymbolIndex
,
nrofPRB
,
startingPRB
,
nr_bit
);
nr_generate_pucch2
(
UE
,
0x1234
,
dmrs_scrambling_id
,
data_scrambling_id
,
txdataF
,
frame_parms
,
UE
->
pucch_config_dedicated
,
actual_payload
,
amp
,
nr_slot_tx
,
nrofSymbols
,
startingSymbolIndex
,
nrofPRB
,
startingPRB
,
nr_bit
);
}
int
txlev
=
signal_energy
(
&
txdataF
[
aa
][
startingSymbolIndex
*
frame_parms
->
ofdm_symbol_size
],
...
...
@@ -532,7 +533,7 @@ int main(int argc, char **argv)
int
rb2
=
rb
+
startingPRB
;
gNB
->
rb_mask_ul
[
rb2
>>
5
]
|=
(
1
<<
(
rb2
&
31
));
}
gNB_I0_measurements
(
gNB
);
gNB_I0_measurements
(
gNB
,
startingSymbolIndex
,
nrofSymbols
);
if
(
n_trials
==
1
)
printf
(
"rxlev %d (%d dB), sigma2 %f dB, SNR %f, TX %f
\n
"
,
rxlev
,
dB_fixed
(
rxlev
),
sigma2_dB
,
SNR
,
10
*
log10
((
double
)
txlev
*
UE
->
frame_parms
.
ofdm_symbol_size
/
12
));
if
(
format
==
0
){
...
...
@@ -550,7 +551,7 @@ int main(int argc, char **argv)
pucch_pdu
.
initial_cyclic_shift
=
0
;
pucch_pdu
.
start_symbol_index
=
startingSymbolIndex
;
pucch_pdu
.
prb_start
=
startingPRB
;
nr_decode_pucch0
(
gNB
,
nr_slot_tx
,
&
uci_pdu
,
&
pucch_pdu
);
nr_decode_pucch0
(
gNB
,
nr_frame_tx
,
nr_slot_tx
,
&
uci_pdu
,
&
pucch_pdu
);
if
(
sr_flag
==
1
){
if
(
uci_pdu
.
sr
->
sr_indication
==
0
||
uci_pdu
.
sr
->
sr_confidence_level
==
1
)
sr_errors
+=
1
;
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
e924caa6
...
...
@@ -84,6 +84,7 @@ uint64_t downlink_frequency[MAX_NUM_CCs][4];
THREAD_STRUCT
thread_struct
;
nfapi_ue_release_request_body_t
release_rntis
;
msc_interface_t
msc_interface
;
uint32_t
N_RB_DL
=
106
;
extern
void
fix_scd
(
NR_ServingCellConfig_t
*
scd
);
// forward declaration
...
...
@@ -185,6 +186,17 @@ int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP,
return
0
;
}
int
DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER
(
module_id_t
module_idP
,
int
CC_idP
,
int
UE_id
,
rnti_t
rntiP
,
const
uint8_t
*
sduP
,
sdu_size_t
sdu_lenP
,
const
uint8_t
*
sdu2P
,
sdu_size_t
sdu2_lenP
)
{
return
0
;
}
//nFAPI P7 dummy functions
int
oai_nfapi_dl_tti_req
(
nfapi_nr_dl_tti_request_t
*
dl_config_req
)
{
return
(
0
);
}
...
...
@@ -282,8 +294,6 @@ int main(int argc, char **argv)
int
file_offset
=
0
;
double
DS_TDL
=
.
03
;
int
pusch_tgt_snrx10
=
200
;
int
pucch_tgt_snrx10
=
200
;
int
ibwps
=
24
;
int
ibwp_rboffset
=
41
;
int
params_from_file
=
0
;
...
...
@@ -680,9 +690,9 @@ int main(int argc, char **argv)
gNB
->
if_inst
->
NR_PHY_config_req
=
nr_phy_config_request
;
// common configuration
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
n_rx
,
pusch_tgt_snrx10
,
pucch_tgt_snrx10
,
scc
,
0
,
0
,
NULL
);
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
n_tx
,
scc
,
0
,
0
,
NULL
);
// UE dedicated configuration
rrc_mac_config_req_gNB
(
0
,
0
,
1
,
1
,
pusch_tgt_snrx10
,
pucch_tgt_snrx10
,
NULL
,
1
,
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
,
secondaryCellGroup
);
rrc_mac_config_req_gNB
(
0
,
0
,
n_tx
,
n_tx
,
scc
,
1
,
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
,
secondaryCellGroup
);
phy_init_nr_gNB
(
gNB
,
0
,
0
);
N_RB_DL
=
gNB
->
frame_parms
.
N_RB_DL
;
...
...
@@ -740,7 +750,7 @@ int main(int argc, char **argv)
rrc
.
carrier
.
MIB
=
(
uint8_t
*
)
malloc
(
4
);
rrc
.
carrier
.
sizeof_MIB
=
do_MIB_NR
(
&
rrc
,
0
);
nr_rrc_mac_config_req_ue
(
0
,
0
,
0
,
rrc
.
carrier
.
mib
.
message
.
choice
.
mib
,
secondaryCellGroup
);
nr_rrc_mac_config_req_ue
(
0
,
0
,
0
,
rrc
.
carrier
.
mib
.
message
.
choice
.
mib
,
rrc
.
carrier
.
sib1
->
servingCellConfigCommon
,
secondaryCellGroup
,
secondaryCellGroup
);
nr_ue_phy_config_request
(
&
UE_mac
->
phy_config
);
...
...
@@ -1293,7 +1303,8 @@ int main(int argc, char **argv)
(
double
)
errors_scrambling
[
3
]
/
available_bits
/
round_trials
[
0
],
roundStats
[
snrRun
],
effRate
,
effRate
/
TBS
*
100
,
TBS
);
dump_pusch_stats
(
gNB
);
FILE
*
fd
=
fopen
(
"nr_ulsim.log"
,
"w"
);
dump_pusch_stats
(
fd
,
gNB
);
printf
(
"*****************************************
\n
"
);
printf
(
"
\n
"
);
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
e924caa6
...
...
@@ -725,7 +725,7 @@ int nr_rrc_mac_config_req_ue(
ra
->
rach_ConfigDedicated
=
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
;
}
mac
->
scc
=
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
spCellConfigCommon
;
mac
->
physCellId
=
*
mac
->
scc
->
physCellId
;
mac
->
physCellId
=
*
mac
->
scc
->
physCellId
;
config_common_ue
(
mac
,
module_id
,
cc_idP
);
mac
->
crnti
=
scell_group_config
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
;
LOG_I
(
MAC
,
"Configuring CRNTI %x
\n
"
,
mac
->
crnti
);
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
e924caa6
...
...
@@ -304,10 +304,12 @@ nr_rrc_pdcp_config_security(
uint8_t
*
kRRCenc
=
NULL
;
uint8_t
*
kRRCint
=
NULL
;
uint8_t
*
kUPenc
=
NULL
;
uint8_t
*
k_kdf
=
NULL
;
static
int
print_keys
=
1
;
#ifndef PHYSIM
uint8_t
*
k_kdf
=
NULL
;
/* Derive the keys from kgnb */
if
(
SRB_configList
!=
NULL
)
{
k_kdf
=
NULL
;
...
...
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