view ater/submux.h @ 37:26c9535df39e

rm abis subdir: moved to e1-fake-trau repository The present code repository is meant to contain code for talking to a TRAU DUT, hence the name ice1-trau-tester. The different and separate function of talking to an E1 BTS (Abis instead of Ater, and in the opposite role) was never in scope for this project, but that code got added here in a haste when the InSite BTS arrived while the TRAU bring-up was still blocked. Now that we have our Nokia TCSM2 system working and are doing TRAU experiments, let's keep the code clean.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 29 Aug 2024 19:02:02 +0000
parents 237687e2be6c
children 16715bd149e0
line wrap: on
line source

/*
 * The structures and functions defined in this header file deal with
 * interfacing to the Submultiplexer part of Nokia's Transcoder and
 * Submultiplexer.
 */

#pragma once

#include <stdint.h>
#include <stdbool.h>

#include <osmocom/core/bits.h>
#include <osmocom/isdn/i460_mux.h>
#include <osmocom/trau/trau_frame.h>

#define	ATER_SUBSLOTS	4

struct ater_subslot {
	struct osmo_i460_subchan *schan;
	int nr;
	bool is_active;
	bool is_efr;
	struct osmo_trau_frame ul_frame;
	unsigned mfrm_count;
	uint8_t *play_buffer;
	unsigned play_buf_total;
	unsigned play_buf_ptr;
	bool play_wait_align;
};

extern struct ater_subslot subslots[ATER_SUBSLOTS];

void i460_rx_func(struct osmo_i460_subchan *schan, void *user_data,
		  const ubit_t *bits, unsigned int num_bits);

void init_trau_ul_frame(int nr);