diff options
Diffstat (limited to 'include/osmocom/bsc/bts_trx.h')
-rw-r--r-- | include/osmocom/bsc/bts_trx.h | 25 |
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); |