== Current Testbed Operational Status == === '''NOTE:''' CORNET recently upgraded the node image to 64 bit Ubuntu 13.10 with !GnuRadio 3.7.1 and UHD 3.5.4 (1st and 2nd floor; floors 3 and 4 in progress). In the unlikely case this upgrade has broken your research, the old image can still be installed. Please contact the CORNET administration for details. === All CORNET nodes currently have private IP addresses, and are behind the CORNET firewall. However, the ssh port for each individual node is still directly accessible through the firewall. To access the CORNET nodes you must ssh to the CORNET gateway, ''128.173.221.40'', using a specific port that is unique to each CORNET node. The CORNET gateway redirects the ssh traffic to the appropriate CORNET node ssh server. For information on the physical locations of the RF portion of the node, see here: [wiki:CORNET/NetworkTopography CORNET Node Location and Status Information][[BR]] The port list is as follows, where NodeX-Y refers to node Y on floor X: ||'''Floor One'''||Port||Internal IP|| ||'''Node1-1'''||7001||192.168.1.11|| ||'''Node1-2'''||7002||192.168.1.12|| ||'''Node1-3'''||7003||192.168.1.13|| ||'''Node1-4'''||7004||192.168.1.14|| ||'''Node1-5'''||7005||192.168.1.15|| ||'''Node1-6'''||7006||192.168.1.16|| ||'''Node1-7'''||7007||192.168.1.17|| ||'''Node1-8'''||7008||192.168.1.18|| ||'''Node1-9'''||7009||192.168.1.19|| ||'''Node1-10'''||7010||192.168.1.20|| ||'''Node1-11'''||7011||192.168.1.21|| ||'''Node1-12'''||7012||192.168.1.22|| ||'''Floor Two'''||Port||Internal IP|| ||'''Node2-1'''||7013||192.168.1.23|| ||'''Node2-2'''||7014||192.168.1.24|| ||'''Node2-3'''||7015||192.168.1.25|| ||'''Node2-4'''||7016||192.168.1.26|| ||'''Node2-5'''||7017||192.168.1.27|| ||'''Node2-6'''||7018||192.168.1.28|| ||'''Node2-7'''||7019||192.168.1.29|| ||'''Node2-8'''||7020||192.168.1.30|| ||'''Node2-9'''||7021||192.168.1.31|| ||'''Node2-10'''||7022||192.168.1.32|| ||'''Node2-11'''||7023||192.168.1.33|| ||'''Node2-12'''||7024||192.168.1.34|| ||'''Floor Three'''||Port||Internal IP|| ||'''Node3-1'''||7025||192.168.1.35|| ||'''Node3-2'''||7026||192.168.1.36|| ||'''Node3-3'''||7027||192.168.1.37|| ||'''Node3-4'''||7028||192.168.1.38|| ||'''Node3-5'''||7029||192.168.1.39|| ||'''Node3-6'''||7030||192.168.1.40|| ||'''Node3-7'''||7031||192.168.1.41|| ||'''Node3-8'''||7032||192.168.1.42|| ||'''Node3-9'''||7033||192.168.1.43|| ||'''Node3-10'''||7034||192.168.1.44|| ||'''Node3-11'''||7035||192.168.1.45|| ||'''Node3-12'''||7036||192.168.1.46|| ||'''Floor Four'''||Port||Internal IP|| ||'''Node4-1'''||7037||192.168.1.47|| ||'''Node4-2'''||7038||192.168.1.48|| ||'''Node4-3'''||7039||192.168.1.49|| ||'''Node4-4'''||7040||192.168.1.50|| ||'''Node4-5'''||7041||192.168.1.51|| ||'''Node4-6'''||7042||192.168.1.52|| ||'''Node4-7'''||7043||192.168.1.53|| ||'''Node4-8'''||7044||192.168.1.54|| ||'''Node4-9'''||7045||192.168.1.55|| ||'''Node4-10'''||7046||192.168.1.56|| ||'''Node4-11'''||7047||192.168.1.57|| ||'''Node4-12'''||7048||192.168.1.58|| For example, to access node1-3, ssh to cornet.wireless.vt.edu (''128.173.221.40'') using port 7003. === FCC Authorization === CORNET operates under the authorization of FCC designated call sign [https://apps.fcc.gov/els/GetAtt.html?id=134115&x=. WF2XRP] All users are responsible for ensuring that their research is conducted within the limitations of the above license. The permitted bands of operation are listed in the table below: ||'''Lower Bound (MHz)'''||'''Upper Bound (MHz)'''|| ||138||144|| ||150.5||156|| ||157.45||161.575|| ||162.0375||174|| ||450||512|| ||764||862|| ||776||787|| ||788||793|| ||824||849|| ||869||894|| ||1850||1910|| ||1930||1990|| ||3400||3600|| === Accessing the network from Windows === From a windows machine, an SSH client is required in order to remotely access the CORNET nodes individually. A popular windows SSH client is [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY]. === Accessing the network from Linux === From a linux machine simply issue the following command where the port is 7000 + the node # you want to log into. {{{ # ssh -X @128.173.221.40 -p <7000 + node#> }}} Note: the -X allows X11 forwarding for running X11 applications remotely. For example, to login to CORNET node1-2 with the login name "testuser" do the following: {{{ # ssh -X testuser@128.173.221.40 -p 7002 }}} To login to CORNET node1-3 with the login name "testuser" do the following: {{{ # ssh testuser@128.173.221.40 -p 7003 }}} === Accessing Nodes via NX Server (Linux and Windows) === Each CORNET node runs a local NX server program for encrypted remote desktop forwarding. Users can download the NX client software for free from the NX website (we recommend version 3.5 for Linux): [http://www.nomachine.com/download NX Client] After downloading and installing the binaries, start the NX Client software and set up a new connection with the following parameters: '''Host''': cornet.wireless.vt.edu [[BR]] '''Port''': 70xx (Each node uses a different tunneling port from the list above)[[BR]] '''Desktop''': Unix,Gnome,ADSL[[BR]] '''Display''': Available area[[BR]] Select 'OK' and enter your user name and password when prompted. You should now have a remote desktop window connected to the specified node. '''When ending your session, select "End" instead of "Disconnect" to close all running programs. Users who leave waveforms running after logging off risk losing access privileges.''' === NX-Server "Address Already in Use" Error === When attempting to access multiple nodes from the same remote machine, the NX server will fail to negotiate a unique X11 display connection on the client machine, and will return an error stating that the display address is already in use. To fix this problem, SSH into the problem node from a local shell: {{{ # ssh [user]@cornet.wireless.vt.edu -p [port] }}} In the /tools/ directory, execute the script called "NX_offset" as root {{{ #cd /tools/ # sudo ./NX_offset }}} If the /tools/ directory is not already mounted, you can mount it manually: {{{ # sudo mount 192.168.1.102:/tools /tools }}} === Obtaining Remote Access Login Information === To obtain login credentials for the CORNET nodes, please email the CORNET administration at [vtcornet@gmail.com] === Working from your User directory === Each registered user receives a folder on a dedicated NFS drive which allows them to store and access code locally. Each CORNET node mounts the NFS directories at boot time and you may access your directory on each node at /users/*my_login*. In the interest of open and collaborative development, each user has read access to the other user folders and read/write access to their own folder. You may upload files into your NFS directory in the following way: - Verify you can login to the node by following the above ssh procedures. - Change to your user directory: {{{ # cd /users/*my_login* }}} - Open a new local shell (ctrl+shift+t in Ubuntu) - Change to the directory which contains the files to copy: {{{ # cd /path/to/myfiles }}} - Use the SCP command to copy the local directory "mydir" to the remote node: {{{ # scp -r -P [Port] mydir *my_login*@cornet.wireless.vt.edu:/users/*my_login* }}} Note: the -P MUST be capitalized. -r means recursive copy, and is used for copying directories. You do not need to use -r to copy single files. Once you have copied the files to your user directory, verify the copy was successful by issuing the "ls" command in the first shell you opened. You may now directly work with the files in your user directory. === Using OSSIE with CORNET === In order to place custom OSSIE waveforms and components on the nodes, first follow the above procedures to copy the needed directories to your CORNET user directory. When finished, ssh into a node and browse to your user directory. In order for OSSIE and ALF to recognize your components, they must be installed to the node. To install a component or waveform, simply enter the component or waveform directory and issue the following commands. Only waveforms and components developed using OSSIE 0.8.0 and later are supported: {{{ # sudo ./reconf <- Only needed if using a different version of OSSIE than 0.8.1 # sudo ./configure # make # sudo make install }}} This will compile your code and place the binaries in the /sdr/dom/bin and /sdr/dom/waveforms directories. You can then start the waveforms using the c_wavloader command line tools or from the OEF/ALF environment. Provided you are logged in with X11 forwarding enabled, you can load the Eclipse and ALF GUI's on a remote node with the following command: {{{ # cd ~/eclipse # sudo ./eclipse # ALF }}} === Time Synchronization === CORNET uses a dedicated NTP server to provide time synchronization between the nodes, but it is not enabled by default. To enable time synchronization, log into the node(s) and run the following command: {{{ # sudo ntpdate 192.168.1.103 }}} It may take up to a minute for the nodes to synchronize, depending on network congestion. To test if the nodes are synchronized, view the output of the following command - it should give a value within a second or two on each node (the difference should only be the amount of time between executing the command on each node): {{{ # date +%s }}} === Node Software === Each node contains the following software: * Ubuntu Linux 10.04 Client Version * GNU Radio 3.3.0 * OSSIE 0.8.2