ms_amarisoft: extend AmariUE to support custom frequency bands

this patch adds generic support for custom frequency bands to the ms class.
it then extends the config template for AmariUE to use them.
we set the default values for EARFCNs for DL/UL to the old values.

Change-Id: I7b2250e13fc1161be1a1d73a4348f07b31c0f724
diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py
index 9b6d64a..7e0cc13 100644
--- a/src/osmo_gsm_tester/obj/ms_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py
@@ -27,7 +27,16 @@
 from .ms import MS
 
 def on_register_schemas():
-    resource_schema = {}
+    resource_schema = {
+        'use_custom_band255': schema.BOOL_STR,
+        'custom_band_list[].number': schema.UINT,
+        'custom_band_list[].dl_earfcn_min': schema.UINT,
+        'custom_band_list[].dl_earfcn_max': schema.UINT,
+        'custom_band_list[].dl_freq_min': schema.UINT,
+        'custom_band_list[].ul_freq_min': schema.UINT,
+        'custom_band_list[].ul_earfcn_min': schema.UINT,
+        'custom_band_list[].ul_earfcn_max': schema.UINT,        
+        }
     for key, val in RunNode.schema().items():
         resource_schema['run_node.%s' % key] = val
     schema.register_resource_schema('modem', resource_schema)
@@ -245,6 +254,9 @@
         config.overlay(values, dict(ue=dict(log_filename=logfile,
                                             ifup_filename=ifupfile)))
 
+        # Convert to Python bool and overlay config
+        config.overlay(values, dict(ue={'use_custom_band255': util.str2bool(values['ue'].get('use_custom_band255', 'false'))}))
+
         # We need to set some specific variables programatically here to match IP addresses:
         if self._conf.get('rf_dev_type') == 'zmq':
             base_srate = num_prb2base_srate(self.enb.num_prb())