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 *******************************************************************************/
20 /* Changes the IP information
21 * At DU1, SOURCE_DU_IPV4_ADDR = 192.168.130.81 and DESTINATION_DU_IPV4_ADDR = 192.168.130.83
22 * At DU2, SOURCE_DU_IPV4_ADDR = 192.168.130.83 and DESTINATION_DU_IPV4_ADDR = 192.168.130.81 */
23 #define SOURCE_DU_IPV4_ADDR "192.168.130.81"
24 #define DESTINATION_DU_IPV4_ADDR "192.168.130.83"
25 #define PORT_NUMBER 8080
29 #define MAX_SLOT_VALUE 19
31 #define MAX_SLOT_VALUE 9
33 #define MAX_SFN_VALUE 1023
36 #define NUM_DRB_TO_PUMP_DATA 3
37 #define NUM_UL_PACKETS 1
38 /*UE Ids for RACH IND*/
43 bool slotIndicationStarted;
47 /*Mapping between LCG ID and BSR Idx*/
48 typedef struct lcgBufferSize
50 uint8_t lcgId; /*LCG ID for which BSR will be requested*/
51 /*BufferStatus Index. This is as per Spec 38.321, BSR will be reported as Index
52 * Refer table Table 6.1.3.1-1:Short_BSR and Table 6.1.3.1-2:Long_BSR*/
56 /* UE specific information */
63 bool msg5ShortBsrSent;
66 bool msgSecurityModeComp;
67 bool msgRrcReconfiguration;
68 bool msgRegistrationComp;
69 uint8_t rlcSnForSrb1; /* Sequence number of PDU at RLC for AM mode */
70 uint8_t pdcpSn; /* Sequence number of PDU at PDCP */
73 /* Database to store information for all UE */
77 UeCb ueCb[MAX_NUM_UE];
83 uint32_t destinationDu;
101 MSG_TYPE_SECURITY_MODE_COMPLETE,
102 MSG_TYPE_REGISTRATION_COMPLETE,
103 MSG_TYPE_RRC_RECONFIG_COMPLETE
106 void phyToMac ARGS((uint16_t msgType, uint32_t msgLen,void *msg));
108 void fillTlvs ARGS((fapi_uint16_tlv_t *tlv, uint16_t tag, uint16_t
109 length, uint16_t value, uint32_t *msgLen));
110 void fillMsgHeader ARGS((fapi_msg_t *hdr, uint16_t msgType, uint16_t msgLen));
112 void procPhyMessages(uint16_t msgType, uint32_t msgSize, void *msg);
113 void l1StartConsoleHandler();
114 void l1HdlSlotIndicaion(bool);
115 void GenerateTicks();
116 uint8_t l1SendUlUserData(uint8_t drbId, uint8_t ueIdx);
117 uint8_t l1SendStatusPdu();
118 uint16_t l1BuildAndSendSlotIndication();
119 uint16_t l1BuildAndSendStopInd();
120 int inet_pton(int af, const char *sourc, void *dst);
121 void *establishConnectionWithPeerL1(void *args);
122 /**********************************************************************
124 **********************************************************************/