ff-mac-callback.h 3.27 KB
Newer Older
Cedric Roux's avatar
Cedric Roux committed
1 2 3 4 5 6 7 8
/**
 * @file ff-mac-callback.h
 * @brief Implementation of the Femto Forum LTE MAC Scheduler Interface Specification v1.11 with extensions.
 * @details Contains definitions of function callback types, that the scheduler may call upon the MAC.
 * @author Florian Kaltenberger, Maciej Wewior
 * @date March 2015
 * @email: florian.kaltenberger@eurecom.fr, m.wewior@is-wireless.com
 * @ingroup _mac
Cedric Roux's avatar
Cedric Roux committed
9 10
 */

Cedric Roux's avatar
Cedric Roux committed
11 12
#ifndef FF_MAC_CALLBACK_H
#define FF_MAC_CALLBACK_H
Cedric Roux's avatar
Cedric Roux committed
13 14 15 16 17

#if defined (__cplusplus)
extern "C" {
#endif

Cedric Roux's avatar
Cedric Roux committed
18
//CSCHED SAP scheduler->MAC primitives
Cedric Roux's avatar
Cedric Roux committed
19

Cedric Roux's avatar
Cedric Roux committed
20 21 22 23 24
/**
 * Cell configuration and scheduler configuration applied.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params Cell configuration result
 */
Cedric Roux's avatar
Cedric Roux committed
25
typedef void (CschedCellConfigCnf_callback_t)(void *callback_data, const struct CschedCellConfigCnfParameters *params);
Cedric Roux's avatar
Cedric Roux committed
26 27 28 29 30 31

/**
 * UE specific configuration applied.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params UE configuration result
 */
Cedric Roux's avatar
Cedric Roux committed
32
typedef void (CschedUeConfigCnf_callback_t)(void *callback_data, const struct CschedUeConfigCnfParameters *params);
Cedric Roux's avatar
Cedric Roux committed
33 34 35 36 37 38

/**
 * Logical channel configuration applied.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params LC configuration result
 */
Cedric Roux's avatar
Cedric Roux committed
39
typedef void (CschedLcConfigCnf_callback_t)(void *callback_data, const struct CschedLcConfigCnfParameters *params);
Cedric Roux's avatar
Cedric Roux committed
40 41 42 43 44 45

/**
 * Logical Channel specific configuration removed.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params Logical channel release result
 */
Cedric Roux's avatar
Cedric Roux committed
46
typedef void (CschedLcReleaseCnf_callback_t)(void *callback_data, const struct CschedLcReleaseCnfParameters *params);
Cedric Roux's avatar
Cedric Roux committed
47 48 49 50 51 52

/**
 * UE specific configuration removed.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params UE release result
 */
Cedric Roux's avatar
Cedric Roux committed
53
typedef void (CschedUeReleaseCnf_callback_t)(void *callback_data, const struct CschedUeReleaseCnfParameters *params);
Cedric Roux's avatar
Cedric Roux committed
54 55 56 57 58 59

/**
 * Update of UE specific parameters from MAC scheduler to RRC.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params UE configuration update parameters
 */
Cedric Roux's avatar
Cedric Roux committed
60
typedef void (CschedUeConfigUpdateInd_callback_t)(void *callback_data, const struct CschedUeConfigUpdateIndParameters *params);
Cedric Roux's avatar
Cedric Roux committed
61 62 63 64 65 66

/**
 * Update of cell configuration from MAC scheduler to RRC.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params Cell configuration update parameters
 */
Cedric Roux's avatar
Cedric Roux committed
67 68
typedef void (CschedCellConfigUpdateInd_callback_t)(void *callback_data, const struct CschedCellConfigUpdateIndParameters *params);

Cedric Roux's avatar
Cedric Roux committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

//SCHED SAP scheduler->MAC primitives

/**
 * Passes the DL scheduling decision to MAC, triggers building of DL MAC PDUs and Subframe Configuration.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params DL scheduling decision
 */
typedef void (SchedDlConfigInd_callback_t)(void *callback_data, const struct SchedDlConfigIndParameters *params);

/**
 * Passes the UL scheduling decision (Format 0 DCIs)to MAC.
 * @param callback_data Callback data pointer provided in SchedInit()
 * @param params UL scheduling decision
 */
typedef void (SchedUlConfigInd_callback_t)(void *callback_data, const struct SchedUlConfigIndParameters *params);

Cedric Roux's avatar
Cedric Roux committed
86 87 88 89 90
#if defined (__cplusplus)
}
#endif

#endif /* FF_MAC_CALLBACK_H */