aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2014-01-19 11:47:44 +0100
committerHarald Welte <laforge@gnumonks.org>2015-09-22 16:46:27 +0200
commit732665269e2f7d2494da48fab44021fa7efd638f (patch)
tree0f8ef2b457986e82e4af5d64518fe7a868f39503 /openbsc/include
parent354d1f3084a1f08c52f37f119f4524eb454b214f (diff)
Add full AMR multirate IE support with VTY config for MS and BTS side
Diffstat (limited to 'openbsc/include')
-rw-r--r--openbsc/include/openbsc/bsc_api.h2
-rw-r--r--openbsc/include/openbsc/gsm_04_08.h3
-rw-r--r--openbsc/include/openbsc/gsm_data_shared.h14
3 files changed, 15 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/bsc_api.h b/openbsc/include/openbsc/bsc_api.h
index a21fb74d8..a70d765c1 100644
--- a/openbsc/include/openbsc/bsc_api.h
+++ b/openbsc/include/openbsc/bsc_api.h
@@ -40,7 +40,7 @@ struct bsc_api {
* not implemented AMR5.9 will be used.
*/
void (*mr_config)(struct gsm_subscriber_connection *conn,
- struct gsm48_multi_rate_conf *conf);
+ uint8_t *mr_ms_lv, uint8_t *mr_bts_lv);
};
int bsc_api_init(struct gsm_network *network, struct bsc_api *api);
diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h
index 3df5fc4e0..02b2e3b8a 100644
--- a/openbsc/include/openbsc/gsm_04_08.h
+++ b/openbsc/include/openbsc/gsm_04_08.h
@@ -13,6 +13,7 @@ struct gsm_subscriber;
struct gsm_network;
struct gsm_trans;
struct gsm_subscriber_connection;
+struct amr_multirate_conf;
#define GSM48_ALLOC_SIZE 2048
#define GSM48_ALLOC_HEADROOM 256
@@ -89,4 +90,6 @@ void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd,
void release_security_operation(struct gsm_subscriber_connection *conn);
void allocate_security_operation(struct gsm_subscriber_connection *conn);
+int gsm48_multirate_config(uint8_t *lv, struct amr_multirate_conf *mr, int ms);
+
#endif
diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h
index 86bf557ad..5ff6c20eb 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -150,8 +150,10 @@ struct bts_codec_conf {
struct amr_mode {
uint8_t mode;
- uint8_t threshold;
- uint8_t hysteresis;
+ uint8_t threshold_ms;
+ uint8_t hysteresis_ms;
+ uint8_t threshold_bts;
+ uint8_t hysteresis_bts;
};
struct amr_multirate_conf {
uint8_t gsm48_ie[2];
@@ -207,7 +209,8 @@ struct gsm_lchan {
} encr;
/* AMR bits */
- struct gsm48_multi_rate_conf mr_conf;
+ uint8_t mr_ms_lv[7];
+ uint8_t mr_bts_lv[7];
/* Established data link layer services */
uint8_t sapis[8];
@@ -732,6 +735,11 @@ struct gsm_bts {
/* BTS dependencies bit field */
uint32_t depends_on[256/(8*4)];
+
+ /* full and half rate multirate config */
+ struct amr_multirate_conf mr_full;
+ struct amr_multirate_conf mr_half;
+
#endif /* ROLE_BSC */
void *role;
};