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
zzha zzha
OpenXG-RAN
Commits
d29b17a2
Commit
d29b17a2
authored
Jan 26, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
function to configure SR
parent
9408c3c0
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
57 additions
and
78 deletions
+57
-78
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+2
-4
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+24
-53
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+1
-1
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+27
-0
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+2
-0
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+1
-20
No files found.
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
d29b17a2
...
...
@@ -2271,11 +2271,9 @@ int8_t nr_ue_get_SR(module_id_t module_idP, frame_t frameP, slot_t slot){
// start the sr-prohibittimer : rel 9 and above
if
(
mac
->
scheduling_info
.
sr_ProhibitTimer
>
0
)
{
// timer configured
mac
->
scheduling_info
.
sr_ProhibitTimer
--
;
mac
->
scheduling_info
.
sr_ProhibitTimer_Running
=
1
;
mac
->
scheduling_info
.
sr_ProhibitTimer_Running
=
1
;
}
else
{
mac
->
scheduling_info
.
sr_ProhibitTimer_Running
=
0
;
mac
->
scheduling_info
.
sr_ProhibitTimer_Running
=
0
;
}
//mac->ul_active =1;
return
(
1
);
//instruct phy to signal SR
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
d29b17a2
...
...
@@ -977,9 +977,11 @@ uint8_t do_RRCReject(uint8_t Mod_id,
}
void
fill_initial_SpCellConfig
(
int
uid
,
NR_
SpCellConfig_t
*
SpCell
Config
,
NR_
CellGroupConfig_t
*
cellGroup
Config
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
)
{
NR_SpCellConfig_t
*
SpCellConfig
=
cellGroupConfig
->
spCellConfig
;
int
curr_bwp
=
NRRIV2BW
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
SpCellConfig
->
servCellIndex
=
NULL
;
SpCellConfig
->
reconfigurationWithSync
=
NULL
;
...
...
@@ -1127,27 +1129,7 @@ void fill_initial_SpCellConfig(int uid,
srs_res0
->
spatialRelationInfo
->
referenceSignal
.
choice
.
csi_RS_Index
=
0
;
ASN_SEQUENCE_ADD
(
&
srs_Config
->
srs_ResourceToAddModList
->
list
,
srs_res0
);
// configure Scheduling request
// 40 slot period
pucch_Config
->
schedulingRequestResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
schedulingRequestResourceToAddModList
));
NR_SchedulingRequestResourceConfig_t
*
schedulingRequestResourceConfig
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
));
schedulingRequestResourceConfig
->
schedulingRequestResourceId
=
1
;
schedulingRequestResourceConfig
->
schedulingRequestID
=
0
;
schedulingRequestResourceConfig
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
->
periodicityAndOffset
));
schedulingRequestResourceConfig
->
periodicityAndOffset
->
present
=
NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl40
;
// note: make sure that there is no issue here. Later choose the RNTI accordingly.
// Here we would be limited to 3 UEs on this resource (1 1/2 Frames 30 kHz SCS, 5 ms TDD periodicity => slots 7,8,9).
// This should be a temporary resource until the first RRCReconfiguration gives new pucch resources.
// Check for above configuration and exit for now if it is not the case
AssertFatal
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
==
NR_SubcarrierSpacing_kHz30
,
"SCS != 30kHz
\n
"
);
AssertFatal
(
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
.
dl_UL_TransmissionPeriodicity
==
NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5
,
"TDD period != 5ms : %ld
\n
"
,
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
.
dl_UL_TransmissionPeriodicity
);
schedulingRequestResourceConfig
->
periodicityAndOffset
->
choice
.
sl40
=
8
;
schedulingRequestResourceConfig
->
resource
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
->
resource
));
*
schedulingRequestResourceConfig
->
resource
=
0
;
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
schedulingRequestResourceToAddModList
->
list
,
schedulingRequestResourceConfig
);
schedulingrequest_config
(
cellGroupConfig
->
mac_CellGroupConfig
,
pucch_Config
);
set_dl_DataToUL_ACK
(
pucch_Config
,
carrier
->
minRXTXTIME
);
...
...
@@ -1431,36 +1413,25 @@ void fill_initial_cellGroupConfig(int uid,
cellGroupConfig
->
rlc_BearerToReleaseList
=
NULL
;
/* mac CellGroup Config */
if
(
1
)
{
mac_CellGroupConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
));
if
(
1
)
{
mac_CellGroupConfig
->
schedulingRequestConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
));
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
CALLOC
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
));
struct
NR_SchedulingRequestToAddMod
*
schedulingrequestlist
;
schedulingrequestlist
=
CALLOC
(
1
,
sizeof
(
*
schedulingrequestlist
));
schedulingrequestlist
->
schedulingRequestId
=
0
;
schedulingrequestlist
->
sr_ProhibitTimer
=
CALLOC
(
1
,
sizeof
(
*
schedulingrequestlist
->
sr_ProhibitTimer
));
*
(
schedulingrequestlist
->
sr_ProhibitTimer
)
=
0
;
schedulingrequestlist
->
sr_TransMax
=
NR_SchedulingRequestToAddMod__sr_TransMax_n64
;
ASN_SEQUENCE_ADD
(
&
(
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
),
schedulingrequestlist
);
}
mac_CellGroupConfig
->
bsr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
bsr_Config
));
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
NR_BSR_Config__periodicBSR_Timer_sf10
;
mac_CellGroupConfig
->
bsr_Config
->
retxBSR_Timer
=
NR_BSR_Config__retxBSR_Timer_sf80
;
mac_CellGroupConfig
->
tag_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
));
mac_CellGroupConfig
->
tag_Config
->
tag_ToReleaseList
=
NULL
;
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
));
struct
NR_TAG
*
tag
=
calloc
(
1
,
sizeof
(
*
tag
));
tag
->
tag_Id
=
0
;
tag
->
timeAlignmentTimer
=
NR_TimeAlignmentTimer_infinity
;
ASN_SEQUENCE_ADD
(
&
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
->
list
,
tag
);
mac_CellGroupConfig
->
phr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
phr_Config
));
mac_CellGroupConfig
->
phr_Config
->
present
=
NR_SetupRelease_PHR_Config_PR_setup
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
));
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_PeriodicTimer
=
NR_PHR_Config__phr_PeriodicTimer_sf10
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_ProhibitTimer
=
NR_PHR_Config__phr_ProhibitTimer_sf10
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Tx_PowerFactorChange
=
NR_PHR_Config__phr_Tx_PowerFactorChange_dB1
;
}
mac_CellGroupConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
));
mac_CellGroupConfig
->
bsr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
bsr_Config
));
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
NR_BSR_Config__periodicBSR_Timer_sf10
;
mac_CellGroupConfig
->
bsr_Config
->
retxBSR_Timer
=
NR_BSR_Config__retxBSR_Timer_sf80
;
mac_CellGroupConfig
->
tag_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
));
mac_CellGroupConfig
->
tag_Config
->
tag_ToReleaseList
=
NULL
;
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
));
struct
NR_TAG
*
tag
=
calloc
(
1
,
sizeof
(
*
tag
));
tag
->
tag_Id
=
0
;
tag
->
timeAlignmentTimer
=
NR_TimeAlignmentTimer_infinity
;
ASN_SEQUENCE_ADD
(
&
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
->
list
,
tag
);
mac_CellGroupConfig
->
phr_Config
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
phr_Config
));
mac_CellGroupConfig
->
phr_Config
->
present
=
NR_SetupRelease_PHR_Config_PR_setup
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
));
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_PeriodicTimer
=
NR_PHR_Config__phr_PeriodicTimer_sf10
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_ProhibitTimer
=
NR_PHR_Config__phr_ProhibitTimer_sf10
;
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Tx_PowerFactorChange
=
NR_PHR_Config__phr_Tx_PowerFactorChange_dB1
;
cellGroupConfig
->
mac_CellGroupConfig
=
mac_CellGroupConfig
;
physicalCellGroupConfig
=
calloc
(
1
,
sizeof
(
*
physicalCellGroupConfig
));
...
...
@@ -1471,7 +1442,7 @@ void fill_initial_cellGroupConfig(int uid,
cellGroupConfig
->
spCellConfig
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
spCellConfig
));
fill_initial_SpCellConfig
(
uid
,
cellGroupConfig
->
spCellConfig
,
scc
,
carrier
);
fill_initial_SpCellConfig
(
uid
,
cellGroupConfig
,
scc
,
carrier
);
cellGroupConfig
->
sCellToAddModList
=
NULL
;
cellGroupConfig
->
sCellToReleaseList
=
NULL
;
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
d29b17a2
...
...
@@ -101,7 +101,7 @@ uint8_t do_RRCReject(uint8_t Mod_id,
uint8_t
*
const
buffer
);
void
fill_initial_SpCellConfig
(
int
uid
,
NR_
SpCellConfig_t
*
SpCell
Config
,
NR_
CellGroupConfig_t
*
cellGroup
Config
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
d29b17a2
...
...
@@ -192,3 +192,30 @@ void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t
}
void
schedulingrequest_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_PUCCH_Config_t
*
pucch_Config
)
{
mac_CellGroupConfig
->
schedulingRequestConfig
=
calloc
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
));
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
CALLOC
(
1
,
sizeof
(
*
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
));
struct
NR_SchedulingRequestToAddMod
*
schedulingrequestlist
=
CALLOC
(
1
,
sizeof
(
*
schedulingrequestlist
));
schedulingrequestlist
->
schedulingRequestId
=
0
;
schedulingrequestlist
->
sr_ProhibitTimer
=
NULL
;
schedulingrequestlist
->
sr_TransMax
=
NR_SchedulingRequestToAddMod__sr_TransMax_n64
;
ASN_SEQUENCE_ADD
(
&
(
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
),
schedulingrequestlist
);
// format with <=2 bits in pucch resource set 0
NR_PUCCH_ResourceSet_t
*
pucchresset
=
pucch_Config
->
resourceSetToAddModList
->
list
.
array
[
0
];
// assigning the 1st pucch resource in the set to scheduling request
NR_PUCCH_ResourceId_t
*
pucchressetid
=
pucchresset
->
resourceList
.
list
.
array
[
0
];
pucch_Config
->
schedulingRequestResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
schedulingRequestResourceToAddModList
));
NR_SchedulingRequestResourceConfig_t
*
schedulingRequestResourceConfig
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
));
schedulingRequestResourceConfig
->
schedulingRequestResourceId
=
1
;
schedulingRequestResourceConfig
->
schedulingRequestID
=
0
;
schedulingRequestResourceConfig
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
->
periodicityAndOffset
));
schedulingRequestResourceConfig
->
periodicityAndOffset
->
present
=
NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl10
;
schedulingRequestResourceConfig
->
periodicityAndOffset
->
choice
.
sl10
=
7
;
schedulingRequestResourceConfig
->
resource
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
->
resource
));
*
schedulingRequestResourceConfig
->
resource
=
*
pucchressetid
;
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
schedulingRequestResourceToAddModList
->
list
,
schedulingRequestResourceConfig
);
}
openair2/RRC/NR/nr_rrc_config.h
View file @
d29b17a2
...
...
@@ -116,5 +116,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay);
void
config_pucch_resset0
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
uid
,
int
curr_bwp
,
NR_UE_NR_Capability_t
*
uecap
);
void
config_pucch_resset1
(
NR_PUCCH_Config_t
*
pucch_Config
,
NR_UE_NR_Capability_t
*
uecap
);
void
set_dl_DataToUL_ACK
(
NR_PUCCH_Config_t
*
pucch_Config
,
int
min_feedback_time
);
void
schedulingrequest_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_PUCCH_Config_t
*
pucch_Config
);
#endif
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
d29b17a2
...
...
@@ -96,15 +96,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
mac_CellGroupConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
mac_CellGroupConfig
));
secondaryCellGroup
->
mac_CellGroupConfig
->
drx_Config
=
NULL
;
secondaryCellGroup
->
mac_CellGroupConfig
->
schedulingRequestConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
mac_CellGroupConfig
->
schedulingRequestConfig
));
secondaryCellGroup
->
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
));
NR_SchedulingRequestToAddMod_t
*
SchedulingRequestConf
=
calloc
(
1
,
sizeof
(
*
SchedulingRequestConf
));
SchedulingRequestConf
->
schedulingRequestId
=
0
;
//Could be changed
SchedulingRequestConf
->
sr_ProhibitTimer
=
calloc
(
1
,
sizeof
(
*
SchedulingRequestConf
->
sr_ProhibitTimer
));
*
SchedulingRequestConf
->
sr_ProhibitTimer
=
NR_SchedulingRequestToAddMod__sr_ProhibitTimer_ms16
;
SchedulingRequestConf
->
sr_TransMax
=
NR_SchedulingRequestToAddMod__sr_TransMax_n32
;
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
,
SchedulingRequestConf
);
secondaryCellGroup
->
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToReleaseList
=
NULL
;
secondaryCellGroup
->
mac_CellGroupConfig
->
bsr_Config
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
mac_CellGroupConfig
->
bsr_Config
));
secondaryCellGroup
->
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
NR_BSR_Config__periodicBSR_Timer_sf10
;
...
...
@@ -879,17 +870,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
config_pucch_resset0
(
pucch_Config
,
uid
,
curr_bwp
,
uecap
);
// <= 2 bits
config_pucch_resset1
(
pucch_Config
,
uecap
);
// > 2 bits
// for scheduling requestresource
pucch_Config
->
schedulingRequestResourceToAddModList
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
schedulingRequestResourceToAddModList
));
NR_SchedulingRequestResourceConfig_t
*
schedulingRequestResourceConfig
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
));
schedulingRequestResourceConfig
->
schedulingRequestResourceId
=
1
;
schedulingRequestResourceConfig
->
schedulingRequestID
=
0
;
schedulingRequestResourceConfig
->
periodicityAndOffset
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
->
periodicityAndOffset
));
schedulingRequestResourceConfig
->
periodicityAndOffset
->
present
=
NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl10
;
schedulingRequestResourceConfig
->
periodicityAndOffset
->
choice
.
sl10
=
7
;
schedulingRequestResourceConfig
->
resource
=
calloc
(
1
,
sizeof
(
*
schedulingRequestResourceConfig
->
resource
));
*
schedulingRequestResourceConfig
->
resource
=
1
;
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
schedulingRequestResourceToAddModList
->
list
,
schedulingRequestResourceConfig
);
schedulingrequest_config
(
secondaryCellGroup
->
mac_CellGroupConfig
,
pucch_Config
);
pucch_Config
->
schedulingRequestResourceToReleaseList
=
NULL
;
pucch_Config
->
multi_CSI_PUCCH_ResourceList
=
NULL
;
...
...
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