suites: aoip_debug: Start GPRS services

Change-Id: I991d0329ff068aaa7c101a5f55ad40616faac121
diff --git a/suites/aoip_debug/interactive.py b/suites/aoip_debug/interactive.py
index cad68b7..312083a 100755
--- a/suites/aoip_debug/interactive.py
+++ b/suites/aoip_debug/interactive.py
@@ -2,30 +2,40 @@
 from osmo_gsm_tester.testenv import *
 hlr = suite.hlr()
 bts = suite.bts()
+pcu = bts.pcu()
 mgcpgw = suite.mgcpgw(bts_ip=bts.remote_addr())
 mgw_bsc = suite.mgw()
 stp = suite.stp()
+ggsn = suite.ggsn()
+sgsn = suite.sgsn(hlr, ggsn)
 msc = suite.msc(hlr, mgcpgw, stp)
 bsc = suite.bsc(msc, mgw_bsc, stp)
+
 modems = suite.modems(int(prompt('How many modems?')))
 
+bsc.bts_add(bts)
+sgsn.bts_add(bts)
+
 hlr.start()
 stp.start()
+ggsn.start()
+sgsn.start()
 msc.start()
 mgcpgw.start()
 mgw_bsc.start()
-
-bsc.bts_add(bts)
 bsc.start()
 
 bts.start()
+print('Waiting for bts to be ready...')
+wait(bts.ready_for_pcu)
+pcu.start()
 
 for m in modems:
   hlr.subscriber_add(m)
   m.connect(msc.mcc_mnc())
 
 while True:
-  cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>')
+  cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>, ussd <command>, data-attach, data-wait, data-detach, data-activate')
   cmd = cmd.strip().lower()
 
   if not cmd:
@@ -115,5 +125,34 @@
         response = ms.ussd_send(ussd_cmd)
         print('modem %s: response=%r' % (ms.name(), response))
 
+  elif cmd.startswith('data-attach'):
+    if len(params) != 1:
+      print('wrong format')
+      continue
+    for ms in modems:
+        print('modem %s: attach' % ms.name())
+        ms.attach()
+        wait(ms.is_attached)
+        print('modem %s: attached' % ms.name())
+
+  elif cmd.startswith('data-detach'):
+    if len(params) != 1:
+      print('wrong format')
+      continue
+    for ms in modems:
+        print('modem %s: detach' % ms.name())
+        ms.attach()
+        wait(lambda: not ms.is_attached())
+        print('modem %s: detached' % ms.name())
+
+  elif cmd.startswith('data-activate'):
+    if len(params) != 1:
+      print('wrong format')
+      continue
+    for ms in modems:
+        print('modem %s: activate' % ms.name())
+        response = ms.activate_context()
+        print('modem %s: response=%r' % (ms.name(), response))
+
   else:
       print('Unknown command: %s' % cmd)
diff --git a/suites/aoip_debug/suite.conf b/suites/aoip_debug/suite.conf
index d75cacb..2f36e1d 100644
--- a/suites/aoip_debug/suite.conf
+++ b/suites/aoip_debug/suite.conf
@@ -1,6 +1,6 @@
 resources:
   ip_address:
-  - times: 6
+  - times: 8
   bts:
   - times: 1
   modem: