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 *******************************************************************************/
21 #define MAX_SLOT_VALUE 19
23 #define MAX_SLOT_VALUE 9
25 #define MAX_SFN_VALUE 1023
28 #define NUM_DRB_TO_PUMP_DATA 3
29 #define NUM_UL_PACKETS 1
30 /*UE Ids for RACH IND*/
35 bool slotIndicationStarted;
39 /*Mapping between LCG ID and BSR Idx*/
40 typedef struct lcgBufferSize
42 uint8_t lcgId; /*LCG ID for which BSR will be requested*/
43 /*BufferStatus Index. This is as per Spec 38.321, BSR will be reported as Index
44 * Refer table Table 6.1.3.1-1:Short_BSR and Table 6.1.3.1-2:Long_BSR*/
48 /* UE specific information */
55 bool msg5ShortBsrSent;
58 bool msgSecurityModeComp;
59 bool msgRrcReconfiguration;
60 bool msgRegistrationComp;
61 uint8_t rlcSnForSrb1; /* Sequence number of PDU at RLC for AM mode */
62 uint8_t pdcpSn; /* Sequence number of PDU at PDCP */
65 /* Database to store information for all UE */
69 UeCb ueCb[MAX_NUM_UE];
79 MSG_TYPE_SECURITY_MODE_COMPLETE,
80 MSG_TYPE_REGISTRATION_COMPLETE,
81 MSG_TYPE_RRC_RECONFIG_COMPLETE
84 void phyToMac ARGS((uint16_t msgType, uint32_t msgLen,void *msg));
86 void fillTlvs ARGS((fapi_uint16_tlv_t *tlv, uint16_t tag, uint16_t
87 length, uint16_t value, uint32_t *msgLen));
88 void fillMsgHeader ARGS((fapi_msg_t *hdr, uint16_t msgType, uint16_t msgLen));
90 void procPhyMessages(uint16_t msgType, uint32_t msgSize, void *msg);
91 void l1StartConsoleHandler();
92 void l1HdlSlotIndicaion(bool);
94 uint8_t l1SendUlUserData(uint8_t drbId, uint8_t ueIdx);
95 uint8_t l1SendStatusPdu();
96 uint16_t l1BuildAndSendSlotIndication();
97 uint16_t l1BuildAndSendStopInd();
99 /**********************************************************************
101 **********************************************************************/