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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
5697860d
Commit
5697860d
authored
Nov 22, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fill NFAPI of SRS pdu
parent
d70b52a7
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
66 additions
and
2 deletions
+66
-2
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+3
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
+63
-2
No files found.
openair1/SCHED_NR/fapi_nr_l1.c
View file @
5697860d
...
...
@@ -229,6 +229,9 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
nr_fill_prach
(
gNB
,
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
,
prach_pdu
);
if
(
gNB
->
RU_list
[
0
]
->
if_south
==
LOCAL_RF
)
nr_fill_prach_ru
(
gNB
->
RU_list
[
0
],
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
,
prach_pdu
);
break
;
case
NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE
:
LOG_D
(
PHY
,
"frame %d, slot %d, Got NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE for %d.%d
\n
"
,
frame
,
slot
,
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
);
break
;
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
View file @
5697860d
...
...
@@ -26,7 +26,6 @@
*/
#include <softmodem-common.h>
#include "LAYER2/MAC/mac.h"
#include "NR_MAC_gNB/nr_mac_gNB.h"
#include "NR_MAC_COMMON/nr_mac_extern.h"
#include "NR_MAC_gNB/mac_proto.h"
...
...
@@ -35,6 +34,67 @@
extern
RAN_CONTEXT_t
RC
;
void
nr_configure_srs
(
nfapi_nr_srs_pdu_t
*
srs_pdu
,
int
module_id
,
int
CC_id
,
int
UE_id
,
NR_SRS_Resource_t
*
srs_resource
)
{
gNB_MAC_INST
*
nrmac
=
RC
.
nrmac
[
module_id
];
NR_ServingCellConfigCommon_t
*
scc
=
nrmac
->
common_channels
[
CC_id
].
ServingCellConfigCommon
;
NR_UE_info_t
*
UE_info
=
&
nrmac
->
UE_info
;
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_BWP_t
ubwp
=
sched_ctrl
->
active_ubwp
?
sched_ctrl
->
active_ubwp
->
bwp_Common
->
genericParameters
:
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
;
srs_pdu
->
rnti
=
UE_info
->
rnti
[
UE_id
];
srs_pdu
->
handle
=
0
;
srs_pdu
->
bwp_size
=
NRRIV2BW
(
ubwp
.
locationAndBandwidth
,
MAX_BWP_SIZE
);;
srs_pdu
->
bwp_start
=
NRRIV2PRBOFFSET
(
ubwp
.
locationAndBandwidth
,
MAX_BWP_SIZE
);;
srs_pdu
->
subcarrier_spacing
=
ubwp
.
subcarrierSpacing
;
srs_pdu
->
cyclic_prefix
=
0
;
srs_pdu
->
num_ant_ports
=
srs_resource
->
nrofSRS_Ports
;
srs_pdu
->
num_symbols
=
srs_resource
->
resourceMapping
.
nrofSymbols
;
srs_pdu
->
num_repetitions
=
srs_resource
->
resourceMapping
.
repetitionFactor
;
srs_pdu
->
time_start_position
=
srs_resource
->
resourceMapping
.
startPosition
;
srs_pdu
->
config_index
=
srs_resource
->
freqHopping
.
c_SRS
;
srs_pdu
->
sequence_id
=
srs_resource
->
sequenceId
;
srs_pdu
->
bandwidth_index
=
srs_resource
->
freqHopping
.
b_SRS
;
srs_pdu
->
comb_size
=
srs_resource
->
transmissionComb
.
present
-
1
;
switch
(
srs_resource
->
transmissionComb
.
present
)
{
case
NR_SRS_Resource__transmissionComb_PR_n2
:
srs_pdu
->
comb_offset
=
srs_resource
->
transmissionComb
.
choice
.
n2
->
combOffset_n2
;
srs_pdu
->
cyclic_shift
=
srs_resource
->
transmissionComb
.
choice
.
n2
->
cyclicShift_n2
;
break
;
case
NR_SRS_Resource__transmissionComb_PR_n4
:
srs_pdu
->
comb_offset
=
srs_resource
->
transmissionComb
.
choice
.
n4
->
combOffset_n4
;
srs_pdu
->
cyclic_shift
=
srs_resource
->
transmissionComb
.
choice
.
n4
->
cyclicShift_n4
;
break
;
default:
LOG_W
(
NR_MAC
,
"Invalid or not implemented comb_size!
\n
"
);
}
srs_pdu
->
frequency_position
=
srs_resource
->
freqDomainPosition
;
srs_pdu
->
frequency_shift
=
srs_resource
->
freqDomainShift
;
srs_pdu
->
frequency_hopping
=
srs_resource
->
freqHopping
.
b_hop
;
srs_pdu
->
group_or_sequence_hopping
=
srs_resource
->
groupOrSequenceHopping
;
srs_pdu
->
resource_type
=
srs_resource
->
resourceType
.
present
-
1
;
srs_pdu
->
t_srs
=
srs_period
[
srs_resource
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
present
];
srs_pdu
->
t_offset
=
srs_resource
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
choice
.
sl40
;
}
void
nr_fill_nfapi_srs
(
int
module_id
,
int
CC_id
,
int
UE_id
,
sub_frame_t
slot
,
NR_SRS_Resource_t
*
srs_resource
)
{
nfapi_nr_ul_tti_request_t
*
future_ul_tti_req
=
&
RC
.
nrmac
[
module_id
]
->
UL_tti_req_ahead
[
0
][
slot
];
future_ul_tti_req
->
pdus_list
[
future_ul_tti_req
->
n_pdus
].
pdu_type
=
NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE
;
future_ul_tti_req
->
pdus_list
[
future_ul_tti_req
->
n_pdus
].
pdu_size
=
sizeof
(
nfapi_nr_srs_pdu_t
);
nfapi_nr_srs_pdu_t
*
srs_pdu
=
&
future_ul_tti_req
->
pdus_list
[
future_ul_tti_req
->
n_pdus
].
srs_pdu
;
memset
(
srs_pdu
,
0
,
sizeof
(
nfapi_nr_srs_pdu_t
));
future_ul_tti_req
->
n_pdus
+=
1
;
nr_configure_srs
(
srs_pdu
,
module_id
,
CC_id
,
UE_id
,
srs_resource
);
}
/*******************************************************************
*
* NAME : nr_schedule_srs
...
...
@@ -112,7 +172,8 @@ void nr_schedule_srs(int module_id, frame_t frame, sub_frame_t slot) {
// Check if UE transmitted the SRS here
if
((
frame
*
n_slots_frame
+
slot
-
offset
)
%
period
==
0
)
{
LOG_W
(
NR_MAC
,
"(%d.%d) SRS is received here, but the procedures are not implemented yet!
\n
"
,
frame
,
slot
);
LOG_D
(
NR_MAC
,
"(%d.%d) Scheduling SRS reception
\n
"
,
frame
,
slot
);
nr_fill_nfapi_srs
(
module_id
,
CC_id
,
UE_id
,
slot
,
srs_resource
);
}
}
}
...
...
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