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
lizhongxiao
OpenXG-RAN
Commits
b516e26a
Commit
b516e26a
authored
Sep 17, 2020
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move HARQ calculations out of nr_fill_nfapi_dl_pdu()
parent
8dd212c0
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
13 deletions
+24
-13
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+13
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+7
-11
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+4
-1
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
b516e26a
...
@@ -621,6 +621,15 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -621,6 +621,15 @@ void nr_schedule_ue_spec(module_id_t module_id,
gNB_mac
->
UE_list
.
DLSCH_pdu
[
0
][
0
].
payload
[
0
][
offset
+
j
]
=
0
;
gNB_mac
->
UE_list
.
DLSCH_pdu
[
0
][
0
].
payload
[
0
][
offset
+
j
]
=
0
;
}
}
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
const
int
current_harq_pid
=
sched_ctrl
->
current_harq_pid
;
NR_UE_harq_t
*
harq
=
&
sched_ctrl
->
harq_processes
[
current_harq_pid
];
harq
->
feedback_slot
=
pucch
->
ul_slot
;
harq
->
is_waiting
=
1
;
UE_list
->
mac_stats
[
UE_id
].
dlsch_rounds
[
harq
->
round
]
++
;
if
(
harq
->
round
==
0
)
UE_list
->
mac_stats
[
UE_id
].
dlsch_total_bytes
+=
TBS
;
nfapi_nr_dl_tti_request_body_t
*
dl_req
=
&
gNB_mac
->
DL_req
[
CC_id
].
dl_tti_request_body
;
nfapi_nr_dl_tti_request_body_t
*
dl_req
=
&
gNB_mac
->
DL_req
[
CC_id
].
dl_tti_request_body
;
nr_fill_nfapi_dl_pdu
(
module_id
,
nr_fill_nfapi_dl_pdu
(
module_id
,
UE_id
,
UE_id
,
...
@@ -643,7 +652,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -643,7 +652,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
startSymbolIndex
,
startSymbolIndex
,
nrOfSymbols
,
nrOfSymbols
,
aggregation_level
,
aggregation_level
,
CCEIndex
);
CCEIndex
,
current_harq_pid
,
harq
->
ndi
,
harq
->
round
);
nfapi_nr_pdu_t
*
tx_req
=
&
gNB_mac
->
TX_req
[
CC_id
].
pdu_list
[
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
];
nfapi_nr_pdu_t
*
tx_req
=
&
gNB_mac
->
TX_req
[
CC_id
].
pdu_list
[
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
];
configure_fapi_dl_Tx
(
module_id
,
configure_fapi_dl_Tx
(
module_id
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
b516e26a
...
@@ -456,7 +456,10 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
...
@@ -456,7 +456,10 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
int
StartSymbolIndex
,
int
StartSymbolIndex
,
int
NrOfSymbols
,
int
NrOfSymbols
,
uint8_t
aggregation_level
,
uint8_t
aggregation_level
,
int
CCEIndex
)
{
int
CCEIndex
,
int
harq_pid
,
int
ndi
,
int
round
)
{
gNB_MAC_INST
*
nr_mac
=
RC
.
nrmac
[
Mod_idP
];
gNB_MAC_INST
*
nr_mac
=
RC
.
nrmac
[
Mod_idP
];
NR_COMMON_channels_t
*
cc
=
nr_mac
->
common_channels
;
NR_COMMON_channels_t
*
cc
=
nr_mac
->
common_channels
;
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
...
@@ -504,17 +507,15 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
...
@@ -504,17 +507,15 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
pdsch_pdu_rel15
->
CyclicPrefix
=
0
;
pdsch_pdu_rel15
->
CyclicPrefix
=
0
;
pdsch_pdu_rel15
->
NrOfCodewords
=
1
;
pdsch_pdu_rel15
->
NrOfCodewords
=
1
;
int
current_harq_pid
=
UE_list
->
UE_sched_ctrl
[
UE_id
].
current_harq_pid
;
pdsch_pdu_rel15
->
targetCodeRate
[
0
]
=
nr_get_code_rate_dl
(
mcs
,
0
);
pdsch_pdu_rel15
->
targetCodeRate
[
0
]
=
nr_get_code_rate_dl
(
mcs
,
0
);
pdsch_pdu_rel15
->
qamModOrder
[
0
]
=
2
;
pdsch_pdu_rel15
->
qamModOrder
[
0
]
=
2
;
pdsch_pdu_rel15
->
mcsIndex
[
0
]
=
mcs
;
pdsch_pdu_rel15
->
mcsIndex
[
0
]
=
mcs
;
pdsch_pdu_rel15
->
mcsTable
[
0
]
=
0
;
pdsch_pdu_rel15
->
mcsTable
[
0
]
=
0
;
pdsch_pdu_rel15
->
rvIndex
[
0
]
=
nr_rv_round_map
[
UE_list
->
UE_sched_ctrl
[
UE_id
].
harq_processes
[
current_harq_pid
].
round
];
pdsch_pdu_rel15
->
rvIndex
[
0
]
=
nr_rv_round_map
[
round
];
pdsch_pdu_rel15
->
dataScramblingId
=
*
scc
->
physCellId
;
pdsch_pdu_rel15
->
dataScramblingId
=
*
scc
->
physCellId
;
pdsch_pdu_rel15
->
nrOfLayers
=
nrOfLayers
;
pdsch_pdu_rel15
->
nrOfLayers
=
nrOfLayers
;
pdsch_pdu_rel15
->
transmissionScheme
=
0
;
pdsch_pdu_rel15
->
transmissionScheme
=
0
;
pdsch_pdu_rel15
->
refPoint
=
0
;
// Point A
pdsch_pdu_rel15
->
refPoint
=
0
;
// Point A
UE_list
->
mac_stats
[
UE_id
].
dlsch_rounds
[
UE_list
->
UE_sched_ctrl
[
UE_id
].
harq_processes
[
current_harq_pid
].
round
]
++
;
pdsch_pdu_rel15
->
dmrsConfigType
=
dmrsConfigType
;
pdsch_pdu_rel15
->
dmrsConfigType
=
dmrsConfigType
;
pdsch_pdu_rel15
->
dlDmrsScramblingId
=
*
scc
->
physCellId
;
pdsch_pdu_rel15
->
dlDmrsScramblingId
=
*
scc
->
physCellId
;
pdsch_pdu_rel15
->
SCID
=
0
;
pdsch_pdu_rel15
->
SCID
=
0
;
...
@@ -562,8 +563,8 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
...
@@ -562,8 +563,8 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
dci_pdu_rel15
[
0
].
mcs
=
mcs
;
dci_pdu_rel15
[
0
].
mcs
=
mcs
;
dci_pdu_rel15
[
0
].
rv
=
pdsch_pdu_rel15
->
rvIndex
[
0
];
dci_pdu_rel15
[
0
].
rv
=
pdsch_pdu_rel15
->
rvIndex
[
0
];
// harq pid and ndi
// harq pid and ndi
dci_pdu_rel15
[
0
].
harq_pid
=
current_
harq_pid
;
dci_pdu_rel15
[
0
].
harq_pid
=
harq_pid
;
dci_pdu_rel15
[
0
].
ndi
=
UE_list
->
UE_sched_ctrl
[
UE_id
].
harq_processes
[
current_harq_pid
].
ndi
;
dci_pdu_rel15
[
0
].
ndi
=
ndi
;
// DAI
// DAI
dci_pdu_rel15
[
0
].
dai
[
0
].
val
=
(
pucch_sched
->
dai_c
-
1
)
&
3
;
dci_pdu_rel15
[
0
].
dai
[
0
].
val
=
(
pucch_sched
->
dai_c
-
1
)
&
3
;
...
@@ -573,8 +574,6 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
...
@@ -573,8 +574,6 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
dci_pdu_rel15
[
0
].
pucch_resource_indicator
=
pucch_sched
->
resource_indicator
;
dci_pdu_rel15
[
0
].
pucch_resource_indicator
=
pucch_sched
->
resource_indicator
;
// PDSCH to HARQ TI
// PDSCH to HARQ TI
dci_pdu_rel15
[
0
].
pdsch_to_harq_feedback_timing_indicator
.
val
=
pucch_sched
->
timing_indicator
;
dci_pdu_rel15
[
0
].
pdsch_to_harq_feedback_timing_indicator
.
val
=
pucch_sched
->
timing_indicator
;
UE_list
->
UE_sched_ctrl
[
UE_id
].
harq_processes
[
current_harq_pid
].
feedback_slot
=
pucch_sched
->
ul_slot
;
UE_list
->
UE_sched_ctrl
[
UE_id
].
harq_processes
[
current_harq_pid
].
is_waiting
=
1
;
// antenna ports
// antenna ports
dci_pdu_rel15
[
0
].
antenna_ports
.
val
=
0
;
// nb of cdm groups w/o data 1 and dmrs port 0
dci_pdu_rel15
[
0
].
antenna_ports
.
val
=
0
;
// nb of cdm groups w/o data 1 and dmrs port 0
// dmrs sequence initialization
// dmrs sequence initialization
...
@@ -637,9 +636,6 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
...
@@ -637,9 +636,6 @@ void nr_fill_nfapi_dl_pdu(int Mod_idP,
// N_PRB_oh);
// N_PRB_oh);
//pdsch_pdu_rel15->nb_mod_symbols = N_RE_prime*pdsch_pdu_rel15->n_prb*pdsch_pdu_rel15->nb_codewords;
//pdsch_pdu_rel15->nb_mod_symbols = N_RE_prime*pdsch_pdu_rel15->n_prb*pdsch_pdu_rel15->nb_codewords;
if
(
UE_list
->
UE_sched_ctrl
[
UE_id
].
harq_processes
[
current_harq_pid
].
round
==
0
)
UE_list
->
mac_stats
[
UE_id
].
dlsch_total_bytes
+=
TBS
;
LOG_D
(
MAC
,
LOG_D
(
MAC
,
"DLSCH PDU: start PRB %d n_PRB %d start symbol %d nb_symbols %d "
"DLSCH PDU: start PRB %d n_PRB %d start symbol %d nb_symbols %d "
"nb_layers %d nb_codewords %d mcs %d TBS: %d
\n
"
,
"nb_layers %d nb_codewords %d mcs %d TBS: %d
\n
"
,
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
b516e26a
...
@@ -150,7 +150,10 @@ void nr_fill_nfapi_dl_pdu(int Mod_id,
...
@@ -150,7 +150,10 @@ void nr_fill_nfapi_dl_pdu(int Mod_id,
int
StartSymbolIndex
,
int
StartSymbolIndex
,
int
NrOfSymbols
,
int
NrOfSymbols
,
uint8_t
aggregation_level
,
uint8_t
aggregation_level
,
int
CCEIndex
);
int
CCEIndex
,
int
harq_pid
,
int
ndi
,
int
round
);
int
configure_fapi_dl_pdu_phytest
(
int
Mod_id
,
int
configure_fapi_dl_pdu_phytest
(
int
Mod_id
,
nfapi_nr_dl_tti_request_body_t
*
dl_req
,
nfapi_nr_dl_tti_request_body_t
*
dl_req
,
...
...
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