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
zzha zzha
OpenXG-RAN
Commits
fcd88de2
Commit
fcd88de2
authored
Mar 07, 2022
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SR/CSI multiplexing fix. default sl_head=6 instead of 4 to check if RF simulator behaves better
parent
3402ea00
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
55 additions
and
11 deletions
+55
-11
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/PHY/NR_TRANSPORT/pucch_rx.c
+2
-0
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+1
-0
openair2/ENB_APP/enb_paramdef.h
openair2/ENB_APP/enb_paramdef.h
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+3
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+44
-5
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+3
-3
No files found.
openair1/PHY/NR_TRANSPORT/pucch_rx.c
View file @
fcd88de2
...
...
@@ -104,6 +104,8 @@ void nr_fill_pucch(PHY_VARS_gNB *gNB,
pucch
->
frame
=
frame
;
pucch
->
slot
=
slot
;
pucch
->
active
=
1
;
if
(
pucch
->
pucch_pdu
.
format_type
>
0
)
LOG_D
(
PHY
,
"Programming PUCCH[%d] for %d.%d, format %d, nb_harq %d, nb_sr %d, nb_csi %d
\n
"
,
id
,
pucch
->
frame
,
pucch
->
slot
,
pucch
->
pucch_pdu
.
format_type
,
pucch
->
pucch_pdu
.
bit_len_harq
,
pucch
->
pucch_pdu
.
sr_flag
,
pucch
->
pucch_pdu
.
bit_len_csi_part1
);
memcpy
((
void
*
)
&
pucch
->
pucch_pdu
,
(
void
*
)
pucch_pdu
,
sizeof
(
nfapi_nr_pucch_pdu_t
));
}
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
fcd88de2
...
...
@@ -699,6 +699,7 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
gNB
->
uci_pdu_list
[
num_ucis
].
pdu_size
=
sizeof
(
nfapi_nr_uci_pucch_pdu_format_2_3_4_t
);
nfapi_nr_uci_pucch_pdu_format_2_3_4_t
*
uci_pdu_format2
=
&
gNB
->
uci_pdu_list
[
num_ucis
].
pucch_pdu_format_2_3_4
;
LOG_D
(
PHY
,
"%d.%d Calling nr_decode_pucch2
\n
"
,
frame_rx
,
slot_rx
);
nr_decode_pucch2
(
gNB
,
slot_rx
,
uci_pdu_format2
,
...
...
openair2/ENB_APP/enb_paramdef.h
View file @
fcd88de2
...
...
@@ -172,7 +172,7 @@ typedef enum {
{CONFIG_STRING_RU_IF_FREQ_OFFSET, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{CONFIG_STRING_RU_DO_PRECODING, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{CONFIG_STRING_RU_SF_AHEAD, NULL, 0, iptr:NULL, defintval:4, TYPE_INT, 0}, \
{CONFIG_STRING_RU_SL_AHEAD, NULL, 0, iptr:NULL, defintval:
4
, TYPE_INT, 0}, \
{CONFIG_STRING_RU_SL_AHEAD, NULL, 0, iptr:NULL, defintval:
6
, TYPE_INT, 0}, \
{CONFIG_STRING_RU_NR_FLAG, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{CONFIG_STRING_RU_NR_SCS_FOR_RASTER, NULL, 0, iptr:NULL, defintval:1, TYPE_INT, 0}, \
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
fcd88de2
...
...
@@ -368,8 +368,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
schedule_nr_prach
(
module_idP
,
f
,
s
);
}
// This schedule SR
nr_sr_reporting
(
module_idP
,
frame
,
slot
);
// Schedule CSI-RS transmission
nr_csirs_scheduling
(
module_idP
,
frame
,
slot
,
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
]);
...
...
@@ -398,6 +396,9 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
nr_schedule_pucch
(
module_idP
,
frame
,
slot
);
// This schedule SR after PUCCH for multiplexing
nr_sr_reporting
(
module_idP
,
frame
,
slot
);
stop_meas
(
&
RC
.
nrmac
[
module_idP
]
->
eNB_scheduler
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER
,
VCD_FUNCTION_OUT
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
fcd88de2
...
...
@@ -1225,6 +1225,7 @@ void nr_configure_pucch(nfapi_nr_pucch_pdu_t* pucch_pdu,
}
}
AssertFatal
(
res_found
==
1
,
"No PUCCH resource found corresponding to id %ld
\n
"
,
*
resource_id
);
LOG_D
(
NR_MAC
,
"Configure pucch: pucch_pdu->format_type %d pucch_pdu->bit_len_harq %d, pucch->pdu->bit_len_csi %d
\n
"
,
pucch_pdu
->
format_type
,
pucch_pdu
->
bit_len_harq
,
pucch_pdu
->
bit_len_csi_part1
);
}
else
{
// this is the default PUCCH configuration, PUCCH format 0 or 1
LOG_D
(
NR_MAC
,
"pucch_acknak: Filling default PUCCH configuration from Tables (r_pucch %d, bwp %p)
\n
"
,
r_pucch
,
bwp
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
fcd88de2
...
...
@@ -153,7 +153,8 @@ void nr_schedule_pucch(int Mod_idP,
||
frameP
!=
curr_pucch
->
frame
||
slotP
!=
curr_pucch
->
ul_slot
)
continue
;
LOG_D
(
NR_MAC
,
"Scheduling PUCCH[%d] RX for UE %d in %d.%d O_ack %d
\n
"
,
i
,
UE_id
,
curr_pucch
->
frame
,
curr_pucch
->
ul_slot
,
O_ack
);
if
(
O_csi
>
0
)
LOG_D
(
NR_MAC
,
"Scheduling PUCCH[%d] RX for UE %d in %d.%d O_ack %d, O_sr %d, O_csi %d
\n
"
,
i
,
UE_id
,
curr_pucch
->
frame
,
curr_pucch
->
ul_slot
,
O_ack
,
O_sr
,
O_csi
);
nr_fill_nfapi_pucch
(
Mod_idP
,
frameP
,
slotP
,
curr_pucch
,
UE_id
);
memset
(
curr_pucch
,
0
,
sizeof
(
*
curr_pucch
));
}
...
...
@@ -773,6 +774,7 @@ void nr_csi_meas_reporting(int Mod_idP,
len
=
pucchres
->
format
.
choice
.
format2
->
nrofPRBs
;
mask
=
((
1
<<
pucchres
->
format
.
choice
.
format2
->
nrofSymbols
)
-
1
)
<<
pucchres
->
format
.
choice
.
format2
->
startingSymbolIndex
;
curr_pucch
->
simultaneous_harqcsi
=
pucch_Config
->
format2
->
choice
.
setup
->
simultaneousHARQ_ACK_CSI
;
LOG_D
(
NR_MAC
,
"%d.%d Allocating PUCCH format 2, startPRB %d, nPRB %d, simulHARQ %d, num_bits %d
\n
"
,
frame
,
sched_slot
,
start
,
len
,
curr_pucch
->
simultaneous_harqcsi
,
curr_pucch
->
csi_bits
);
break
;
case
NR_PUCCH_Resource__format_PR_format3
:
len
=
pucchres
->
format
.
choice
.
format3
->
nrofPRBs
;
...
...
@@ -1171,9 +1173,6 @@ void evaluate_rsrp_report(NR_UE_info_t *UE_info,
// including ssb rsrp in mac stats
stats
->
cumul_rsrp
+=
strongest_ssb_rsrp
;
stats
->
num_rsrp_meas
++
;
LOG_D
(
MAC
,
"rsrp_id = %d rsrp = %d
\n
"
,
sched_ctrl
->
CSI_report
.
ssb_cri_report
.
RSRP
,
get_measured_rsrp
(
sched_ctrl
->
CSI_report
.
ssb_cri_report
.
RSRP
));
}
...
...
@@ -1888,11 +1887,51 @@ void nr_sr_reporting(int Mod_idP, frame_t SFN, sub_frame_t slot)
&&
pdu
->
initial_cyclic_shift
==
pucch_res
->
format
.
choice
.
format0
->
initialCyclicShift
&&
pdu
->
nr_of_symbols
==
pucch_res
->
format
.
choice
.
format0
->
nrofSymbols
&&
pdu
->
start_symbol_index
==
pucch_res
->
format
.
choice
.
format0
->
startingSymbolIndex
)
{
LOG_D
(
NR_MAC
,
"%4d.%2d adding SR_flag 1 to PUCCH nFAPI SR for RNTI %04x
\n
"
,
SFN
,
slot
,
pdu
->
rnti
);
LOG_D
(
NR_MAC
,
"%4d.%2d adding SR_flag 1 to PUCCH
format 0
nFAPI SR for RNTI %04x
\n
"
,
SFN
,
slot
,
pdu
->
rnti
);
pdu
->
sr_flag
=
1
;
nfapi_allocated
=
true
;
break
;
}
else
if
(
pdu
->
rnti
==
UE_info
->
rnti
[
UE_id
]
&&
pdu
->
format_type
==
2
// does not use NR_PUCCH_Resource__format_PR_format0
&&
pdu
->
nr_of_symbols
==
pucch_res
->
format
.
choice
.
format2
->
nrofSymbols
&&
pdu
->
start_symbol_index
==
pucch_res
->
format
.
choice
.
format2
->
startingSymbolIndex
)
{
LOG_D
(
NR_MAC
,
"%4d.%2d adding SR_flag 1 to PUCCH format 2 nFAPI SR for RNTI %04x
\n
"
,
SFN
,
slot
,
pdu
->
rnti
);
pdu
->
sr_flag
=
1
;
nfapi_allocated
=
true
;
break
;
}
else
if
(
pdu
->
rnti
==
UE_info
->
rnti
[
UE_id
]
&&
pdu
->
format_type
==
1
// does not use NR_PUCCH_Resource__format_PR_format0
&&
pdu
->
nr_of_symbols
==
pucch_res
->
format
.
choice
.
format1
->
nrofSymbols
&&
pdu
->
start_symbol_index
==
pucch_res
->
format
.
choice
.
format1
->
startingSymbolIndex
)
{
LOG_D
(
NR_MAC
,
"%4d.%2d adding SR_flag 1 to PUCCH format 1 nFAPI SR for RNTI %04x
\n
"
,
SFN
,
slot
,
pdu
->
rnti
);
pdu
->
sr_flag
=
1
;
nfapi_allocated
=
true
;
break
;
}
else
if
(
pdu
->
rnti
==
UE_info
->
rnti
[
UE_id
]
&&
pdu
->
format_type
==
3
// does not use NR_PUCCH_Resource__format_PR_format0
&&
pdu
->
nr_of_symbols
==
pucch_res
->
format
.
choice
.
format3
->
nrofSymbols
&&
pdu
->
start_symbol_index
==
pucch_res
->
format
.
choice
.
format3
->
startingSymbolIndex
)
{
LOG_D
(
NR_MAC
,
"%4d.%2d adding SR_flag 1 to PUCCH format 3 nFAPI SR for RNTI %04x
\n
"
,
SFN
,
slot
,
pdu
->
rnti
);
pdu
->
sr_flag
=
1
;
nfapi_allocated
=
true
;
break
;
}
else
if
(
pdu
->
rnti
==
UE_info
->
rnti
[
UE_id
]
&&
pdu
->
format_type
==
4
// does not use NR_PUCCH_Resource__format_PR_format0
&&
pdu
->
nr_of_symbols
==
pucch_res
->
format
.
choice
.
format4
->
nrofSymbols
&&
pdu
->
start_symbol_index
==
pucch_res
->
format
.
choice
.
format4
->
startingSymbolIndex
)
{
LOG_D
(
NR_MAC
,
"%4d.%2d adding SR_flag 1 to PUCCH format 4 nFAPI SR for RNTI %04x
\n
"
,
SFN
,
slot
,
pdu
->
rnti
);
pdu
->
sr_flag
=
1
;
nfapi_allocated
=
true
;
break
;
}
}
if
(
nfapi_allocated
)
// break scheduling resource loop, continue next UE
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
fcd88de2
...
...
@@ -1051,7 +1051,7 @@ void config_csirs(NR_ServingCellConfigCommon_t *servingcellconfigcommon,
nzpcsi0
->
scramblingID
=
*
servingcellconfigcommon
->
physCellId
;
nzpcsi0
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
periodicityAndOffset
));
nzpcsi0
->
periodicityAndOffset
->
present
=
NR_CSI_ResourcePeriodicityAndOffset_PR_slots320
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots320
=
0
;
nzpcsi0
->
periodicityAndOffset
->
choice
.
slots320
=
2
0
;
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
calloc
(
1
,
sizeof
(
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
));
*
nzpcsi0
->
qcl_InfoPeriodicCSI_RS
=
0
;
ASN_SEQUENCE_ADD
(
&
csi_MeasConfig
->
nzp_CSI_RS_ResourceToAddModList
->
list
,
nzpcsi0
);
...
...
@@ -1596,7 +1596,7 @@ void fill_initial_SpCellConfig(int uid,
csirep1
->
reportConfigType
.
present
=
NR_CSI_ReportConfig__reportConfigType_PR_periodic
;
csirep1
->
reportConfigType
.
choice
.
periodic
=
calloc
(
1
,
sizeof
(
*
csirep1
->
reportConfigType
.
choice
.
periodic
));
csirep1
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
present
=
NR_CSI_ReportPeriodicityAndOffset_PR_slots320
;
csirep1
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots320
=
8
+
(
20
*
uid
)
%
320
;
csirep1
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots320
=
(
8
+
(
20
*
uid
)
)
%
320
;
ASN_SEQUENCE_ADD
(
&
csirep1
->
reportConfigType
.
choice
.
periodic
->
pucch_CSI_ResourceList
.
list
,
pucchcsires1
);
csirep1
->
reportQuantity
.
present
=
NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI
;
csirep1
->
reportQuantity
.
choice
.
cri_RI_PMI_CQI
=
(
NULL_t
)
0
;
...
...
@@ -1655,7 +1655,7 @@ void fill_initial_SpCellConfig(int uid,
csirep2
->
reportConfigType
.
present
=
NR_CSI_ReportConfig__reportConfigType_PR_periodic
;
csirep2
->
reportConfigType
.
choice
.
periodic
=
calloc
(
1
,
sizeof
(
*
csirep2
->
reportConfigType
.
choice
.
periodic
));
csirep2
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
present
=
NR_CSI_ReportPeriodicityAndOffset_PR_slots320
;
csirep2
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots320
=
28
+
(
20
*
uid
)
%
320
;
csirep2
->
reportConfigType
.
choice
.
periodic
->
reportSlotConfig
.
choice
.
slots320
=
(
28
+
(
20
*
uid
)
)
%
320
;
ASN_SEQUENCE_ADD
(
&
csirep2
->
reportConfigType
.
choice
.
periodic
->
pucch_CSI_ResourceList
.
list
,
pucchcsires1
);
csirep2
->
reportQuantity
.
present
=
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
;
csirep2
->
reportQuantity
.
choice
.
cri_RSRP
=
(
NULL_t
)
0
;
...
...
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