aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/bsc/bts_trx.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/osmocom/bsc/bts_trx.h')
-rw-r--r--include/osmocom/bsc/bts_trx.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/include/osmocom/bsc/bts_trx.h b/include/osmocom/bsc/bts_trx.h
index 3a635ba28..8d2493fb5 100644
--- a/include/osmocom/bsc/bts_trx.h
+++ b/include/osmocom/bsc/bts_trx.h
@@ -13,11 +13,16 @@
#include <osmocom/abis/e1_input.h>
#include "osmocom/bsc/gsm_data.h"
+#include "osmocom/bsc/abis_om2000.h"
struct gsm_bts;
#define TRX_NR_TS 8
+struct gsm_bts_bb_trx {
+ struct gsm_abis_mo mo;
+};
+
/* One TRX in a BTS */
struct gsm_bts_trx {
/* list header in bts->trx_list */
@@ -26,12 +31,10 @@ struct gsm_bts_trx {
struct gsm_bts *bts;
/* number of this TRX in the BTS */
uint8_t nr;
- /* human readable name / description */
- char *description;
/* how do we talk RSL with this TRX? */
struct gsm_e1_subslot rsl_e1_link;
- uint8_t rsl_tei;
- struct e1inp_sign_link *rsl_link;
+ uint8_t rsl_tei_primary;
+ struct e1inp_sign_link *rsl_link_primary;
/* Timeout for initiating the RSL connection. */
struct osmo_timer_list rsl_connect_timeout;
@@ -41,9 +44,7 @@ struct gsm_bts_trx {
struct gsm_abis_mo mo;
struct tlv_parsed nm_attr;
- struct {
- struct gsm_abis_mo mo;
- } bb_transc;
+ struct gsm_bts_bb_trx bb_transc;
uint16_t arfcn;
int nominal_power; /* in dBm */
@@ -64,6 +65,7 @@ struct gsm_bts_trx {
struct rxlev_stats rxlev_stat;
} ipaccess;
struct {
+ struct osmo_fsm_inst *trx_fi;
struct {
struct om2k_mo om2k_mo;
} trxc;
@@ -73,11 +75,19 @@ struct gsm_bts_trx {
struct {
struct om2k_mo om2k_mo;
} tx;
+ enum om2k_rx_diversity rx_diversity;
} rbs2000;
};
struct gsm_bts_trx_ts ts[TRX_NR_TS];
+
+ struct chan_counts chan_counts;
+ struct load_counter lchan_load;
};
+static inline struct gsm_bts_trx *gsm_bts_bb_trx_get_trx(struct gsm_bts_bb_trx *bb_transc) {
+ return (struct gsm_bts_trx *)container_of(bb_transc, struct gsm_bts_trx, bb_transc);
+}
+
struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts);
char *gsm_trx_name(const struct gsm_bts_trx *trx);
@@ -88,7 +98,6 @@ void gsm_trx_lock_rf(struct gsm_bts_trx *trx, bool locked, const char *reason);
bool trx_is_usable(const struct gsm_bts_trx *trx);
void gsm_trx_all_ts_dispatch(struct gsm_bts_trx *trx, uint32_t ts_ev, void *data);
-int trx_count_free_ts(struct gsm_bts_trx *trx, enum gsm_phys_chan_config pchan);
bool trx_has_valid_pchan_config(const struct gsm_bts_trx *trx);
int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx);