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
Michael Black
OpenXG UE
Commits
bfa6e160
Commit
bfa6e160
authored
Oct 28, 2020
by
Shweta Shrivastava
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support for multiple PDUs in a UL slot
parent
3e2da872
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
124 additions
and
120 deletions
+124
-120
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+2
-1
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+2
-2
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
+4
-4
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+115
-112
openair2/LAYER2/NR_MAC_UE/rar_tools_nrUE.c
openair2/LAYER2/NR_MAC_UE/rar_tools_nrUE.c
+1
-1
No files found.
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
View file @
bfa6e160
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "PHY/impl_defs_nr.h"
#include "PHY/impl_defs_nr.h"
#define NFAPI_UE_MAX_NUM_CB 8
#define NFAPI_UE_MAX_NUM_CB 8
#define NFAPI_MAX_NUM_UL_PDU 8
/*
/*
typedef unsigned int uint32_t;
typedef unsigned int uint32_t;
...
@@ -155,7 +156,7 @@ typedef struct {
...
@@ -155,7 +156,7 @@ typedef struct {
uint16_t
slot
;
uint16_t
slot
;
fapi_nr_tx_config_t
tx_config
;
fapi_nr_tx_config_t
tx_config
;
uint16_t
number_of_pdus
;
uint16_t
number_of_pdus
;
fapi_nr_tx_request_body_t
*
tx_request_body
;
fapi_nr_tx_request_body_t
tx_request_body
[
NFAPI_MAX_NUM_UL_PDU
]
;
}
fapi_nr_tx_request_t
;
}
fapi_nr_tx_request_t
;
/// This struct replaces:
/// This struct replaces:
...
...
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
bfa6e160
...
@@ -154,8 +154,8 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
...
@@ -154,8 +154,8 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
ulsch0
->
f_pusch
=
pusch_config_pdu
->
absolute_delta_PUSCH
;
ulsch0
->
f_pusch
=
pusch_config_pdu
->
absolute_delta_PUSCH
;
if
(
scheduled_response
->
tx_request
){
// TBR todo here it should loop through the number of tx pdus
if
(
scheduled_response
->
tx_request
){
fapi_nr_tx_request_body_t
*
tx_req_body
=
scheduled_response
->
tx_request
->
tx_request_body
;
fapi_nr_tx_request_body_t
*
tx_req_body
=
&
scheduled_response
->
tx_request
->
tx_request_body
[
i
]
;
memcpy
(
harq_process_ul_ue
->
a
,
tx_req_body
->
pdu
,
tx_req_body
->
pdu_length
);
memcpy
(
harq_process_ul_ue
->
a
,
tx_req_body
->
pdu
,
tx_req_body
->
pdu_length
);
...
...
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
View file @
bfa6e160
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
bfa6e160
...
@@ -852,10 +852,12 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
...
@@ -852,10 +852,12 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
// program PUSCH with UL DCI parameters
// program PUSCH with UL DCI parameters
nr_scheduled_response_t
scheduled_response
;
nr_scheduled_response_t
scheduled_response
;
fapi_nr_tx_request_t
tx_req
;
fapi_nr_tx_request_t
tx_req
;
fapi_nr_tx_request_body_t
tx_req_body
;
nfapi_nr_ue_ptrs_ports_t
ptrs_ports_list
;
nfapi_nr_ue_ptrs_ports_t
ptrs_ports_list
;
fapi_nr_ul_config_request_pdu_t
*
ulcfg_pdu
=
&
ul_config_req
->
ul_config_list
[
0
];
for
(
int
j
=
0
;
j
<
ul_config_req
->
number_pdus
;
j
++
)
{
fapi_nr_ul_config_request_pdu_t
*
ulcfg_pdu
=
&
ul_config_req
->
ul_config_list
[
j
];
if
(
ulcfg_pdu
->
pdu_type
==
FAPI_NR_UL_CONFIG_TYPE_PUSCH
)
{
// These should come from RRC config!!!
// These should come from RRC config!!!
uint8_t
ptrs_mcs1
=
2
;
uint8_t
ptrs_mcs1
=
2
;
...
@@ -941,7 +943,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
...
@@ -941,7 +943,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
}
}
}
}
#ifdef DEBUG_MAC_PDU
#ifdef DEBUG_MAC_PDU
LOG_D
(
PHY
,
"Is data existing ?: %d
\n
"
,
data_existing
);
LOG_D
(
PHY
,
"Is data existing ?: %d
\n
"
,
data_existing
);
LOG_I
(
PHY
,
"Printing MAC PDU to be encoded, TBS is: %d
\n
"
,
TBS_bytes
);
LOG_I
(
PHY
,
"Printing MAC PDU to be encoded, TBS is: %d
\n
"
,
TBS_bytes
);
...
@@ -950,17 +952,18 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
...
@@ -950,17 +952,18 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
}
}
printf
(
"
\n
"
);
printf
(
"
\n
"
);
#endif
#endif
// Config UL TX PDU
// Config UL TX PDU
tx_req
.
slot
=
slot_tx
;
tx_req
.
slot
=
slot_tx
;
tx_req
.
sfn
=
frame_tx
;
tx_req
.
sfn
=
frame_tx
;
// tx_req->tx_config // TbD
// tx_req->tx_config // TbD
tx_req
.
number_of_pdus
=
1
;
tx_req
.
number_of_pdus
++
;
tx_req_body
.
pdu_length
=
TBS_bytes
;
tx_req
.
tx_request_body
[
j
].
pdu_length
=
TBS_bytes
;
tx_req_body
.
pdu_index
=
0
;
tx_req
.
tx_request_body
[
j
].
pdu_index
=
j
;
tx_req_body
.
pdu
=
ulsch_input_buffer
;
tx_req
.
tx_request_body
[
j
].
pdu
=
ulsch_input_buffer
;
tx_req
.
tx_request_body
=
&
tx_req_body
;
}
}
fill_scheduled_response
(
&
scheduled_response
,
NULL
,
ul_config_req
,
&
tx_req
,
mod_id
,
cc_id
,
rx_frame
,
rx_slot
);
fill_scheduled_response
(
&
scheduled_response
,
NULL
,
ul_config_req
,
&
tx_req
,
mod_id
,
cc_id
,
rx_frame
,
rx_slot
);
if
(
mac
->
if_module
!=
NULL
&&
mac
->
if_module
->
scheduled_response
!=
NULL
){
if
(
mac
->
if_module
!=
NULL
&&
mac
->
if_module
->
scheduled_response
!=
NULL
){
...
@@ -983,8 +986,8 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
...
@@ -983,8 +986,8 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
uint8_t
ulsch_input_buffer
[
MAX_ULSCH_PAYLOAD_BYTES
];
uint8_t
ulsch_input_buffer
[
MAX_ULSCH_PAYLOAD_BYTES
];
nr_scheduled_response_t
scheduled_response
;
nr_scheduled_response_t
scheduled_response
;
fapi_nr_tx_request_t
tx_req
;
fapi_nr_tx_request_t
tx_req
;
fapi_nr_tx_request_body_t
tx_req_body
;
//fapi_nr_ul_config_request_t *ul_config = get_ul_config_request(mac, ul_info->slot_tx)
;
fapi_nr_ul_config_request_t
*
ul_config
=
get_ul_config_request
(
mac
,
ul_info
->
slot_tx
)
;
fapi_nr_ul_config_request_t
*
ul_config
=
&
mac
->
ul_config_request
[
0
]
;
fapi_nr_ul_config_request_pdu_t
*
ul_config_list
=
&
ul_config
->
ul_config_list
[
ul_config
->
number_pdus
];
fapi_nr_ul_config_request_pdu_t
*
ul_config_list
=
&
ul_config
->
ul_config_list
[
ul_config
->
number_pdus
];
uint16_t
TBS_bytes
=
ul_config_list
->
pusch_config_pdu
.
pusch_data
.
tb_size
;
uint16_t
TBS_bytes
=
ul_config_list
->
pusch_config_pdu
.
pusch_data
.
tb_size
;
...
@@ -1025,10 +1028,9 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
...
@@ -1025,10 +1028,9 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
tx_req
.
slot
=
ul_info
->
slot_tx
;
tx_req
.
slot
=
ul_info
->
slot_tx
;
tx_req
.
sfn
=
ul_info
->
frame_tx
;
tx_req
.
sfn
=
ul_info
->
frame_tx
;
tx_req
.
number_of_pdus
=
1
;
tx_req
.
number_of_pdus
=
1
;
tx_req_body
.
pdu_length
=
TBS_bytes
;
tx_req
.
tx_request_body
[
0
].
pdu_length
=
TBS_bytes
;
tx_req_body
.
pdu_index
=
0
;
tx_req
.
tx_request_body
[
0
].
pdu_index
=
0
;
tx_req_body
.
pdu
=
ulsch_input_buffer
;
tx_req
.
tx_request_body
[
0
].
pdu
=
ulsch_input_buffer
;
tx_req
.
tx_request_body
=
&
tx_req_body
;
ul_config_list
->
pdu_type
=
FAPI_NR_UL_CONFIG_TYPE_PUSCH
;
ul_config_list
->
pdu_type
=
FAPI_NR_UL_CONFIG_TYPE_PUSCH
;
ul_config
->
number_pdus
++
;
ul_config
->
number_pdus
++
;
// scheduled_response
// scheduled_response
...
@@ -1096,7 +1098,8 @@ void nr_ue_prach_scheduler(module_id_t module_idP, frame_t frameP, sub_frame_t s
...
@@ -1096,7 +1098,8 @@ void nr_ue_prach_scheduler(module_id_t module_idP, frame_t frameP, sub_frame_t s
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_idP
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_idP
);
fapi_nr_ul_config_request_t
*
ul_config
=
get_ul_config_request
(
mac
,
slotP
);
//fapi_nr_ul_config_request_t *ul_config = get_ul_config_request(mac, slotP);
fapi_nr_ul_config_request_t
*
ul_config
=
&
mac
->
ul_config_request
[
0
];
fapi_nr_ul_config_prach_pdu
*
prach_config_pdu
;
fapi_nr_ul_config_prach_pdu
*
prach_config_pdu
;
fapi_nr_config_request_t
*
cfg
=
&
mac
->
phy_config
.
config_req
;
fapi_nr_config_request_t
*
cfg
=
&
mac
->
phy_config
.
config_req
;
fapi_nr_prach_config_t
*
prach_config
=
&
cfg
->
prach_config
;
fapi_nr_prach_config_t
*
prach_config
=
&
cfg
->
prach_config
;
...
...
openair2/LAYER2/NR_MAC_UE/rar_tools_nrUE.c
View file @
bfa6e160
...
@@ -77,7 +77,7 @@ void nr_config_Msg3_pdu(NR_UE_MAC_INST_t *mac,
...
@@ -77,7 +77,7 @@ void nr_config_Msg3_pdu(NR_UE_MAC_INST_t *mac,
uint8_t
nb_dmrs_re_per_rb
;
uint8_t
nb_dmrs_re_per_rb
;
uint16_t
number_dmrs_symbols
=
0
;
uint16_t
number_dmrs_symbols
=
0
;
int
N_PRB_oh
;
int
N_PRB_oh
;
fapi_nr_ul_config_request_t
*
ul_config
=
&
mac
->
ul_config_request
;
fapi_nr_ul_config_request_t
*
ul_config
=
&
mac
->
ul_config_request
[
0
]
;
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
=
&
ul_config
->
ul_config_list
[
ul_config
->
number_pdus
].
pusch_config_pdu
;
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
=
&
ul_config
->
ul_config_list
[
ul_config
->
number_pdus
].
pusch_config_pdu
;
NR_ServingCellConfigCommon_t
*
scc
=
mac
->
scc
;
NR_ServingCellConfigCommon_t
*
scc
=
mac
->
scc
;
NR_BWP_Uplink_t
*
ubwp
=
mac
->
ULbwp
[
0
];
NR_BWP_Uplink_t
*
ubwp
=
mac
->
ULbwp
[
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