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
常顺宇
OpenXG-RAN
Commits
c36636be
Commit
c36636be
authored
5 years ago
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
function to configure scf fapi for pucch (not yet called)
parent
06e700a0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
144 additions
and
11 deletions
+144
-11
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+5
-11
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+135
-0
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+4
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
c36636be
...
...
@@ -262,14 +262,10 @@ int configure_fapi_dl_Tx(int Mod_idP,
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdcch_pdu
;
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdsch_pdu
;
int
TBS
;
int
bwp_id
=
1
;
int
UE_id
=
0
;
NR_UE_list_t
*
UE_list
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_list
;
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_list
->
secondaryCellGroup
[
UE_id
];
AssertFatal
(
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
==
1
,
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
...
...
@@ -422,7 +418,6 @@ int configure_fapi_dl_Tx(int Mod_idP,
TBS
);
dl_req
->
nPDUs
+=
2
;
TX_req
->
PDU_length
=
pdsch_pdu_rel15
->
TBSize
[
0
];
TX_req
->
PDU_index
=
nr_mac
->
pdu_index
[
0
]
++
;
...
...
@@ -740,12 +735,12 @@ void nr_schedule_uss_ulsch_phytest(int Mod_idP,
UL_tti_req
->
SFN
=
frameP
;
UL_tti_req
->
Slot
=
slotP
;
UL_tti_req
->
n_pdus
=
1
;
UL_tti_req
->
pdus_list
[
0
].
pdu_type
=
NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE
;
UL_tti_req
->
pdus_list
[
0
].
pdu_size
=
sizeof
(
nfapi_nr_pusch_pdu_t
);
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
UL_tti_req
->
pdus_list
[
0
].
pusch_pdu
;
UL_tti_req
->
pdus_list
[
UL_tti_req
->
n_pdus
].
pdu_type
=
NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE
;
UL_tti_req
->
pdus_list
[
UL_tti_req
->
n_pdus
].
pdu_size
=
sizeof
(
nfapi_nr_pusch_pdu_t
);
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
UL_tti_req
->
pdus_list
[
UL_tti_req
->
n_pdus
].
pusch_pdu
;
memset
(
pusch_pdu
,
0
,
sizeof
(
nfapi_nr_pusch_pdu_t
));
UL_tti_req
->
n_pdus
+=
1
;
LOG_D
(
MAC
,
"Scheduling UE specific PUSCH
\n
"
);
//UL_tti_req = &nr_mac->UL_tti_req[CC_id];
/*
...
...
@@ -842,7 +837,6 @@ void nr_schedule_uss_ulsch_phytest(int Mod_idP,
1
,
// ue-specific,
scc
,
bwp
);
dci_pdu_rel15_t
dci_pdu_rel15
[
MAX_DCI_CORESET
];
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
c36636be
...
...
@@ -547,6 +547,141 @@ void nr_configure_pdcch(nfapi_nr_dl_tti_pdcch_pdu_rel15_t* pdcch_pdu,
}
// This function configures pucch_pdu according to pucch_ResourceId value
void
nr_configure_pucch
(
nfapi_nr_pucch_pdu_t
*
pucch_pdu
,
NR_PUCCH_ResourceId_t
pucch_ResourceId
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_BWP_Uplink_t
*
bwp
){
NR_PUCCH_Config_t
*
pucch_Config
;
NR_PUCCH_Resource_t
*
pucchres
;
NR_PUCCH_FormatConfig_t
*
pucchfmt
;
NR_PUSCH_Config_t
*
pusch_Config
=
bwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
;
long
*
pusch_id
=
pusch_Config
->
dataScramblingIdentityPUSCH
;
long
*
id0
=
NULL
;
int
n_list
;
if
(
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
!=
NULL
)
id0
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeA
->
choice
.
setup
->
transformPrecodingDisabled
->
scramblingID0
;
if
(
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
!=
NULL
)
id0
=
pusch_Config
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
transformPrecodingDisabled
->
scramblingID0
;
// hop flags and hopping id are valid for any BWP
switch
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
pucch_GroupHopping
){
case
0
:
// if neither, both disabled
pucch_pdu
->
group_hop_flag
=
0
;
pucch_pdu
->
sequence_hop_flag
=
0
;
break
;
case
1
:
// if enable, group enabled
pucch_pdu
->
group_hop_flag
=
1
;
pucch_pdu
->
sequence_hop_flag
=
0
;
break
;
case
2
:
// if disable, sequence disabled
pucch_pdu
->
group_hop_flag
=
0
;
pucch_pdu
->
sequence_hop_flag
=
1
;
break
;
default:
AssertFatal
(
1
==
0
,
"msg1 FDM identifier %ld undefined (0,1,2,3)
\n
"
,
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
rach_ConfigGeneric
.
msg1_FDM
);
}
if
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
hoppingId
!=
NULL
)
pucch_pdu
->
hopping_id
=
*
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
hoppingId
;
else
pucch_pdu
->
hopping_id
=
*
scc
->
physCellId
;
if
(
bwp
)
{
// This is not the InitialBWP
pucch_pdu
->
bwp_size
=
NRRIV2BW
(
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
pucch_pdu
->
bwp_start
=
NRRIV2PRBOFFSET
(
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
pucch_pdu
->
subcarrier_spacing
=
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
pucch_pdu
->
cyclic_prefix
=
(
bwp
->
bwp_Common
->
genericParameters
.
cyclicPrefix
==
NULL
)
?
0
:
*
bwp
->
bwp_Common
->
genericParameters
.
cyclicPrefix
;
pucch_Config
=
bwp
->
bwp_Dedicated
->
pucch_Config
->
choice
.
setup
;
AssertFatal
(
pucch_Config
->
resourceToAddModList
!=
NULL
,
"PUCCH resourceToAddModList is null
\n
"
);
n_list
=
pucch_Config
->
resourceToAddModList
->
list
.
count
;
AssertFatal
(
n_list
>
0
,
"PUCCH resourceToAddModList is empty
\n
"
);
for
(
int
i
=
0
;
i
<
n_list
;
i
++
)
{
pucchres
=
pucch_Config
->
resourceToAddModList
->
list
.
array
[
i
];
if
(
pucchres
->
pucch_ResourceId
==
pucch_ResourceId
)
{
pucch_pdu
->
prb_start
=
pucchres
->
startingPRB
;
pucch_pdu
->
freq_hop_flag
=
pucchres
->
intraSlotFrequencyHopping
!=
NULL
?
1
:
0
;
pucch_pdu
->
second_hop_prb
=
pucchres
->
secondHopPRB
!=
NULL
?
*
pucchres
->
secondHopPRB
:
0
;
switch
(
pucchres
->
format
.
present
)
{
case
NR_PUCCH_Resource__format_PR_format0
:
pucch_pdu
->
format_type
=
0
;
pucch_pdu
->
initial_cyclic_shift
=
pucchres
->
format
.
choice
.
format0
->
initialCyclicShift
;
pucch_pdu
->
nr_of_symbols
=
pucchres
->
format
.
choice
.
format0
->
nrofSymbols
;
pucch_pdu
->
start_symbol_index
=
pucchres
->
format
.
choice
.
format0
->
startingSymbolIndex
;
break
;
case
NR_PUCCH_Resource__format_PR_format1
:
pucch_pdu
->
format_type
=
1
;
pucch_pdu
->
initial_cyclic_shift
=
pucchres
->
format
.
choice
.
format1
->
initialCyclicShift
;
pucch_pdu
->
nr_of_symbols
=
pucchres
->
format
.
choice
.
format1
->
nrofSymbols
;
pucch_pdu
->
start_symbol_index
=
pucchres
->
format
.
choice
.
format1
->
startingSymbolIndex
;
pucch_pdu
->
time_domain_occ_idx
=
pucchres
->
format
.
choice
.
format1
->
timeDomainOCC
;
break
;
case
NR_PUCCH_Resource__format_PR_format2
:
pucch_pdu
->
format_type
=
2
;
pucch_pdu
->
nr_of_symbols
=
pucchres
->
format
.
choice
.
format2
->
nrofSymbols
;
pucch_pdu
->
start_symbol_index
=
pucchres
->
format
.
choice
.
format2
->
startingSymbolIndex
;
pucch_pdu
->
prb_size
=
pucchres
->
format
.
choice
.
format2
->
nrofPRBs
;
pucch_pdu
->
data_scrambling_id
=
pusch_id
!=
NULL
?
*
pusch_id
:
*
scc
->
physCellId
;
pucch_pdu
->
dmrs_scrambling_id
=
id0
!=
NULL
?
*
id0
:
*
scc
->
physCellId
;
break
;
case
NR_PUCCH_Resource__format_PR_format3
:
pucch_pdu
->
format_type
=
3
;
pucch_pdu
->
nr_of_symbols
=
pucchres
->
format
.
choice
.
format3
->
nrofSymbols
;
pucch_pdu
->
start_symbol_index
=
pucchres
->
format
.
choice
.
format3
->
startingSymbolIndex
;
pucch_pdu
->
prb_size
=
pucchres
->
format
.
choice
.
format3
->
nrofPRBs
;
pucch_pdu
->
data_scrambling_id
=
pusch_id
!=
NULL
?
*
pusch_id
:
*
scc
->
physCellId
;
if
(
pucch_Config
->
format3
==
NULL
)
{
pucch_pdu
->
pi_2bpsk
=
0
;
pucch_pdu
->
add_dmrs_flag
=
0
;
}
else
{
pucchfmt
=
pucch_Config
->
format3
->
choice
.
setup
;
pucch_pdu
->
pi_2bpsk
=
pucchfmt
->
pi2BPSK
!=
NULL
?
1
:
0
;
pucch_pdu
->
add_dmrs_flag
=
pucchfmt
->
additionalDMRS
!=
NULL
?
1
:
0
;
}
break
;
case
NR_PUCCH_Resource__format_PR_format4
:
pucch_pdu
->
format_type
=
4
;
pucch_pdu
->
nr_of_symbols
=
pucchres
->
format
.
choice
.
format4
->
nrofSymbols
;
pucch_pdu
->
start_symbol_index
=
pucchres
->
format
.
choice
.
format4
->
startingSymbolIndex
;
pucch_pdu
->
pre_dft_occ_len
=
pucchres
->
format
.
choice
.
format4
->
occ_Length
;
pucch_pdu
->
pre_dft_occ_idx
=
pucchres
->
format
.
choice
.
format4
->
occ_Index
;
pucch_pdu
->
data_scrambling_id
=
pusch_id
!=
NULL
?
*
pusch_id
:
*
scc
->
physCellId
;
if
(
pucch_Config
->
format3
==
NULL
)
{
pucch_pdu
->
pi_2bpsk
=
0
;
pucch_pdu
->
add_dmrs_flag
=
0
;
}
else
{
pucchfmt
=
pucch_Config
->
format3
->
choice
.
setup
;
pucch_pdu
->
pi_2bpsk
=
pucchfmt
->
pi2BPSK
!=
NULL
?
1
:
0
;
pucch_pdu
->
add_dmrs_flag
=
pucchfmt
->
additionalDMRS
!=
NULL
?
1
:
0
;
}
break
;
default
:
AssertFatal
(
1
==
0
,
"Undefined PUCCH format
\n
"
);
}
}
}
}
else
{
// this is for InitialBWP
AssertFatal
(
1
==
0
,
"Fill in InitialBWP PUCCH configuration
\n
"
);
}
}
void
fill_dci_pdu_rel15
(
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
dci_pdu_rel15_t
*
dci_pdu_rel15
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
c36636be
...
...
@@ -103,6 +103,10 @@ int nr_is_dci_opportunity(nfapi_nr_search_space_t search_space,
uint16_t slot,
nfapi_nr_config_request_scf_t cfg);
*/
void
nr_configure_pucch
(
nfapi_nr_pucch_pdu_t
*
pucch_pdu
,
NR_PUCCH_ResourceId_t
pucch_ResourceId
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_BWP_Uplink_t
*
bwp
);
void
nr_configure_pdcch
(
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu
,
int
ss_type
,
NR_ServingCellConfigCommon_t
*
scc
,
...
...
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