Slot indication from MAC to DU APP : LWLC fix and LC
[o-du/l2.git] / src / cm / lkw.h
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
19 /********************************************************************20**
20   
21         Name:    LKW RLC Layer Manager Interface
22     
23         Type:    C include file
24   
25         Desc:    This file Contains the Hash defines for LKW Interface
26  
27         File:    lkw.h
28   
29 *********************************************************************21*/
30
31 #ifndef __LKW_H__
32 #define __LKW_H__
33
34 #ifdef __cplusplus
35 EXTERN "C" {
36 #endif  /*for extern "C"*/
37
38 #define STUDXSAP           189
39 /* KWU Interface Hash Defines */
40 #define LKW_MAX_NUM_RB     24      /*!< Maximum number of RBs. */
41 #define LKW_RLC_MODE_DL     1
42 #define LKW_RLC_MODE_UL     2 
43
44 /* Event codes at the RLC management interface */
45 #define LKW_EVT_CFG_REQ    0x01    /*!< General configuration request. */
46 #define LKW_EVT_CFG_CFM    0x02    /*!< General configuration confirm. */
47 #define LKW_EVT_CNTRL_REQ  0x03    /*!< Control request. */
48 #define LKW_EVT_CNTRL_CFM  0x04    /*!< Control confirm. */
49 #define LKW_EVT_STA_IND    0x05    /*!< Unsolicited status indication. */
50 #define LKW_EVT_STA_REQ    0x06    /*!< Solicited status request. */
51 #define LKW_EVT_STA_CFM    0x07    /*!< Solicited status confirm. */
52 #define LKW_EVT_STS_REQ    0x08    /*!< Statistics request. */
53 #define LKW_EVT_STS_CFM    0x09    /*!< Statistics confirm. */
54 #define LKW_EVT_TRC_IND    0x0A    /*!< Trace indication. */
55 /* lkw_h_001.main_3 added support for L2 Measurement */   
56 #define LKW_EVT_L2MEAS_REQ 0x0B    /*!< L2 Measurement Request. */
57 #define LKW_EVT_L2MEAS_CFM 0x0C    /*!< L2 Measurement Request. */
58 #define LKW_EVT_L2MEAS_SEND_REQ 0x0D    /*!< L2 Measurement send request*/
59 #define LKW_EVT_L2MEAS_STOP_REQ 0x0E   /*!< L2 Measurement stop request.*/
60 #define LKW_EVT_L2MEAS_STOP_CFM 0x0F   /*!< L2 Measurement stop confirm*/
61
62 #define LKW_ZEROSTS        0       /*!< Reset the statistics counters. */
63 #define LKW_NOZEROSTS      1       /*!< No reset of statistics counters. */
64
65 /********************************************************************KW**
66  Specific event values
67 *********************************************************************KW*/
68 #define LKW_EVENT_RGU_BND_CFM        (LCM_EVENT_LYR_SPECIFIC + 1)
69 #define LKW_EVENT_KWU_BND_REQ        (LCM_EVENT_LYR_SPECIFIC + 2)
70 #define LKW_EVENT_CKW_BND_REQ        (LCM_EVENT_LYR_SPECIFIC + 3)
71
72 /********************************************************************KW**
73  Specific event values
74 *********************************************************************KW*/
75 #define LKW_EVENT_UDX_BND_CFM        (LCM_EVENT_LYR_SPECIFIC + 1)
76 #define LKW_EVENT_UDX_BND_REQ        (LCM_EVENT_LYR_SPECIFIC + 2)
77
78
79 /********************************************************************KW**
80  Specific cause values
81 *********************************************************************KW*/
82 #define LKW_CAUSE_UNKNOWN        (LCM_CAUSE_LYR_SPECIFIC + 1)
83 #define LKW_CAUSE_SAP_BNDENB     (LCM_CAUSE_LYR_SPECIFIC + 2)
84 #define LKW_CAUSE_SAP_BNDDIS     (LCM_CAUSE_LYR_SPECIFIC + 3)
85 /* lkw_h_001.main_3 corrected the macro. Added L2 Measurement support */
86 #define LKW_CAUSE_RSRC_UNAVAIL   (LCM_CAUSE_LYR_SPECIFIC + 4)
87 #ifdef LTE_L2_MEAS
88 #define LKW_CAUSE_RB_DELETION      (LCM_CAUSE_LYR_SPECIFIC + 5)
89 #define LKW_CAUSE_INVALID_MEASTYPE (LCM_CAUSE_LYR_SPECIFIC + 6)
90 #define LKW_CAUSE_EXCEED_NUMMEAS   (LCM_CAUSE_LYR_SPECIFIC + 7)
91 #define LKW_CAUSE_INVALID_NUMQCI   (LCM_CAUSE_LYR_SPECIFIC + 8)
92 #define LKW_CAUSE_ZERO_NUMSAM      (LCM_CAUSE_LYR_SPECIFIC + 9)
93 #define LKW_CAUSE_INVALID_NUMSAM   (LCM_CAUSE_LYR_SPECIFIC + 10)
94 #define LKW_CAUSE_INVALID_UE       (LCM_CAUSE_LYR_SPECIFIC + 11)
95 #define LKW_CAUSE_INVALID_QCI      (LCM_CAUSE_LYR_SPECIFIC + 12)
96 #define LKW_CAUSE_MEAS_ALREADY_ENA (LCM_CAUSE_LYR_SPECIFIC + 13)
97 #endif /* LTE_L2_MEAS */
98 #define LKW_CAUSE_RLSTXLST_FULL       (LCM_CAUSE_LYR_SPECIFIC + 14)
99 #define LKW_CAUSE_RLSRETXLST_FULL     (LCM_CAUSE_LYR_SPECIFIC + 15)
100 #define LKW_CAUSE_REASMBLDAMLST_FULL  (LCM_CAUSE_LYR_SPECIFIC + 16)
101 #define LKW_CAUSE_REASMBLDUMLST_FULL  (LCM_CAUSE_LYR_SPECIFIC + 17)
102 #ifdef LTE_L2_MEAS
103 #define LKW_CAUSE_EXCEED_NUMUES       (LCM_CAUSE_LYR_SPECIFIC + 18)
104 #endif /* LTE_L2_MEAS */
105 /************************************************************************
106  *                         Events
107  ***********************************************************************/
108 #define LKW_EVT_BND_REQ       0     /*!< Bind Request Event. */
109 #define LKW_EVT_BND_CFM       1     /*!< Bind Confirm Event. */
110 #define LKW_EVT_UBND_REQ      2     /*!< Unbind Request Event. */
111 #define LKW_EVT_WAIT_BNDCFM   3     /*!< Wait Bind Confirm Event. */
112 /* lkw_h_001.main_3 added support for L2 Measurement */   
113 #ifdef LTE_L2_MEAS
114 #define LKW_EVT_MEAS_HALT     4     /*!< Measurement is halted */
115 #endif /* LTE_L2_MEAS */
116 #define LKW_EVENT_STA_PDU     5     /*!< Status PDU from other node */
117 #define LKW_EVENT_AM_UL_PDU   6     /*!< UL PDU from MAC in AM */
118 #define LKW_EVENT_UM_UL_PDU   7     /*!< Ul PDU from MAC in UM */
119 /*************************************************************************
120  *                            KWU SAPs
121  ************************************************************************/
122 #define LKW_RRC_SAP   0x00         /*!< RLU SAP ID for RRC */
123 #define LKW_PDCP_SAP  0x01         /*!< RLU SAP ID for PDCP */
124
125 /********************************************************************KW**
126  Usta defines
127 *********************************************************************KW*/
128 #define LKW_USTA_DGNVAL_NONE     1
129 #define LKW_USTA_DGNVAL_MEM      2
130 #define LKW_USTA_DGNVAL_SAPID    3
131 #define LKW_USTA_DGNVAL_UEID     4
132 #define LKW_USTA_MAX_DGNVAL      256
133
134 /* lkw_h_001.main_3 added support for L2 Measurement */   
135 /********************************************************************KW**
136  L2 MEASUREMENT VALUES 
137 *********************************************************************KW*/
138 #define LKW_L2MEAS_NONE       0x0000
139 #define LKW_L2MEAS_ACT_UE     0x0001
140 #define LKW_L2MEAS_DL_DELAY   0x0002
141 #define LKW_L2MEAS_DL_DISC    0x0004
142 #define LKW_L2MEAS_UU_LOSS    0x0008
143 #define LKW_L2MEAS_DL_IP      0x0010
144 #define LKW_L2MEAS_UL_IP      0x0020
145
146 #define LKW_MAX_L2MEAS        10
147 #define LKW_MAX_QCI           10
148 #define LKW_MAX_UE            TENB_MAX_UE_SUPPORTED
149
150 /********************************************************************KW**
151  Specific event values
152 *********************************************************************KW*/
153 #define LKW_EVENT_LI_BND_CFM        (LCM_EVENT_LYR_SPECIFIC + 1)
154
155 #define LKW_PART_NUM_STR_LEN        10        /*!< Part Number String Length. */
156
157 /* lkw_h_001.main_2 */
158 #define LKW_FULL_TRACE              -1        /*!< Trace macro to get full trace */
159
160 /* Added Log Error for LKW Interface */
161 #define LKWLOGERROR(_pst, _errCls, _errCode, _errVal, _errDesc) \
162         SLogError(_pst->srcEnt, _pst->srcInst, _pst->srcProcId, \
163                    __FILE__, __LINE__, _errCls, _errCode, _errVal, _errDesc)
164
165 /* Error Codes */
166 #define   ERRLKW         0
167 #define   ELKWXXX        0
168
169 #define   ELKW001      (ERRLKW +    1)    /*        lkw.c: 203 */
170 #define   ELKW002      (ERRLKW +    2)    /*        lkw.c: 218 */
171 #define   ELKW003      (ERRLKW +    3)    /*        lkw.c: 272 */
172 #define   ELKW004      (ERRLKW +    4)    /*        lkw.c: 322 */
173 #define   ELKW005      (ERRLKW +    5)    /*        lkw.c: 337 */
174 #define   ELKW006      (ERRLKW +    6)    /*        lkw.c: 390 */
175 #define   ELKW007      (ERRLKW +    7)    /*        lkw.c: 436 */
176 #define   ELKW008      (ERRLKW +    8)    /*        lkw.c: 451 */
177 #define   ELKW009      (ERRLKW +    9)    /*        lkw.c: 505 */
178 #define   ELKW010      (ERRLKW +   10)    /*        lkw.c: 556 */
179 #define   ELKW011      (ERRLKW +   11)    /*        lkw.c: 604 */
180 #define   ELKW012      (ERRLKW +   12)    /*        lkw.c: 619 */
181 #define   ELKW013      (ERRLKW +   13)    /*        lkw.c: 672 */
182 #define   ELKW014      (ERRLKW +   14)    /*        lkw.c: 720 */
183 #define   ELKW015      (ERRLKW +   15)    /*        lkw.c: 735 */
184 #define   ELKW016      (ERRLKW +   16)    /*        lkw.c: 789 */
185 #define   ELKW017      (ERRLKW +   17)    /*        lkw.c: 835 */
186 #define   ELKW018      (ERRLKW +   18)    /*        lkw.c: 850 */
187 #define   ELKW019      (ERRLKW +   19)    /*        lkw.c: 902 */
188 #define   ELKW020      (ERRLKW +   20)    /*        lkw.c: 956 */
189 #define   ELKW021      (ERRLKW +   21)    /*        lkw.c:1008 */
190 #define   ELKW022      (ERRLKW +   22)    /*        lkw.c:1061 */
191 #define   ELKW023      (ERRLKW +   23)    /*        lkw.c:1294 */
192 #define   ELKW024      (ERRLKW +   24)    /*        lkw.c:1309 */
193 #define   ELKW025      (ERRLKW +   25)    /*        lkw.c:1358 */
194 #define   ELKW026      (ERRLKW +   26)    /*        lkw.c:1375 */
195 #define   ELKW027      (ERRLKW +   27)    /*        lkw.c:1393 */
196 #define   ELKW028      (ERRLKW +   28)    /*        lkw.c:1445 */
197 #define   ELKW029      (ERRLKW +   29)    /*        lkw.c:1460 */
198 #define   ELKW030      (ERRLKW +   30)    /*        lkw.c:1511 */
199 #define   ELKW031      (ERRLKW +   31)    /*        lkw.c:1526 */
200
201
202 #ifdef __cplusplus
203 }
204 #endif /* __cplusplus */
205 #endif /* __LKW_H__ */
206
207 \f  
208 /********************************************************************30**
209          End of file
210 **********************************************************************/