[Issue-ID : ODUHIGH-486] SCTP Port fix at F1 and E2 interface
[o-du/l2.git] / src / cu_stub / cu_stub_sctp.h
index 4cd30bf..548c29a 100644 (file)
 #ifndef __CU_SCTP_H__
 #define __CU_SCTP_H__
 
-#include "cu_stub.h"
-#include "cm_inet.h"
-#include "cm_tpt.h"
+#define MAX_RETRY 5
+#define MAX_IPV6_LEN 16
+#define MAX_DU_SUPPORTED 2
+#define MAX_ASSOC_SUPPORTED MAX_DU_SUPPORTED
 
-#include "cm_inet.x"
-#include "cm_tpt.x"
+/* Global variable declaration */
+uint8_t   socket_type;      /* Socket type */
 
-#define MAX_RETRY 5
+typedef struct
+{
+   S16              numFd;
+   uint16_t         port;   
+   uint32_t         flag;
+   Buffer           *mBuf;
+   MsgLen           bufLen; 
+   CmInetNetAddr    addr;
+   CmInetFdSet      readFd;
+   CmInetSctpSndRcvInfo   info;
+   CmInetSctpNotification ntfy;
+}sctpSockPollParams;
+
+typedef struct
+{
+   uint32_t         duId;
+   uint16_t         destPort;         /* DU PORTS */
+   Bool             bReadFdSet;
+   CmInetFd         sockFd;           /* Socket file descriptor */
+   CmInetAddr       peerAddr;
+   CmInetNetAddrLst destAddrLst;      /* DU Ip address */
+   CmInetNetAddr    destIpNetAddr;    /* DU Ip address */ 
+   Bool             connUp;           /* Is connection up */
+}CuSctpAssocCb;
+
+typedef struct ipAddr
+{
+ Bool      ipV4Pres;
+ uint32_t  ipV4Addr;
+ Bool      ipV6Pres;
+ uint8_t   ipV6Addr[MAX_IPV6_LEN];
+}SctpIpAddr;
+
+typedef struct sctpDestInfo
+{
+   SctpIpAddr  destIpAddr;
+   uint16_t    destPort;
+}SctpDestInfo;
+
+typedef struct cuSctpParams
+{
+   SctpIpAddr     localIpAddr;
+   uint16_t       f1SctpPort;
+   uint8_t        numDestNode;
+   SctpDestInfo   destCb[MAX_DU_SUPPORTED];
+}CuSctpParams;
+
+typedef struct
+{
+   CuSctpParams     sctpCfg;
+   CmInetNetAddrLst localAddrLst;
+   CmInetFd         f1LstnSockFd;       /* Listening Socket file descriptor for F1 association */
+   uint8_t          numAssoc;
+   CuSctpAssocCb    assocCb[MAX_ASSOC_SUPPORTED];
+}SctpGlobalCb;
+
+SctpGlobalCb sctpCb;
 
-EXTERN S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason);
-EXTERN S16 sctpActvTsk(Pst *pst, Buffer *mBuf);
-EXTERN void sctpStartReq();
-EXTERN S16 sctpOutMsgSend(Buffer *mBuf);
+uint8_t sctpActvInit();
+uint8_t sctpStartReq();
+uint8_t sctpSend(uint32_t duId, Buffer *mBuf);
+uint8_t sctpCfgReq();
 
+uint8_t fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr);
+uint8_t fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr);
+uint8_t sctpSetSockOpts(CmInetFd *sock_Fd);
+uint8_t sctpSockPoll();
+uint8_t sctpAccept(CuSctpAssocCb *assocCb);
+uint8_t processPolling(sctpSockPollParams *pollParams, CuSctpAssocCb *assocCb, uint32_t *timeoutPtr, CmInetMemInfo *memInfo);
 #endif
 
 /**********************************************************************