From 5dc245938b5c87e5c3d1d90098506869b3e52c3d Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 27 Aug 2018 12:53:41 +0200 Subject: [PATCH] osmo-bsc: Parametrize codec-list VTY cfg Change-Id: I1678aba43e8d399ecad192cbc416698373e3c0a0 --- example/defaults.conf | 2 ++ example/scenarios/cfg-codec-fr1.conf | 5 +++++ example/scenarios/cfg-codec-fr2.conf | 5 +++++ example/scenarios/cfg-codec-fr3.conf | 5 +++++ example/scenarios/cfg-codec-hr1.conf | 5 +++++ example/scenarios/cfg-codec-hr2.conf | 5 +++++ example/scenarios/cfg-codec-hr3.conf | 5 +++++ src/osmo_gsm_tester/resource.py | 3 ++- src/osmo_gsm_tester/schema.py | 7 +++++++ src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl | 2 +- 10 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 example/scenarios/cfg-codec-fr1.conf create mode 100644 example/scenarios/cfg-codec-fr2.conf create mode 100644 example/scenarios/cfg-codec-fr3.conf create mode 100644 example/scenarios/cfg-codec-hr1.conf create mode 100644 example/scenarios/cfg-codec-hr2.conf create mode 100644 example/scenarios/cfg-codec-hr3.conf diff --git a/example/defaults.conf b/example/defaults.conf index 61b09fbf..5bdf2576 100644 --- a/example/defaults.conf +++ b/example/defaults.conf @@ -14,6 +14,8 @@ bsc: short_name: osmo-gsm-tester-msc long_name: osmo-gsm-tester-msc encryption: a5_0 + codec_list: + - hr3 msc: net: diff --git a/example/scenarios/cfg-codec-fr1.conf b/example/scenarios/cfg-codec-fr1.conf new file mode 100644 index 00000000..f58a82d3 --- /dev/null +++ b/example/scenarios/cfg-codec-fr1.conf @@ -0,0 +1,5 @@ +config: + bsc: + net: + codec_list: + - fr1 diff --git a/example/scenarios/cfg-codec-fr2.conf b/example/scenarios/cfg-codec-fr2.conf new file mode 100644 index 00000000..1ad63de2 --- /dev/null +++ b/example/scenarios/cfg-codec-fr2.conf @@ -0,0 +1,5 @@ +config: + bsc: + net: + codec_list: + - fr2 diff --git a/example/scenarios/cfg-codec-fr3.conf b/example/scenarios/cfg-codec-fr3.conf new file mode 100644 index 00000000..fcc47cc8 --- /dev/null +++ b/example/scenarios/cfg-codec-fr3.conf @@ -0,0 +1,5 @@ +config: + bsc: + net: + codec_list: + - fr3 diff --git a/example/scenarios/cfg-codec-hr1.conf b/example/scenarios/cfg-codec-hr1.conf new file mode 100644 index 00000000..50a092cf --- /dev/null +++ b/example/scenarios/cfg-codec-hr1.conf @@ -0,0 +1,5 @@ +config: + bsc: + net: + codec_list: + - hr1 diff --git a/example/scenarios/cfg-codec-hr2.conf b/example/scenarios/cfg-codec-hr2.conf new file mode 100644 index 00000000..e2cc9d2d --- /dev/null +++ b/example/scenarios/cfg-codec-hr2.conf @@ -0,0 +1,5 @@ +config: + bsc: + net: + codec_list: + - hr2 diff --git a/example/scenarios/cfg-codec-hr3.conf b/example/scenarios/cfg-codec-hr3.conf new file mode 100644 index 00000000..c54b9241 --- /dev/null +++ b/example/scenarios/cfg-codec-hr3.conf @@ -0,0 +1,5 @@ +config: + bsc: + net: + codec_list: + - hr3 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index e4e2f9d7..15f27117 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -87,7 +87,8 @@ WANT_SCHEMA = util.dict_add( RESOURCES_SCHEMA) CONF_SCHEMA = util.dict_add( - { 'defaults.timeout': schema.STR }, + { 'defaults.timeout': schema.STR, + 'config.bsc.net.codec_list[]': schema.CODEC }, dict([('resources.%s' % key, val) for key, val in WANT_SCHEMA.items()]), dict([('modifiers.%s' % key, val) for key, val in WANT_SCHEMA.items()])) diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py index 4a15bcd3..174c28f2 100644 --- a/src/osmo_gsm_tester/schema.py +++ b/src/osmo_gsm_tester/schema.py @@ -110,6 +110,11 @@ def channel_allocator(val): return raise ValueError('Unknown Channel Allocator Policy %r' % val) +def codec(val): + if val in ('hr1', 'hr2', 'hr3', 'fr1', 'fr2', 'fr3'): + return + raise ValueError('Unknown Codec value: %r' % val) + INT = 'int' STR = 'str' UINT = 'uint' @@ -126,6 +131,7 @@ CIPHER = 'cipher' MODEM_FEATURE = 'modem_feature' PHY_CHAN = 'chan' CHAN_ALLOCATOR = 'chan_allocator' +CODEC = 'codec' SCHEMA_TYPES = { INT: int, @@ -144,6 +150,7 @@ SCHEMA_TYPES = { MODEM_FEATURE: modem_feature, PHY_CHAN: phy_channel_config, CHAN_ALLOCATOR: channel_allocator, + CODEC: codec, } def validate(config, schema): diff --git a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl index edcf33f9..95bf5e35 100644 --- a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl @@ -110,7 +110,7 @@ msc mgw remote-port 2427 mgw local-ip ${bsc.ip_address.addr} mgw endpoint-range 1 31 - codec-list hr3 + codec-list ${' '.join(bsc.net.codec_list)} amr-config 12_2k forbidden amr-config 10_2k forbidden amr-config 7_95k forbidden