X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_stub.h;h=baff2d67529dafba6ac51be35d9189879436178c;hb=172422f2fd260c5dd92aca0e9ac387fb60fc2a71;hp=b2b98adccecc65f74ce0a2d960c1aa929d92b021;hpb=d349ae65e1495488772f87e5cfa1ae71d9eab075;p=o-du%2Fl2.git diff --git a/src/cu_stub/cu_stub.h b/src/cu_stub/cu_stub.h index b2b98adcc..baff2d675 100644 --- a/src/cu_stub/cu_stub.h +++ b/src/cu_stub/cu_stub.h @@ -19,71 +19,88 @@ #ifndef __CU_MGR_MAIN_H__ #define __CU_MGR_MAIN_H__ - -#include "stdio.h" -#include "stdlib.h" -#include "string.h" -#include "stdbool.h" -#include "ctype.h" -#include "envopt.h" /* Environment options */ -#include "envdep.h" /* Environment dependent */ -#include "envind.h" /* Environment independent */ - -#include "gen.h" /* General */ -#include "ssi.h" /* System services */ -#include "ss_queue.h" -#include "ss_task.h" -#include "ss_msg.h" -#include "cm_inet.h" - -#include "gen.x" /* General */ -#include "ssi.x" /* System services */ -#include "ss_queue.x" -#include "ss_task.x" -#include "ss_msg.x" -#include "cm_lib.x" -#include "cm_inet.x" - #define MAX_IPV6_LEN 16 -#define CU_DU_NAME_LEN_MAX 50 /* Max length of CU/DU name string */ +#define CU_DU_NAME_LEN_MAX 30 /* Max length of CU/DU name string */ #define CU_APP_MEM_REG 1 #define CU_POOL 1 +#define MAX_DU_PORT 2 +#define DU_PORT 38472 +#define MAX_NUM_OF_SLICE 1024 /* As per the spec 38.473, maxnoofSliceItems = 1024*/ + +/*VALID Tunnel ID*/ +#define MIN_TEID 1 /*[Spec 29.281,Sec 5.1]: All Zero TEIDs are never assigned for setting up GTP-U Tunnel*/ +#define MAX_TEID 10 /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */ +/* allocate and zero out a static buffer */ + +#define CU_ALLOC(_datPtr, _size) \ +{ \ + S16 _ret; \ + _ret = SGetSBuf(CU_APP_MEM_REG, CU_POOL, \ + (Data **)&_datPtr, _size); \ + if(_ret == ROK) \ + memset(_datPtr, 0, _size); \ + else \ + _datPtr = NULLP; \ +} + +/* free a static buffer */ +#define CU_FREE(_datPtr, _size) \ + if(_datPtr) \ + SPutSBuf(CU_APP_MEM_REG, CU_POOL, \ + (Data *)_datPtr, _size); typedef struct ipAddr { - Bool ipV4Pres; - U32 ipV4Addr; - Bool ipV6Pres; - U8 ipV6Addr[MAX_IPV6_LEN]; + Bool ipV4Pres; + uint32_t ipV4Addr; + Bool ipV6Pres; + uint8_t ipV6Addr[MAX_IPV6_LEN]; }SctpIpAddr; typedef struct RrcVersion { - U8 rrcVer; /* Latest RRC Version */ - U32 extRrcVer; /* Latest RRC version extended */ + uint8_t rrcVer; /* Latest RRC Version */ + uint32_t extRrcVer; /* Latest RRC version extended */ }RrcVersion; -typedef struct sctpParams +typedef struct egtpParams +{ + SctpIpAddr localIp; + uint16_t localPort; + SctpIpAddr destIp; + uint16_t destPort; + uint32_t currTunnelId; + uint32_t minTunnelId; + uint32_t maxTunnelId; +}EgtpParams; + +typedef struct CuSctpParams { SctpIpAddr duIpAddr; - U16 duPort; + uint16_t duPort; SctpIpAddr cuIpAddr; - U16 cuPort; -}SctpParams; + uint16_t cuPort; +}CuSctpParams; typedef struct cuCfgParams { - U32 cuId; + uint32_t cuId; char cuName[CU_DU_NAME_LEN_MAX]; - SctpParams sctpParams; + CuSctpParams sctpParams; + Plmn plmn; + EgtpParams egtpParams; RrcVersion rrcVersion; + uint8_t numSnssaiSupported; + Snssai *snssaiList[MAX_NUM_OF_SLICE]; }CuCfgParams; CuCfgParams cuCfgParams; //global variable to hold all configs void readCuCfg(); void cuAppInmsgHdlr(Buffer *mBuf); void sctpNtfyInd(CmInetSctpNotification *ntfy); +uint8_t egtpInitReq(); +void *cuConsoleHandler(void *); #endif