#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