Files
openairinterface5g/fronthaul/xran_pkt/xran_pkt_api.h
Bartosz Podrygajlo e5fa429e06 feat(fronthaul): refactor xran_pkt directory
Added xran_pkt which is a library of imported ORAN/eCPRI packet utilities
from xran library.

 - merged xran_up_api.h/c and xran_cp_api.h/c into xran_pkt_api.h/c.
 - reformatted the code.
 - added unit test
 - added an optional executable xran_pcap_dump which can extract some
fields of an ORAN pcap capture to stdout

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

69 lines
2.3 KiB
C

/*
* SPDX-License-Identifier: Apache-2.0
* Original file: Copyright 2020 Intel.
* Copyright 2026 OpenAirInterface Authors
*/
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked-not-aligned"
#include "xran_pkt_up.h"
#include "xran_pkt_cp.h"
#include "xran_pkt.h"
#pragma GCC diagnostic pop
struct xran_eaxcid_config {
uint16_t mask_cuPortId;
uint16_t mask_bandSectorId;
uint16_t mask_ccId;
uint16_t mask_ruPortId;
uint8_t bit_cuPortId;
uint8_t bit_bandSectorId;
uint8_t bit_ccId;
uint8_t bit_ruPortId;
};
struct xran_recv_packet_info {
int ecpri_version;
enum ecpri_msg_type msg_type;
int payload_len;
int seq_id;
int subseq_id;
int ebit;
};
uint16_t xran_compose_cid(struct xran_eaxcid_config *eaxcid_config,
uint8_t CU_Port_ID,
uint8_t BandSector_ID,
uint8_t CC_ID,
uint8_t Ant_ID);
void xran_decompose_cid(uint16_t cid,
struct xran_eaxcid_config *eaxcid_config,
uint8_t *CU_Port_ID,
uint8_t *BandSector_ID,
uint8_t *CC_ID,
uint8_t *Ant_ID);
int32_t xran_extract_iq_samples(struct rte_mbuf *mbuf,
struct xran_eaxcid_config *conf,
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,
uint8_t staticComp,
uint8_t *compMeth,
uint8_t *iqWidth);
int xran_parse_ecpri_hdr(struct rte_mbuf *mbuf, struct xran_ecpri_hdr **ecpri_hdr, struct xran_recv_packet_info *pkt_info);