[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-443] Contention Free RA by UE in handover
[o-du/l2.git] / src / phy_stub / phy_stub.h
index f40c568..48097cf 100644 (file)
 *******************************************************************************/
 #include <unistd.h>
 
+/* Changes the IP information 
+* At DU1, SOURCE_DU_IPV4_ADDR = 192.168.130.81 and DESTINATION_DU_IPV4_ADDR = 192.168.130.83 
+* At DU2, SOURCE_DU_IPV4_ADDR = 192.168.130.83 and DESTINATION_DU_IPV4_ADDR = 192.168.130.81 */
+#define SOURCE_DU_IPV4_ADDR      "192.168.130.81"
+#define DESTINATION_DU_IPV4_ADDR "192.168.130.83"
+#define PORT_NUMBER 8080
+#define NUM_THREADS 1
+
 #ifdef NR_TDD
 #define MAX_SLOT_VALUE   19
 #else
 #define SLOT_DELAY       3
 #define NUM_DRB_TO_PUMP_DATA  3
 #define NUM_UL_PACKETS   1
+
 /*UE Ids for RACH IND*/
 #define UE_IDX_0     0
 #define UE_IDX_1     1
 #define UE_IDX_2     2
 
+/* Default RA Preamble index to be used when Rach Indication is triggered from
+ * PHY stub */
+#define CB_RA_PREAMBLE_IDX 3  /* For contention based RA */
+#define CF_RA_PREAMBLE_IDX 8  /* For contention free RA */
+
 bool     slotIndicationStarted;
 uint16_t sfnValue;
 uint16_t slotValue;
@@ -51,13 +65,14 @@ typedef struct ueCb
    uint8_t  ueId;
    uint16_t crnti;
    bool     rachIndSent;
+   bool     isCFRA;
    bool     msg3Sent;
    bool     msg5ShortBsrSent;
    bool     msg5Sent;
    bool     dlDedMsg;
    bool     msgSecurityModeComp;
-   bool           msgRrcReconfiguration;
-   bool           msgRegistrationComp;
+   bool     msgRrcReconfigComp;
+   bool     msgRegistrationComp;
    uint8_t  rlcSnForSrb1;           /* Sequence number of PDU at RLC for AM mode */
    uint8_t  pdcpSn;                 /* Sequence number of PDU at PDCP */
 }UeCb;
@@ -69,7 +84,21 @@ typedef struct ueDb
    UeCb      ueCb[MAX_NUM_UE];
 }UeDb;
 
-UeDb ueDb;
+typedef struct ipCfg
+{
+   uint32_t sourceDu;
+   uint32_t destinationDu;
+   uint16_t portNumber;
+}IpCfg;
+
+typedef struct phyDb
+{
+   bool   isServer;
+   IpCfg  ipCfgInfo;  
+   UeDb    ueDb;
+}PhyDb;
+
+PhyDb phyDb;
 
 typedef enum
 {
@@ -95,6 +124,9 @@ uint8_t l1SendUlUserData(uint8_t drbId, uint8_t ueIdx);
 uint8_t l1SendStatusPdu();
 uint16_t l1BuildAndSendSlotIndication();
 uint16_t l1BuildAndSendStopInd();
+int inet_pton(int af, const char *sourc, void *dst);
+void *establishConnectionWithPeerL1(void *args);
+uint16_t l1BuildAndSendRachInd(uint16_t slot, uint16_t sfn, uint8_t raPreambleIdx);
 
 /**********************************************************************
          End of file