1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /* This file contains the definitions for Upper Interface APIs that are
21 #include "common_def.h"
22 #include "du_app_mac_inf.h"
23 #include "rlc_mac_inf.h"
24 #include "mac_upr_inf_api.h"
26 /* Funtion pointer options for cell up indication */
27 DuMacCellUpInd packMacCellUpIndOpts[] =
34 DuMacSlotInd packMacSlotIndOpts[] =
41 /* Funtion pointer options for stop indication */
42 DuMacStopInd packMacStopIndOpts[] =
49 /* Funtion pointer options for UL CCCH indication */
50 DuMacUlCcchInd packMacUlCcchIndOpts[] =
57 /* Function pointer options for UL Data to RLC */
58 RlcMacUlDataFunc rlcMacSendUlDataOpts[] =
65 /* Funtion pointer options for schedule result reporting */
66 RlcMacSchedResultRptFunc rlcMacSchedResultRptOpts[] =
68 packRlcSchedResultRpt,
69 RlcProcSchedResultRpt,
74 /*******************************************************************
76 * @brief Send cell up indication to DU APP
80 * Function : MacDuAppCellUpInd
83 * Select appropriate function using selector value and
84 * send cell up indication to DU APP
86 * @params[in] Post structure pointer
88 * @return ROK - success
91 * ****************************************************************/
92 uint8_t MacDuAppCellUpInd(Pst *pst, OduCellId *cellId)
94 return (*packMacCellUpIndOpts[pst->selector])(pst, cellId);
97 /*******************************************************************
99 * @brief Send slot indication to DU APP
103 * Function : MacDuAppSlotInd
106 * send slot indication to DU APP
108 * @params[in] Post structure pointer, SlotTimingInfo *slotIndInfo
109 * @return ROK - success
112 * ****************************************************************/
113 uint8_t MacDuAppSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo)
115 return (*packMacSlotIndOpts[pst->selector])(pst, slotIndInfo);
117 /*******************************************************************
119 * @brief Send stop indication to MAC
123 * Function : MacDuAppStopInd
126 * Sends Stop Indication to MAC
128 * @params[in] Post structure pointer
129 * @return ROK - success
132 * ****************************************************************/
133 uint8_t MacDuAppStopInd(Pst *pst, OduCellId *cellId)
135 return (*packMacStopIndOpts[pst->selector])(pst, cellId);
138 /*******************************************************************
140 * @brief Send UL CCCH Ind to DU APP
144 * Function :MacDuAppUlCcchInd
147 * Select appropriate function using selector value and
150 * @params[in] Post structure pointer
152 * @return ROK - success
155 * ****************************************************************/
156 uint8_t MacDuAppUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo)
158 return (*packMacUlCcchIndOpts[pst->selector])(pst, ulCcchIndInfo);
161 /*******************************************************************
163 * @brief Send UL data to RLC
167 * Function : MacRlcSendUlData
169 * Functionality: Send UL data to RLC
172 * @return ROK - success
175 * ****************************************************************/
176 uint8_t MacSendUlDataToRlc(Pst *pst, RlcUlData *ulData)
178 return (*rlcMacSendUlDataOpts[pst->selector])(pst, ulData);
181 /*******************************************************************
183 * @brief Send Schedule result report to RLC
187 * Function : MacSendSchedResultRptToRlc
189 * Functionality: Send Schedule result report to RLC
191 * @params[in] Post structure
192 * Schedule result report
193 * @return ROK - success
196 * ****************************************************************/
197 uint8_t MacSendSchedResultRptToRlc(Pst *pst, RlcSchedResultRpt *schedRpt)
199 return (*rlcMacSchedResultRptOpts[pst->selector])(pst, schedRpt);
202 /**********************************************************************
204 **********************************************************************/