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
d794e7ed
Commit
d794e7ed
authored
Mar 09, 2018
by
Niccolò Iardella
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement interslice_multiplexing
parent
1d388d71
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
720 additions
and
537 deletions
+720
-537
openair2/LAYER2/MAC/defs.h
openair2/LAYER2/MAC/defs.h
+10
-0
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+685
-522
openair2/LAYER2/MAC/eNB_scheduler_dlsch.h
openair2/LAYER2/MAC/eNB_scheduler_dlsch.h
+4
-0
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+13
-11
openair2/LAYER2/MAC/proto.h
openair2/LAYER2/MAC/proto.h
+8
-4
No files found.
openair2/LAYER2/MAC/defs.h
View file @
d794e7ed
...
...
@@ -1355,6 +1355,16 @@ typedef struct {
uint8_t
n_adj_cells
;
}
neigh_cell_id_t
;
/// Structure for saving the output of each pre_processor instance
typedef
struct
{
uint16_t
nb_rbs_required
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
];
uint16_t
nb_rbs_accounted
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
];
uint16_t
nb_rbs_remaining
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
];
uint8_t
slice_allocation_mask
[
MAX_NUM_CCs
][
N_RBG_MAX
];
uint8_t
slice_allocated_rbgs
[
MAX_NUM_CCs
][
N_RBG_MAX
];
uint8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
];
}
pre_processor_results_t
;
#include "proto.h"
/*@}*/
#endif
/*__LAYER2_MAC_DEFS_H__ */
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
d794e7ed
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_dlsch.h
View file @
d794e7ed
...
...
@@ -40,6 +40,7 @@
// number of active slices for past and current time
int
n_active_slices
=
1
;
int
n_active_slices_current
=
1
;
int
slice_counter
=
0
;
// RB share for each slice for past and current time
float
slice_percentage
[
MAX_NUM_SLICES
]
=
{
1
.
0
,
0
.
0
,
0
.
0
,
0
.
0
};
...
...
@@ -47,6 +48,7 @@ float slice_percentage_current[MAX_NUM_SLICES] = {1.0, 0.0, 0.0, 0.0};
float
slice_percentage_total
=
0
;
float
slice_percentage_total_current
=
0
;
float
slice_percentage_avg
=
0
.
25
;
int
slice_isolation
[
MAX_NUM_SLICES
]
=
{
0
,
0
,
0
,
0
};
// Frequency ranges for slice positioning
int
slice_position
[
MAX_NUM_SLICES
*
2
]
=
{
0
,
N_RBG_MAX
,
0
,
N_RBG_MAX
,
0
,
N_RBG_MAX
,
0
,
N_RBG_MAX
};
...
...
@@ -78,4 +80,6 @@ char *dl_scheduler_type[MAX_NUM_SLICES] =
// pointer to the slice specific scheduler
slice_scheduler_dl
slice_sched_dl
[
MAX_NUM_SLICES
]
=
{
0
};
pre_processor_results_t
pre_processor_results
[
MAX_NUM_SLICES
];
#endif //__LAYER2_MAC_ENB_SCHEDULER_DLSCH_H__
openair2/LAYER2/MAC/pre_processor.c
View file @
d794e7ed
...
...
@@ -50,6 +50,7 @@
#include "RRC/LITE/extern.h"
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "rlc.h"
#include "defs.h"
#define DEBUG_eNB_SCHEDULER 1
...
...
@@ -63,7 +64,7 @@ extern uint32_t slice_sorting_policy[MAX_NUM_SLICES];
extern
int
slice_accounting_policy
[
MAX_NUM_SLICES
];
extern
int
slice_maxmcs
[
MAX_NUM_SLICES
];
extern
int
slice_maxmcs_uplink
[
MAX_NUM_SLICES
];
extern
pre_processor_results_t
pre_processor_results
[
MAX_NUM_SLICES
];
//#define ICIC 0
...
...
@@ -1007,7 +1008,7 @@ void dlsch_scheduler_pre_processor_intraslice_sharing(module_id_t Mod_id,
int
UE_id
,
CC_id
;
int
i
;
uint8_t
transmission_mode
;
uint8_t
slice_allocation_mask
[
MAX_NUM_CCs
][
N_RBG_MAX
]
;
uint8_t
(
*
slice_allocation_mask
)[
N_RBG_MAX
]
=
pre_processor_results
[
slice_id
].
slice_allocation_mask
;
UE_list_t
*
UE_list
=
&
RC
.
mac
[
Mod_id
]
->
UE_list
;
decode_slice_positioning
(
Mod_id
,
slice_id
,
slice_allocation_mask
);
...
...
@@ -1231,11 +1232,12 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
int
N_RBG
[
MAX_NUM_CCs
];
int
min_rb_unit
[
MAX_NUM_CCs
];
uint8_t
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
];
uint8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
];
// If TM5 is revisited, we can move this inside accounting
uint16_t
nb_rbs_required
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
];
uint16_t
nb_rbs_accounted
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
];
uint16_t
nb_rbs_remaining
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
];
uint16_t
(
*
nb_rbs_required
)[
NUMBER_OF_UE_MAX
]
=
pre_processor_results
[
slice_id
].
nb_rbs_required
;
uint16_t
(
*
nb_rbs_accounted
)[
NUMBER_OF_UE_MAX
]
=
pre_processor_results
[
slice_id
].
nb_rbs_accounted
;
uint16_t
(
*
nb_rbs_remaining
)[
NUMBER_OF_UE_MAX
]
=
pre_processor_results
[
slice_id
].
nb_rbs_remaining
;
uint8_t
(
*
rballoc_sub
)[
N_RBG_MAX
]
=
pre_processor_results
[
slice_id
].
slice_allocated_rbgs
;
uint8_t
(
*
MIMO_mode_indicator
)[
N_RBG_MAX
]
=
pre_processor_results
[
slice_id
].
MIMO_mode_indicator
;
UE_list_t
*
UE_list
=
&
RC
.
mac
[
Mod_id
]
->
UE_list
;
UE_sched_ctrl
*
ue_sched_ctl
;
...
...
@@ -1377,8 +1379,8 @@ dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
int
N_RBG
[
MAX_NUM_CCs
],
int
min_rb_unit
[
MAX_NUM_CCs
],
uint16_t
nb_rbs_required
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
],
u
nsigned
char
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
int8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
],
int
*
mbsfn_flag
)
{
...
...
@@ -1596,9 +1598,9 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
int
min_rb_unit
,
uint16_t
nb_rbs_required
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
],
uint16_t
nb_rbs_remaining
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
],
u
nsigned
char
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
uint8_t
slice_allocation_mask
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
])
{
u
int8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
])
{
int
i
;
int
tm
=
get_tmode
(
Mod_id
,
CC_id
,
UE_id
);
...
...
openair2/LAYER2/MAC/proto.h
View file @
d794e7ed
...
...
@@ -224,8 +224,8 @@ void dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
int
N_RBG
[
MAX_NUM_CCs
],
int
min_rb_unit
[
MAX_NUM_CCs
],
uint16_t
nb_rbs_required
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
],
u
nsigned
char
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
int8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
],
int
*
mbsfn_flag
);
void
dlsch_scheduler_pre_processor_partitioning
(
module_id_t
Mod_id
,
...
...
@@ -260,6 +260,10 @@ void dlsch_scheduler_pre_processor_intraslice_sharing(module_id_t Mod_id,
uint8_t
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
uint8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
]);
void
dlsch_scheduler_interslice_multiplexing
(
module_id_t
Mod_id
,
int
frameP
,
sub_frame_t
subframeP
);
void
dlsch_scheduler_pre_processor_allocate
(
module_id_t
Mod_id
,
int
UE_id
,
uint8_t
CC_id
,
...
...
@@ -267,9 +271,9 @@ void dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
int
min_rb_unit
,
uint16_t
nb_rbs_required
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
],
uint16_t
nb_rbs_remaining
[
MAX_NUM_CCs
][
NUMBER_OF_UE_MAX
],
u
nsigned
char
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
MAX_NUM_CCs
][
N_RBG_MAX
],
uint8_t
slice_allocation_mask
[
MAX_NUM_CCs
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
]);
u
int8_t
MIMO_mode_indicator
[
MAX_NUM_CCs
][
N_RBG_MAX
]);
/* \brief Function to trigger the eNB scheduling procedure. It is called by PHY at the beginning of each subframe, \f$n$\f
and generates all DLSCH allocations for subframe \f$n\f$ and ULSCH allocations for subframe \f$n+k$\f.
...
...
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