provide follow features implementation:
[o-du/phy.git] / fhi_lib / lib / api / xran_up_api.h
index bedcce0..513d1df 100644 (file)
-/******************************************************************************
-*
-*   Copyright (c) 2019 Intel.
-*
-*   Licensed under the Apache License, Version 2.0 (the "License");
-*   you may not use this file except in compliance with the License.
-*   You may obtain a copy of the License at
-*
-*       http://www.apache.org/licenses/LICENSE-2.0
-*
-*   Unless required by applicable law or agreed to in writing, software
-*   distributed under the License is distributed on an "AS IS" BASIS,
-*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-*   See the License for the specific language governing permissions and
-*   limitations under the License.
-*
-*******************************************************************************/
-
-/**
- * @brief This file provides the definitions for User Plane Messages APIs.
- *
- * @file xran_up_api.h
- * @ingroup group_lte_source_xran
- * @author Intel Corporation
- *
- **/
-
-#ifndef _XRAN_UP_API_H_
-#define _XRAN_UP_API_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rte_common.h>
-#include <rte_mbuf.h>
-
-#include "xran_pkt.h"
-#include "xran_pkt_up.h"
-
-/*
- * structure used for storing packet parameters needed for generating
- * a data packet
- */
-struct xran_up_pkt_gen_params
-{
-    struct radio_app_common_hdr app_params;
-    struct data_section_hdr sec_hdr;
-    struct data_section_compression_hdr compr_hdr_param;
-    union compression_params compr_param;
-};
-
-/*
- * structure used for storing packet parameters needed for generating
- * a data packet without compression
- *   Next fields are omitted:
- *        udCompHdr (not always present)
- *        reserved (not always present)
- *        udCompParam (not always present)
- */
-struct xran_up_pkt_gen_no_compression_params
-{
-    struct radio_app_common_hdr app_params;
-    struct data_section_hdr sec_hdr;
-};
-
-
-/**
- * @brief Function that is preparing an mbuf with portion of IQ samples related
- *        to the single symbol.
- *
- * @param mbuf Initialized rte_mbuf packet
- * @param iq_data_start Address of the first element in IQ data array.
- * @param iq_data_num_elements Size of the IQ data array.
- * @param iq_data_offset IQ data array's elements already sent.
- * @param alignment Align data to this many bytes.
- * @param params Structure containing Radio App Header and Data Section Header
- *               structures.
- * @return int Bytes of IQ samples that have been appended to the packet.
- */
-int xran_prepare_iq_symbol_portion(
-    struct rte_mbuf *mbuf,
-    const void *iq_data_start,
-    const uint32_t iq_data_num_bytes,
-    uint32_t *iq_data_offset,
-    const uint8_t alignment,
-    struct xran_up_pkt_gen_params *params,
-    int sub_seq_id);
-
-/**
- * @brief Function extracts IQ samples from received mbuf packet.
- *
- * @param mbuf Packet with received data.
- * @param iq_data_start Address of the first IQ sample in mbuf will be returned
- *                      here
- * @return int Bytes of IQ samples that have been extracted from mbuf.
- */
-int xran_extract_iq_samples(struct rte_mbuf *mbuf,
-    void **iq_data_start,
-    uint8_t *CC_ID,
-    uint8_t *Ant_ID,
-    uint8_t *frame_id,
-    uint8_t *subframe_id,
-    uint8_t *slot_id,
-    uint8_t *symb_id,
-    struct ecpri_seq_id *seq_id,
-    uint16_t *num_prbu,
-    uint16_t *start_prbu,
-    uint16_t *sym_inc,
-    uint16_t *rb,
-    uint16_t *sect_id);
-
-int xran_prepare_iq_symbol_portion_no_comp(
-                        struct rte_mbuf *mbuf,
-                        const void *iq_data_start,
-                        const enum xran_input_byte_order iq_buf_byte_order,
-                        const uint32_t iq_data_num_bytes,
-                        struct xran_up_pkt_gen_no_compression_params *params,
-                        uint8_t CC_ID,
-                        uint8_t Ant_ID,
-                        uint8_t seq_id,
-                        uint32_t do_copy);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _XRAN_UP_API_H_ */
+/******************************************************************************\r
+*\r
+*   Copyright (c) 2019 Intel.\r
+*\r
+*   Licensed under the Apache License, Version 2.0 (the "License");\r
+*   you may not use this file except in compliance with the License.\r
+*   You may obtain a copy of the License at\r
+*\r
+*       http://www.apache.org/licenses/LICENSE-2.0\r
+*\r
+*   Unless required by applicable law or agreed to in writing, software\r
+*   distributed under the License is distributed on an "AS IS" BASIS,\r
+*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+*   See the License for the specific language governing permissions and\r
+*   limitations under the License.\r
+*\r
+*******************************************************************************/\r
+\r
+/**\r
+ * @brief This file provides the definitions for User Plane Messages APIs.\r
+ *\r
+ * @file xran_up_api.h\r
+ * @ingroup group_lte_source_xran\r
+ * @author Intel Corporation\r
+ *\r
+ **/\r
+\r
+#ifndef _XRAN_UP_API_H_\r
+#define _XRAN_UP_API_H_\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+#include <rte_common.h>\r
+#include <rte_mbuf.h>\r
+\r
+#include "xran_pkt.h"\r
+#include "xran_pkt_up.h"\r
+\r
+/*\r
+ * structure used for storing packet parameters needed for generating\r
+ * a data packet\r
+ */\r
+struct xran_up_pkt_gen_params\r
+{\r
+    struct radio_app_common_hdr app_params;\r
+    struct data_section_hdr sec_hdr;\r
+    struct data_section_compression_hdr compr_hdr_param;\r
+    union compression_params compr_param;\r
+};\r
+\r
+/*\r
+ * structure used for storing packet parameters needed for generating\r
+ * a data packet without compression\r
+ *   Next fields are omitted:\r
+ *        udCompHdr (not always present)\r
+ *        reserved (not always present)\r
+ *        udCompParam (not always present)\r
+ */\r
+struct xran_up_pkt_gen_no_compression_params\r
+{\r
+    struct radio_app_common_hdr app_params;\r
+    struct data_section_hdr sec_hdr;\r
+};\r
+\r
+/**\r
+ * @brief Function extracts IQ samples from received mbuf packet.\r
+ *\r
+ * @param mbuf Packet with received data.\r
+ * @param iq_data_start Address of the first IQ sample in mbuf will be returned\r
+ *                      here\r
+ * @return int Bytes of IQ samples that have been extracted from mbuf.\r
+ */\r
+int32_t xran_extract_iq_samples(struct rte_mbuf *mbuf,\r
+    void **iq_data_start,\r
+    uint8_t *CC_ID,\r
+    uint8_t *Ant_ID,\r
+    uint8_t *frame_id,\r
+    uint8_t *subframe_id,\r
+    uint8_t *slot_id,\r
+    uint8_t *symb_id,\r
+    struct ecpri_seq_id *seq_id,\r
+    uint16_t *num_prbu,\r
+    uint16_t *start_prbu,\r
+    uint16_t *sym_inc,\r
+    uint16_t *rb,\r
+    uint16_t *sect_id,\r
+    int8_t   expect_comp,\r
+    uint8_t *compMeth,\r
+    uint8_t *iqWidth);\r
+\r
+int xran_prepare_iq_symbol_portion(\r
+                        struct rte_mbuf *mbuf,\r
+                        const void *iq_data_start,\r
+                        const enum xran_input_byte_order iq_buf_byte_order,\r
+                        const uint32_t iq_data_num_bytes,\r
+                        struct xran_up_pkt_gen_params *params,\r
+                        uint8_t CC_ID,\r
+                        uint8_t Ant_ID,\r
+                        uint8_t seq_id,\r
+                        uint32_t do_copy);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* _XRAN_UP_API_H_ */\r