On Thu, Dec 05, 2013 at 04:02:36PM +0100, Andreas Eversberg wrote:

> +struct bts_codec_conf {
> +     uint8_t hr;
> +     uint8_t efr;
> +     uint8_t afs;
> +     uint8_t ahs;

this naming appears odd. Where is it coming from? Do you know of a
BTS that supports AMR on TCH/F but not on TCH/H?

> +DEFUN(cfg_bts_codec1, cfg_bts_codec1_cmd,
> +DEFUN(cfg_bts_codec2, cfg_bts_codec2_cmd,
> +DEFUN(cfg_bts_codec3, cfg_bts_codec3_cmd,
> +DEFUN(cfg_bts_codec4, cfg_bts_codec4_cmd,
> +DEFUN(cfg_bts_codec5, cfg_bts_codec5_cmd,


please remove the code duplication and add a VTY testcase for setting
and reading this value.



> +static int apply_codec_restrictions(struct gsm_bts *bts,
> +     struct gsm_mncc_bearer_cap *bcap)
> +{
> +     int i, j;
> +
> +     /* remove unsupported speech versions from list */
> +     for (i = 0, j = 0; bcap->speech_ver[i] >= 0; i++) {
> +             if (bcap->speech_ver[i] == 0)
> +                     bcap->speech_ver[j++] = 0;
> +             if (bcap->speech_ver[i] == 2 && bts->codec.efr)
> +                     bcap->speech_ver[j++] = 2;
> +             if (bcap->speech_ver[i] == 4 && bts->codec.afs)
> +                     bcap->speech_ver[j++] = 4;
> +             if (bcap->speech_ver[i] == 1 && bts->codec.hr)
> +                     bcap->speech_ver[j++] = 1;
> +             if (bcap->speech_ver[i] == 5 && bts->codec.ahs)
> +                     bcap->speech_ver[j++] = 5;
> +     }


please use the values of the gsm48_bcap_speech_ver enum instead of
the magic numbers.



Reply via email to