Files
openairinterface5g/fronthaul/xran_pkt/xran_up_api.h
Bartosz Podrygajlo 83c9116145 feat(fronthaul): Add xran packet manipulation code
Add sources from xran library containing Split 7.2 packet manipulation
tools.

Signed-off-by: Bartosz Podrygajlo <bartosz.podrygajlo@openairinterface.org>
2026-05-25 09:48:38 +02:00

116 lines
3.3 KiB
C

/******************************************************************************
*
* 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.
* 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 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.
*/
int32_t 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,
uint8_t *filter_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,
uint8_t *is_prach);
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_params *params,
uint8_t CC_ID,
uint8_t Ant_ID,
uint8_t seq_id,
enum xran_comp_hdr_type staticEn,
uint32_t do_copy,
uint16_t num_sections,
uint16_t section_id_start,
uint16_t iq_offset);
#ifdef __cplusplus
}
#endif
#endif /* _XRAN_UP_API_H_ */