Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG UE
Commits
04f2f1aa
Commit
04f2f1aa
authored
Jul 08, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dci size for 0_1 and some other modifications
parent
4c65dd60
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
390 additions
and
75 deletions
+390
-75
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+2
-2
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+222
-10
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+4
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+2
-2
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_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+107
-49
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+28
-6
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+10
-2
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+13
-1
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
04f2f1aa
...
...
@@ -251,9 +251,8 @@ typedef struct {
uint8_t
short_messages
;
//8 bits
uint8_t
tb_scaling
;
//2 bits
uint8_t
pucch_resource_indicator
;
//3 bits
uint8_t
dmrs_sequence_initialization
;
//1 bit
uint8_t
system_info_indicator
;
//1 bit
uint8_t
ulsch_indicator
;
uint8_t
slot_format_indicator_count
;
uint8_t
*
slot_format_indicators
;
...
...
@@ -290,6 +289,7 @@ typedef struct {
dci_field_t
cloded_loop_indicator
;
//variable
dci_field_t
ul_sul_indicator
;
//variable
dci_field_t
antenna_ports
;
//variable
dci_field_t
dmrs_sequence_initialization
;
dci_field_t
reserved
;
//1_0/C-RNTI:10 bits, 1_0/P-RNTI: 6 bits, 1_0/SI-&RA-RNTI: 16 bits
}
dci_pdu_rel15_t
;
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
04f2f1aa
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
04f2f1aa
...
...
@@ -77,7 +77,8 @@ int is_nr_DL_slot(NR_ServingCellConfigCommon_t *scc,slot_t slotP);
int
is_nr_UL_slot
(
NR_ServingCellConfigCommon_t
*
scc
,
slot_t
slotP
);
uint16_t
nr_dci_size
(
NR_CellGroupConfig_t
*
secondaryCellGroup
,
uint16_t
nr_dci_size
(
NR_ServingCellConfigCommon_t
*
scc
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
dci_pdu_rel15_t
*
dci_pdu
,
nr_dci_format_t
format
,
nr_rnti_type_t
rnti_type
,
...
...
@@ -103,6 +104,8 @@ uint8_t compute_nr_root_seq(NR_RACH_ConfigCommon_t *rach_config,
uint8_t
nb_preambles
,
uint8_t
unpaired
);
int
ul_ant_bits
(
NR_DMRS_UplinkConfig_t
*
NR_DMRS_UplinkConfig
,
long
transformPrecoder
);
int
get_format0
(
uint8_t
index
,
uint8_t
unpaired
);
uint16_t
get_NCS
(
uint8_t
index
,
uint16_t
format
,
uint8_t
restricted_set_config
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
04f2f1aa
...
...
@@ -223,7 +223,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
rel15
->
BWPSize
=
NRRIV2BW
(
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
// NRRIV2PRBOFFSET(initialDownlinkBWP->genericParameters.locationAndBandwidth, 275);
rel15
->
SubcarrierSpacing
=
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
;
rel15
->
dci_length
=
nr_dci_size
(
mac
->
scg
,
def_dci_pdu_rel15
,
rel15
->
dci_format
,
NR_RNTI_C
,
rel15
->
BWPSize
,
bwp_id
);
rel15
->
dci_length
=
nr_dci_size
(
scc
,
mac
->
scg
,
def_dci_pdu_rel15
,
rel15
->
dci_format
,
NR_RNTI_C
,
rel15
->
BWPSize
,
bwp_id
);
for
(
int
i
=
0
;
i
<
sps
;
i
++
)
if
((
monitoringSymbolsWithinSlot
>>
(
sps
-
1
-
i
))
&
1
)
{
rel15
->
coreset
.
StartSymbolIndex
=
i
;
...
...
@@ -243,7 +243,7 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
rel15
->
BWPSize
=
NRRIV2BW
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
BWPStart
=
NRRIV2PRBOFFSET
(
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
rel15
->
SubcarrierSpacing
=
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
rel15
->
dci_length
=
nr_dci_size
(
mac
->
scg
,
def_dci_pdu_rel15
,
rel15
->
dci_format
,
NR_RNTI_C
,
rel15
->
BWPSize
,
bwp_id
);
rel15
->
dci_length
=
nr_dci_size
(
scc
,
mac
->
scg
,
def_dci_pdu_rel15
,
rel15
->
dci_format
,
NR_RNTI_C
,
rel15
->
BWPSize
,
bwp_id
);
// get UE-specific search space
for
(
ss_id
=
0
;
ss_id
<
FAPI_NR_MAX_SS_PER_CORESET
&&
mac
->
SSpace
[
0
][
0
][
ss_id
]
!=
NULL
;
ss_id
++
){
uss
=
mac
->
SSpace
[
0
][
0
][
ss_id
];
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
04f2f1aa
...
...
@@ -3530,7 +3530,7 @@ void nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
dci_pdu_rel15
->
cbgfi
.
val
=
(
*
dci_pdu
>>
(
dci_size
-
pos
))
&
((
1
<<
dci_pdu_rel15
->
cbgfi
.
nbits
)
-
1
);
// DMRS sequence init
pos
+=
1
;
dci_pdu_rel15
->
dmrs_sequence_initialization
=
(
*
dci_pdu
>>
(
dci_size
-
pos
))
&
0x1
;
dci_pdu_rel15
->
dmrs_sequence_initialization
.
val
=
(
*
dci_pdu
>>
(
dci_size
-
pos
))
&
0x1
;
break
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
04f2f1aa
...
...
@@ -688,7 +688,7 @@ void nr_generate_Msg2(module_id_t module_idP,
pdcch_pdu_rel15
->
StartSymbolIndex
,
pdcch_pdu_rel15
->
DurationSymbols
);
fill_dci_pdu_rel15
(
secondaryCellGroup
,
pdcch_pdu_rel15
,
&
dci_pdu_rel15
[
0
],
dci_formats
,
rnti_types
,
dci10_bw
,
ra
->
bwp_id
);
fill_dci_pdu_rel15
(
s
cc
,
s
econdaryCellGroup
,
pdcch_pdu_rel15
,
&
dci_pdu_rel15
[
0
],
dci_formats
,
rnti_types
,
dci10_bw
,
ra
->
bwp_id
);
dl_req
->
nPDUs
+=
2
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
04f2f1aa
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
04f2f1aa
...
...
@@ -734,6 +734,19 @@ void prepare_dci(NR_CellGroupConfig_t *secondaryCellGroup,
NR_BWP_Downlink_t
*
bwp
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
switch
(
format
)
{
case
NR_UL_DCI_FORMAT_0_1
:
// format indicator
dci_pdu_rel15
->
format_indicator
=
0
;
// carrier indicator
if
(
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
crossCarrierSchedulingConfig
!=
NULL
)
AssertFatal
(
1
==
0
,
"Cross Carrier Scheduling Config currently not supported
\n
"
);
// supplementary uplink
if
(
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
supplementaryUplink
!=
NULL
)
AssertFatal
(
1
==
0
,
"Supplementary Uplink currently not supported
\n
"
);
// SRS request
dci_pdu_rel15
->
srs_request
.
val
=
0
;
dci_pdu_rel15
->
ulsch_indicator
=
1
;
break
;
case
NR_DL_DCI_FORMAT_1_1
:
// format indicator
dci_pdu_rel15
->
format_indicator
=
1
;
...
...
@@ -782,16 +795,15 @@ void prepare_dci(NR_CellGroupConfig_t *secondaryCellGroup,
// CBGTI and CBGFI
if
(
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
pdsch_ServingCellConfig
->
choice
.
setup
->
codeBlockGroupTransmission
!=
NULL
)
AssertFatal
(
1
==
0
,
"CBG transmission currently not supported
\n
"
);
// dmrs sequence initialization
dci_pdu_rel15
->
dmrs_sequence_initialization
=
0
;
// FIXME no information on what this bit should be in 38.212
break
;
default
:
AssertFatal
(
1
==
0
,
"Prepare dci currently only implemented for 1_1
\n
"
);
AssertFatal
(
1
==
0
,
"Prepare dci currently only implemented for 1_1
and 0_1
\n
"
);
}
}
void
fill_dci_pdu_rel15
(
NR_CellGroupConfig_t
*
secondaryCellGroup
,
void
fill_dci_pdu_rel15
(
NR_ServingCellConfigCommon_t
*
scc
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
dci_pdu_rel15_t
*
dci_pdu_rel15
,
int
*
dci_formats
,
...
...
@@ -805,7 +817,7 @@ void fill_dci_pdu_rel15(NR_CellGroupConfig_t *secondaryCellGroup,
for
(
int
d
=
0
;
d
<
pdcch_pdu_rel15
->
numDlDci
;
d
++
)
{
uint64_t
*
dci_pdu
=
(
uint64_t
*
)
pdcch_pdu_rel15
->
dci_pdu
.
Payload
[
d
];
int
dci_size
=
nr_dci_size
(
secondaryCellGroup
,
&
dci_pdu_rel15
[
d
],
dci_formats
[
d
],
rnti_types
[
d
],
N_RB
,
bwp_id
);
int
dci_size
=
nr_dci_size
(
s
cc
,
s
econdaryCellGroup
,
&
dci_pdu_rel15
[
d
],
dci_formats
[
d
],
rnti_types
[
d
],
N_RB
,
bwp_id
);
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
]
=
dci_size
;
AssertFatal
(
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
]
<=
64
,
"DCI sizes above 64 bits not yet supported"
);
...
...
@@ -1119,6 +1131,16 @@ void fill_dci_pdu_rel15(NR_CellGroupConfig_t *secondaryCellGroup,
}
break
;
case
NR_UL_DCI_FORMAT_0_1
:
switch
(
rnti_types
[
d
])
{
case
NR_RNTI_C
:
// Frequency domain resource assignment
// add potential MSB for N_UL_HOP
break
;
}
break
;
case
NR_DL_DCI_FORMAT_1_1
:
// Indicating a DL DCI format 1bit
pos
=
1
;
...
...
@@ -1224,7 +1246,7 @@ void fill_dci_pdu_rel15(NR_CellGroupConfig_t *secondaryCellGroup,
// DMRS sequence init
pos
+=
1
;
*
dci_pdu
|=
((
uint64_t
)
dci_pdu_rel15
->
dmrs_sequence_initialization
&
0x1
)
<<
(
dci_size
-
pos
);
*
dci_pdu
|=
((
uint64_t
)
dci_pdu_rel15
->
dmrs_sequence_initialization
.
val
&
0x1
)
<<
(
dci_size
-
pos
);
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
04f2f1aa
...
...
@@ -132,7 +132,12 @@ int configure_fapi_dl_pdu(int Mod_id,
uint16_t
*
rbSize
,
uint16_t
*
rbStart
);
void
config_uldci
(
NR_BWP_Uplink_t
*
ubwp
,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
dci_pdu_rel15_t
*
dci_pdu_rel15
,
int
*
dci_formats
,
int
*
rnti_types
);
void
config_uldci
(
NR_BWP_Uplink_t
*
ubwp
,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
dci_pdu_rel15_t
*
dci_pdu_rel15
,
int
*
dci_formats
,
int
*
rnti_types
,
int
n_ubwp
,
int
bwp_id
);
void
configure_fapi_dl_Tx
(
module_id_t
Mod_idP
,
frame_t
frameP
,
...
...
@@ -203,7 +208,8 @@ int nr_configure_pdcch(gNB_MAC_INST *nr_mac,
NR_ServingCellConfigCommon_t
*
scc
,
NR_BWP_Downlink_t
*
bwp
);
void
fill_dci_pdu_rel15
(
NR_CellGroupConfig_t
*
secondaryCellGroup
,
void
fill_dci_pdu_rel15
(
NR_ServingCellConfigCommon_t
*
scc
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
dci_pdu_rel15_t
*
dci_pdu_rel15
,
int
*
dci_formats
,
...
...
@@ -289,6 +295,8 @@ void nr_process_mac_pdu(
uint8_t
*
pduP
,
uint16_t
mac_pdu_len
);
int
binomial
(
int
n
,
int
k
);
/* \brief Function to indicate a received SDU on ULSCH.
@param Mod_id Instance ID of gNB
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
04f2f1aa
...
...
@@ -1095,7 +1095,19 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
firstActiveUplinkBWP_Id
));
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
1
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
));
NR_PUSCH_ServingCellConfig_t
*
pusch_scc
=
calloc
(
1
,
sizeof
(
*
pusch_scc
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
->
present
=
NR_SetupRelease_PUSCH_ServingCellConfig_PR_setup
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
->
choice
.
setup
=
pusch_scc
;
pusch_scc
->
codeBlockGroupTransmission
=
NULL
;
pusch_scc
->
rateMatching
=
NULL
;
pusch_scc
->
xOverhead
=
NULL
;
pusch_scc
->
ext1
=
calloc
(
1
,
sizeof
(
*
pusch_scc
->
ext1
));
pusch_scc
->
ext1
->
maxMIMO_Layers
=
calloc
(
1
,
sizeof
(
*
pusch_scc
->
ext1
->
maxMIMO_Layers
));
*
pusch_scc
->
ext1
->
maxMIMO_Layers
=
1
;
pusch_scc
->
ext1
->
processingType2Enabled
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
carrierSwitching
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
supplementaryUplink
=
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