diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-07-29 15:41:29 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-07-29 15:41:29 +0200 |
commit | 9943c5bbac1e0ce99bd597f3e4ae665ce42118c5 (patch) | |
tree | 7ca65b8eaa226d2f25b26ae465aa497138d8be83 /openbsc/include/openbsc/abis_rsl.h | |
parent | 58ca5b7ae70365c1285b2ea0cb3c3370a8f108a9 (diff) |
generalize channel activation / channel mode modify
* we only need one piece of code to calculate rsl_ie_chan_mode from
our run-time data structures (gsm_lchan)
* add some more channel modes for TCH/H and data
* use enum's to make the compiler warn us about unhandled enum values
* make sure the caller determines the (signalling,speech,data) mode
Diffstat (limited to 'openbsc/include/openbsc/abis_rsl.h')
-rw-r--r-- | openbsc/include/openbsc/abis_rsl.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/abis_rsl.h b/openbsc/include/openbsc/abis_rsl.h index 9e4d59078..a2a01d321 100644 --- a/openbsc/include/openbsc/abis_rsl.h +++ b/openbsc/include/openbsc/abis_rsl.h @@ -266,16 +266,23 @@ struct rsl_ie_chan_mode { } __attribute__ ((packed)); #define RSL_CMOD_DTXu 0x01 /* uplink */ #define RSL_CMOD_DTXd 0x02 /* downlink */ -#define RSL_CMOD_SPD_SPEECH 0x01 -#define RSL_CMOD_SPD_DATA 0x02 -#define RSL_CMOD_SPD_SIGN 0x03 +enum rsl_cmod_spd { + RSL_CMOD_SPD_SPEECH = 0x01, + RSL_CMOD_SPD_DATA = 0x02, + RSL_CMOD_SPD_SIGN = 0x03, +}; #define RSL_CMOD_CRT_SDCCH 0x01 #define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */ #define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */ /* FIXME: More CRT types */ +/* Speech */ #define RSL_CMOD_SP_GSM1 0x01 #define RSL_CMOD_SP_GSM2 0x11 #define RSL_CMOD_SP_GSM3 0x21 +/* Data */ +#define RSL_CMOD_SP_NT_14k5 0x58 +#define RSL_CMOD_SP_NT_12k0 0x50 +#define RSL_CMOD_SP_NT_6k0 0x51 /* Chapter 9.3.5 */ struct rsl_ie_chan_ident { @@ -459,7 +466,7 @@ int rsl_chan_activate(struct gsm_bts_trx *trx, u_int8_t chan_nr, u_int8_t bs_power, u_int8_t ms_power, u_int8_t ta); int rsl_chan_activate_lchan(struct gsm_lchan *lchan, u_int8_t act_type, - u_int8_t ta, u_int8_t mode); + u_int8_t ta); int rsl_chan_mode_modify_req(struct gsm_lchan *ts); int rsl_paging_cmd(struct gsm_bts *bts, u_int8_t paging_group, u_int8_t len, u_int8_t *ms_ident, u_int8_t chan_needed); |