+typedef enum
+{
+ F1_INTERFACE,
+ XN_INTERFACE
+}InterfaceType;
+
+typedef enum
+{
+ SERVER,
+ CLIENT
+}NodeType;
+
+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
+{
+ InterfaceType intf; /* F1 or Xn Interface */
+ uint32_t destId; /* For F1 interface, this is DU ID. For Xn, this is remote CU ID */
+ uint16_t destPort; /* DU PORTS */
+ Bool bReadFdSet;
+ CmInetFd sockFd; /* Socket file descriptor */
+ CmInetAddr peerAddr;
+ CmInetNetAddrLst destAddrLst; /* Remote IP address list */
+ CmInetNetAddr destIpNetAddr; /* Remote IP network 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 sctpCfgPerIntf
+{
+ uint16_t port;
+ NodeType localNodeType; /* Local node acts as Server or client while establishing SCTP assoc */
+ uint8_t numDestNode;
+ SctpDestInfo destCb[MAX_ASSOC_SUPPORTED];
+}SctpCfgPerIntf;
+
+typedef struct cuSctpParams
+{
+ SctpIpAddr localIpAddr;
+ SctpCfgPerIntf f1SctpInfo;
+ SctpCfgPerIntf xnSctpInfo;
+}CuSctpParams;
+
+typedef struct
+{
+ CuSctpParams sctpCfg;
+ CmInetNetAddrLst localAddrLst;
+ CmInetFd f1LstnSockFd; /* Listening Socket file descriptor for F1 association */
+ CmInetFd xnLstnSockFd; /* Listening Socket file descriptor for Xn association */
+ NodeType localXnNodeType; /* Local node acts as Server or client while establishing SCTP assoc at Xn interface */
+ uint8_t numAssoc;
+ CuSctpAssocCb assocCb[MAX_ASSOC_SUPPORTED];
+}SctpGlobalCb;
+
+SctpGlobalCb sctpCb;