[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] WG8 Alignment | UE RLC Re-establishment...
[o-du/l2.git] / src / 5gnrrlc / rlc_upr_inf_api.c
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
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                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
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 *******************************************************************************/
18 #include "common_def.h"
19 #include "du_app_rlc_inf.h"
20
21 /* Function pointer array for UL RRC Msg Transfer */
22 RlcUlRrcMsgToDuFunc rlcSendUlRrcMsgToDuOpts[] = 
23 {
24    packRlcUlRrcMsgToDu,       /* 0 - Loosely coupled */
25    DuProcRlcUlRrcMsgTrans,    /* 1 - Tightly coupled */
26    packRlcUlRrcMsgToDu        /* 2 - Light weight loosely coupled */
27 };
28
29 RlcRrcDeliveryReportToDuFunc rlcSendRrcDeliveryReportToDuOpts[]=
30 {
31    packRrcDeliveryReportToDu,          /* 0 - Loosely coupled */
32    DuProcRlcRrcDeliveryReport,    /* 1 - Tightly coupled */
33    packRrcDeliveryReportToDu           /* 2 - Light weight loosely coupled */
34 };
35
36 /* Function pointer array for DL RRC Msg Rsp Transfer */
37 RlcDlRrcMsgRspToDuFunc rlcSendDlRrcMsgRspToDuOpts[] = 
38 {
39    packRlcDlRrcMsgRspToDu,       /* 0 - Loosely coupled */
40    DuProcRlcDlRrcMsgRsp,         /* 1 - Tightly coupled */
41    packRlcDlRrcMsgRspToDu        /* 2 - Light weight loosely coupled */
42 };
43
44 /* Function pointer array for UL RRC Msg Transfer */
45 RlcUlUserDataToDuFunc rlcSendUlUserDataToDuOpts[] =
46 {
47    packRlcUlUserDataToDu,       /* 0 - Loosely coupled */
48    DuProcRlcUlUserDataTrans,    /* 1 - Tightly coupled */
49    packRlcUlUserDataToDu        /* 2 - Light weight loosely coupled */
50 };
51
52 RlcDuUeDeleteRsp rlcUeDeleteRspOpts[] =
53 {
54    packRlcDuUeDeleteRsp,     /* 0 - loosely coupled */
55    DuProcRlcUeDeleteRsp,     /* 1 - tightly coupled */
56    packRlcDuUeDeleteRsp     /* 2 - LWLC loosely coupled */
57 };
58
59 RlcSlicePmToDuFunc rlcSlicePmOpts[] =
60 {
61    packRlcDuSlicePm,          /* 0 - loosely coupled */
62    DuProcRlcSliceMetrics,     /* 1 - tightly coupled */
63    packRlcDuSlicePm           /* 2 - LWLC loosely coupled */
64 };
65
66 RlcDuUeReestablishRsp rlcUeReestablishRspOpts[] =
67 {
68    packRlcDuUeReestablishRsp,     /* 0 - loosely coupled */
69    DuProcRlcUeReestablishRsp,     /* 1 - tightly coupled */
70    packRlcDuUeReestablishRsp     /* 2 - LWLC loosely coupled */
71 };
72
73 /*******************************************************************
74  *
75  * @brief Sends UL RRC Message Info to DU APP
76  *
77  * @details
78  *
79  *    Function : rlcSendUlRrcMsgToDu
80  *
81  *    Functionality:  Sends UL RRC Message Info to DU APP
82  *
83  * @params[in] Pst structure
84  *             UL RRC Msg Info
85  * @return ROK     - success
86  *         RFAILED - failure
87  *
88  * ****************************************************************/
89 uint8_t rlcSendUlRrcMsgToDu(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo)
90 {
91    return (*rlcSendUlRrcMsgToDuOpts[pst->selector])(pst, ulRrcMsgInfo);
92 }
93
94 /*******************************************************************
95 *
96 * @brief Sends RRC delivery Message Info to DU APP
97 *
98 * @details
99 *
100 *    Function : rlcSendRrcDeliveryReportToDu
101 *
102 *    Functionality:  Sends RRC delivery Message Info to DU APP
103 *
104 * @params[in] Pst structure
105 *             RRC delivery Msg Info
106 * @return ROK     - success
107 *         RFAILED - failure
108 *
109 * ****************************************************************/
110 uint8_t rlcSendRrcDeliveryReportToDu(Pst *pst, RrcDeliveryReport *rrcDelivery) 
111 {
112    return (*rlcSendRrcDeliveryReportToDuOpts[pst->selector])(pst, rrcDelivery);
113 }
114 /*******************************************************************
115  *
116  * @brief Sends DL RRC Message Status to DU APP
117  *
118  * @details
119  *
120  *    Function : rlcSendDlRrcMsgRspToDu
121  *
122  *    Functionality:  Sends DL RRC Message Status to DU APP
123  *
124  * @params[in] Pst structure
125  *             DL RRC Msg Info
126  * @return ROK     - success
127  *         RFAILED - failure
128  *
129  * ****************************************************************/
130 uint8_t rlcSendDlRrcMsgRspToDu(Pst *pst, RlcDlRrcMsgRsp *dlRrcMsg)
131 {
132    return (*rlcSendDlRrcMsgRspToDuOpts[pst->selector])(pst, dlRrcMsg);
133 }
134
135 /*******************************************************************
136  *
137  * @brief Sends UL User data Info to DU APP
138  *
139  * @details
140  *
141  *    Function : rlcSendUlUserDataToDu
142  *
143  *    Functionality:  Sends UL User Data Info to DU APP
144  *
145  * @params[in] Pst structure
146  *             UL user data Info
147  * @return ROK     - success
148  *         RFAILED - failure
149  *
150  * ****************************************************************/
151 uint8_t rlcSendUlUserDataToDu(Pst *pst, RlcUlUserDatInfo *ulUserData)
152 {
153    return (*rlcSendUlUserDataToDuOpts[pst->selector])(pst, ulUserData);
154 }
155
156 /*******************************************************************
157  *
158  * @brief Sends Ue Delete Rsp to DU APP
159  *
160  * @details
161  *
162  *    Function : rlcSendUeDeleteRspToDu 
163  *
164  *    Functionality:  Sends Ue Delete Rsp to DU APP
165  *
166  * @params[in] Pst *pst, RlcUeDeleteRsp *ueDeleteRsp 
167  *             
168  * @return ROK     - success
169  *         RFAILED - failure
170  *
171  * ****************************************************************/
172 uint8_t rlcSendUeDeleteRspToDu(Pst *pst, RlcUeDeleteRsp *ueDeleteRsp)
173 {
174     return (*rlcUeDeleteRspOpts[pst->selector])(pst, ueDeleteRsp);
175 }
176
177 /*******************************************************************
178  *
179  * @brief Sends Slice Performance Metrics to DU APP
180  *
181  * @details
182  *
183  *    Function : rlcSendSlicePmToDu 
184  *
185  *    Functionality:  Sends Performace Metrics per slice together to DU APP
186  *
187  * @params[in] Pst *pst, SlicePmList *sliceStats 
188  *             
189  * @return ROK     - success
190  *         RFAILED - failure
191  *
192  * ****************************************************************/
193 uint8_t rlcSendSlicePmToDu(Pst *pst, SlicePmList *sliceStats)
194 {
195     return (*rlcSlicePmOpts[pst->selector])(pst, sliceStats);
196 }
197
198 /*******************************************************************
199  *
200  * @brief Sends Ue Reestablishment Rsp to DU APP
201  *
202  * @details
203  *
204  *    Function : rlcSendUeReestablishRspToDu 
205  *
206  *    Functionality:  Sends Ue Reestablishment Rsp to DU APP
207  *
208  * @params[in] Pst *pst, RlcUeReestablishRsp *ueReestablishRsp 
209  *             
210  * @return ROK     - success
211  *         RFAILED - failure
212  *
213  * ****************************************************************/
214 uint8_t rlcSendUeReestablishRspToDu(Pst *pst, RlcUeReestablishRsp *ueReestablishRsp)
215 {
216     return (*rlcUeReestablishRspOpts[pst->selector])(pst, ueReestablishRsp);
217 }
218
219 /**********************************************************************
220          End of file
221 **********************************************************************/