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
ZhouShuya
OpenXG-RAN
Commits
f922637e
Commit
f922637e
authored
Jan 06, 2021
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Save TB in MAC, transmit TX_req also on retx, use ptr instead of direct in nFAPI
parent
8d9d080a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
13 deletions
+24
-13
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+19
-12
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+4
-0
No files found.
openair1/SCHED_NR/fapi_nr_l1.c
View file @
f922637e
...
...
@@ -192,7 +192,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
uint16_t
pduIndex
=
pdsch_pdu_rel15
->
pduIndex
;
AssertFatal
(
TX_req
->
pdu_list
[
pduIndex
].
num_TLV
==
1
,
"TX_req->pdu_list[%d].num_TLV %d != 1
\n
"
,
pduIndex
,
TX_req
->
pdu_list
[
pduIndex
].
num_TLV
);
uint8_t
*
sdu
=
(
uint8_t
*
)
TX_req
->
pdu_list
[
pduIndex
].
TLVs
[
0
].
value
.
direct
;
uint8_t
*
sdu
=
(
uint8_t
*
)
TX_req
->
pdu_list
[
pduIndex
].
TLVs
[
0
].
value
.
ptr
;
handle_nr_nfapi_pdsch_pdu
(
gNB
,
frame
,
slot
,
&
dl_tti_pdu
->
pdsch_pdu
,
sdu
);
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
f922637e
...
...
@@ -806,7 +806,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
retInfo
->
mcs
,
retInfo
->
numDmrsCdmGrpsNoData
);
/* we do not have to do anything, since we do not require to get data
* from RLC
, encode MAC CEs, or copy data to FAPI structures
*/
* from RLC
or encode MAC CEs. The TX_req structure is filled below
*/
LOG_W
(
MAC
,
"%d.%2d DL retransmission UE %d/RNTI %04x HARQ PID %d round %d NDI %d
\n
"
,
frame
,
...
...
@@ -816,20 +816,16 @@ void nr_schedule_ue_spec(module_id_t module_id,
current_harq_pid
,
harq
->
round
,
harq
->
ndi
);
AssertFatal
(
harq
->
tb_size
==
TBS
,
"UE %d mismatch between scheduled TBS and buffered TB for HARQ PID %d
\n
"
,
UE_id
,
current_harq_pid
);
}
else
{
/* initial transmission */
LOG_D
(
MAC
,
"[%s] Initial HARQ transmission in %d.%d
\n
"
,
__FUNCTION__
,
frame
,
slot
);
const
int
ntx_req
=
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
;
nfapi_nr_pdu_t
*
tx_req
=
&
gNB_mac
->
TX_req
[
CC_id
].
pdu_list
[
ntx_req
];
tx_req
->
PDU_length
=
TBS
;
tx_req
->
PDU_index
=
pduindex
;
tx_req
->
num_TLV
=
1
;
tx_req
->
TLVs
[
0
].
length
=
TBS
+
2
;
/* pointer to directly generate the PDU into the nFAPI structure */
uint8_t
*
buf
=
(
uint8_t
*
)
tx_req
->
TLVs
[
0
].
value
.
direct
;
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
++
;
gNB_mac
->
TX_req
[
CC_id
].
SFN
=
frame
;
gNB_mac
->
TX_req
[
CC_id
].
Slot
=
slot
;
harq
->
tb_size
=
TBS
;
uint8_t
*
buf
=
(
uint8_t
*
)
harq
->
tb
;
/* first, write all CEs that might be there */
int
written
=
nr_write_ce_dlsch_pdu
(
module_id
,
...
...
@@ -956,6 +952,17 @@ void nr_schedule_ue_spec(module_id_t module_id,
T_INT
(
frame
),
T_INT
(
slot
),
T_INT
(
current_harq_pid
),
T_BUFFER
(
buf
,
TBS
));
}
const
int
ntx_req
=
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
;
nfapi_nr_pdu_t
*
tx_req
=
&
gNB_mac
->
TX_req
[
CC_id
].
pdu_list
[
ntx_req
];
tx_req
->
PDU_length
=
TBS
;
tx_req
->
PDU_index
=
pduindex
;
tx_req
->
num_TLV
=
1
;
tx_req
->
TLVs
[
0
].
length
=
TBS
+
2
;
tx_req
->
TLVs
[
0
].
value
.
ptr
=
harq
->
tb
;
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
++
;
gNB_mac
->
TX_req
[
CC_id
].
SFN
=
frame
;
gNB_mac
->
TX_req
[
CC_id
].
Slot
=
slot
;
/* mark UE as scheduled */
sched_ctrl
->
rbSize
=
0
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
f922637e
...
...
@@ -344,6 +344,10 @@ typedef struct NR_UE_harq {
uint8_t
ndi
;
uint8_t
round
;
uint16_t
feedback_slot
;
/* Transport block to be sent using this HARQ process */
uint32_t
tb
[
16384
];
uint32_t
tb_size
;
}
NR_UE_harq_t
;
typedef
struct
NR_UE_old_sched
{
...
...
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