aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/abis_rsl.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-07-29 15:41:29 +0200
committerHarald Welte <laforge@gnumonks.org>2009-07-29 15:41:29 +0200
commit9943c5bbac1e0ce99bd597f3e4ae665ce42118c5 (patch)
tree7ca65b8eaa226d2f25b26ae465aa497138d8be83 /openbsc/include/openbsc/abis_rsl.h
parent58ca5b7ae70365c1285b2ea0cb3c3370a8f108a9 (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.h15
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);