srsue, amarisoft/srsENB: Support setting rx/tx_gain attributes

Change-Id: I4228ba8746a54db4c17443718c01069d431361b9
diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py
index 0b748e0..bb48880 100644
--- a/src/osmo_gsm_tester/obj/enb_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py
@@ -209,7 +209,10 @@
         # rf driver is shared between amarisoft enb and ue, so it has a
         # different cfg namespace 'trx'. Copy needed values over there:
         config.overlay(values, dict(trx=dict(rf_dev_type=values['enb'].get('rf_dev_type', None),
-                                             rf_dev_args=values['enb'].get('rf_dev_args', None))))
+                                             rf_dev_args=values['enb'].get('rf_dev_args', None),
+                                             rx_gain=values['enb'].get('rx_gain', None),
+                                             tx_gain=values['enb'].get('tx_gain', None),
+                                            )))
 
         self.gen_conf = values
 
diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py
index 1b49b30..6fd80ee 100644
--- a/src/osmo_gsm_tester/obj/ms_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py
@@ -274,7 +274,10 @@
         # rf driver is shared between amarisoft enb and ue, so it has a
         # different cfg namespace 'trx'. Copy needed values over there:
         config.overlay(values, dict(trx=dict(rf_dev_type=values['ue'].get('rf_dev_type', None),
-                                             rf_dev_args=values['ue'].get('rf_dev_args', None))))
+                                             rf_dev_args=values['ue'].get('rf_dev_args', None),
+                                             rx_gain=values['ue'].get('rx_gain', None),
+                                             tx_gain=values['ue'].get('tx_gain', None),
+                                            )))
 
         self.gen_conf_file(self.config_file, AmarisoftUE.CFGFILE, values)
         self.gen_conf_file(self.config_rf_file, AmarisoftUE.CFGFILE_RF, values)
diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py
index cafdab8..ded8568 100644
--- a/src/osmo_gsm_tester/resource.py
+++ b/src/osmo_gsm_tester/resource.py
@@ -92,6 +92,8 @@
         'enb[].id': schema.UINT,
         'enb[].num_prb': schema.UINT,
         'enb[].transmission_mode': schema.LTE_TRANSMISSION_MODE,
+        'enb[].tx_gain': schema.UINT,
+        'enb[].rx_gain': schema.UINT,
         'enb[].rf_dev_type': schema.STR,
         'enb[].rf_dev_args': schema.STR,
         'enb[].additional_args': schema.STR,
@@ -134,6 +136,8 @@
         'modem[].additional_args': schema.STR,
         'modem[].airplane_t_on_ms': schema.INT,
         'modem[].airplane_t_off_ms': schema.INT,
+        'modem[].tx_gain': schema.UINT,
+        'modem[].rx_gain': schema.UINT,
         'osmocon_phone[].serial_device': schema.STR,
     }
 
diff --git a/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl
index 874feca..cd08835 100644
--- a/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl
@@ -10,8 +10,8 @@
 % endif
 },
 
-tx_gain: 89.0, /* TX gain (in dB) B2x0: 0 to 89.8 dB */
-rx_gain: 60.0, /* RX gain (in dB) B2x0: 0 to 73 dB */
+tx_gain: ${trx.tx_gain}, /* TX gain (in dB) B2x0: 0 to 89.8 dB */
+rx_gain: ${trx.rx_gain}, /* RX gain (in dB) B2x0: 0 to 73 dB */
 % if trx.rf_dev_type == 'zmq':
 tx_time_offset: 0,
 % else:
diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl
index 95b10f0..b3efd22 100644
--- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl
@@ -64,8 +64,8 @@
 #                     Default "auto". B210 USRP: 400 us, bladeRF: 0 us.
 #####################################################################
 [rf]
-tx_gain = 80
-rx_gain = 40
+tx_gain = ${enb.tx_gain}
+rx_gain = ${enb.rx_gain}
 
 device_name = ${enb.rf_dev_type}
 
diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index 37175dd..a600f5e 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -37,8 +37,8 @@
 dl_earfcn = 2850
 % endif
 freq_offset = 0
-tx_gain = 80
-#rx_gain = 40
+tx_gain = ${ue.tx_gain}
+rx_gain = ${ue.rx_gain}
 
 #nof_radios = 1
 nof_antennas = ${ue.num_antennas}