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 /**********************************************************************
25 Desc: Structures, variables and typedefs required by the LTE MAC-RRC
26 Control (CRG) interface.
30 **********************************************************************/
37 @brief Structure declarations and definitions for CRG interface.
44 /* Enumertaions for CRG */
46 /* Data Structures for CRG */
49 @brief Transaction ID between MAC and RRC. */
50 typedef struct crgCfgTransId
52 U8 trans[CRG_CFG_TRANSID_SIZE]; /*!< RRC transaction ID */
56 @brief Bandwidth configuration per cell. */
57 typedef struct crgBwCfg
59 U8 dlTotalBw; /*!< Total Dowlink Bandwidth */
60 U8 ulTotalBw; /*!< Total Uplink Bandwidth */
64 @brief RACH configuration per cell. */
65 typedef struct crgRachCfg
67 U8 maxMsg3Tx; /*!< Maximum number of message 3 transmissions */
71 /** @brief UE secondary cell config params to MAC*/
72 typedef struct crgUeSCellInfo
74 U16 sCellId; /*!< This will be secondary cellId */
75 Inst macInst; /*!< MAC instance for SCell */
76 SuId rguUlSapId; /*!< MAC-RLC UL Sap ID */
77 SuId rguDlSapId; /*!< MAC-RLC DL SAP ID */
81 /** @brief Configuration information of Secondary cells for a UE*/
82 typedef struct crgUeSecCellInfo
84 Bool isSCellCfgPres; /*!< Bool indicates whether configuration
86 U8 numSCells; /*!< Number of SCells
88 CrgUeSCellInfo ueSCellCfg[CRG_MAX_SCELL_PER_UE]; /*!< Secondary cell
89 configuration per UE */
95 @brief Cell configuration. */
96 typedef struct crgCellCfg
98 CmLteCellId cellId; /*!< Cell ID */
99 CrgRachCfg rachCfg; /*!< RACH Configuration */
100 CrgBwCfg bwCfg; /*!< Bandwidth Configuration */
101 #ifdef TENB_MULT_CELL_SUPPRT
102 SpId rguUlSapId; /*!< RLC UL SAP Id for common channels */
103 SpId rguDlSapId; /*!< RLC DL SAP Id for common channels */
111 @brief Uplink HARQ configuration per UE. */
112 typedef struct crgUeUlHqCfg
114 U8 maxUlHqTx; /*!< Maximum number of UL HARQ transmissions */
117 /* crg_x_001.main_3 - Changes for MIMO feature addition */
118 /* crg_x_001.main_4 - Changes for MIMO feature addition */
120 * @enum UE Transmission Modes */
121 typedef enum crgTxMode
123 CRG_UE_TM_1 = 1, /** Transmission Mode 1 */
124 CRG_UE_TM_2, /** Transmission Mode 2 */
125 CRG_UE_TM_3, /** Transmission Mode 3 */
126 CRG_UE_TM_4, /** Transmission Mode 4 */
127 CRG_UE_TM_5, /** Transmission Mode 5 */
128 CRG_UE_TM_6, /** Transmission Mode 6 */
129 CRG_UE_TM_7 /** Transmission Mode 7 */
133 @brief UE Transmission mode configuration */
134 typedef struct crgTxModeCfg
136 Bool pres; /*!< TRUE if Transmission mode is being CFG/RECFG ed */
137 CrgTxMode tm; /*!< Transmission mode */
140 @brief UE configuration. */
141 typedef struct crgUeCfg
143 CmLteCellId cellId; /*!< Cell ID */
144 CmLteRnti crnti; /*!< UE ID: CRNTI */
145 CrgUeUlHqCfg ueUlHqCfg; /*!< UE related UL HARQ configuration */
146 CrgTxModeCfg txMode; /*!< UE Transmission mode Cfg */
147 #ifdef TENB_MULT_CELL_SUPPRT
148 SpId rguUlSapId; /*!< RLC UL SAP Id for common channels */
149 SpId rguDlSapId; /*!< RLC DL SAP Id for common channels */
154 @brief Logical channel configuration information for downlink logical channels. */
155 typedef struct crgDlLchCfg
157 U8 dlTrchType; /*!< Indicates type of DL transport channel:
158 Validated only for BCCH at MAC. DL Transport
159 channel type can take following values:<br>
162 CM_LTE_TRCH_DL_SCH */
166 @brief Logical channel configuration information for uplink logical channels. */
167 typedef struct crgUlLchCfg
169 U8 ulTrchType; /*!< Indicates type of UL transport channel:
170 Validated only for BCCH at MAC.
171 UL Transport channel type can take following values:<br>
173 CM_LTE_TRCH_UL_SCH */
174 U8 lcgId; /*!< Logical channel group ID */
177 /* crg_x_001.main_2: Documentation update */
179 @brief Logical channel configuration information for common and dedicated channels. */
180 typedef struct crgLchCfg
182 CmLteCellId cellId; /*!< Cell ID */
183 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
184 CmLteLcId lcId; /*!< Logical channel ID */
185 CmLteLcType lcType; /*!< Identifies the Logical channel type. lcType can take the following values:<br>
192 U8 dir; /*!< Indicates Direction. Direction can take following
198 CrgDlLchCfg dlInfo; /*!< Downlink logical channel configuration info */
199 CrgUlLchCfg ulInfo; /*!< Uplink logical channel configuration info */
200 /* crg_x_001.main_5 - ADD - Members corresponding to LTE_L2_MEAS */
202 U8 qci; /*!< QCI for the logical channel.
203 Valid Range:[0-255] (Actual QCI - 1). */
205 #endif /* LTE_L2_MEAS */
209 @brief Basic configuration information for MAC. */
210 typedef struct crgCfg
212 U8 cfgType; /*!< Indicates configuration type */
215 CrgCellCfg cellCfg; /*!< Cell configuration */
216 CrgUeCfg ueCfg; /*!< UE configuration */
217 CrgLchCfg lchCfg; /*!< Logical channel configuration */
218 } u; /*!< Union of Cell/UE/Lch configuration */
223 @brief Activation time information. */
224 typedef struct crgActvTime
226 Bool pres; /*!< Indicates the presence of activation time */
227 CmLteTimingInfo actvTime; /*!< Activation time information */
232 @brief Cell reconfiguration information. */
233 typedef struct crgCellRecfg
235 CmLteCellId cellId; /*!< Cell ID */
236 CrgRachCfg rachRecfg; /*!< RACH Configuration */
240 @brief UE reconfiguration information. */
241 typedef struct crgUeRecfg
243 CmLteCellId cellId; /*!< Cell ID */
244 CmLteRnti oldCrnti; /*!< Old UE ID */
245 CmLteRnti newCrnti; /*!< New UE ID: This value must match
246 'oldCrnti',if no CRNTI change during
248 CrgUeUlHqCfg ueUlHqRecfg; /*!< UE UL HARQ information */
249 CrgTxModeCfg txMode; /*!< UE Transmission mode ReCfg */
251 CrgUeSecCellInfo crgSCellCfg; /*!< Secondary cell dedicated informaton
257 @brief Logical channel reconfiguration information for dedicated channels only. */
258 typedef struct crgLchRecfg
260 CmLteCellId cellId; /*!< Cell ID */
261 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
262 CmLteLcId lcId; /*!< Logical channel ID */
266 U8 lcgId; /*!< Logical channel group ID */
267 } ulRecfg; /*!< Uplink logical channel reconfiguration information */
272 @brief Basic reconfiguration information for MAC. */
273 typedef struct crgRecfg
275 U8 recfgType; /*!< Indicates reconfiguration type */
278 CrgCellRecfg cellRecfg; /*!< Cell Reconfig information */
279 CrgUeRecfg ueRecfg; /*!< UE Reconfig information */
280 CrgLchRecfg lchRecfg; /*!< Logical channel reconfiguration information */
281 } u; /*!< Union of Cell/UE/Lch reconfiguration information
286 @brief Basic Delete information for MAC. */
287 typedef struct crgDel
289 U8 delType; /*!< Indicates configuration item to be deleted */
294 CmLteCellId cellId; /*!< Cell ID */
295 } cellDel; /*!< Cell Delete information */
299 CmLteCellId cellId; /*!< Cell ID */
300 CmLteRnti crnti; /*!< UE ID: CRNTI */
301 } ueDel; /*!< UE Delete information */
305 CmLteCellId cellId; /*!< Cell ID */
306 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
307 CmLteLcId lcId; /*!< Logical channel ID */
308 U8 dir; /*!< Indicates Direction. Direction can take following
313 } lchDel; /*!< Logical channel delete information */
314 } u; /*!< Union of Cell/UE/Lch delete information */
318 @brief UE RESET information for MAC. */
319 typedef struct crgRst
321 CmLteCellId cellId; /*!< Cell ID */
322 CmLteRnti crnti; /*!< UE ID: CRNTI tobe RESET */
325 @brief Config/Reconfig/Delete information for MAC. */
326 typedef struct crgCfgReqInfo
328 U8 action; /*!< Determines cfg/recfg/del/reset */
331 CrgCfg cfgInfo; /*!< Configuration related infomation */
332 CrgRecfg recfgInfo; /*!< Reconfiguration related information */
333 CrgDel delInfo; /*!< Deletion related information */
334 CrgRst rstInfo; /*!< Reset related information */
335 } u; /*!< Union of config/re-config/delete information */
341 /** @brief Request from RRC to MAC to bind the interface SAPs. */
342 typedef S16 (*CrgBndReq) ARGS((
346 /** @brief Confirmation from MAC to RRC for the bind/unbind
347 * request for the interface SAPs. */
348 typedef S16 (*CrgBndCfm) ARGS((
352 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
353 typedef S16 (*CrgUbndReq) ARGS((
357 /** @brief Configuration Request from RRC to MAC for
358 * configuring Cell/Ue/Lch. */
359 typedef S16 (*CrgCfgReq) ARGS((
362 CrgCfgTransId transId,
363 CrgCfgReqInfo * cfgReqInfo));
364 /** @brief Configuration Confirm from MAC to RRC. */
365 typedef S16 (*CrgCfgCfm) ARGS((
368 CrgCfgTransId transId,
371 /** @brief Request from RRC to MAC to bind the interface SAPs. */
372 EXTERN S16 RgUiCrgBndReq ARGS((
377 /** @brief Confirmation from MAC to RRC for the bind/unbind
378 * request for the interface SAPs. */
379 EXTERN S16 RgUiCrgBndCfm ARGS((
384 /** @brief Request from RRC to MAC to Unbind the interface SAPs. */
385 EXTERN S16 RgUiCrgUbndReq ARGS((
390 /** @brief Configuration Request from RRC to MAC for
391 * configuring Cell/Ue/Lch. */
392 EXTERN S16 RgUiCrgCfgReq ARGS((
395 CrgCfgTransId transId,
396 CrgCfgReqInfo * cfgReqInfo
398 /** @brief Configuration Confirm from MAC to RRC. */
399 EXTERN S16 RgUiCrgCfgCfm ARGS((
402 CrgCfgTransId transId,
407 /** @brief Request from RRC to MAC to bind the interface SAPs. */
408 EXTERN S16 NhLiCrgBndReq ARGS((
413 /** @brief Confirmation from MAC to RRC for the bind/unbind
414 * request for the interface SAPs. */
415 EXTERN S16 NhLiCrgBndCfm ARGS((
420 /** @brief Request from RRC to MAC to Unbind the interface SAPs. */
421 EXTERN S16 NhLiCrgUbndReq ARGS((
426 /** @brief Configuration Request from RRC to MAC for
427 * configuring Cell/Ue/Lch. */
428 EXTERN S16 NhLiCrgCfgReq ARGS((
431 CrgCfgTransId transId,
432 CrgCfgReqInfo * cfgReqInfo
434 /** @brief Configuration Confirm from MAC to RRC. */
435 EXTERN S16 NhLiCrgCfgCfm ARGS((
438 CrgCfgTransId transId,
444 /** @brief Request from RRC to MAC to bind the interface SAPs. */
445 EXTERN S16 cmPkCrgBndReq ARGS((
450 /** @brief Request from RRC to MAC to bind the interface SAPs. */
451 EXTERN S16 cmUnpkCrgBndReq ARGS((
456 /** @brief Confirmation from MAC to RRC for the bind/unbind
457 * request for the interface SAPs. */
458 EXTERN S16 cmPkCrgBndCfm ARGS((
463 /** @brief Confirmation from MAC to RRC for the bind/unbind
464 * request for the interface SAPs. */
465 EXTERN S16 cmUnpkCrgBndCfm ARGS((
470 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
471 EXTERN S16 cmPkCrgUbndReq ARGS((
476 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
477 EXTERN S16 cmUnpkCrgUbndReq ARGS((
482 /** @brief Configuration Request from RRC to MAC for
483 * configuring Cell/Ue/Lch. */
484 EXTERN S16 cmPkCrgCfgReq ARGS((
487 CrgCfgTransId transId,
488 CrgCfgReqInfo * cfgReqInfo
490 /** @brief Configuration Request from RRC to MAC for
491 * configuring Cell/Ue/Lch. */
492 EXTERN S16 cmUnpkCrgCfgReq ARGS((
497 /** @brief Configuration Confirm from MAC to RRC. */
498 EXTERN S16 cmPkCrgCfgCfm ARGS((
501 CrgCfgTransId transId,
504 /** @brief Configuration Confirm from MAC to RRC. */
505 EXTERN S16 cmUnpkCrgCfgCfm ARGS((
510 EXTERN S16 cmPkCrgCfgTransId ARGS((
511 CrgCfgTransId *param,
514 EXTERN S16 cmUnpkCrgCfgTransId ARGS((
515 CrgCfgTransId *param,
518 EXTERN S16 cmPkCrgBwCfg ARGS((
522 EXTERN S16 cmUnpkCrgBwCfg ARGS((
526 EXTERN S16 cmPkCrgRachCfg ARGS((
530 EXTERN S16 cmUnpkCrgRachCfg ARGS((
534 EXTERN S16 cmPkCrgCellCfg ARGS((
538 EXTERN S16 cmUnpkCrgCellCfg ARGS((
542 EXTERN S16 cmPkCrgUeUlHqCfg ARGS((
546 EXTERN S16 cmUnpkCrgUeUlHqCfg ARGS((
550 EXTERN S16 cmPkCrgUeCfg ARGS((
554 EXTERN S16 cmUnpkCrgUeCfg ARGS((
560 EXTERN S16 cmPkCrgUeSecCellInfo ARGS((
561 CrgUeSecCellInfo *param,
565 EXTERN S16 cmUnpkCrgUeSecCellInfo ARGS((
566 CrgUeSecCellInfo *param,
571 EXTERN S16 cmPkCrgDlLchCfg ARGS((
575 EXTERN S16 cmUnpkCrgDlLchCfg ARGS((
579 EXTERN S16 cmPkCrgUlLchCfg ARGS((
583 EXTERN S16 cmUnpkCrgUlLchCfg ARGS((
587 EXTERN S16 cmPkCrgLchCfg ARGS((
591 EXTERN S16 cmUnpkCrgLchCfg ARGS((
595 EXTERN S16 cmPkCrgCfg ARGS((
599 EXTERN S16 cmUnpkCrgCfg ARGS((
603 EXTERN S16 cmPkCrgActvTime ARGS((
607 EXTERN S16 cmUnpkCrgActvTime ARGS((
611 EXTERN S16 cmPkCrgCellRecfg ARGS((
615 EXTERN S16 cmUnpkCrgCellRecfg ARGS((
619 EXTERN S16 cmPkCrgUeRecfg ARGS((
623 EXTERN S16 cmUnpkCrgUeRecfg ARGS((
627 EXTERN S16 cmPkCrgLchRecfg ARGS((
631 EXTERN S16 cmUnpkCrgLchRecfg ARGS((
635 EXTERN S16 cmPkCrgRecfg ARGS((
639 EXTERN S16 cmUnpkCrgRecfg ARGS((
643 EXTERN S16 cmPkCrgDel ARGS((
647 EXTERN S16 cmUnpkCrgDel ARGS((
651 EXTERN S16 cmPkCrgRst ARGS((
655 EXTERN S16 cmUnpkCrgRst ARGS((
659 EXTERN S16 cmPkCrgCfgReqInfo ARGS((
660 CrgCfgReqInfo *param,
663 EXTERN S16 cmUnpkCrgCfgReqInfo ARGS((
664 CrgCfgReqInfo *param,
670 /** @brief Request from RRC to MAC to bind the interface SAPs. */
671 EXTERN S16 DmUiCrgBndReq ARGS((
676 /** @brief Confirmation from MAC to RRC for the bind/unbind
677 * request for the interface SAPs. */
678 EXTERN S16 DmUiCrgBndCfm ARGS((
683 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
684 EXTERN S16 DmUiCrgUbndReq ARGS((
689 /** @brief Configuration Request from RRC to MAC for
690 * configuring Cell/Ue/Lch. */
691 EXTERN S16 DmUiCrgCfgReq ARGS((
694 CrgCfgTransId transId,
695 CrgCfgReqInfo * cfgReqInfo
697 /** @brief Configuration Confirm from MAC to RRC. */
698 EXTERN S16 DmUiCrgCfgCfm ARGS((
701 CrgCfgTransId transId,
709 #endif /* __CRG_X__ */
711 /**********************************************************************
714 **********************************************************************/