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
5eb9e1f4
Commit
5eb9e1f4
authored
Jan 26, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
compute Y every time
parent
e7f544e1
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
17 additions
and
18 deletions
+17
-18
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+8
-10
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+3
-3
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+2
-0
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+0
-1
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
5eb9e1f4
...
@@ -613,7 +613,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
...
@@ -613,7 +613,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
/* Find a free CCE */
/* Find a free CCE */
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
RC
.
nrmac
[
module_id
]
->
UE_info
.
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
uint8_t
nr_of_candidates
;
uint8_t
nr_of_candidates
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
// for now taking the lowest value among the available aggregation levels
// for now taking the lowest value among the available aggregation levels
...
@@ -775,7 +775,7 @@ void pf_dl(module_id_t module_id,
...
@@ -775,7 +775,7 @@ void pf_dl(module_id_t module_id,
/* Find a free CCE */
/* Find a free CCE */
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
RC
.
nrmac
[
module_id
]
->
UE_info
.
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
uint8_t
nr_of_candidates
;
uint8_t
nr_of_candidates
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
// for now taking the lowest value among the available aggregation levels
// for now taking the lowest value among the available aggregation levels
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
5eb9e1f4
...
@@ -345,7 +345,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
...
@@ -345,7 +345,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
AssertFatal
(
nr_of_candidates
>
0
,
"nr_of_candidates is 0
\n
"
);
AssertFatal
(
nr_of_candidates
>
0
,
"nr_of_candidates is 0
\n
"
);
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
UE_info
->
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
int
CCEIndex
=
find_pdcch_candidate
(
RC
.
nrmac
[
module_id
],
int
CCEIndex
=
find_pdcch_candidate
(
RC
.
nrmac
[
module_id
],
CC_id
,
CC_id
,
...
@@ -511,7 +511,7 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
...
@@ -511,7 +511,7 @@ bool nr_ul_preprocessor_phytest(module_id_t module_id, frame_t frame, sub_frame_
AssertFatal
(
nr_of_candidates
>
0
,
"nr_of_candidates is 0
\n
"
);
AssertFatal
(
nr_of_candidates
>
0
,
"nr_of_candidates is 0
\n
"
);
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
UE_info
->
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
int
CCEIndex
=
find_pdcch_candidate
(
nr_mac
,
int
CCEIndex
=
find_pdcch_candidate
(
nr_mac
,
CC_id
,
CC_id
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
5eb9e1f4
...
@@ -1936,19 +1936,18 @@ int find_nr_UE_id(module_id_t mod_idP, rnti_t rntiP)
...
@@ -1936,19 +1936,18 @@ int find_nr_UE_id(module_id_t mod_idP, rnti_t rntiP)
return
-
1
;
return
-
1
;
}
}
void
set_Y
(
int
Y
[
3
][
160
],
rnti_t
rnti
)
{
uint16_t
get_Y
(
int
cid
,
int
slot
,
rnti_t
rnti
)
{
const
int
A
[
3
]
=
{
39827
,
39829
,
39839
};
const
int
A
[
3
]
=
{
39827
,
39829
,
39839
};
const
int
D
=
65537
;
const
int
D
=
65537
;
int
Y
;
Y
[
0
][
0
]
=
(
A
[
0
]
*
rnti
)
%
D
;
Y
=
(
A
[
cid
]
*
rnti
)
%
D
;
Y
[
1
][
0
]
=
(
A
[
1
]
*
rnti
)
%
D
;
Y
[
2
][
0
]
=
(
A
[
2
]
*
rnti
)
%
D
;
for
(
int
s
=
1
;
s
<
160
;
s
++
)
{
for
(
int
s
=
0
;
s
<
slot
;
s
++
)
Y
[
0
][
s
]
=
(
A
[
0
]
*
Y
[
0
][
s
-
1
])
%
D
;
Y
=
(
A
[
cid
]
*
Y
)
%
D
;
Y
[
1
][
s
]
=
(
A
[
1
]
*
Y
[
1
][
s
-
1
])
%
D
;
Y
[
2
][
s
]
=
(
A
[
2
]
*
Y
[
2
][
s
-
1
])
%
D
;
return
Y
;
}
}
}
int
find_nr_RA_id
(
module_id_t
mod_idP
,
int
CC_idP
,
rnti_t
rntiP
)
{
int
find_nr_RA_id
(
module_id_t
mod_idP
,
int
CC_idP
,
rnti_t
rntiP
)
{
...
@@ -2032,7 +2031,6 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
...
@@ -2032,7 +2031,6 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
UE_info
->
CellGroup
[
UE_id
]
=
CellGroup
;
UE_info
->
CellGroup
[
UE_id
]
=
CellGroup
;
add_nr_list
(
&
UE_info
->
list
,
UE_id
);
add_nr_list
(
&
UE_info
->
list
,
UE_id
);
memset
(
&
UE_info
->
mac_stats
[
UE_id
],
0
,
sizeof
(
NR_mac_stats_t
));
memset
(
&
UE_info
->
mac_stats
[
UE_id
],
0
,
sizeof
(
NR_mac_stats_t
));
set_Y
(
UE_info
->
Y
[
UE_id
],
rntiP
);
if
(
CellGroup
&&
CellGroup
->
spCellConfig
&&
CellGroup
->
spCellConfig
&&
CellGroup
->
spCellConfig
->
spCellConfigDedicated
)
if
(
CellGroup
&&
CellGroup
->
spCellConfig
&&
CellGroup
->
spCellConfig
&&
CellGroup
->
spCellConfig
->
spCellConfigDedicated
)
compute_csi_bitlen
(
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
,
UE_info
,
UE_id
,
mod_idP
);
compute_csi_bitlen
(
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
,
UE_info
,
UE_id
,
mod_idP
);
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
5eb9e1f4
...
@@ -1012,7 +1012,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
...
@@ -1012,7 +1012,7 @@ bool allocate_ul_retransmission(module_id_t module_id,
/* Find a free CCE */
/* Find a free CCE */
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
RC
.
nrmac
[
module_id
]
->
UE_info
.
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
uint8_t
nr_of_candidates
;
uint8_t
nr_of_candidates
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
// for now taking the lowest value among the available aggregation levels
// for now taking the lowest value among the available aggregation levels
...
@@ -1158,7 +1158,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1158,7 +1158,7 @@ void pf_ul(module_id_t module_id,
/* if no data, pre-allocate 5RB */
/* if no data, pre-allocate 5RB */
/* Find a free CCE */
/* Find a free CCE */
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
RC
.
nrmac
[
module_id
]
->
UE_info
.
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
uint8_t
nr_of_candidates
;
uint8_t
nr_of_candidates
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
// for now taking the lowest value among the available aggregation levels
// for now taking the lowest value among the available aggregation levels
...
@@ -1268,7 +1268,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1268,7 +1268,7 @@ void pf_ul(module_id_t module_id,
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
int
cid
=
sched_ctrl
->
coreset
->
controlResourceSetId
;
const
uint16_t
Y
=
RC
.
nrmac
[
module_id
]
->
UE_info
.
Y
[
UE_id
][
cid
%
3
][
slot
]
;
const
uint16_t
Y
=
get_Y
(
cid
%
3
,
slot
,
UE_info
->
rnti
[
UE_id
])
;
uint8_t
nr_of_candidates
;
uint8_t
nr_of_candidates
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
// for now taking the lowest value among the available aggregation levels
// for now taking the lowest value among the available aggregation levels
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
5eb9e1f4
...
@@ -318,6 +318,8 @@ void nr_set_pusch_semi_static(const NR_ServingCellConfigCommon_t *scc,
...
@@ -318,6 +318,8 @@ void nr_set_pusch_semi_static(const NR_ServingCellConfigCommon_t *scc,
uint8_t
num_dmrs_cdm_grps_no_data
,
uint8_t
num_dmrs_cdm_grps_no_data
,
NR_pusch_semi_static_t
*
ps
);
NR_pusch_semi_static_t
*
ps
);
uint16_t
get_Y
(
int
cid
,
int
slot
,
rnti_t
rnti
);
uint8_t
nr_get_tpc
(
int
target
,
uint8_t
cqi
,
int
incr
);
uint8_t
nr_get_tpc
(
int
target
,
uint8_t
cqi
,
int
incr
);
int
get_spf
(
nfapi_nr_config_request_scf_t
*
cfg
);
int
get_spf
(
nfapi_nr_config_request_scf_t
*
cfg
);
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
5eb9e1f4
...
@@ -669,7 +669,6 @@ typedef struct {
...
@@ -669,7 +669,6 @@ typedef struct {
rnti_t
rnti
[
MAX_MOBILES_PER_GNB
];
rnti_t
rnti
[
MAX_MOBILES_PER_GNB
];
NR_CellGroupConfig_t
*
CellGroup
[
MAX_MOBILES_PER_GNB
];
NR_CellGroupConfig_t
*
CellGroup
[
MAX_MOBILES_PER_GNB
];
/// CCE indexing
/// CCE indexing
int
Y
[
MAX_MOBILES_PER_GNB
][
3
][
160
];
int
m
[
MAX_MOBILES_PER_GNB
];
int
m
[
MAX_MOBILES_PER_GNB
];
// UE selected beam index
// UE selected beam index
uint8_t
UE_beam_index
[
MAX_MOBILES_PER_GNB
];
uint8_t
UE_beam_index
[
MAX_MOBILES_PER_GNB
];
...
...
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