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
17675e59
Commit
17675e59
authored
Feb 25, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix-Nid_cell-different_from_0' into integration_2022_wk08_b
parents
af0048c8
05d61a08
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
32 additions
and
32 deletions
+32
-32
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+0
-13
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+16
-0
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+2
-3
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+10
-1
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+4
-15
No files found.
openair1/PHY/INIT/nr_init_ue.c
View file @
17675e59
...
@@ -134,8 +134,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -134,8 +134,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
int
gNB_id
;
int
gNB_id
;
int
th_id
;
int
th_id
;
uint32_t
****
pusch_dmrs
;
uint32_t
****
pusch_dmrs
;
uint16_t
N_n_scid
[
2
]
=
{
0
,
1
};
// [HOTFIX] This is a temporary implementation of scramblingID0 and scramblingID1 which are given by DMRS-UplinkConfig
int
n_scid
;
abstraction_flag
=
0
;
abstraction_flag
=
0
;
LOG_I
(
PHY
,
"Initializing UE vars (abstraction %u) for gNB TXant %u, UE RXant %u
\n
"
,
abstraction_flag
,
fp
->
nb_antennas_tx
,
fp
->
nb_antennas_rx
);
LOG_I
(
PHY
,
"Initializing UE vars (abstraction %u) for gNB TXant %u, UE RXant %u
\n
"
,
abstraction_flag
,
fp
->
nb_antennas_tx
,
fp
->
nb_antennas_rx
);
phy_init_nr_top
(
ue
);
phy_init_nr_top
(
ue
);
...
@@ -191,7 +189,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -191,7 +189,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
///////////
///////////
ue
->
nr_gold_pusch_dmrs
=
(
uint32_t
****
)
malloc16
(
fp
->
slots_per_frame
*
sizeof
(
uint32_t
***
));
ue
->
nr_gold_pusch_dmrs
=
(
uint32_t
****
)
malloc16
(
fp
->
slots_per_frame
*
sizeof
(
uint32_t
***
));
pusch_dmrs
=
ue
->
nr_gold_pusch_dmrs
;
pusch_dmrs
=
ue
->
nr_gold_pusch_dmrs
;
n_scid
=
0
;
// This quantity is indicated by higher layer parameter dmrs-SeqInitialization
for
(
slot
=
0
;
slot
<
fp
->
slots_per_frame
;
slot
++
)
{
for
(
slot
=
0
;
slot
<
fp
->
slots_per_frame
;
slot
++
)
{
pusch_dmrs
[
slot
]
=
(
uint32_t
***
)
malloc16
(
fp
->
symbols_per_slot
*
sizeof
(
uint32_t
**
));
pusch_dmrs
[
slot
]
=
(
uint32_t
***
)
malloc16
(
fp
->
symbols_per_slot
*
sizeof
(
uint32_t
**
));
...
@@ -208,7 +205,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -208,7 +205,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
}
}
}
}
nr_init_pusch_dmrs
(
ue
,
N_n_scid
,
n_scid
);
///////////
///////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
...
@@ -271,9 +267,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -271,9 +267,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
}
}
}
}
ue
->
scramblingID_pdcch
=
fp
->
Nid_cell
;
nr_gold_pdcch
(
ue
,
fp
->
Nid_cell
);
//PDSCH DMRS init (eNB offset = 0)
//PDSCH DMRS init (eNB offset = 0)
ue
->
nr_gold_pdsch
[
0
]
=
(
uint32_t
****
)
malloc16
(
fp
->
slots_per_frame
*
sizeof
(
uint32_t
***
));
ue
->
nr_gold_pdsch
[
0
]
=
(
uint32_t
****
)
malloc16
(
fp
->
slots_per_frame
*
sizeof
(
uint32_t
***
));
uint32_t
****
pdsch_dmrs
=
ue
->
nr_gold_pdsch
[
0
];
uint32_t
****
pdsch_dmrs
=
ue
->
nr_gold_pdsch
[
0
];
...
@@ -293,12 +286,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -293,12 +286,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
}
}
}
}
// initializing the scrambling IDs for PDSCH DMRS
for
(
int
i
=
0
;
i
<
2
;
i
++
)
ue
->
scramblingID
[
i
]
=
fp
->
Nid_cell
;
nr_gold_pdsch
(
ue
,
ue
->
scramblingID
);
// DLSCH
// DLSCH
for
(
gNB_id
=
0
;
gNB_id
<
ue
->
n_connected_gNB
;
gNB_id
++
)
{
for
(
gNB_id
=
0
;
gNB_id
<
ue
->
n_connected_gNB
;
gNB_id
++
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
17675e59
...
@@ -337,6 +337,22 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
...
@@ -337,6 +337,22 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
sync_pos_frame
=
n_symb_prefix0
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples0
)
+
(
ue
->
symbol_offset
-
n_symb_prefix0
)
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples
);
sync_pos_frame
=
n_symb_prefix0
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples0
)
+
(
ue
->
symbol_offset
-
n_symb_prefix0
)
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples
);
// for a correct computation of frame number to sync with the one decoded at MIB we need to take into account in which of the n_frames we got sync
// for a correct computation of frame number to sync with the one decoded at MIB we need to take into account in which of the n_frames we got sync
ue
->
init_sync_frame
=
n_frames
-
1
-
is
;
ue
->
init_sync_frame
=
n_frames
-
1
-
is
;
// compute the scramblingID_pdcch and the gold pdcch
ue
->
scramblingID_pdcch
=
fp
->
Nid_cell
;
nr_gold_pdcch
(
ue
,
fp
->
Nid_cell
);
// compute the scrambling IDs for PDSCH DMRS
for
(
int
i
=
0
;
i
<
2
;
i
++
)
ue
->
scramblingID
[
i
]
=
fp
->
Nid_cell
;
nr_gold_pdsch
(
ue
,
ue
->
scramblingID
);
// initialize the pusch dmrs
uint16_t
N_n_scid
[
2
]
=
{
fp
->
Nid_cell
,
fp
->
Nid_cell
};
int
n_scid
=
0
;
// This quantity is indicated by higher layer parameter dmrs-SeqInitialization
nr_init_pusch_dmrs
(
ue
,
N_n_scid
,
n_scid
);
// we also need to take into account the shift by samples_per_frame in case the if is true
// we also need to take into account the shift by samples_per_frame in case the if is true
if
(
ue
->
ssb_offset
<
sync_pos_frame
){
if
(
ue
->
ssb_offset
<
sync_pos_frame
){
ue
->
rx_offset
=
fp
->
samples_per_frame
-
sync_pos_frame
+
ue
->
ssb_offset
;
ue
->
rx_offset
=
fp
->
samples_per_frame
-
sync_pos_frame
+
ue
->
ssb_offset
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
17675e59
...
@@ -128,7 +128,6 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -128,7 +128,6 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
NR_UE_PUSCH
*
pusch_ue
=
UE
->
pusch_vars
[
thread_id
][
gNB_id
];
NR_UE_PUSCH
*
pusch_ue
=
UE
->
pusch_vars
[
thread_id
][
gNB_id
];
uint8_t
num_of_codewords
=
1
;
// tmp assumption
uint8_t
num_of_codewords
=
1
;
// tmp assumption
int
Nid_cell
=
0
;
int
N_PRB_oh
=
0
;
// higher layer (RRC) parameter xOverhead in PUSCH-ServingCellConfig
int
N_PRB_oh
=
0
;
// higher layer (RRC) parameter xOverhead in PUSCH-ServingCellConfig
uint16_t
number_dmrs_symbols
=
0
;
uint16_t
number_dmrs_symbols
=
0
;
...
@@ -153,7 +152,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -153,7 +152,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
if
(
start_sc
>=
frame_parms
->
ofdm_symbol_size
)
if
(
start_sc
>=
frame_parms
->
ofdm_symbol_size
)
start_sc
-=
frame_parms
->
ofdm_symbol_size
;
start_sc
-=
frame_parms
->
ofdm_symbol_size
;
ulsch_ue
->
Nid_cell
=
Nid_cell
;
ulsch_ue
->
Nid_cell
=
frame_parms
->
Nid_cell
;
for
(
int
i
=
start_symbol
;
i
<
start_symbol
+
number_of_symbols
;
i
++
)
{
for
(
int
i
=
start_symbol
;
i
<
start_symbol
+
number_of_symbols
;
i
++
)
{
if
((
ul_dmrs_symb_pos
>>
i
)
&
0x01
)
if
((
ul_dmrs_symb_pos
>>
i
)
&
0x01
)
...
@@ -391,7 +390,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
...
@@ -391,7 +390,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
// Perform this on gold sequence, not required when SC FDMA operation is done,
// Perform this on gold sequence, not required when SC FDMA operation is done,
LOG_D
(
PHY
,
"DMRS in symbol %d
\n
"
,
l
);
LOG_D
(
PHY
,
"DMRS in symbol %d
\n
"
,
l
);
nr_modulation
(
pusch_dmrs
[
l
][
0
],
n_dmrs
*
2
,
DMRS_MOD_ORDER
,
mod_dmrs
);
// currently only codeword 0 is modulated. Qm = 2 as DMRS is QPSK modulated
nr_modulation
(
pusch_dmrs
[
l
][
0
],
n_dmrs
*
2
,
DMRS_MOD_ORDER
,
mod_dmrs
);
// currently only codeword 0 is modulated. Qm = 2 as DMRS is QPSK modulated
}
else
{
}
else
{
dmrs_idx
=
0
;
dmrs_idx
=
0
;
}
}
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
17675e59
...
@@ -926,7 +926,16 @@ int main(int argc, char **argv)
...
@@ -926,7 +926,16 @@ int main(int argc, char **argv)
init_nr_ue_transport
(
UE
,
0
);
init_nr_ue_transport
(
UE
,
0
);
nr_gold_pbch
(
UE
);
nr_gold_pbch
(
UE
);
nr_gold_pdcch
(
UE
,
0
);
// compute the scramblingID_pdcch and the gold pdcch
UE
->
scramblingID_pdcch
=
frame_parms
->
Nid_cell
;
nr_gold_pdcch
(
UE
,
frame_parms
->
Nid_cell
);
// compute the scrambling IDs for PDSCH DMRS
for
(
int
i
=
0
;
i
<
2
;
i
++
)
UE
->
scramblingID
[
i
]
=
frame_parms
->
Nid_cell
;
nr_gold_pdsch
(
UE
,
UE
->
scramblingID
);
nr_l2_init_ue
(
NULL
);
nr_l2_init_ue
(
NULL
);
UE_mac
=
get_mac_inst
(
0
);
UE_mac
=
get_mac_inst
(
0
);
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
17675e59
...
@@ -760,28 +760,17 @@ int main(int argc, char **argv)
...
@@ -760,28 +760,17 @@ int main(int argc, char **argv)
PHY_vars_UE_g
[
0
][
0
]
=
UE
;
PHY_vars_UE_g
[
0
][
0
]
=
UE
;
memcpy
(
&
UE
->
frame_parms
,
frame_parms
,
sizeof
(
NR_DL_FRAME_PARMS
));
memcpy
(
&
UE
->
frame_parms
,
frame_parms
,
sizeof
(
NR_DL_FRAME_PARMS
));
//phy_init_nr_top(frame_parms);
if
(
init_nr_ue_signal
(
UE
,
1
,
0
)
!=
0
)
{
if
(
init_nr_ue_signal
(
UE
,
1
,
0
)
!=
0
)
{
printf
(
"Error at UE NR initialisation
\n
"
);
printf
(
"Error at UE NR initialisation
\n
"
);
exit
(
-
1
);
exit
(
-
1
);
}
}
//nr_init_frame_parms_ue(&UE->frame_parms);
init_nr_ue_transport
(
UE
,
0
);
init_nr_ue_transport
(
UE
,
0
);
/*
// initialize the pusch dmrs
for (int sf = 0; sf < 2; sf++) {
uint16_t
N_n_scid
[
2
]
=
{
frame_parms
->
Nid_cell
,
frame_parms
->
Nid_cell
};
for (i = 0; i < 2; i++) {
int
n_scid
=
0
;
// This quantity is indicated by higher layer parameter dmrs-SeqInitialization
nr_init_pusch_dmrs
(
UE
,
N_n_scid
,
n_scid
);
UE->ulsch[sf][0][i] = new_nr_ue_ulsch(N_RB_UL, 8, 0);
if (!UE->ulsch[sf][0][i]) {
printf("Can't get ue ulsch structures\n");
exit(-1);
}
}
}
*/
//Configure UE
//Configure UE
NR_UE_RRC_INST_t
rrcue
;
NR_UE_RRC_INST_t
rrcue
;
...
...
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