UL data path changes at Phy stub, RLC UL UM and DU APP [Issue-ID: ODUHIGH-262]
[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 /*******************************************************************
53  *
54  * @brief Sends UL RRC Message Info to DU APP
55  *
56  * @details
57  *
58  *    Function : rlcSendUlRrcMsgToDu
59  *
60  *    Functionality:  Sends UL RRC Message Info to DU APP
61  *
62  * @params[in] Pst structure
63  *             UL RRC Msg Info
64  * @return ROK     - success
65  *         RFAILED - failure
66  *
67  * ****************************************************************/
68 uint8_t rlcSendUlRrcMsgToDu(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo)
69 {
70    return (*rlcSendUlRrcMsgToDuOpts[pst->selector])(pst, ulRrcMsgInfo);
71 }
72
73 /*******************************************************************
74 *
75 * @brief Sends RRC delivery Message Info to DU APP
76 *
77 * @details
78 *
79 *    Function : rlcSendRrcDeliveryReportToDu
80 *
81 *    Functionality:  Sends RRC delivery Message Info to DU APP
82 *
83 * @params[in] Pst structure
84 *             RRC delivery Msg Info
85 * @return ROK     - success
86 *         RFAILED - failure
87 *
88 * ****************************************************************/
89 uint8_t rlcSendRrcDeliveryReportToDu(Pst *pst, RrcDeliveryReport *rrcDelivery) 
90 {
91    return (*rlcSendRrcDeliveryReportToDuOpts[pst->selector])(pst, rrcDelivery);
92 }
93
94 /*******************************************************************
95  *
96  * @brief Sends DL RRC Message Status to DU APP
97  *
98  * @details
99  *
100  *    Function : rlcSendDlRrcMsgRspToDu
101  *
102  *    Functionality:  Sends DL RRC Message Status to DU APP
103  *
104  * @params[in] Pst structure
105  *             DL RRC Msg Info
106  * @return ROK     - success
107  *         RFAILED - failure
108  *
109  * ****************************************************************/
110 uint8_t rlcSendDlRrcMsgRspToDu(Pst *pst, RlcDlRrcMsgRsp *dlRrcMsg)
111 {
112    return (*rlcSendDlRrcMsgRspToDuOpts[pst->selector])(pst, dlRrcMsg);
113 }
114
115 /*******************************************************************
116  *
117  * @brief Sends UL User data Info to DU APP
118  *
119  * @details
120  *
121  *    Function : rlcSendUlUserDataToDu
122  *
123  *    Functionality:  Sends UL User Data Info to DU APP
124  *
125  * @params[in] Pst structure
126  *             UL user data Info
127  * @return ROK     - success
128  *         RFAILED - failure
129  *
130  * ****************************************************************/
131 uint8_t rlcSendUlUserDataToDu(Pst *pst, RlcUlUserDatInfo *ulUserData)
132 {
133    return (*rlcSendUlUserDataToDuOpts[pst->selector])(pst, ulUserData);
134 }
135
136 /**********************************************************************
137          End of file
138 **********************************************************************/