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
canghaiwuhen
OpenXG-RAN
Commits
8a1d53ef
Commit
8a1d53ef
authored
Nov 09, 2020
by
wujing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix build error in NR
parent
0a084d7e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
224 deletions
+0
-224
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+0
-224
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
8a1d53ef
...
...
@@ -428,230 +428,6 @@ void config_uldci(NR_BWP_Uplink_t *ubwp,
}
void
configure_fapi_dl_Tx
(
module_id_t
Mod_idP
,
frame_t
frameP
,
sub_frame_t
slotP
,
nfapi_nr_dl_tti_request_body_t
*
dl_req
,
nfapi_nr_pdu_t
*
tx_req
,
int
tbs_bytes
,
int16_t
pdu_index
){
int
CC_id
=
0
;
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdsch_pdu
=
&
dl_req
->
dl_tti_pdu_list
[
dl_req
->
nPDUs
+
1
];
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
pdsch_pdu_rel15
=
&
dl_tti_pdsch_pdu
->
pdsch_pdu
.
pdsch_pdu_rel15
;
gNB_MAC_INST
*
nr_mac
=
RC
.
nrmac
[
Mod_idP
];
LOG_D
(
MAC
,
"DLSCH PDU: start PRB %d n_PRB %d start symbol %d nb_symbols %d nb_layers %d nb_codewords %d mcs %d TBS (bytes): %d
\n
"
,
pdsch_pdu_rel15
->
rbStart
,
pdsch_pdu_rel15
->
rbSize
,
pdsch_pdu_rel15
->
StartSymbolIndex
,
pdsch_pdu_rel15
->
NrOfSymbols
,
pdsch_pdu_rel15
->
nrOfLayers
,
pdsch_pdu_rel15
->
NrOfCodewords
,
pdsch_pdu_rel15
->
mcsIndex
[
0
],
tbs_bytes
);
dl_req
->
nPDUs
+=
2
;
tx_req
->
PDU_length
=
pdsch_pdu_rel15
->
TBSize
[
0
];
tx_req
->
PDU_index
=
nr_mac
->
pdu_index
[
0
]
++
;
tx_req
->
num_TLV
=
1
;
tx_req
->
TLVs
[
0
].
length
=
tbs_bytes
+
2
;
memcpy
((
void
*
)
&
tx_req
->
TLVs
[
0
].
value
.
direct
[
0
],
(
void
*
)
&
nr_mac
->
UE_info
.
DLSCH_pdu
[
0
][
0
].
payload
[
0
],
tbs_bytes
);
nr_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
++
;
nr_mac
->
TX_req
[
CC_id
].
SFN
=
frameP
;
nr_mac
->
TX_req
[
CC_id
].
Slot
=
slotP
;
}
void
nr_schedule_uss_dlsch_phytest
(
module_id_t
module_idP
,
frame_t
frameP
,
sub_frame_t
slotP
,
NR_sched_pucch
*
pucch_sched
,
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
dlsch_config
){
LOG_D
(
MAC
,
"In nr_schedule_uss_dlsch_phytest frame %d slot %d
\n
"
,
frameP
,
slotP
);
int
post_padding
=
0
,
header_length_total
=
0
,
sdu_length_total
=
0
,
num_sdus
=
0
;
int
lcid
,
offset
,
i
,
header_length_last
,
TBS_bytes
=
0
;
int
UE_id
=
0
,
CC_id
=
0
;
gNB_MAC_INST
*
gNB_mac
=
RC
.
nrmac
[
module_idP
];
//NR_COMMON_channels_t *cc = nr_mac->common_channels;
//NR_ServingCellConfigCommon_t *scc=cc->ServingCellConfigCommon;
nfapi_nr_dl_tti_request_body_t
*
dl_req
=
&
gNB_mac
->
DL_req
[
CC_id
].
dl_tti_request_body
;
nfapi_nr_pdu_t
*
tx_req
=
&
gNB_mac
->
TX_req
[
CC_id
].
pdu_list
[
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
];
mac_rlc_status_resp_t
rlc_status
;
NR_UE_info_t
*
UE_info
=
&
gNB_mac
->
UE_info
;
if
(
UE_info
->
num_UEs
==
0
)
return
;
unsigned
char
sdu_lcids
[
NB_RB_MAX
]
=
{
0
};
uint16_t
sdu_lengths
[
NB_RB_MAX
]
=
{
0
};
uint16_t
rnti
=
UE_info
->
rnti
[
UE_id
];
NR_UE_sched_ctrl_t
*
ue_sched_ctl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
uint8_t
mac_sdus
[
MAX_NR_DLSCH_PAYLOAD_BYTES
];
LOG_D
(
MAC
,
"Scheduling UE specific search space DCI type 1
\n
"
);
int
ta_len
=
(
ue_sched_ctl
->
ta_apply
)
?
2
:
0
;
TBS_bytes
=
configure_fapi_dl_pdu_phytest
(
module_idP
,
dl_req
,
pucch_sched
,
dlsch_config
!=
NULL
?
dlsch_config
->
mcsIndex
:
NULL
,
dlsch_config
!=
NULL
?
&
dlsch_config
->
rbSize
:
NULL
,
dlsch_config
!=
NULL
?
&
dlsch_config
->
rbStart
:
NULL
);
if
(
TBS_bytes
==
0
)
return
;
lcid
=
DL_SCH_LCID_DTCH
;
//for (lcid = NB_RB_MAX - 1; lcid >= DTCH; lcid--) {
// TODO: check if the lcid is active
LOG_D
(
MAC
,
"[gNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (TBS %d bytes, len %d)
\n
"
,
module_idP
,
frameP
,
lcid
,
TBS_bytes
,
TBS_bytes
-
ta_len
-
header_length_total
-
sdu_length_total
-
3
);
//if (TBS_bytes - ta_len - header_length_total - sdu_length_total - 3 > 0) {
rlc_status
=
mac_rlc_status_ind
(
module_idP
,
rnti
,
module_idP
,
frameP
,
slotP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
lcid
,
0
,
0
);
if
(
rlc_status
.
bytes_in_buffer
>
0
)
{
LOG_I
(
MAC
,
"configure fapi due to data availability
\n
"
);
LOG_I
(
MAC
,
"[gNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d), TBS_bytes: %d
\n
\n
"
,
module_idP
,
frameP
,
TBS_bytes
-
ta_len
-
header_length_total
-
sdu_length_total
-
3
,
lcid
,
header_length_total
,
TBS_bytes
);
sdu_lengths
[
num_sdus
]
=
mac_rlc_data_req
(
module_idP
,
rnti
,
module_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
lcid
,
TBS_bytes
-
ta_len
-
header_length_total
-
sdu_length_total
-
3
,
(
char
*
)
&
mac_sdus
[
sdu_length_total
],
0
,
0
);
LOG_W
(
MAC
,
"[gNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d
\n
"
,
module_idP
,
sdu_lengths
[
num_sdus
],
lcid
);
sdu_lcids
[
num_sdus
]
=
lcid
;
sdu_length_total
+=
sdu_lengths
[
num_sdus
];
header_length_last
=
1
+
1
+
(
sdu_lengths
[
num_sdus
]
>=
128
);
header_length_total
+=
header_length_last
;
num_sdus
++
;
//ue_sched_ctl->uplane_inactivity_timer = 0;
}
else
{
LOG_D
(
MAC
,
"Configuring DL_TX in %d.%d
\n
"
,
frameP
,
slotP
);
// fill dlsch_buffer with random data
for
(
i
=
0
;
i
<
TBS_bytes
;
i
++
){
mac_sdus
[
i
]
=
(
unsigned
char
)
(
lrand48
()
&
0xff
);
//((uint8_t *)gNB_mac->UE_info.DLSCH_pdu[0][0].payload[0])[i] = (unsigned char) (lrand48()&0xff);
}
//Sending SDUs with size 1
//Initialize elements of sdu_lcids and sdu_lengths
sdu_lcids
[
0
]
=
0x3f
;
// DRB
sdu_lengths
[
0
]
=
TBS_bytes
-
ta_len
-
3
;
header_length_total
+=
2
+
(
sdu_lengths
[
0
]
>=
128
);
sdu_length_total
+=
sdu_lengths
[
0
];
num_sdus
+=
1
;
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
if
(
frameP
%
100
==
0
){
LOG_I
(
MAC
,
"Printing first 10 payload bytes at the gNB side, Frame: %d, slot: %d, TBS size: %d
\n
"
,
frameP
,
slotP
,
TBS_bytes
);
for
(
int
i
=
0
;
i
<
10
;
i
++
)
{
LOG_I
(
MAC
,
"%x. "
,
((
uint8_t
*
)
gNB_mac
->
UE_info
.
DLSCH_pdu
[
CC_id
][
0
][
0
].
payload
[
0
])[
i
]);
}
}
#endif
}
UE_info
->
mac_stats
[
UE_id
].
lc_bytes_tx
[
lcid
]
+=
sdu_length_total
;
// there is at least one SDU or TA command
// if (num_sdus > 0 ){
if
(
ta_len
+
sdu_length_total
+
header_length_total
>
0
)
{
// Check if there is data from RLC or CE
if
(
TBS_bytes
>=
2
+
header_length_total
+
sdu_length_total
+
ta_len
)
{
// we have to consider padding
// padding param currently not in use
//padding = TBS_bytes - header_length_total - sdu_length_total - ta_len - 1;
post_padding
=
1
;
}
else
{
//padding = 0;
post_padding
=
0
;
}
offset
=
nr_generate_dlsch_pdu
(
module_idP
,
&
UE_info
->
UE_sched_ctrl
[
UE_id
],
(
unsigned
char
*
)
mac_sdus
,
(
unsigned
char
*
)
gNB_mac
->
UE_info
.
DLSCH_pdu
[
0
][
0
].
payload
[
0
][
TB1
],
num_sdus
,
//num_sdus
sdu_lengths
,
sdu_lcids
,
255
,
// no drx
NULL
,
// contention res id
post_padding
);
// Padding: fill remainder of DLSCH with 0
if
(
post_padding
>
0
){
for
(
int
j
=
0
;
j
<
(
TBS_bytes
-
offset
);
j
++
)
gNB_mac
->
UE_info
.
DLSCH_pdu
[
0
][
0
].
payload
[
0
][
TB1
][
offset
+
j
]
=
0
;
// mac_pdu[offset + j] = 0;
}
configure_fapi_dl_Tx
(
module_idP
,
frameP
,
slotP
,
dl_req
,
tx_req
,
TBS_bytes
,
gNB_mac
->
pdu_index
[
CC_id
]);
if
(
IS_SOFTMODEM_NOS1
){
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
LOG_I
(
MAC
,
"Printing first 10 payload bytes at the gNB side, Frame: %d, slot: %d, TBS size: %d
\n
\n
"
,
frameP
,
slotP
,
TBS_bytes
);
for
(
int
i
=
0
;
i
<
10
;
i
++
)
{
// TBS_bytes dlsch_pdu_rel15->transport_block_size/8 6784/8
LOG_I
(
MAC
,
"%x. "
,
mac_payload
[
i
]);
}
#endif
}
else
{
#if defined(ENABLE_MAC_PAYLOAD_DEBUG)
if
(
frameP
%
100
==
0
){
LOG_I
(
MAC
,
"Printing first 10 payload bytes at the gNB side, Frame: %d, slot: %d, TBS size: %d
\n
"
,
frameP
,
slotP
,
TBS_bytes
);
for
(
int
i
=
0
;
i
<
10
;
i
++
)
{
LOG_I
(
MAC
,
"byte %d : %x
\n
"
,
i
,((
uint8_t
*
)
gNB_mac
->
UE_info
.
DLSCH_pdu
[
0
][
0
].
payload
[
0
][
TB1
])[
i
]);
//LOG_I(MAC, "%x. ", mac_payload[i]);
}
}
#endif
}
}
else
{
// There is no data from RLC or MAC header, so don't schedule
}
}
int8_t
select_ul_harq_pid
(
NR_UE_sched_ctrl_t
*
sched_ctrl
)
{
uint8_t
hrq_id
;
...
...
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