RLC UeCb Changes
[o-du/l2.git] / src / du_app / du_sctp.h
index efdffc3..7fa7055 100644 (file)
 #ifndef __DU_SCTP_H__
 #define __DU_SCTP_H__
 
-#include <netinet/in.h>
-#include <netinet/sctp.h>
-#include "du_mgr.h"
+#define DU_SCTP_DOWN 0
+#define DU_SCTP_UP 1
+#define DU_SCTP_CONNECTING 2
+#define MAX_RETRY 5
 
-S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason);
-S16 sctpActvTsk(Pst *pst, Buffer *mBuf);
+/* Global variable declaration */
+U8   socket_type;      /* Socket type */
+Bool nonblocking;      /* Blocking/Non-blocking socket */
+Bool connUp;           /* Is connection up */
+Bool pollingState; 
+CmInetNetAddrLst localAddrLst;
+CmInetNetAddrLst remoteAddrLst;
 
-#define REALLY_BIG 65536
+typedef struct
+{
+   S16           numFd;            /* Total count number of receivers socket Fd */
+   U16           port;              /* Filled by the InetSctpRecvMsg during polling */              
+   U32           flag;              /* Refers to the notifyHandler Flag during successful InetSctpRecvMsg*/
+   Buffer        *mBuf;             /* Buffer filled during Socket polling*/
+   MsgLen        bufLen;            /* Determines the length of the Buffer filled during socket polling */
+   CmInetNetAddr addr;              /* Determines the destination port filled during socket polling */
+   CmInetFdSet      readFd;         /* Refers to the Read Fd socket */
+   CmInetSctpSndRcvInfo   info;     /* Refers to Send Receivers Info*/
+   CmInetSctpNotification ntfy;     /* Refers to the sctp Notification Message */
+}sctpSockPollParams;
 
-/* Convenience structure to determine space needed for cmsg. */
-typedef union 
+typedef struct
 {
-   struct sctp_initmsg init;
-   struct sctp_sndrcvinfo sndrcvinfo;
-}_sctp_cmsg_data_t;
+   U8               itfState;         /* determines the interface State*/
+   U16              destPort;         /* Refers to the destination port of F1/E2 */
+   U16              srcPort;          /* Refers to respective src port of DU */
+   U32              assocId;          
+   Bool             recvMsgSet;
+   F1IpAddr         destIpAddr;       /* Refers to te destination Ip Address */
+   CmInetFd         sockFd;           /* Socket file descriptor */
+   CmInetNetAddrLst destAddrLst;      /* Refers to the destinaiton Addr Lst in CmInetNetAddrLst format */
+   CmInetNetAddr    destIpNetAddr;    /* Refers to the destination Addr in CmInetNet Addr format */
+}DuSctpDestCb;
 
-#define CMSG_SPACE_INITMSG (CMSG_SPACE(sizeof(struct sctp_initmsg)))
-#define CMSG_SPACE_SNDRCV (CMSG_SPACE(sizeof(struct sctp_sndrcvinfo)))
+/* Global variable declaration */
+DuSctpDestCb f1Params;     /* SCTP configurations at DU */ 
+DuSctpDestCb ricParams;    /* SCTP configurations at DU */ 
 
-typedef union 
-{
-   struct sockaddr_storage ss;
-   struct sockaddr_in v4;
-   struct sockaddr_in6 v6;
-   struct sockaddr sa;
-} sockaddr_storage_t;
+
+S16 sctpActvInit(Ent entity, Inst inst, Region region, Reason reason);
+S16 sctpActvTsk(Pst *pst, Buffer *mBuf);
+void sctpAssocReq();
+void sendToDuApp(Buffer *mBuf, Event event);
+S16 sctpSend(Buffer *mBuf, U8 itfType);
+S16 duSctpCfgReq(SctpParams sctpCfg);
+S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, F1IpAddr *ipAddr);
+S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, F1IpAddr *dstIpPtr);
+S16 establishReq(DuSctpDestCb *paramPtr);
+S16 duSctpAssocReq(U8 itfType);
+S16 duFillSctpPst(Pst *pst, Event event);
+S16 sctpSetSockOpts(CmInetFd *sock_Fd);
+S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, U32 *timeoutPtr, CmInetMemInfo *memInfo, Bool recvMsgSet);
+S16 sctpSockPoll();
 
 #endif