<p>ninjab3s <strong>uploaded patch set #4</strong> to this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Introduce Android UEs as new modems<br><br>To expand the test capacities we would like to introduce<br>Android UEs as new modems. Currently the following tests<br>are supported:<br>- Ping<br>- iPerf3 DL/UL<br>- RRC Mobile MT Ping<br><br>In the following is a small description.<br><br>Prerequisites:<br>    - Android UE<br>        - Rooted (Ping, iPerf, RRC Idle MT Ping)<br>        - Qualcomm baseband with working diag_mdlog (RRC Idle MT Ping)<br>        - iPerf3<br>        - Dropbear<br>    - OGT Slave Unit<br>        - Android SDK Platform-Tools<br>          (https://developer.android.com/studio/releases/platform-tools#downloads)<br>        - Pycrate (https://github.com/P1sec/pycrate)<br>        - SCAT<br>            clone https://github.com/bedrankara/scat/ & install dependencies<br>            checkout branch ogt<br>            symlink scat (ln -s ~/scat/scat.py /usr/local/bin/scat)<br><br>Infrastructure explaination:<br>The Android UEs are connected to the OGT Units via USB. We<br>activate tethering and set up a SSH server (with Dropbear).<br>We chose tethering over WiFi to have a more stable route<br>for the ssh connection. We forward incoming connections to<br>the OGT unit hosting the Android UE(s) on specific ports<br>to the UEs via iptables. This enables OGT to issue commands<br>directly to the UEs. In case of local execution we use ADB<br>to issue commands to the AndroidUE. The set up was tested<br>with 5 Android UEs connected in parallel but it should be<br>scalable to the number of available IPs in the respective<br>subnet. Furthermore, we need to cross compile Dropbear<br>and iPerf3 to use them on the UEs. These tools have to be<br>added to the $PATH variable of the UEs.<br><br>Examplary set up:<br>In this example we have two separate OGT units (master<br>and slave) and two Android UEs that are connected to the<br>slave unit. An illustration may be found here: https://ibb.co/6BXSP2C<br><br>On UE 1:<br>ip address add 192.168.42.130/24 dev rndis0<br>ip route add 192.168.42.0/24 dev rndis0 table local_network<br>dropbearmulti dropbear -F -E -p 130 -R -T /data/local/tmp/authorized_keys  -U 0 -G 0 -N root -A<br><br>On UE 2:<br>ip address add 192.168.42.131/24 dev rndis0<br>ip route add 192.168.42.0/24 dev rndis0 table local_network<br>dropbearmulti dropbear -F -E -p 131 -R -T /data/local/tmp/authorized_keys  -U 0 -G 0 -N root -A<br><br>On OGT slave unit:<br>sudo ip link add name ogt type bridge<br>sudo ip l set eth0 master ogt<br>sudo ip l set enp0s20f0u1 master ogt<br>sudo ip l set enp0s20f0u2 master ogt<br>sudo ip a a 192.168.42.1/24 dev ogt<br>sudo ip link set ogt up<br><br>Now we have to manually connect to every UE from OGT Master<br>to set up SSH keys and verify that the setup works.<br>Therefore, use:<br>ssh -p [UE-PORT] root@[OGT SLAVE UNIT's IP]<br><br>Finally, to finish the setup procedure create the<br>remote_run_dir for Android UEs on the slave unit like<br>following:<br>mkdir /osmo-gsm-tester-androidue<br>chown jenkins /osmo-gsm-tester-androidue<br><br>Example for modem in resource.conf:<br>- label: mi5g<br>  type: androidue<br>  imsi: '901700000034757'<br>  ki: '85E9E9A947B9ACBB966ED7113C7E1B8A'<br>  opc: '3E1C73A29B9C293DC5A763E42C061F15'<br>  ue_serial: '8d9d79a9'<br>  apn:<br>    apn: 'srsapn'<br>    mcc: '901'<br>    mnc: '70'<br>    select: 'True'<br>    auth_algo: 'milenage'<br>  features: ['4g', 'dl_qam256', 'qc_diag']<br>  run_node:<br>    run_type: ssh<br>    run_addr: 100.113.1.170<br>    ssh_user: jenkins<br>    ssh_addr: 100.113.1.170<br>    ue_ssh_port: 130<br>    adb_serial_id: '8d3c79a7'<br><br>Example for default-suites.conf:<br>- 4g:ms-label@mi5g+srsenb-rftype@uhd+mod-enb-nprb@25+mod-enb-txmode@1<br><br>Change-Id: I79a5d803e869a868d4dac5e0d4c2feb38038dc5c<br>---<br>M src/osmo_gsm_tester/core/process.py<br>M src/osmo_gsm_tester/core/schema.py<br>A src/osmo_gsm_tester/obj/android_apn.py<br>A src/osmo_gsm_tester/obj/android_bitrate_monitor.py<br>A src/osmo_gsm_tester/obj/android_host.py<br>M src/osmo_gsm_tester/obj/iperf3.py<br>M src/osmo_gsm_tester/obj/ms.py<br>A src/osmo_gsm_tester/obj/ms_android.py<br>A src/osmo_gsm_tester/obj/qc_diag.py<br>M src/osmo_gsm_tester/obj/run_node.py<br>A sysmocom/scenarios/ms-label.conf<br>A utils/bin/osmo-gsm-tester_androidue_conn_chk.sh<br>A utils/bin/osmo-gsm-tester_androidue_diag_parser.sh<br>13 files changed, 848 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/02/21302/4</pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302">change 21302</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I79a5d803e869a868d4dac5e0d4c2feb38038dc5c </div>
<div style="display:none"> Gerrit-Change-Number: 21302 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: ninjab3s <nils.fuerste@softwareradiosystems.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newpatchset </div>