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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
714a2df0
Commit
714a2df0
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
da09d63a
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 @
714a2df0
...
...
@@ -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 @
714a2df0
...
...
@@ -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 @
714a2df0
...
...
@@ -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 @
714a2df0
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/mac.h
View file @
714a2df0
...
...
@@ -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 @
714a2df0
...
...
@@ -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 @
714a2df0
...
...
@@ -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 @
714a2df0
...
...
@@ -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