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
0ecd346b
Commit
0ecd346b
authored
Mar 26, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UE_data_scrambling_fix' into integration_2024_w12
parents
c45fb431
91e5d800
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
51 additions
and
40 deletions
+51
-40
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+1
-0
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+3
-12
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+2
-2
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+1
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+24
-7
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+20
-19
No files found.
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
View file @
0ecd346b
...
...
@@ -494,6 +494,7 @@ typedef struct {
uint32_t
tbslbrm
;
uint8_t
nscid
;
uint16_t
dlDmrsScramblingId
;
uint16_t
dlDataScramblingId
;
uint16_t
pduBitmap
;
uint32_t
k1_feedback
;
uint8_t
ldpcBaseGraph
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
0ecd346b
...
...
@@ -55,11 +55,7 @@
//extern int32_t uplink_counter;
void
nr_pusch_codeword_scrambling_uci
(
uint8_t
*
in
,
uint32_t
size
,
uint32_t
Nid
,
uint32_t
n_RNTI
,
uint32_t
*
out
)
void
nr_pusch_codeword_scrambling_uci
(
uint8_t
*
in
,
uint32_t
size
,
uint32_t
Nid
,
uint32_t
n_RNTI
,
uint32_t
*
out
)
{
uint8_t
reset
,
b_idx
;
uint32_t
x1
=
0
,
x2
=
0
,
s
=
0
,
temp_out
=
0
;
...
...
@@ -93,12 +89,7 @@ void nr_pusch_codeword_scrambling_uci(uint8_t *in,
}
}
void
nr_pusch_codeword_scrambling
(
uint8_t
*
in
,
uint32_t
size
,
uint32_t
Nid
,
uint32_t
n_RNTI
,
bool
uci_on_pusch
,
uint32_t
*
out
)
void
nr_pusch_codeword_scrambling
(
uint8_t
*
in
,
uint32_t
size
,
uint32_t
Nid
,
uint32_t
n_RNTI
,
bool
uci_on_pusch
,
uint32_t
*
out
)
{
if
(
uci_on_pusch
)
nr_pusch_codeword_scrambling_uci
(
in
,
size
,
Nid
,
n_RNTI
,
out
);
...
...
@@ -221,7 +212,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
nr_pusch_codeword_scrambling
(
harq_process_ul_ue
->
f
,
available_bits
,
ulsch_ue
->
Nid_cell
,
pusch_pdu
->
data_scrambling_id
,
rnti
,
false
,
scrambled_output
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
0ecd346b
...
...
@@ -691,7 +691,7 @@ static bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *
nr_dlsch_unscrambling
(
llr
[
0
],
dl_harq0
->
G
,
0
,
ue
->
frame_parms
.
Nid_cell
,
dlsch
[
0
].
dlsch_config
.
dlDataScramblingId
,
dlsch
[
0
].
rnti
);
...
...
@@ -787,7 +787,7 @@ static bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *
nr_dlsch_unscrambling
(
llr
[
1
],
dl_harq1
->
G
,
0
,
ue
->
frame_parms
.
Nid_cell
,
dlsch
[
1
].
dlsch_config
.
dlDataScramblingId
,
dlsch
[
1
].
rnti
);
stop_meas
(
&
ue
->
dlsch_unscrambling_stats
);
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
0ecd346b
...
...
@@ -374,6 +374,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
dci_pdu_rel15_t
*
dci
,
RAR_grant_t
*
rar_grant
,
uint16_t
rnti
,
int
ss_type
,
const
nr_dci_format_t
dci_format
);
int
nr_rrc_mac_config_req_sl_preconfig
(
module_id_t
module_id
,
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
0ecd346b
...
...
@@ -189,10 +189,8 @@ int get_rnti_type(const NR_UE_MAC_INST_t *mac, const uint16_t rnti)
}
else
{
AssertFatal
(
1
==
0
,
"Not identified/handled rnti %d
\n
"
,
rnti
);
}
LOG_D
(
MAC
,
"Returning rnti_type %s
\n
"
,
rnti_types
(
rnti_type
));
return
rnti_type
;
LOG_D
(
MAC
,
"Returning rnti_type %s
\n
"
,
rnti_types
(
rnti_type
));
return
rnti_type
;
}
void
nr_ue_decode_mib
(
NR_UE_MAC_INST_t
*
mac
,
int
cc_id
)
...
...
@@ -447,7 +445,7 @@ static int nr_ue_process_dci_ul_00(NR_UE_MAC_INST_t *mac,
if
(
!
pdu
)
return
-
1
;
int
ret
=
nr_config_pusch_pdu
(
mac
,
&
tda_info
,
&
pdu
->
pusch_config_pdu
,
dci
,
NULL
,
dci_ind
->
rnti
,
NR_UL_DCI_FORMAT_0_0
);
int
ret
=
nr_config_pusch_pdu
(
mac
,
&
tda_info
,
&
pdu
->
pusch_config_pdu
,
dci
,
NULL
,
dci_ind
->
rnti
,
dci_ind
->
ss_type
,
NR_UL_DCI_FORMAT_0_0
);
if
(
ret
!=
0
)
remove_ul_config_last_item
(
pdu
);
release_ul_config
(
pdu
,
false
);
...
...
@@ -520,7 +518,7 @@ static int nr_ue_process_dci_ul_01(NR_UE_MAC_INST_t *mac,
fapi_nr_ul_config_request_pdu_t
*
pdu
=
lockGet_ul_config
(
mac
,
frame_tx
,
slot_tx
,
FAPI_NR_UL_CONFIG_TYPE_PUSCH
);
if
(
!
pdu
)
return
-
1
;
int
ret
=
nr_config_pusch_pdu
(
mac
,
&
tda_info
,
&
pdu
->
pusch_config_pdu
,
dci
,
NULL
,
dci_ind
->
rnti
,
NR_UL_DCI_FORMAT_0_1
);
int
ret
=
nr_config_pusch_pdu
(
mac
,
&
tda_info
,
&
pdu
->
pusch_config_pdu
,
dci
,
NULL
,
dci_ind
->
rnti
,
dci_ind
->
ss_type
,
NR_UL_DCI_FORMAT_0_1
);
if
(
ret
!=
0
)
remove_ul_config_last_item
(
pdu
);
release_ul_config
(
pdu
,
false
);
...
...
@@ -664,6 +662,13 @@ static int nr_ue_process_dci_dl_10(NR_UE_MAC_INST_t *mac,
else
dlsch_pdu
->
dlDmrsScramblingId
=
mac
->
physCellId
;
if
(
get_rnti_type
(
mac
,
dci_ind
->
rnti
)
==
TYPE_C_RNTI_
&&
dci_ind
->
ss_type
!=
NR_SearchSpace__searchSpaceType_PR_common
&&
pdsch_config
->
dataScramblingIdentityPDSCH
)
dlsch_pdu
->
dlDataScramblingId
=
*
pdsch_config
->
dataScramblingIdentityPDSCH
;
else
dlsch_pdu
->
dlDataScramblingId
=
mac
->
physCellId
;
/* dmrs symbol positions*/
dlsch_pdu
->
dlDmrsSymbPos
=
fill_dmrs_mask
(
pdsch_config
,
NR_DL_DCI_FORMAT_1_0
,
...
...
@@ -975,6 +980,11 @@ static int nr_ue_process_dci_dl_11(NR_UE_MAC_INST_t *mac,
return
-
1
;
}
if
(
pdsch_Config
->
dataScramblingIdentityPDSCH
)
dlsch_pdu
->
dlDataScramblingId
=
*
pdsch_Config
->
dataScramblingIdentityPDSCH
;
else
dlsch_pdu
->
dlDataScramblingId
=
mac
->
physCellId
;
dlsch_pdu
->
dmrsConfigType
=
dl_dmrs_config
->
dmrs_Type
==
NULL
?
NFAPI_NR_DMRS_TYPE1
:
NFAPI_NR_DMRS_TYPE2
;
/* TODO: fix number of DM-RS CDM groups without data according to subclause 5.1.6.2 of 3GPP TS 38.214,
...
...
@@ -3979,7 +3989,14 @@ static void nr_ue_process_rar(NR_UE_MAC_INST_t *mac, nr_downlink_indication_t *d
if
(
!
pdu
)
return
;
// Config Msg3 PDU
int
ret
=
nr_config_pusch_pdu
(
mac
,
&
tda_info
,
&
pdu
->
pusch_config_pdu
,
NULL
,
&
rar_grant
,
rnti
,
NR_DCI_NONE
);
int
ret
=
nr_config_pusch_pdu
(
mac
,
&
tda_info
,
&
pdu
->
pusch_config_pdu
,
NULL
,
&
rar_grant
,
rnti
,
NR_SearchSpace__searchSpaceType_PR_common
,
NR_DCI_NONE
);
if
(
ret
!=
0
)
remove_ul_config_last_item
(
pdu
);
release_ul_config
(
pdu
,
false
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
0ecd346b
...
...
@@ -502,6 +502,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
dci_pdu_rel15_t
*
dci
,
RAR_grant_t
*
rar_grant
,
uint16_t
rnti
,
int
ss_type
,
const
nr_dci_format_t
dci_format
)
{
uint16_t
l_prime_mask
=
0
;
...
...
@@ -513,10 +514,10 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
// Common configuration
pusch_config_pdu
->
dmrs_config_type
=
pusch_dmrs_type1
;
pusch_config_pdu
->
pdu_bit_map
=
PUSCH_PDU_BITMAP_PUSCH_DATA
;
pusch_config_pdu
->
nrOfLayers
=
1
;
pusch_config_pdu
->
Tpmi
=
0
;
pusch_config_pdu
->
rnti
=
rnti
;
pusch_config_pdu
->
pdu_bit_map
=
PUSCH_PDU_BITMAP_PUSCH_DATA
;
pusch_config_pdu
->
nrOfLayers
=
1
;
pusch_config_pdu
->
Tpmi
=
0
;
pusch_config_pdu
->
rnti
=
rnti
;
pusch_dmrs_AdditionalPosition_t
add_pos
=
pusch_dmrs_pos2
;
int
dmrslength
=
1
;
...
...
@@ -625,16 +626,13 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
pusch_config_pdu
->
transform_precoding
=
get_transformPrecoding
(
current_UL_BWP
,
dci_format
,
0
);
/*DCI format-related configuration*/
int
target_ss
;
if
(
dci_format
==
NR_UL_DCI_FORMAT_0_0
)
{
target_ss
=
NR_SearchSpace__searchSpaceType_PR_common
;
if
((
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_disabled
)
&&
pusch_config_pdu
->
nr_of_symbols
<
3
)
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
1
;
else
pusch_config_pdu
->
num_dmrs_cdm_grps_no_data
=
2
;
}
else
if
(
dci_format
==
NR_UL_DCI_FORMAT_0_1
)
{
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
ul_layers_config
(
mac
,
pusch_config_pdu
,
dci
,
dci_format
);
ul_ports_config
(
mac
,
&
dmrslength
,
pusch_config_pdu
,
dci
,
dci_format
);
}
else
{
...
...
@@ -652,6 +650,12 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
}
pusch_config_pdu
->
scid
=
0
;
pusch_config_pdu
->
data_scrambling_id
=
mac
->
physCellId
;
if
(
pusch_Config
->
dataScramblingIdentityPUSCH
&&
rnti_type
==
TYPE_C_RNTI_
&&
!
(
dci_format
==
NR_UL_DCI_FORMAT_0_0
&&
ss_type
==
NR_SearchSpace__searchSpaceType_PR_common
))
pusch_config_pdu
->
data_scrambling_id
=
*
pusch_Config
->
dataScramblingIdentityPUSCH
;
pusch_config_pdu
->
ul_dmrs_scrambling_id
=
mac
->
physCellId
;
if
(
dci_format
==
NR_UL_DCI_FORMAT_0_1
)
pusch_config_pdu
->
scid
=
dci
->
dmrs_sequence_initialization
.
val
;
...
...
@@ -706,7 +710,9 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
}
/* FREQ_HOPPING_FLAG */
if
((
pusch_Config
!=
NULL
)
&&
(
pusch_Config
->
frequencyHopping
!=
NULL
)
&&
(
pusch_Config
->
resourceAllocation
!=
NR_PUSCH_Config__resourceAllocation_resourceAllocationType0
)){
if
((
pusch_Config
!=
NULL
)
&&
(
pusch_Config
->
frequencyHopping
!=
NULL
)
&&
(
pusch_Config
->
resourceAllocation
!=
NR_PUSCH_Config__resourceAllocation_resourceAllocationType0
))
{
pusch_config_pdu
->
frequency_hopping
=
dci
->
frequency_hopping_flag
.
val
;
}
...
...
@@ -714,17 +720,12 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
pusch_config_pdu
->
mcs_index
=
dci
->
mcs
;
/* MCS TABLE */
if
(
pusch_config_pdu
->
transform_precoding
==
NR_PUSCH_Config__transformPrecoder_disabled
)
{
pusch_config_pdu
->
mcs_table
=
get_pusch_mcs_table
(
pusch_Config
?
pusch_Config
->
mcs_Table
:
NULL
,
0
,
dci_format
,
rnti_type
,
target_ss
,
false
);
}
else
{
pusch_config_pdu
->
mcs_table
=
get_pusch_mcs_table
(
pusch_Config
?
pusch_Config
->
mcs_TableTransformPrecoder
:
NULL
,
1
,
dci_format
,
rnti_type
,
target_ss
,
false
);
}
pusch_config_pdu
->
mcs_table
=
get_pusch_mcs_table
(
pusch_Config
?
pusch_Config
->
mcs_TableTransformPrecoder
:
NULL
,
pusch_config_pdu
->
transform_precoding
!=
NR_PUSCH_Config__transformPrecoder_disabled
,
dci_format
,
rnti_type
,
ss_type
,
false
);
/* NDI */
NR_UL_HARQ_INFO_t
*
harq
=
&
mac
->
ul_harq_info
[
dci
->
harq_pid
];
...
...
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