diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-05-27 18:26:29 +0200 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-06-05 00:34:36 +0200 |
commit | 0686ae612834c329546c2f65d04283685ec790ad (patch) | |
tree | 9d6d6b9268ebad97407768b0efc55ff08178bc32 /include | |
parent | d9daa3fd9ea2744de371190632b05b149feb4773 (diff) |
[VAMOS] Implement the concept of 'shadow' timeslots
Change-Id: I48b44b4df9ffb1cca105aebbd868c29b21f3b1d6
Depends: Ia0bd8695a3f12331b696fe69117189cdd48b584d
Related: SYS#4895, OS#4941
Diffstat (limited to 'include')
-rw-r--r-- | include/osmo-bts/bts_trx.h | 1 | ||||
-rw-r--r-- | include/osmo-bts/gsm_data.h | 13 | ||||
-rw-r--r-- | include/osmo-bts/l1sap.h | 9 |
3 files changed, 21 insertions, 2 deletions
diff --git a/include/osmo-bts/bts_trx.h b/include/osmo-bts/bts_trx.h index d4c3f390..f033573f 100644 --- a/include/osmo-bts/bts_trx.h +++ b/include/osmo-bts/bts_trx.h @@ -48,6 +48,7 @@ static inline struct gsm_bts_trx *gsm_bts_bb_trx_get_trx(struct gsm_bts_bb_trx * struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); +void gsm_bts_trx_init_shadow_ts(struct gsm_bts_trx *trx); char *gsm_trx_name(const struct gsm_bts_trx *trx); const char *gsm_trx_unit_id(struct gsm_bts_trx *trx); diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 93eb2f06..6ce5c3b7 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -463,6 +463,13 @@ struct gsm_bts_trx_ts { /* Implementation specific structure(s) */ void *priv; + /* VAMOS specific fields */ + struct { + /* NULL if BTS_FEAT_VAMOS is not set */ + struct gsm_bts_trx_ts *peer; + bool is_shadow; + } vamos; + struct gsm_lchan lchan[TS_MAX_LCHAN]; }; @@ -515,6 +522,12 @@ char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); void gsm_lchan_name_update(struct gsm_lchan *lchan); const char *gsm_lchans_name(enum gsm_lchan_state s); +#define GSM_TS_NAME_FMT \ + "bts=%u,trx=%u,ts=%u" "%s" +#define GSM_TS_NAME_ARGS(ts) \ + (ts)->trx->bts->nr, (ts)->trx->nr, (ts)->nr, \ + (ts)->vamos.is_shadow ? ",shadow" : "" + static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) { return lchan->name; diff --git a/include/osmo-bts/l1sap.h b/include/osmo-bts/l1sap.h index fe774312..f78d1143 100644 --- a/include/osmo-bts/l1sap.h +++ b/include/osmo-bts/l1sap.h @@ -19,9 +19,11 @@ #define L1SAP_IS_LINK_SACCH(link_id) \ ((link_id & 0xC0) == LID_SACCH) #define L1SAP_IS_CHAN_TCHF(chan_nr) \ - ((chan_nr & 0xf8) == RSL_CHAN_Bm_ACCHs) + ((chan_nr & 0xf8) == RSL_CHAN_Bm_ACCHs || \ + (chan_nr & 0xf8) == RSL_CHAN_OSMO_VAMOS_Bm_ACCHs) #define L1SAP_IS_CHAN_TCHH(chan_nr) \ - ((chan_nr & 0xf0) == RSL_CHAN_Lm_ACCHs) + ((chan_nr & 0xf0) == RSL_CHAN_Lm_ACCHs || \ + (chan_nr & 0xf0) == RSL_CHAN_OSMO_VAMOS_Lm_ACCHs) #define L1SAP_IS_CHAN_SDCCH4(chan_nr) \ ((chan_nr & 0xe0) == RSL_CHAN_SDCCH4_ACCH) #define L1SAP_IS_CHAN_SDCCH8(chan_nr) \ @@ -37,6 +39,9 @@ #define L1SAP_IS_CHAN_CBCH(chan_nr) \ ((chan_nr & 0xf8) == RSL_CHAN_OSMO_CBCH4) \ || ((chan_nr & 0xf8) == RSL_CHAN_OSMO_CBCH8) +#define L1SAP_IS_CHAN_VAMOS(chan_nr) \ + ((chan_nr & 0xf8) == RSL_CHAN_OSMO_VAMOS_Bm_ACCHs || \ + (chan_nr & 0xf0) == RSL_CHAN_OSMO_VAMOS_Lm_ACCHs) /* rach type from ra */ #define L1SAP_IS_PACKET_RACH(ra) ((ra & 0xf0) == 0x70 && (ra & 0x0f) != 0x0f) |