annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * The structures and functions defined in this header file deal with
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * interfacing to the Submultiplexer part of Nokia's Transcoder and
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * Submultiplexer.
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 */
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #pragma once
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <stdint.h>
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <stdbool.h>
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include <osmocom/core/bits.h>
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include <osmocom/isdn/i460_mux.h>
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 #include <osmocom/trau/trau_frame.h>
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 #define ATER_SUBSLOTS 4
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 struct ater_subslot {
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 struct osmo_i460_subchan *schan;
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 int nr;
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 bool is_active;
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 bool is_efr;
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 struct osmo_trau_frame ul_frame;
19
1e375472d5a5 ater: implement TRAU frame output
Mychaela Falconia <falcon@freecalypso.org>
parents: 16
diff changeset
24 unsigned mfrm_count;
26
237687e2be6c ater: implement play internals
Mychaela Falconia <falcon@freecalypso.org>
parents: 19
diff changeset
25 uint8_t *play_buffer;
237687e2be6c ater: implement play internals
Mychaela Falconia <falcon@freecalypso.org>
parents: 19
diff changeset
26 unsigned play_buf_total;
237687e2be6c ater: implement play internals
Mychaela Falconia <falcon@freecalypso.org>
parents: 19
diff changeset
27 unsigned play_buf_ptr;
237687e2be6c ater: implement play internals
Mychaela Falconia <falcon@freecalypso.org>
parents: 19
diff changeset
28 bool play_wait_align;
16
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 };
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 extern struct ater_subslot subslots[ATER_SUBSLOTS];
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 void i460_rx_func(struct osmo_i460_subchan *schan, void *user_data,
4ffe22f5b4b5 ater: initial osmo_i460 framework
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 const ubit_t *bits, unsigned int num_bits);
19
1e375472d5a5 ater: implement TRAU frame output
Mychaela Falconia <falcon@freecalypso.org>
parents: 16
diff changeset
35
1e375472d5a5 ater: implement TRAU frame output
Mychaela Falconia <falcon@freecalypso.org>
parents: 16
diff changeset
36 void init_trau_ul_frame(int nr);