[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-414] Support at CU and RIC stub for SCTP...
[o-du/l2.git] / src / ric_stub / ric_stub_sctp.h
index 86fb14c..37da878 100644 (file)
 #ifndef __RIC_SCTP_H__
 #define __RIC_SCTP_H__
 
-#include "ric_stub.h"
-#include "cm_inet.h"
-#include "cm_tpt.h"
-
-#include "cm_inet.x"
-#include "cm_tpt.x"
-
 #define MAX_RETRY 5
-#define DU_SCTP_UP 1
-#define DU_SCTP_DOWN 0
+#define MAX_IPV6_LEN 16
+#define MAX_DU_SUPPORTED 1 
 
 /* Global variable declaration */
-U8   socket_type;      /* Socket type */
-Bool nonblocking;      /* Blocking/Non-blocking socket */
-Bool connUp;           /* Is connection up */
-int  assocId;          /* Assoc Id of connected assoc */
+uint8_t   socket_type;      /* Socket type */
   
-SctpParamsRic sctpCfg;            /* SCTP configurations at DU */
 typedef struct
 {
-   S16           numFds;
-   U16           port;   
-   U32           flag;
-   Buffer        *mBuf;
-   MsgLen        bufLen; 
-   CmInetNetAddr addr;
-   CmInetFdSet      readFd;
+   uint16_t           numFd;
+   uint16_t           port;   
+   uint32_t           flag;
+   Buffer            *mBuf;
+   MsgLen             bufLen; 
+   CmInetNetAddr      addr;
+   CmInetFdSet        readFd;
    CmInetSctpSndRcvInfo   info;
    CmInetSctpNotification ntfy;
 }sctpSockPollParams;
 
 typedef struct
 {
-   U8               itfState;
-   U16              destPort;         /* DU PORTS */
-   U16              srcPort;
-   Bool             bReadFdSet;
-   CmInetFd         sockFd;           /* Socket file descriptor */
-   CmInetAddr       peerAddr;
-   CmInetFd         lstnSockFd;       /* Listening Socket file descriptor */
-   CmInetNetAddrLst destAddrLst;      /* DU Ip address */
-   CmInetNetAddrLst localAddrLst;
-   CmInetNetAddr    destIpNetAddr;    /* DU Ip address */ 
-}CuSctpDestCb;
+   uint16_t              destPort;         /* DU PORTS */
+   uint16_t              srcPort;
+   bool                  bReadFdSet;
+   CmInetFd              sockFd;           /* Socket file descriptor */
+   CmInetAddr            peerAddr;
+   CmInetFd              lstnSockFd;       /* Listening Socket file descriptor */
+   CmInetNetAddrLst      destAddrLst;      /* DU Ip address */
+   CmInetNetAddrLst      localAddrLst;
+   CmInetNetAddr         destIpNetAddr;    /* DU Ip address */ 
+   Bool                  connUp;
+}RicSctpDestCb;
+
+typedef struct ipAddr
+{
+ bool ipV4Pres;
+ uint32_t  ipV4Addr;
+ bool ipV6Pres;
+ uint8_t   ipV6Addr[MAX_IPV6_LEN];
+}SctpIpAddr;
+
+typedef struct sctpAssocInfo
+{
+   SctpIpAddr  duIpAddr;
+   uint16_t    duPort;
+   SctpIpAddr  ricIpAddr;
+   uint16_t    ricPort;
+}SctpAssocInfo;
+
+typedef struct ricSctpParams
+{
+   uint8_t        numDu;
+   SctpAssocInfo  sctpAssoc[MAX_DU_SUPPORTED];
+}RicSctpParams;
+
+typedef struct sctpGlobalCb
+{
+   RicSctpParams sctpCfg;
+   uint8_t      numDu;
+   RicSctpDestCb destCb[MAX_DU_SUPPORTED]; 
+}SctpGlobalCb;
+
+SctpGlobalCb sctpCb;
 
-EXTERN S16 sctpActvInit();
-EXTERN S16 sctpSend(Buffer *mBuf);
-S16 sctpCfgReq();
-S16 sctpStartReq();
-S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr);
-S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr);
-S16 sctpSetSockOpts(CmInetFd *sock_Fd);
-S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd);
-S16 sctpSockPoll();
-S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, U32 *timeoutPtr, CmInetMemInfo *memInfo);
+uint8_t sctpActvInit();
+uint8_t sctpSend(Buffer *mBuf);
+uint8_t sctpCfgReq();
+uint8_t sctpStartReq();
+uint8_t sctpSetSockOpts(CmInetFd *sock_Fd);
+uint8_t sctpAccept(RicSctpDestCb *destCb);
+uint8_t sctpSockPoll();
+uint8_t processPolling(sctpSockPollParams *pollParams, RicSctpDestCb *destCb, uint32_t *timeoutPtr, CmInetMemInfo *memInfo);
+uint8_t fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr);
+uint8_t fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr);
 
 #endif