blob: 8e911132b07c7a1524b96fad4d6aaa1b45e0d060 [file] [log] [blame]
Pau Espin Pedrol5ea18172018-02-20 16:48:15 +01001#pragma once
2
3#include <osmocom/vty/command.h>
4
Pau Espin Pedrola3ab8c22018-02-21 15:41:03 +01005#include "config_defs.h"
6
Pau Espin Pedrol5ea18172018-02-20 16:48:15 +01007extern struct vty_app_info g_vty_info;
8
Tom Tsoud2800452019-04-01 07:55:48 +07009/* Maximum number of physical RF channels */
Pau Espin Pedrola3ab8c22018-02-21 15:41:03 +010010#define TRX_CHAN_MAX 8
Tom Tsoud2800452019-04-01 07:55:48 +070011/* Maximum number of carriers in multi-ARFCN mode */
12#define TRX_MCHAN_MAX 3
Pau Espin Pedrola3ab8c22018-02-21 15:41:03 +010013
14/* Samples-per-symbol for downlink path
15 * 4 - Uses precision modulator (more computation, less distortion)
16 * 1 - Uses minimized modulator (less computation, more distortion)
17 *
18 * Other values are invalid. Receive path (uplink) is always
19 * downsampled to 1 sps. Default to 4 sps for all cases.
20 */
21#define DEFAULT_TX_SPS 4
22
23/*
24 * Samples-per-symbol for uplink (receiver) path
25 * Do not modify this value. EDGE configures 4 sps automatically on
26 * B200/B210 devices only. Use of 4 sps on the receive path for other
27 * configurations is not supported.
28 */
29#define DEFAULT_RX_SPS 1
30
31/* Default configuration parameters */
32#define DEFAULT_TRX_PORT 5700
33#define DEFAULT_TRX_IP "127.0.0.1"
34#define DEFAULT_CHANS 1
35
36struct trx_ctx;
37
38struct trx_chan {
39 struct trx_ctx *trx; /* backpointer */
40 unsigned int idx; /* channel index */
41 char *rx_path;
42 char *tx_path;
43};
44
Pau Espin Pedrol5ea18172018-02-20 16:48:15 +010045struct trx_ctx {
46 struct {
47 char *bind_addr;
Pau Espin Pedrola3ab8c22018-02-21 15:41:03 +010048 char *remote_addr;
49 char *dev_args;
50 unsigned int base_port;
51 unsigned int tx_sps;
52 unsigned int rx_sps;
53 unsigned int rtsc;
54 bool rtsc_set;
55 unsigned int rach_delay;
56 bool rach_delay_set;
57 enum ReferenceType clock_ref;
58 enum FillerType filler;
59 bool multi_arfcn;
60 double offset;
61 double rssi_offset;
62 bool swap_channels;
Vadim Yanitskiya8b35652018-10-22 02:52:18 +020063 bool ext_rach;
Pau Espin Pedrola3ab8c22018-02-21 15:41:03 +010064 bool egprs;
65 unsigned int sched_rr;
66 unsigned int num_chans;
67 struct trx_chan chans[TRX_CHAN_MAX];
Pau Espin Pedrol5ea18172018-02-20 16:48:15 +010068 } cfg;
69};
70
71int trx_vty_init(struct trx_ctx* trx);
Pau Espin Pedrola3ab8c22018-02-21 15:41:03 +010072struct trx_ctx *vty_trx_ctx_alloc(void *talloc_ctx);