enb: refactor ue_max_rate() and move helper function back to sub classes

It turned out that the Amarisoft and SRS eNB scheduler produces
slightly different maximum data rates for both UL and DL.

Change-Id: I30fa7006906d101c53ba586fb06bced3945aa960
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index e192530..33ee16b 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -232,4 +232,29 @@
         rfemu_obj = rfemu.get_instance_by_type(rfemu_cfg['type'], rfemu_cfg)
         return rfemu_obj
 
+    def ue_max_rate(self, downlink=True):
+        # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64
+        max_phy_rate_tm1_dl = { 6 : 3.5e6,
+                               15 : 11e6,
+                               25 : 18e6,
+                               50 : 36e6,
+                               75 : 55e6,
+                               100 : 75e6 }
+        max_phy_rate_tm1_ul = { 6 : 1.7e6,
+                               15 : 4.7e6,
+                               25 : 10e6,
+                               50 : 23e6,
+                               75 : 34e6,
+                               100 : 51e6 }
+        if downlink:
+            max_rate = max_phy_rate_tm1_dl[self.num_prb()]
+        else:
+            max_rate = max_phy_rate_tm1_ul[self.num_prb()]
+
+        # MIMO only supported for Downlink
+        if downlink and self._txmode > 2:
+            max_rate *= 2
+
+        return max_rate
+
 # vim: expandtab tabstop=4 shiftwidth=4