O-RAN E Maintenance Release contribution for ODULOW
[o-du/phy.git] / fhi_lib / lib / api / xran_up_api.h
index 4665762..7d3afc5 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
 *
-*   Copyright (c) 2019 Intel.
+*   Copyright (c) 2020 Intel.
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
 *
 *******************************************************************************/
 
-
 /**
  * @brief This file provides the definitions for User Plane Messages APIs.
  *
 #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"
 
-#define XRAN_BYTE_ORDER_SWAP
-
 /*
  * structure used for storing packet parameters needed for generating
  * a data packet
@@ -63,29 +64,6 @@ struct xran_up_pkt_gen_no_compression_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.
  *
@@ -94,7 +72,7 @@ int xran_prepare_iq_symbol_portion(
  *                      here
  * @return int Bytes of IQ samples that have been extracted from mbuf.
  */
-int xran_extract_iq_samples(struct rte_mbuf *mbuf,
+int32_t xran_extract_iq_samples(struct rte_mbuf *mbuf,
     void **iq_data_start,
     uint8_t *CC_ID,
     uint8_t *Ant_ID,
@@ -102,15 +80,31 @@ int xran_extract_iq_samples(struct rte_mbuf *mbuf,
     uint8_t *subframe_id,
     uint8_t *slot_id,
     uint8_t *symb_id,
-    struct ecpri_seq_id *seq_id);
+    union ecpri_seq_id *seq_id,
+    uint16_t *num_prbu,
+    uint16_t *start_prbu,
+    uint16_t *sym_inc,
+    uint16_t *rb,
+    uint16_t *sect_id,
+    int8_t   expect_comp,
+    enum xran_comp_hdr_type staticComp,
+    uint8_t *compMeth,
+    uint8_t *iqWidth);
 
-int xran_prepare_iq_symbol_portion_no_comp(
+inline int xran_prepare_iq_symbol_portion(
                         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,
+                        struct xran_up_pkt_gen_params *params,
                         uint8_t CC_ID,
                         uint8_t Ant_ID,
-                        uint8_t seq_id);
+                        uint8_t seq_id,
+                        enum xran_comp_hdr_type staticEn,
+                        uint32_t do_copy);
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* _XRAN_UP_API_H_ */