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
常顺宇
OpenXG-RAN
Commits
a1c1c0c8
Commit
a1c1c0c8
authored
Nov 24, 2015
by
Cedric Roux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
starting FAPI integration into OAI
parent
115d0c6b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
214 additions
and
48 deletions
+214
-48
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-0
openair2/LAYER2/MAC/ff-mac-callback.h
openair2/LAYER2/MAC/ff-mac-callback.h
+19
-0
openair2/LAYER2/MAC/ff-mac-common.h
openair2/LAYER2/MAC/ff-mac-common.h
+5
-1
openair2/LAYER2/MAC/ff-mac-csched-sap.h
openair2/LAYER2/MAC/ff-mac-csched-sap.h
+15
-23
openair2/LAYER2/MAC/ff-mac-init.h
openair2/LAYER2/MAC/ff-mac-init.h
+27
-0
openair2/LAYER2/MAC/ff-mac-sched-sap.h
openair2/LAYER2/MAC/ff-mac-sched-sap.h
+16
-24
openair2/LAYER2/MAC/minifapi.c
openair2/LAYER2/MAC/minifapi.c
+131
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
a1c1c0c8
...
...
@@ -922,6 +922,7 @@ set (MAC_SRC
${
MAC_DIR
}
/eNB_scheduler_RA.c
${
MAC_DIR
}
/pre_processor.c
${
MAC_DIR
}
/config.c
${
MAC_DIR
}
/minifapi.c
)
set
(
ENB_APP_SRC
...
...
openair2/LAYER2/MAC/ff-mac-callback.h
0 → 100644
View file @
a1c1c0c8
#ifndef FF_MAC_CALLBACK_H
#define FF_MAC_CALLBACK_H
/* these are the callback function types from the scheduler to openair */
/* sched */
typedef
void
(
SchedDlConfigInd_callback
)(
void
*
callback_data
,
const
struct
SchedDlConfigIndParameters
*
params
);
typedef
void
(
SchedUlConfigInd_callback
)(
void
*
callback_data
,
const
struct
SchedUlConfigIndParameters
*
params
);
/* csched */
typedef
void
(
CschedCellConfigCnf_callback
)(
void
*
callback_data
,
const
struct
CschedCellConfigCnfParameters
*
params
);
typedef
void
(
CschedUeConfigCnf_callback
)(
void
*
callback_data
,
const
struct
CschedUeConfigCnfParameters
*
params
);
typedef
void
(
CschedLcConfigCnf_callback
)(
void
*
callback_data
,
const
struct
CschedLcConfigCnfParameters
*
params
);
typedef
void
(
CschedLcReleaseCnf_callback
)(
void
*
callback_data
,
const
struct
CschedLcReleaseCnfParameters
*
params
);
typedef
void
(
CschedUeReleaseCnf_callback
)(
void
*
callback_data
,
const
struct
CschedUeReleaseCnfParameters
*
params
);
typedef
void
(
CschedUeConfigUpdateInd_callback
)(
void
*
callback_data
,
const
struct
CschedUeConfigUpdateIndParameters
*
params
);
typedef
void
(
CschedCellConfigUpdateInd_callback
)(
void
*
callback_data
,
const
struct
CschedCellConfigUpdateIndParameters
*
params
);
#endif
/* FF_MAC_CALLBACK_H */
openair2/LAYER2/MAC/ff-mac-common.h
View file @
a1c1c0c8
...
...
@@ -74,7 +74,11 @@ extern "C" {
#define MAX_SR_LIST 30
#define MAX_MAC_CE_LIST 30
#define MAX_NUM_CCs 2
#ifndef MAX_NUM_CCs
#error MAX_NUM_CCs not defined
#endif
//#define MAX_NUM_CCs 2
enum
Result_e
{
...
...
openair2/LAYER2/MAC/ff-mac-csched-sap.h
View file @
a1c1c0c8
...
...
@@ -255,16 +255,11 @@ struct CschedUeReleaseReqParameters
/**
* \brief CSCHED_CELL_CONFIG_REQ
*/
void
CschedCellConfigReq
(
const
struct
CschedCellConfigReqParameters
*
params
);
void
CschedUeConfigReq
(
const
struct
CschedUeConfigReqParameters
*
params
);
void
CschedLcConfigReq
(
const
struct
CschedLcConfigReqParameters
*
params
);
void
CschedLcReleaseReq
(
const
struct
CschedLcReleaseReqParameters
*
params
);
void
CschedUeReleaseReq
(
const
struct
CschedUeReleaseReqParameters
*
params
);
void
CschedCellConfigReq
(
void
*
,
const
struct
CschedCellConfigReqParameters
*
params
);
void
CschedUeConfigReq
(
void
*
,
const
struct
CschedUeConfigReqParameters
*
params
);
void
CschedLcConfigReq
(
void
*
,
const
struct
CschedLcConfigReqParameters
*
params
);
void
CschedLcReleaseReq
(
void
*
,
const
struct
CschedLcReleaseReqParameters
*
params
);
void
CschedUeReleaseReq
(
void
*
,
const
struct
CschedUeReleaseReqParameters
*
params
);
/**
* Parameters of the API primitives
...
...
@@ -377,19 +372,16 @@ struct CschedCellConfigUpdateIndParameters
// (See 4.1 for description of the primitives)
//
void
CschedCellConfigCnf
(
const
struct
CschedCellConfigCnfParameters
*
params
);
void
CschedUeConfigCnf
(
const
struct
CschedUeConfigCnfParameters
*
params
);
void
CschedLcConfigCnf
(
const
struct
CschedLcConfigCnfParameters
*
params
);
void
CschedLcReleaseCnf
(
const
struct
CschedLcReleaseCnfParameters
*
params
);
void
CschedUeReleaseCnf
(
const
struct
CschedUeReleaseCnfParameters
*
params
);
void
CschedUeConfigUpdateInd
(
const
struct
CschedUeConfigUpdateIndParameters
*
params
);
void
CschedCellConfigUpdateInd
(
const
struct
CschedCellConfigUpdateIndParameters
*
params
);
#if 0
/* not used - the scheduler has callbacks for those */
void CschedCellConfigCnf(const struct CschedCellConfigCnfParameters *params);
void CschedUeConfigCnf(const struct CschedUeConfigCnfParameters *params);
void CschedLcConfigCnf(const struct CschedLcConfigCnfParameters *params);
void CschedLcReleaseCnf(const struct CschedLcReleaseCnfParameters *params);
void CschedUeReleaseCnf(const struct CschedUeReleaseCnfParameters *params);
void CschedUeConfigUpdateInd(const struct CschedUeConfigUpdateIndParameters *params);
void CschedCellConfigUpdateInd(const struct CschedCellConfigUpdateIndParameters *params);
#endif
#if defined (__cplusplus)
}
...
...
openair2/LAYER2/MAC/ff-mac-init.h
0 → 100644
View file @
a1c1c0c8
#ifndef FF_MAC_INIT_H
#define FF_MAC_INIT_H
#if defined (__cplusplus)
extern
"C"
{
#endif
#include "ff-mac-callback.h"
/* this function is called to create and initialize a scheduler */
void
*
SchedInit
(
void
*
callback_data
,
SchedDlConfigInd_callback
*
SchedDlConfigInd
,
SchedUlConfigInd_callback
*
SchedUlConfigInd
,
CschedCellConfigCnf_callback
*
CschedCellConfigCnf
,
CschedUeConfigCnf_callback
*
CschedUeConfigCnf
,
CschedLcConfigCnf_callback
*
CschedLcConfigCnf
,
CschedLcReleaseCnf_callback
*
CschedLcReleaseCnf
,
CschedUeReleaseCnf_callback
*
CschedUeReleaseCnf
,
CschedUeConfigUpdateInd_callback
*
CschedUeConfigUpdateInd
,
CschedCellConfigUpdateInd_callback
*
CschedCellConfigUpdateInd
);
#if defined (__cplusplus)
}
#endif
#endif
/* FF_MAC_INIT_H */
openair2/LAYER2/MAC/ff-mac-sched-sap.h
View file @
a1c1c0c8
...
...
@@ -204,27 +204,17 @@ struct SchedUlCqiInfoReqParameters
// (See 4.2 for description of the primitives)
//
void
SchedDlRlcBufferReq
(
const
struct
SchedDlRlcBufferReqParameters
*
params
);
void
SchedDlPagingBufferReq
(
const
struct
SchedDlPagingBufferReqParameters
*
params
);
void
SchedDlMacBufferReq
(
const
struct
SchedDlMacBufferReqParameters
*
params
);
void
SchedDlTriggerReq
(
const
struct
SchedDlTriggerReqParameters
*
params
);
void
SchedDlRachInfoReq
(
const
struct
SchedDlRachInfoReqParameters
*
params
);
void
SchedDlCqiInfoReq
(
const
struct
SchedDlCqiInfoReqParameters
*
params
);
void
SchedUlTriggerReq
(
const
struct
SchedUlTriggerReqParameters
*
params
);
void
SchedUlNoiseInterferenceReq
(
const
struct
SchedUlNoiseInterferenceReqParameters
*
params
);
void
SchedUlSrInfoReq
(
const
struct
SchedUlSrInfoReqParameters
*
params
);
void
SchedUlMacCtrlInfoReq
(
const
struct
SchedUlMacCtrlInfoReqParameters
*
params
);
void
SchedUlCqiInfoReq
(
const
struct
SchedUlCqiInfoReqParameters
*
params
);
void
SchedDlRlcBufferReq
(
void
*
,
const
struct
SchedDlRlcBufferReqParameters
*
params
);
void
SchedDlPagingBufferReq
(
void
*
,
const
struct
SchedDlPagingBufferReqParameters
*
params
);
void
SchedDlMacBufferReq
(
void
*
,
const
struct
SchedDlMacBufferReqParameters
*
params
);
void
SchedDlTriggerReq
(
void
*
,
const
struct
SchedDlTriggerReqParameters
*
params
);
void
SchedDlRachInfoReq
(
void
*
,
const
struct
SchedDlRachInfoReqParameters
*
params
);
void
SchedDlCqiInfoReq
(
void
*
,
const
struct
SchedDlCqiInfoReqParameters
*
params
);
void
SchedUlTriggerReq
(
void
*
,
const
struct
SchedUlTriggerReqParameters
*
params
);
void
SchedUlNoiseInterferenceReq
(
void
*
,
const
struct
SchedUlNoiseInterferenceReqParameters
*
params
);
void
SchedUlSrInfoReq
(
void
*
,
const
struct
SchedUlSrInfoReqParameters
*
params
);
void
SchedUlMacCtrlInfoReq
(
void
*
,
const
struct
SchedUlMacCtrlInfoReqParameters
*
params
);
void
SchedUlCqiInfoReq
(
void
*
,
const
struct
SchedUlCqiInfoReqParameters
*
params
);
/**
* Parameters of the API primitives
...
...
@@ -271,9 +261,11 @@ struct SchedUlConfigIndParameters
// (See 4.2 for description of the primitives)
//
void
SchedDlConfigInd
(
const
struct
SchedDlConfigIndParameters
*
params
);
void
SchedUlConfigInd
(
const
struct
SchedUlConfigIndParameters
*
params
);
#if 0
/* not used - the scheduler has callbacks for those */
void SchedDlConfigInd(const struct SchedDlConfigIndParameters* params);
void SchedUlConfigInd(const struct SchedUlConfigIndParameters* params);
#endif
#if defined (__cplusplus)
}
...
...
openair2/LAYER2/MAC/minifapi.c
0 → 100644
View file @
a1c1c0c8
/* this is a very primitive FAPI scheduler
* it was done to develop the eNodeB side of FAPI
* only one UE supported, MCS always 4, 25 RBs, 1 CC
* and many other unrealistic assumptions
*/
#include "ff-mac-sched-sap.h"
#include "ff-mac-csched-sap.h"
#include "ff-mac-init.h"
#include "ff-mac-callback.h"
#include <stdlib.h>
#include <stdio.h>
struct
scheduler
{
void
*
callback_data
;
SchedDlConfigInd_callback
*
SchedDlConfigInd
;
SchedUlConfigInd_callback
*
SchedUlConfigInd
;
CschedCellConfigCnf_callback
*
CschedCellConfigCnf
;
CschedUeConfigCnf_callback
*
CschedUeConfigCnf
;
CschedLcConfigCnf_callback
*
CschedLcConfigCnf
;
CschedLcReleaseCnf_callback
*
CschedLcReleaseCnf
;
CschedUeReleaseCnf_callback
*
CschedUeReleaseCnf
;
CschedUeConfigUpdateInd_callback
*
CschedUeConfigUpdateInd
;
CschedCellConfigUpdateInd_callback
*
CschedCellConfigUpdateInd
;
};
void
*
SchedInit
(
void
*
callback_data
,
SchedDlConfigInd_callback
*
SchedDlConfigInd
,
SchedUlConfigInd_callback
*
SchedUlConfigInd
,
CschedCellConfigCnf_callback
*
CschedCellConfigCnf
,
CschedUeConfigCnf_callback
*
CschedUeConfigCnf
,
CschedLcConfigCnf_callback
*
CschedLcConfigCnf
,
CschedLcReleaseCnf_callback
*
CschedLcReleaseCnf
,
CschedUeReleaseCnf_callback
*
CschedUeReleaseCnf
,
CschedUeConfigUpdateInd_callback
*
CschedUeConfigUpdateInd
,
CschedCellConfigUpdateInd_callback
*
CschedCellConfigUpdateInd
)
{
struct
scheduler
*
ret
;
printf
(
"minifapi:%s:%d: start
\n
"
,
__FUNCTION__
,
__LINE__
);
ret
=
calloc
(
1
,
sizeof
(
struct
scheduler
));
if
(
ret
==
NULL
)
{
printf
(
"minifapi:%s:%d: memory allocation error
\n
"
,
__FUNCTION__
,
__LINE__
);
return
NULL
;
}
ret
->
callback_data
=
callback_data
;
ret
->
SchedDlConfigInd
=
SchedDlConfigInd
;
ret
->
SchedUlConfigInd
=
SchedUlConfigInd
;
ret
->
CschedCellConfigCnf
=
CschedCellConfigCnf
;
ret
->
CschedUeConfigCnf
=
CschedUeConfigCnf
;
ret
->
CschedLcConfigCnf
=
CschedLcConfigCnf
;
ret
->
CschedLcReleaseCnf
=
CschedLcReleaseCnf
;
ret
->
CschedUeReleaseCnf
=
CschedUeReleaseCnf
;
ret
->
CschedUeConfigUpdateInd
=
CschedUeConfigUpdateInd
;
ret
->
CschedCellConfigUpdateInd
=
CschedCellConfigUpdateInd
;
printf
(
"minifapi:%s:%d: done
\n
"
,
__FUNCTION__
,
__LINE__
);
return
ret
;
}
/*************** SCHED functions ***************/
void
SchedDlRlcBufferReq
(
void
*
_sched
,
const
struct
SchedDlRlcBufferReqParameters
*
params
)
{
}
void
SchedDlPagingBufferReq
(
void
*
_sched
,
const
struct
SchedDlPagingBufferReqParameters
*
params
)
{
}
void
SchedDlMacBufferReq
(
void
*
_sched
,
const
struct
SchedDlMacBufferReqParameters
*
params
)
{
}
void
SchedDlTriggerReq
(
void
*
_sched
,
const
struct
SchedDlTriggerReqParameters
*
params
)
{
}
void
SchedDlRachInfoReq
(
void
*
_sched
,
const
struct
SchedDlRachInfoReqParameters
*
params
)
{
}
void
SchedDlCqiInfoReq
(
void
*
_sched
,
const
struct
SchedDlCqiInfoReqParameters
*
params
)
{
}
void
SchedUlTriggerReq
(
void
*
_sched
,
const
struct
SchedUlTriggerReqParameters
*
params
)
{
}
void
SchedUlNoiseInterferenceReq
(
void
*
_sched
,
const
struct
SchedUlNoiseInterferenceReqParameters
*
params
)
{
}
void
SchedUlSrInfoReq
(
void
*
_sched
,
const
struct
SchedUlSrInfoReqParameters
*
params
)
{
}
void
SchedUlMacCtrlInfoReq
(
void
*
_sched
,
const
struct
SchedUlMacCtrlInfoReqParameters
*
params
)
{
}
void
SchedUlCqiInfoReq
(
void
*
_sched
,
const
struct
SchedUlCqiInfoReqParameters
*
params
)
{
}
/*************** CSCHED functions ***************/
void
CschedCellConfigReq
(
void
*
_sched
,
const
struct
CschedCellConfigReqParameters
*
params
)
{
}
void
CschedUeConfigReq
(
void
*
_sched
,
const
struct
CschedUeConfigReqParameters
*
params
)
{
}
void
CschedLcConfigReq
(
void
*
_sched
,
const
struct
CschedLcConfigReqParameters
*
params
)
{
}
void
CschedLcReleaseReq
(
void
*
_sched
,
const
struct
CschedLcReleaseReqParameters
*
params
)
{
}
void
CschedUeReleaseReq
(
void
*
_sched
,
const
struct
CschedUeReleaseReqParameters
*
params
)
{
}
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