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
Michael Black
OpenXG-RAN
Commits
94808d43
Commit
94808d43
authored
Jul 30, 2021
by
Abhijith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added switching delay requirements
parent
000142c3
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
20 deletions
+52
-20
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+19
-17
openair1/SCHED_NR_UE/phy_sch_processing_time.h
openair1/SCHED_NR_UE/phy_sch_processing_time.h
+33
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+0
-2
No files found.
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
94808d43
...
@@ -1178,21 +1178,23 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
...
@@ -1178,21 +1178,23 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
const
double
N_TA_max
=
Ta_max
*
bw_scaling
*
tc_factor
;
const
double
N_TA_max
=
Ta_max
*
bw_scaling
*
tc_factor
;
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
0
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
0
);
NR_BWP_Id_t
ul_bwp
=
mac
->
UL_BWP_Id
;
NR_BWP_Id_t
dl_bwp
=
mac
->
DL_BWP_Id
;
NR_PUSCH_TimeDomainResourceAllocationList_t
*
pusch_TimeDomainAllocationList
=
NULL
;
NR_PUSCH_TimeDomainResourceAllocationList_t
*
pusch_TimeDomainAllocationList
=
NULL
;
if
(
mac
->
ULbwp
[
0
]
&&
if
(
mac
->
ULbwp
[
ul_bwp
]
&&
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
&&
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Dedicated
&&
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
->
pusch_Config
&&
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Dedicated
->
pusch_Config
&&
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
&&
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
&&
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
pusch_TimeDomainAllocationList
)
{
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
pusch_TimeDomainAllocationList
)
{
pusch_TimeDomainAllocationList
=
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
pusch_TimeDomainAllocationList
->
choice
.
setup
;
pusch_TimeDomainAllocationList
=
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
pusch_TimeDomainAllocationList
->
choice
.
setup
;
}
}
else
if
(
mac
->
ULbwp
[
0
]
&&
else
if
(
mac
->
ULbwp
[
ul_bwp
]
&&
mac
->
ULbwp
[
0
]
->
bwp_Common
&&
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Common
&&
mac
->
ULbwp
[
0
]
->
bwp_Common
->
pusch_ConfigCommon
&&
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Common
->
pusch_ConfigCommon
&&
mac
->
ULbwp
[
0
]
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
&&
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
&&
mac
->
ULbwp
[
0
]
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
)
{
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
)
{
pusch_TimeDomainAllocationList
=
mac
->
ULbwp
[
0
]
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
;
pusch_TimeDomainAllocationList
=
mac
->
ULbwp
[
ul_bwp
]
->
bwp_Common
->
pusch_ConfigCommon
->
choice
.
setup
->
pusch_TimeDomainAllocationList
;
}
}
else
if
(
mac
->
scc_SIB
&&
else
if
(
mac
->
scc_SIB
&&
mac
->
scc_SIB
->
uplinkConfigCommon
&&
mac
->
scc_SIB
->
uplinkConfigCommon
&&
...
@@ -1203,12 +1205,12 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
...
@@ -1203,12 +1205,12 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
}
}
long
mapping_type_ul
=
pusch_TimeDomainAllocationList
?
pusch_TimeDomainAllocationList
->
list
.
array
[
0
]
->
mappingType
:
NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeA
;
long
mapping_type_ul
=
pusch_TimeDomainAllocationList
?
pusch_TimeDomainAllocationList
->
list
.
array
[
0
]
->
mappingType
:
NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeA
;
NR_PDSCH_Config_t
*
pdsch_Config
=
(
mac
->
DLbwp
[
0
]
&&
mac
->
DLbwp
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
)
?
mac
->
DLbwp
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
:
NULL
;
NR_PDSCH_Config_t
*
pdsch_Config
=
(
mac
->
DLbwp
[
dl_bwp
]
&&
mac
->
DLbwp
[
dl_bwp
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
)
?
mac
->
DLbwp
[
dl_bwp
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
:
NULL
;
NR_PDSCH_TimeDomainResourceAllocationList_t
*
pdsch_TimeDomainAllocationList
=
NULL
;
NR_PDSCH_TimeDomainResourceAllocationList_t
*
pdsch_TimeDomainAllocationList
=
NULL
;
if
(
mac
->
DLbwp
[
0
]
&&
mac
->
DLbwp
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
)
if
(
mac
->
DLbwp
[
dl_bwp
]
&&
mac
->
DLbwp
[
dl_bwp
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
)
pdsch_TimeDomainAllocationList
=
pdsch_Config
->
pdsch_TimeDomainAllocationList
->
choice
.
setup
;
pdsch_TimeDomainAllocationList
=
pdsch_Config
->
pdsch_TimeDomainAllocationList
->
choice
.
setup
;
else
if
(
mac
->
DLbwp
[
0
]
&&
mac
->
DLbwp
[
0
]
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
)
else
if
(
mac
->
DLbwp
[
dl_bwp
]
&&
mac
->
DLbwp
[
dl_bwp
]
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
)
pdsch_TimeDomainAllocationList
=
mac
->
DLbwp
[
0
]
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
;
pdsch_TimeDomainAllocationList
=
mac
->
DLbwp
[
dl_bwp
]
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
;
else
if
(
mac
->
scc_SIB
&&
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdsch_ConfigCommon
->
choice
.
setup
)
else
if
(
mac
->
scc_SIB
&&
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdsch_ConfigCommon
->
choice
.
setup
)
pdsch_TimeDomainAllocationList
=
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
;
pdsch_TimeDomainAllocationList
=
mac
->
scc_SIB
->
downlinkConfigCommon
.
initialDownlinkBWP
.
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
;
long
mapping_type_dl
=
pdsch_TimeDomainAllocationList
?
pdsch_TimeDomainAllocationList
->
list
.
array
[
0
]
->
mappingType
:
NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA
;
long
mapping_type_dl
=
pdsch_TimeDomainAllocationList
?
pdsch_TimeDomainAllocationList
->
list
.
array
[
0
]
->
mappingType
:
NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA
;
...
@@ -1262,7 +1264,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
...
@@ -1262,7 +1264,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
d_2_1
=
1
;
d_2_1
=
1
;
/* d_2_2 */
/* d_2_2 */
const
double
d_2_2
=
0
.
0
;
// set to 0 because there is only 1 BWP: TODO this should corresponds to the switching time as defined in TS 38.133
const
double
d_2_2
=
pusch_d_2_2_timing_capability_1
[
numerology
][
1
];
/* N_t_1 time duration in msec of N_1 symbols corresponding to a PDSCH reception time
/* N_t_1 time duration in msec of N_1 symbols corresponding to a PDSCH reception time
// N_t_2 time duration in msec of N_2 symbols corresponding to a PUSCH preparation time */
// N_t_2 time duration in msec of N_2 symbols corresponding to a PUSCH preparation time */
...
...
openair1/SCHED_NR_UE/phy_sch_processing_time.h
View file @
94808d43
...
@@ -107,3 +107,35 @@ float pusch_N_2_timing_capability_2[3][2] = {
...
@@ -107,3 +107,35 @@ float pusch_N_2_timing_capability_2[3][2] = {
{
1
,
5
.
5
},
{
1
,
5
.
5
},
{
2
,
11
},
{
2
,
11
},
};
};
/* TS 38.133 Table 8.6.2-1: BWP switch delay capability 1
// corresponding to the PUSCH preparation time d_2_2 [slots]
// where mu corresponds to the one of {mu_DL, mu_UL}
// resulting with the largest T_proc_2
// where mu_DL is the SCS with which the PDCCH
// carrying the DCI scheduling the PUSCH was transmitted
// mu_UL is the SCS of the UL channel with which PUSCH to be transmitted
*/
float
pusch_d_2_2_timing_capability_1
[
4
][
2
]
=
{
/* mu d_2_2 */
{
0
,
1
},
{
1
,
2
},
{
2
,
3
},
{
3
,
6
},
};
/* TS 38.133 Table 8.6.2-1: BWP switch delay capability 2
// corresponding to the PUSCH preparation time d_2_2 [slots]
// where mu corresponds to the one of {mu_DL, mu_UL}
// resulting with the largest T_proc_2
// where mu_DL is the SCS with which the PDCCH
// carrying the DCI scheduling the PUSCH was transmitted
// mu_UL is the SCS of the UL channel with which PUSCH to be transmitted
*/
float
pusch_d_2_2_timing_capability_2
[
4
][
2
]
=
{
/* mu d_2_2 */
{
0
,
3
},
{
1
,
5
},
{
2
,
9
},
{
3
,
18
},
};
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
94808d43
...
@@ -351,8 +351,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -351,8 +351,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
protocol_ctxt_t
ctxt
=
{
0
};
protocol_ctxt_t
ctxt
=
{
0
};
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_YES
,
NOT_A_RNTI
,
frame
,
slot
,
module_idP
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_YES
,
NOT_A_RNTI
,
frame
,
slot
,
module_idP
);
const
int
bwp_id
=
1
;
gNB_MAC_INST
*
gNB
=
RC
.
nrmac
[
module_idP
];
gNB_MAC_INST
*
gNB
=
RC
.
nrmac
[
module_idP
];
NR_COMMON_channels_t
*
cc
=
gNB
->
common_channels
;
NR_COMMON_channels_t
*
cc
=
gNB
->
common_channels
;
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
...
...
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