mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
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
69 lines
2.3 KiB
C
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);
|