Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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 UE
Commits
b63e71bf
Commit
b63e71bf
authored
Apr 12, 2020
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove any slice-related information from OAI
parent
ca38c999
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
39 additions
and
455 deletions
+39
-455
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
+0
-13
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
.../ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
+10
-18
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_slice_verification.c
...ONTROL_MODULES/MAC/flexran_agent_mac_slice_verification.c
+2
-2
openair2/ENB_APP/flexran_agent_ran_api.c
openair2/ENB_APP/flexran_agent_ran_api.c
+27
-287
openair2/LAYER2/MAC/mac.h
openair2/LAYER2/MAC/mac.h
+0
-104
openair2/LAYER2/MAC/mac_proto.h
openair2/LAYER2/MAC/mac_proto.h
+0
-2
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+0
-27
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+0
-2
No files found.
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c
View file @
b63e71bf
...
...
@@ -49,19 +49,6 @@ struct lfds700_misc_prng_state ps[NUM_MAX_ENB];
struct
lfds700_ringbuffer_element
*
dl_mac_config_array
[
NUM_MAX_ENB
];
struct
lfds700_ringbuffer_state
ringbuffer_state
[
NUM_MAX_ENB
];
/* the slice config as kept in the underlying system */
Protocol__FlexSliceConfig
*
slice_config
[
MAX_NUM_SLICES
];
/* a structure that keeps updates which will be reflected in slice_config later */
Protocol__FlexSliceConfig
*
sc_update
[
MAX_NUM_SLICES
];
/* indicates whether sc_update contains new data */
int
perform_slice_config_update_count
=
1
;
/* queue of incoming new UE<>slice association commands */
Protocol__FlexUeConfig
*
ue_slice_assoc_update
[
MAX_NUM_SLICES
];
int
n_ue_slice_assoc_updates
=
0
;
/* mutex for sc_update: do not receive new config and write it at the same time */
pthread_mutex_t
sc_update_mtx
=
PTHREAD_MUTEX_INITIALIZER
;
int
flexran_agent_mac_stats_reply_ue
(
mid_t
mod_id
,
Protocol__FlexUeStatsReport
**
ue_report
,
int
n_ue
,
...
...
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c
View file @
b63e71bf
...
...
@@ -33,14 +33,6 @@
#include "flexran_agent_mac_internal.h"
#include "flexran_agent_mac_slice_verification.h"
/* from flexran_agent_mac.c */
extern
Protocol__FlexSliceConfig
*
slice_config
[
MAX_NUM_SLICES
];
extern
Protocol__FlexSliceConfig
*
sc_update
[
MAX_NUM_SLICES
];
extern
int
perform_slice_config_update_count
;
extern
Protocol__FlexUeConfig
*
ue_slice_assoc_update
[
MAX_NUM_SLICES
];
extern
int
n_ue_slice_assoc_updates
;
extern
pthread_mutex_t
sc_update_mtx
;
Protocol__FlexranMessage
*
flexran_agent_generate_diff_mac_stats_report
(
Protocol__FlexranMessage
*
new_message
,
Protocol__FlexranMessage
*
old_message
)
{
...
...
@@ -1040,12 +1032,12 @@ Protocol__FlexSliceConfig *flexran_agent_create_slice_config(int n_dl, int m_ul)
if
(
!
fsc
)
return
NULL
;
protocol__flex_slice_config__init
(
fsc
);
/* say there are n_dl slices but reserve memory for up to
MAX_NUM_SLICES
so
/* say there are n_dl slices but reserve memory for up to
10
so
* we don't need to reserve again later */
fsc
->
n_dl
=
n_dl
;
fsc
->
dl
=
calloc
(
MAX_NUM_SLICES
,
sizeof
(
Protocol__FlexDlSlice
*
));
fsc
->
dl
=
calloc
(
10
,
sizeof
(
Protocol__FlexDlSlice
*
));
if
(
!
fsc
->
dl
)
fsc
->
n_dl
=
0
;
for
(
i
=
0
;
i
<
MAX_NUM_SLICES
;
i
++
)
{
for
(
i
=
0
;
i
<
10
;
i
++
)
{
fsc
->
dl
[
i
]
=
malloc
(
sizeof
(
Protocol__FlexDlSlice
));
if
(
!
fsc
->
dl
[
i
])
continue
;
protocol__flex_dl_slice__init
(
fsc
->
dl
[
i
]);
...
...
@@ -1053,9 +1045,9 @@ Protocol__FlexSliceConfig *flexran_agent_create_slice_config(int n_dl, int m_ul)
/* as above */
fsc
->
n_ul
=
m_ul
;
fsc
->
ul
=
calloc
(
MAX_NUM_SLICES
,
sizeof
(
Protocol__FlexUlSlice
*
));
fsc
->
ul
=
calloc
(
10
,
sizeof
(
Protocol__FlexUlSlice
*
));
if
(
!
fsc
->
ul
)
fsc
->
n_ul
=
0
;
for
(
i
=
0
;
i
<
MAX_NUM_SLICES
;
i
++
)
{
for
(
i
=
0
;
i
<
10
;
i
++
)
{
fsc
->
ul
[
i
]
=
malloc
(
sizeof
(
Protocol__FlexUlSlice
));
if
(
!
fsc
->
ul
[
i
])
continue
;
protocol__flex_ul_slice__init
(
fsc
->
ul
[
i
]);
...
...
@@ -1401,8 +1393,8 @@ Protocol__FlexDlSlice *create_new_dl_slice(mid_t mod_id, int id)
mod_id
,
id
);
Protocol__FlexDlSlice
*
to
=
sc_update
[
mod_id
]
->
dl
[
sc_update
[
mod_id
]
->
n_dl
];
sc_update
[
mod_id
]
->
n_dl
++
;
AssertFatal
(
sc_update
[
mod_id
]
->
n_dl
<=
MAX_NUM_SLICES
,
"cannot create more than
MAX_NUM_SLICES
\n
"
);
AssertFatal
(
sc_update
[
mod_id
]
->
n_dl
<=
10
,
"cannot create more than
10
\n
"
);
to
->
id
=
id
;
return
to
;
}
...
...
@@ -1468,8 +1460,8 @@ Protocol__FlexUlSlice *create_new_ul_slice(mid_t mod_id, int id)
mod_id
,
id
);
Protocol__FlexUlSlice
*
to
=
sc_update
[
mod_id
]
->
ul
[
sc_update
[
mod_id
]
->
n_ul
];
sc_update
[
mod_id
]
->
n_ul
++
;
AssertFatal
(
sc_update
[
mod_id
]
->
n_ul
<=
MAX_NUM_SLICES
,
"cannot create more than
MAX_NUM_SLICES
\n
"
);
AssertFatal
(
sc_update
[
mod_id
]
->
n_ul
<=
10
,
"cannot create more than
10
\n
"
);
to
->
id
=
id
;
return
to
;
}
...
...
@@ -1698,7 +1690,7 @@ int apply_new_slice_ul_config(mid_t mod_id, Protocol__FlexUlSlice *oldc, Protoco
void
prepare_ue_slice_assoc_update
(
mid_t
mod_id
,
Protocol__FlexUeConfig
*
ue_config
)
{
if
(
n_ue_slice_assoc_updates
==
MAX_NUM_SLICES
)
{
if
(
n_ue_slice_assoc_updates
==
10
)
{
LOG_E
(
FLEXRAN_AGENT
,
"[%d] can not handle flex_ue_config message, buffer is full; try again later
\n
"
,
mod_id
);
...
...
openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_slice_verification.c
View file @
b63e71bf
...
...
@@ -132,7 +132,7 @@ int flexran_verify_group_dl_slices(mid_t mod_id, Protocol__FlexDlSlice **existin
/* else "only" an update */
}
if
(
n
<
1
||
n
>
MAX_NUM_SLICES
)
{
if
(
n
<
1
||
n
>
10
)
{
LOG_E
(
FLEXRAN_AGENT
,
"[%d] Illegal number of resulting DL slices (%d -> %d)
\n
"
,
mod_id
,
n_ex
,
n
);
return
0
;
...
...
@@ -253,7 +253,7 @@ int flexran_verify_group_ul_slices(mid_t mod_id, Protocol__FlexUlSlice **existin
/* else "only" an update */
}
if
(
n
<
1
||
n
>
MAX_NUM_SLICES
)
{
if
(
n
<
1
||
n
>
10
)
{
LOG_E
(
FLEXRAN_AGENT
,
"[%d] Illegal number of resulting UL slices (%d -> %d)
\n
"
,
mod_id
,
n_ex
,
n
);
return
0
;
...
...
openair2/ENB_APP/flexran_agent_ran_api.c
View file @
b63e71bf
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/mac.h
View file @
b63e71bf
...
...
@@ -155,9 +155,6 @@
/*!\brief minimum MAC data needed for transmitting 1 min RLC PDU size + 1 byte MAC subHeader */
#define MIN_MAC_HDR_RLC_SIZE (1 + MIN_RLC_PDU_SIZE)
/*!\brief maximum number of slices / groups */
#define MAX_NUM_SLICES 10
#define U_PLANE_INACTIVITY_VALUE 0
/* defined 10ms order (zero means infinity) */
...
...
@@ -1150,9 +1147,6 @@ typedef struct {
UE_list_t
list
;
int
num_UEs
;
boolean_t
active
[
MAX_MOBILES_PER_ENB
];
/// Sorting criteria for the UE list in the MAC preprocessor
uint16_t
sorting_criteria
[
MAX_NUM_SLICES
][
CR_NUM
];
}
UE_info_t
;
/*! \brief deleting control information*/
...
...
@@ -1171,101 +1165,6 @@ typedef struct {
int
tail_freelist
;
///the tail position of the delete list
}
UE_free_list_t
;
/**
* slice specific scheduler for the DL
*/
typedef
void
(
*
slice_scheduler_dl
)(
module_id_t
mod_id
,
int
slice_idx
,
frame_t
frame
,
sub_frame_t
subframe
,
int
*
mbsfn_flag
);
typedef
struct
{
slice_id_t
id
;
/// RB share for each slice
float
pct
;
/// whether this slice is isolated from the others
int
isol
;
int
prio
;
/// Frequency ranges for slice positioning
int
pos_low
;
int
pos_high
;
// max mcs for each slice
int
maxmcs
;
/// criteria for sorting policies of the slices
uint32_t
sorting
;
/// Accounting policy (just greedy(1) or fair(0) setting for now)
int
accounting
;
/// name of available scheduler
char
*
sched_name
;
/// pointer to the slice specific scheduler in DL
slice_scheduler_dl
sched_cb
;
}
slice_sched_conf_dl_t
;
typedef
void
(
*
slice_scheduler_ul
)(
module_id_t
mod_id
,
int
slice_idx
,
frame_t
frame
,
sub_frame_t
subframe
,
unsigned
char
sched_subframe
,
uint16_t
*
first_rb
);
typedef
struct
{
slice_id_t
id
;
/// RB share for each slice
float
pct
;
// MAX MCS for each slice
int
maxmcs
;
/// criteria for sorting policies of the slices
uint32_t
sorting
;
/// starting RB (RB offset) of UL scheduling
int
first_rb
;
/// name of available scheduler
char
*
sched_name
;
/// pointer to the slice specific scheduler in UL
slice_scheduler_ul
sched_cb
;
}
slice_sched_conf_ul_t
;
typedef
struct
{
/// counter used to indicate when all slices have pre-allocated UEs
//int slice_counter;
/// indicates whether remaining RBs after first intra-slice allocation will
/// be allocated to UEs of the same slice
int
intraslice_share_active
;
/// indicates whether remaining RBs after slice allocation will be
/// allocated to UEs of another slice. Isolated slices will be ignored
int
interslice_share_active
;
/// number of active DL slices
int
n_dl
;
slice_sched_conf_dl_t
dl
[
MAX_NUM_SLICES
];
/// number of active UL slices
int
n_ul
;
slice_sched_conf_ul_t
ul
[
MAX_NUM_SLICES
];
/// common rb allocation list between slices
uint8_t
rballoc_sub
[
NFAPI_CC_MAX
][
N_RBG_MAX
];
}
slice_info_t
;
/**
* describes contiguous RBs
*/
...
...
@@ -1421,9 +1320,6 @@ typedef struct eNB_MAC_INST_s {
uint32_t
ul_handle
;
UE_info_t
UE_info
;
/// slice-related configuration
slice_info_t
slice_info
;
///subband bitmap configuration
SBMAP_CONF
sbmap_conf
;
/// CCE table used to build DCI scheduling information
...
...
openair2/LAYER2/MAC/mac_proto.h
View file @
b63e71bf
...
...
@@ -187,8 +187,6 @@ void add_msg3(module_id_t module_idP, int CC_id, RA_t *ra, frame_t frameP,
void
init_UE_info
(
UE_info_t
*
UE_info
);
void
init_slice_info
(
slice_info_t
*
sli
);
int
mac_top_init
(
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_active
);
...
...
openair2/LAYER2/MAC/main.c
View file @
b63e71bf
...
...
@@ -57,32 +57,6 @@ void init_UE_info(UE_info_t *UE_info)
memset
(
UE_info
->
active
,
0
,
sizeof
(
UE_info
->
active
));
}
void
init_slice_info
(
slice_info_t
*
sli
)
{
sli
->
intraslice_share_active
=
1
;
sli
->
interslice_share_active
=
1
;
sli
->
n_dl
=
1
;
memset
(
sli
->
dl
,
0
,
sizeof
(
slice_sched_conf_dl_t
)
*
MAX_NUM_SLICES
);
sli
->
dl
[
0
].
pct
=
1
.
0
;
sli
->
dl
[
0
].
prio
=
10
;
sli
->
dl
[
0
].
pos_high
=
N_RBG_MAX
;
sli
->
dl
[
0
].
maxmcs
=
28
;
sli
->
dl
[
0
].
sorting
=
0x012345
;
sli
->
dl
[
0
].
sched_name
=
"schedule_ue_spec"
;
sli
->
dl
[
0
].
sched_cb
=
dlsym
(
NULL
,
sli
->
dl
[
0
].
sched_name
);
AssertFatal
(
sli
->
dl
[
0
].
sched_cb
,
"DLSCH scheduler callback is NULL
\n
"
);
sli
->
n_ul
=
1
;
memset
(
sli
->
ul
,
0
,
sizeof
(
slice_sched_conf_ul_t
)
*
MAX_NUM_SLICES
);
sli
->
ul
[
0
].
pct
=
1
.
0
;
sli
->
ul
[
0
].
maxmcs
=
20
;
sli
->
ul
[
0
].
sorting
=
0x0123
;
sli
->
ul
[
0
].
sched_name
=
"schedule_ulsch_rnti"
;
sli
->
ul
[
0
].
sched_cb
=
dlsym
(
NULL
,
sli
->
ul
[
0
].
sched_name
);
AssertFatal
(
sli
->
ul
[
0
].
sched_cb
,
"ULSCH scheduler callback is NULL
\n
"
);
}
void
mac_top_init_eNB
(
void
)
{
module_id_t
i
,
j
;
...
...
@@ -139,7 +113,6 @@ void mac_top_init_eNB(void)
mac
[
i
]
->
ul_algo
=
*
(
default_sched_ul_algo_t
*
)
d
;
mac
[
i
]
->
ul_algo
.
data
=
mac
[
i
]
->
ul_algo
.
setup
();
init_UE_info
(
&
mac
[
i
]
->
UE_info
);
init_slice_info
(
&
mac
[
i
]
->
slice_info
);
}
RC
.
mac
=
mac
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
b63e71bf
...
...
@@ -68,8 +68,6 @@
extern
RAN_CONTEXT_t
RC
;
extern
int
n_active_slices
;
// Note the 2 scs values in the table names represent resp. scs_common and pdcch_scs
/// LUT for the number of symbols in the coreset indexed by coreset index (4 MSB rmsi_pdcch_config)
uint8_t
nr_coreset_nsymb_pdcch_type_0_scs_15_15
[
15
]
=
{
2
,
2
,
2
,
3
,
3
,
3
,
1
,
1
,
2
,
2
,
3
,
3
,
1
,
2
,
3
};
...
...
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