From 732665269e2f7d2494da48fab44021fa7efd638f Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Sun, 19 Jan 2014 11:47:44 +0100 Subject: Add full AMR multirate IE support with VTY config for MS and BTS side --- openbsc/include/openbsc/bsc_api.h | 2 +- openbsc/include/openbsc/gsm_04_08.h | 3 +++ openbsc/include/openbsc/gsm_data_shared.h | 14 +++++++++++--- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'openbsc/include') 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; }; -- cgit v1.2.3