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
lizhongxiao
OpenXG-RAN
Commits
7e034415
Commit
7e034415
authored
Nov 27, 2023
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add UE slice info
parent
79554892
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
33 additions
and
7 deletions
+33
-7
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+4
-4
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/mac_rrc_dl_handler.c
openair2/LAYER2/NR_MAC_gNB/mac_rrc_dl_handler.c
+12
-1
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+15
-0
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
7e034415
...
@@ -1239,10 +1239,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -1239,10 +1239,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
start_meas
(
&
gNB_mac
->
rlc_data_req
);
start_meas
(
&
gNB_mac
->
rlc_data_req
);
int
sdus
=
0
;
int
sdus
=
0
;
if
(
sched_ctrl
->
num_total_bytes
>
0
)
{
if
(
sched_ctrl
->
sliceInfo
[
sched_ctrl
->
curSchedSliceIdx
].
num_total_bytes
>
0
)
{
/* loop over all activated logical channels */
/* loop over all activated logical channels
in current slice
*/
for
(
int
i
=
0
;
i
<
sched_ctrl
->
dl_lc_num
;
++
i
)
{
for
(
int
i
=
0
;
i
<
sched_ctrl
->
sliceInfo
[
sched_ctrl
->
curSchedSliceIdx
].
numLcids
;
++
i
)
{
const
int
lcid
=
sched_ctrl
->
dl_lc
[
i
].
id
;
const
int
lcid
=
sched_ctrl
->
sliceInfo
[
sched_ctrl
->
curSchedSliceIdx
].
lcid
[
i
]
;
if
(
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
==
0
)
if
(
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
==
0
)
continue
;
// no data for this LC tbs_size_t len = 0;
continue
;
// no data for this LC tbs_size_t len = 0;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
7e034415
...
@@ -96,7 +96,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
...
@@ -96,7 +96,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
rbStart
+=
rbSize
;
rbStart
+=
rbSize
;
}
}
sched_ctrl
->
num_total_bytes
=
0
;
sched_ctrl
->
sliceInfo
[
0
].
num_total_bytes
=
0
;
sched_ctrl
->
dl_lc_num
=
1
;
sched_ctrl
->
dl_lc_num
=
1
;
const
int
lcid
=
DL_SCH_LCID_DTCH
;
const
int
lcid
=
DL_SCH_LCID_DTCH
;
sched_ctrl
->
dl_lc
[
sched_ctrl
->
dl_lc_num
-
1
].
id
=
lcid
;
sched_ctrl
->
dl_lc
[
sched_ctrl
->
dl_lc_num
-
1
].
id
=
lcid
;
...
@@ -113,7 +113,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
...
@@ -113,7 +113,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
lcid
,
lcid
,
0
,
0
,
0
);
0
);
sched_ctrl
->
num_total_bytes
+=
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
;
sched_ctrl
->
sliceInfo
[
0
].
num_total_bytes
+=
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
;
int
CCEIndex
=
get_cce_index
(
RC
.
nrmac
[
module_id
],
int
CCEIndex
=
get_cce_index
(
RC
.
nrmac
[
module_id
],
CC_id
,
slot
,
UE
->
rnti
,
CC_id
,
slot
,
UE
->
rnti
,
...
...
openair2/LAYER2/NR_MAC_gNB/mac_rrc_dl_handler.c
View file @
7e034415
...
@@ -232,13 +232,24 @@ static NR_CellGroupConfig_t *clone_CellGroupConfig(const NR_CellGroupConfig_t *o
...
@@ -232,13 +232,24 @@ static NR_CellGroupConfig_t *clone_CellGroupConfig(const NR_CellGroupConfig_t *o
return
cloned
;
return
cloned
;
}
}
static
int
get_idx_from_lcid
(
const
NR_UE_sched_ctrl_t
*
sched_ctrl
,
int
lcid
)
{
for
(
int
i
=
0
;
i
<
sched_ctrl
->
dl_lc_num
;
i
++
)
{
if
(
sched_ctrl
->
dl_lc
[
i
].
id
==
lcid
)
return
i
;
}
return
-
1
;
}
static
void
set_nssaiConfig
(
const
int
drb_len
,
const
f1ap_drb_to_be_setup_t
*
req_drbs
,
NR_UE_sched_ctrl_t
*
sched_ctrl
)
static
void
set_nssaiConfig
(
const
int
drb_len
,
const
f1ap_drb_to_be_setup_t
*
req_drbs
,
NR_UE_sched_ctrl_t
*
sched_ctrl
)
{
{
for
(
int
i
=
0
;
i
<
drb_len
;
i
++
)
{
for
(
int
i
=
0
;
i
<
drb_len
;
i
++
)
{
const
f1ap_drb_to_be_setup_t
*
drb
=
&
req_drbs
[
i
];
const
f1ap_drb_to_be_setup_t
*
drb
=
&
req_drbs
[
i
];
long
lcid
=
get_lcid_from_drbid
(
drb
->
drb_id
);
long
lcid
=
get_lcid_from_drbid
(
drb
->
drb_id
);
sched_ctrl
->
dl_lc
[
lcid
].
nssai
=
drb
->
nssai
;
int
lcid_idx
=
get_idx_from_lcid
(
sched_ctrl
,
lcid
);
DevAssert
(
lcid_idx
>
-
1
);
sched_ctrl
->
dl_lc
[
lcid_idx
].
nssai
=
drb
->
nssai
;
LOG_I
(
NR_MAC
,
"Setting NSSAI sst: %d, sd: %d for DRB: %ld
\n
"
,
drb
->
nssai
.
sst
,
drb
->
nssai
.
sd
,
drb
->
drb_id
);
LOG_I
(
NR_MAC
,
"Setting NSSAI sst: %d, sd: %d for DRB: %ld
\n
"
,
drb
->
nssai
.
sst
,
drb
->
nssai
.
sd
,
drb
->
drb_id
);
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
7e034415
...
@@ -541,6 +541,17 @@ typedef struct {
...
@@ -541,6 +541,17 @@ typedef struct {
nssai_t
nssai
;
nssai_t
nssai
;
}
NR_LC_info_t
;
}
NR_LC_info_t
;
typedef
struct
{
/// the index of slice from slice config stored in gNB_MAC_INST
int
sliceIdx
;
/// LCs in this slice
uint8_t
numLcids
;
uint8_t
lcid
[
NR_MAX_NUM_LCID
];
/// total amount of data awaiting for this UE for each slice
uint32_t
num_total_bytes
;
uint16_t
dl_pdus_total
;
}
NR_UE_slice_info_t
;
/*! \brief scheduling control information set through an API */
/*! \brief scheduling control information set through an API */
#define MAX_CSI_REPORTS 48
#define MAX_CSI_REPORTS 48
typedef
struct
{
typedef
struct
{
...
@@ -588,6 +599,10 @@ typedef struct {
...
@@ -588,6 +599,10 @@ typedef struct {
/// total amount of data awaiting for this UE
/// total amount of data awaiting for this UE
uint32_t
num_total_bytes
;
uint32_t
num_total_bytes
;
uint16_t
dl_pdus_total
;
uint16_t
dl_pdus_total
;
/// UE slice specific info
int
numSlices
;
int
curSchedSliceIdx
;
NR_UE_slice_info_t
sliceInfo
[
NR_MAX_NUM_SLICES
];
/// per-LC status data
/// per-LC status data
mac_rlc_status_resp_t
rlc_status
[
NR_MAX_NUM_LCID
];
mac_rlc_status_resp_t
rlc_status
[
NR_MAX_NUM_LCID
];
...
...
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