X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=fhi_lib%2Flib%2Fapi%2Fxran_cp_api.h;h=6a461f3c46caa62bdefee5b587e3f2715282b8ef;hp=c45b5b60cf7d91940bb5947478cc40cad565ace4;hb=HEAD;hpb=76b4495d593ccf45d712db1a3ec96fa9d2d8f5f5 diff --git a/fhi_lib/lib/api/xran_cp_api.h b/fhi_lib/lib/api/xran_cp_api.h index c45b5b6..6a461f3 100644 --- a/fhi_lib/lib/api/xran_cp_api.h +++ b/fhi_lib/lib/api/xran_cp_api.h @@ -36,9 +36,9 @@ extern "C" { #include "xran_pkt_cp.h" #include "xran_transport.h" -#define XRAN_MAX_SECTIONDB_CTX 2 +#define XRAN_MAX_SECTIONDB_CTX 4 -#define XRAN_MAX_NUM_EXTENSIONS XRAN_MAX_PRBS /* Maximum number of extensions in a section [up to 1 ext section per RB]*/ +#define XRAN_MAX_NUM_EXTENSIONS 10//XRAN_MAX_PRBS /* Maximum number of extensions in a section [up to 1 ext section per RB]*/ #define XRAN_MAX_NUM_UE 16 /* Maximum number of UEs/Lyaers */ #define XRAN_MAX_NUM_ANT_BF 64 /* Maximum number of beamforming antenna, * could be defined as XRAN_MAX_ANTENNA_NR */ @@ -221,27 +221,31 @@ enum xran_cp_rbgsize { /** * This structure contains the information to generate the section body of C-Plane message */ struct xran_section_info { - uint8_t type; /* type of this section */ + /** for U-plane */ + struct xran_section_desc sec_desc[XRAN_NUM_OF_SYMBOL_PER_SLOT]; + int32_t freqOffset; /* X 24bits */ + uint32_t startPrbc:9; /* X X X X X 9bits */ + uint32_t numPrbc:9; /* X X X X X 8bits */ /* will be converted to zero if >255 */ + uint32_t type:4; /* type of this section */ /* section type bit- */ /* 0 1 3 5 6 7 length */ - uint8_t startSymId; /* X X X X X X 4bits */ - uint8_t numSymbol; /* X X X X 4bits */ - uint8_t symInc; /* X X X X X 1bit */ - uint16_t id; /* X X X X X 12bits */ - uint16_t reMask; /* X X X X 12bits */ - uint16_t startPrbc; /* X X X X X 10bits */ - uint16_t numPrbc; /* X X X X X 8bits */ /* will be converted to zero if >255 */ - uint8_t rb; /* X X X X X 1bit */ - uint8_t compMeth; /* X X X 4bits */ - uint8_t iqWidth; /* X X X 4bits */ - uint8_t ef; /* X X X X 1bit */ - int32_t freqOffset; /* X 24bits */ + uint32_t startSymId:4; /* X X X X X X 4bits */ + uint32_t numSymbol:4; /* X X X X 4bits */ + uint32_t res:2; uint16_t beamId; /* X X 15bits */ uint16_t ueId; /* X X 15bits */ uint16_t regFactor; /* X 16bits */ - uint16_t pad0; - /** for U-plane */ - struct xran_section_desc sec_desc[XRAN_NUM_OF_SYMBOL_PER_SLOT]; + uint16_t id; /* X X X X X 12bits */ + uint16_t reMask; /* X X X X 12bits */ + + uint8_t symInc:1; /* X X X X X 1bit */ + uint8_t rb:1; /* X X X X X 1bit */ + uint8_t ef:1; /* X X X X 1bit */ + uint8_t prbElemBegin:1; /* Flag to indicate beginning of a PRB element */ + uint8_t prbElemEnd:1; /* Flag to indicate end of a PRB element */ + uint8_t reserved:3; + uint8_t compMeth:4; /* X X X 4bits */ + uint8_t iqWidth:4; /* X X X 4bits */ }; @@ -250,7 +254,7 @@ struct xran_sectionext1_info { uint16_t bfwNumber; /**< number of bf weights in this section */ uint8_t bfwIqWidth; uint8_t bfwCompMeth; - int16_t *p_bfwIQ; /**< pointer to formed section extention */ + int8_t *p_bfwIQ; /**< pointer to formed section extention */ int16_t bfwIQ_sz; /**< size of buffer with section extention information */ union { uint8_t exponent; @@ -320,6 +324,7 @@ struct xran_sectionext8_info { struct xran_sectionext9_info { uint8_t technology; + uint8_t reserved; }; struct xran_sectionext10_info { @@ -411,13 +416,14 @@ struct xran_section_ext_gen_info { /** * This structure to hold the information to generate the sections of C-Plane message */ struct xran_section_gen_info { - struct xran_section_info info; /**< The information for section */ + struct xran_section_info *info; /**< The information for section */ - uint32_t exDataSize; /**< The number of Extensions or type 6/7 data */ /** the array to store section extension */ struct xran_section_ext_gen_info exData[XRAN_MAX_NUM_EXTENSIONS]; + uint32_t exDataSize; /**< The number of Extensions or type 6/7 data */ }; + /** * This structure to hold the information to generate a C-Plane message */ struct xran_cp_gen_params { @@ -442,6 +448,7 @@ struct xran_section_ext_recv_info { struct xran_sectionext4_info ext4; struct xran_sectionext5_info ext5; struct xran_sectionext6_info ext6; + struct xran_sectionext9_info ext9; struct xran_sectionext10_info ext10; struct xran_sectionext11_recv_info ext11; } u; @@ -452,7 +459,7 @@ struct xran_section_ext_recv_info { struct xran_section_recv_info { struct xran_section_info info; /**< The information for received section */ - int32_t numExts; + uint32_t numExts; /** the array to store section extension */ struct xran_section_ext_recv_info exts[XRAN_MAX_NUM_EXTENSIONS]; }; @@ -463,6 +470,12 @@ struct xran_cp_recv_params { uint8_t dir; /**< UL or DL */ uint8_t sectionType; /**< each section must have same type with this */ uint16_t numSections; /**< the number of sections received */ + uint8_t numSetBFW; /**