== COTS UE on ORBIT Node [[Include(Documentation/Short/Prereq)]] === Compatibility In this tutorial we will use nodes equipped with Netgear AC341u LTE dongles. The basestation in use will depend on which one you have configured. The other tutorials specify which combinations are known to work well, as well as which nodes are close enough physically. This particular LTE device operates only on the following Bands. * TX * Band 25: 1850-1915 MHz * Band 26: 814-849 MHz * Band 41 (TDD): 2496-2690 MHz * RX * Band 25: 1930-1995 MHz * Band 26: 859-894 MHz * Band 41 (TDD): 2496-2690 MHz === Imaging === The image used for this experiment is 'baseline.ndz'. During a normal experiment using OMF, the following actions are scripted and automated. This is a look at the steps involved in something as simple as starting an LTE connection behind the scenes. You will run the following commands on node7-1, node1-7, and node19-3 in the Grid. After connecting to the grid console: 1. {{{ omf load -i baseline.ndz -t node7-1.grid.orbit-lab.org }}} 1. {{{ omf tell -a on -t node7-1.grid.orbit-lab.org }}} 1. It will take roughly 60 seconds to come up. 1. {{{ ssh root@node7-1.grid.orbit-lab.org }}} 1. repeat the above commands, replacing "node7-1" with the node name in question. === Commands on the node === ==== Loading the driver ==== By default ORBIT nodes do not enable any wireless devices. Therefore, the first thing when manually configuring the device is to load drivers; the following 2 lines will load the Sierra wireless Netgear LTE dongle:[[BR]] {{{ modprobe GobiSerial modprobe GobiNet }}} ==== Connecting to the device ==== Control of the device is done over the serial port that is created by the driver (in this case '''/dev/ttyUSB1''') through a sequence of AT commands and you can use your favorite serial port communication program to talk to it; in this tutorial we will use '''Minicom''. To start to program execute: {{{ minicom -D /dev/ttyUSB1 }}} ==== Managing the LTE connection ==== Once in minicom, one can issue series of commands to the LTE modem typically consisting of: a.) Configure modem for pass-through mode: {{{ AT!ippassthrough? }}} It should return '''1''' . If it does not, run the following commands: 1. {{{ AT!ippassthrough=1 }}} 1. {{{ AT!entercnd="A710" }}} 1. {{{ AT!dxcfg=profile,Autoconnect,Never }}} 1. {{{ AT!reset }}} which will reset the modem. b.) {{{ AT!entercnd="A710" }}} You should see {{{ OK }}} c.) Connect to the basestation: {{{ AT!dxcfg=wwan,connect,11 }}} You should see {{{ OK }}} shortly followed by {{{ $QCRMCALL: 1, V4 }}} d.) Check the status of the connection: {{{ at!gstatus? }}} Will return a status like: {{{ at!gstatus? !GSTATUS: Current Time: 10049 Temperature: 42 Bootup Time: 0 Mode: ONLINE System mode: LTE PS state: Attached LTE band: B25 LTE bw: 10 MHz LTE Rx chan: 8365 LTE Tx chan: 26365 EMM state: Registered Normal Service RRC state: RRC Connected IMS reg state: No Srv RSSI (dBm): -83 Tx Power: 0 RSRP (dBm): -117 TAC: 0001 (1) RSRQ (dB): -10 Cell ID: 01A2D001 (27447297) SINR (dB): 1.6 }}} The LTE link is established. Exit Minicom by **PRESSING** {{{ Ctrl+A followed by x}}}, then {{{enter}}} to select '''OK''' option. ==== Testing the connection ==== Once the modem is connected, IP address has to be assigned to the newly created Ethernet device (in this case '''eth2'''): {{{ dhcpcd eth2 }}} The node should get an address in the 192.168.3.0/24 subnet (any existing dhcpd instance on eth2 has to be killed). Once node gets IP address, routing tables need to be set so that some of traffic through will go out over the newly established link e.g. to send all the traffic through LTE link: {{{ route add default eth2 }}} Once routing tables are adjusted, ICMP can be used to test connectivity with the default gateway: {{{ ping 192.168.3.1 }}} resulting in: {{{ root@node1-7:~# ping 192.168.3.1 PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data. 64 bytes from 192.168.3.1: icmp_seq=1 ttl=64 time=44.9 ms 64 bytes from 192.168.3.1: icmp_seq=2 ttl=64 time=42.8 ms }}} The ping can be canceled with {{{Ctrl+C}}}. More elaborate link performance test can be done by using '''iperf''' between multiple nodes that are connected to the basestation. ==== Reconnecting the client ==== Use minicom (or any other serial port program) to issue a set of AT commands to reset the connection. Commands are: {{{ AT!reset }}} (NOTE: after the AT!reset command the minicom will display the popup window that the connection was lost- one has to wait for the pop-up to go away before proceeding) {{{ AT!entercnd="A710" AT!dxcfg=wwan,connect,11 }}} The output should look like: {{{ root@node1-7:~# minicom -D /dev/ttyUSB1 Welcome to minicom 2.7 OPTIONS: I18n Compiled on Jan 1 2014, 17:13:19. Port /dev/ttyUSB1, 06:02:02 Press CTRL-A Z for help on special keys AT OK AT!reset OK AT!entercnd="A710" OK AT!dxcfg=wwan,connect,11 OK $QCRMCALL: 1, V4 at!gstatus? !GSTATUS: gets the IP address, de Current Time: 58 Temperature: 28 Bootup Time: 6 Mode: ONLINE System mode: LTE PS state: Attached LTE band: B25 LTE bw: 10 MHz LTE Rx chan: 8365 LTE Tx chan: 26365 EMM state: Registered Normal Service RRC state: RRC Connected IMS reg state: No Srv RSSI (dBm): -69 Tx Power: -33 RSRP (dBm): -90 TAC: 0001 (1) RSRQ (dB): -5 Cell ID: 01A2D001 (27447297) SINR (dB): 21.2 OK }}} Once connection is reset, dhcp lease needs to be renewed and new default route added again; if there is already dhcpd session it needs to be terminated: {{{ root@node1-7:~# dhcpcd eth2 err, eth2: dhcpcd already running on pid 2071 (/var/run/dhcpcd-eth2.pid) root@node1-7:~# kill 2071 root@node1-7:~# dhcpcd eth2 root@node1-7:~# dhcpcd.sh: interface eth2 has been configured with new IP=192.168.3.2 root@node1-7:~# route add default eth2 root@node1-7:~# }}}