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
56405aee
Commit
56405aee
authored
7 years ago
by
Niccolò Iardella
Committed by
Robert Schmidt
6 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement interslice_multiplexing, add new constants
parent
e2c270ee
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
511 additions
and
333 deletions
+511
-333
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+475
-315
openair2/LAYER2/MAC/eNB_scheduler_dlsch.h
openair2/LAYER2/MAC/eNB_scheduler_dlsch.h
+4
-0
openair2/LAYER2/MAC/mac.h
openair2/LAYER2/MAC/mac.h
+10
-0
openair2/LAYER2/MAC/mac_proto.h
openair2/LAYER2/MAC/mac_proto.h
+8
-4
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+12
-12
openair2/RRC/LTE/rrc_extern.h
openair2/RRC/LTE/rrc_extern.h
+1
-1
openair2/RRC/LTE/rrc_vars.h
openair2/RRC/LTE/rrc_vars.h
+1
-1
No files found.
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
56405aee
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_dlsch.h
View file @
56405aee
...
...
@@ -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__
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/mac.h
View file @
56405aee
...
...
@@ -1571,6 +1571,16 @@ typedef struct {
mui_t
rrc_mui
[
128
];
}
mac_rlc_am_muilist_t
;
/// Structure for saving the output of each pre_processor instance
typedef
struct
{
uint16_t
nb_rbs_required
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint16_t
nb_rbs_accounted
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint16_t
nb_rbs_remaining
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint8_t
slice_allocation_mask
[
NFAPI_CC_MAX
][
N_RBG_MAX
];
uint8_t
slice_allocated_rbgs
[
NFAPI_CC_MAX
][
N_RBG_MAX
];
uint8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
];
}
pre_processor_results_t
;
#include "mac_proto.h"
/*@}*/
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/mac_proto.h
View file @
56405aee
...
...
@@ -226,8 +226,8 @@ void dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
sub_frame_t
subframeP
,
int
min_rb_unit
[
NFAPI_CC_MAX
],
uint16_t
nb_rbs_required
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
],
u
nsigned
char
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
int8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
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
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
uint8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
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
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
],
uint16_t
nb_rbs_remaining
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
],
u
nsigned
char
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
uint8_t
slice_allocation_mask
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
]);
u
int8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
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.
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/pre_processor.c
View file @
56405aee
...
...
@@ -61,7 +61,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
...
...
@@ -977,7 +977,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
[
NFAPI_CC_MAX
][
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
;
int
N_RBG
[
NFAPI_CC_MAX
];
...
...
@@ -1205,13 +1205,13 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
uint8_t
CC_id
;
uint16_t
i
,
j
;
uint8_t
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
];
uint8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
];
// If TM5 is revisited, we can move this inside accounting
int
min_rb_unit
[
NFAPI_CC_MAX
];
uint16_t
nb_rbs_required
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint16_t
nb_rbs_accounted
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint16_t
nb_rbs_remaining
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
uint16_t
(
*
nb_rbs_required
)[
MAX_MOBILES_PER_ENB
]
=
pre_processor_results
[
slice_id
].
nb_rbs_required
;
uint16_t
(
*
nb_rbs_accounted
)[
MAX_MOBILES_PER_ENB
]
=
pre_processor_results
[
slice_id
].
nb_rbs_accounted
;
uint16_t
(
*
nb_rbs_remaining
)[
MAX_MOBILES_PER_ENB
]
=
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
;
...
...
@@ -1354,8 +1354,8 @@ dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
sub_frame_t
subframeP
,
int
min_rb_unit
[
NFAPI_CC_MAX
],
uint16_t
nb_rbs_required
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
],
u
nsigned
char
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
int8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
int
*
mbsfn_flag
)
{
...
...
@@ -1579,9 +1579,9 @@ dlsch_scheduler_pre_processor_allocate(module_id_t Mod_id,
int
min_rb_unit
,
uint16_t
nb_rbs_required
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
],
uint16_t
nb_rbs_remaining
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
],
u
nsigned
char
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
int8_t
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
uint8_t
slice_allocation_mask
[
NFAPI_CC_MAX
][
N_RBG_MAX
],
u
nsigned
char
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
])
u
int8_t
MIMO_mode_indicator
[
NFAPI_CC_MAX
][
N_RBG_MAX
])
{
int
i
;
int
tm
=
get_tmode
(
Mod_id
,
CC_id
,
UE_id
);
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_extern.h
View file @
56405aee
...
...
@@ -75,7 +75,7 @@ extern uint32_t timeToTrigger_ms[16];
extern
float
RSRP_meas_mapping
[
98
];
extern
float
RSRQ_meas_mapping
[
35
];
extern
UE_PF_PO_t
UE_PF_PO
[
MAX_NUM_CCs
][
MAX_MOBILES_PER_ENB
];
extern
UE_PF_PO_t
UE_PF_PO
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
extern
pthread_mutex_t
ue_pf_po_mutex
;
extern
uint16_t
reestablish_rnti_map
[
MAX_MOBILES_PER_ENB
][
2
];
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_vars.h
View file @
56405aee
...
...
@@ -36,7 +36,7 @@
#include "COMMON/mac_rrc_primitives.h"
#include "LAYER2/MAC/mac.h"
UE_PF_PO_t
UE_PF_PO
[
MAX_NUM_CCs
][
MAX_MOBILES_PER_ENB
];
UE_PF_PO_t
UE_PF_PO
[
NFAPI_CC_MAX
][
MAX_MOBILES_PER_ENB
];
pthread_mutex_t
ue_pf_po_mutex
;
UE_RRC_INST
*
UE_rrc_inst
;
#include "LAYER2/MAC/mac_extern.h"
...
...
This diff is collapsed.
Click to expand it.
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