close Warning: Can't synchronize with repository "(default)" (/common/SVN/wimax does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 32 (modified by davide, 10 years ago) ( diff )

7. Case 2: Software Installation, Configuration and Operation

Fig 2-2) Case 2 WiMAX Base Station Configuration
No image "fig 2-2 121010_ WiMAXSystemOverview.jpg" attached to WiMAX/00

Fig 3-2) Case 2 Detailed WiMAX Base Station Configuration
No image "fig 3-2  121010_ WiMAXSystemOverview.jpg" attached to WiMAX/00

Fig 4-2) Case 2 WiMAX Software Configuration
No image "fig 4-2  121010_ WiMAXSystemOverview.jpg" attached to WiMAX/00

7.1 WiMAX OID and IP Address Assignment

Campus OID IP Range
WINLAB 44:51:DB:00:00:XX 10.3.0.XX
NECLabs 44:51:DB:00:01:XX 10.3.1.XX
BBN 44:51:DB:00:02:XX 10.3.2.XX
Stanford 44:51:DB:00:03:XX 10.3.3.XX
Poly 44:51:DB:00:04:XX 10.3.4.XX
UMass 44:51:DB:00:05:XX 10.3.5.XX
Columbia 44:51:DB:00:06:XX 10.3.6.XX
UColorado 44:51:DB:00:07:XX 10.3.7.XX
UWisconsin 44:51:DB:00:08:XX 10.3.8.XX
UCLA 44:51:DB:00:09:XX 10.3.9.XX

Each campus can have up to 127 basestations (each BS needs two addresses) and/or multiple ASN gateways. The basestations are assigned OIDs and IPs starting from 1 and counting up while ASN gateway machines are assigned IP addresses that are assigned starting from 254 and counting down. For example, first basestation in WINLAB gets IP address on primary controller of and the IP address for the networking card of while the gateway machine gets

Issue: Should all use BBN OID, since it is the only one offically regsitered? Also, that all MSs would use same OID?

7.2 Base Station Server Installation

7.2.1 Expected OS: Ubuntu 9.04

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 9.04
Release:        9.04
Codename:       jaunty

7.2.2 Setup Ethernet Interfaces

It is expected that there be 3 wired Ethernet interfaces named: eth0, eth1, eth2. You may need to edit /etc/udev/rules.d/70-persistent-net.rules to make the names

reflect the correct physical ports. The /etc/network/interfaces file should look similar to this:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# This interface connect to the Base Station

auto eth1
iface eth1 inet static

#This is the gateway interface, it should get a routeable address from DHCP

auto eth2
iface eth2 inet dhcp

#Reserved for future USE

auto eth0
iface eth0 inet static

7.2.3 Install Required Packages

  1. Configure apt/sources to include and Edit the /etc/apt/sources.list and add the following lines:
    deb karmic/
    deb jaunty main
  2. Update information based on the changed sources.list.
     sudo apt-get update
  3. Now install the ASN-GW software
    sudo apt-get install asn-gw0.9.0 click1.8.0 omf-wimaxrf-aggmgr-5.2 

This will install 333MB or so worth of packages. Please confirm that the most current packages are installed by using the command

 dpkg -l | egrep 'omf-|asn-gw|click' 

Please confirm the versions of omf-agggmgr-5.2 to be 6 and of omf-common-5.2 to be 4 otherwise you will experience starting the wimaxrf service. This is the expected output.

ii  omf-aggmgr-5.2                      ubuntu6                                  OMF Aggregate Manager
ii  omf-common-5.2                      ubuntu4                                  Common ruby classes for OMF

In case of wrong versions remove the the omf-common-5.2 and omf-aggmgr-5.2 packages and reinstall them.

apt-get --purge remove omf-aggmgr-5.2 omf-common-5.2
apt-get install omf-aggmgr-5.2
dpkg -l | grep omf-

To enable to wimaxrf service please create a link in the /etc/omf-aggmgr-5.2/enabled directory for the wimaxrf.yaml file from the /etc/omf-aggmgr-5.2/available folder.
If the 'enabled' folder doesn't exist there, please create it.

cd /etc/omf-aggmgr-5.2/enabled
ln -s ../available/wimaxrf.yaml .

Create Debian Package
Create Package Site

7.3 Setup NEC BTS

Please note: Do not restart BTS until all changes are complete. If you do happen to restart, you will have to use the serial interface to connect to the BTS.

7.3.1: Step 1 Configuring the IP

We'll need to adjust the ip's of both interfaces. They're managed via two independent files which exists on two different machines/ip combos.

  1. The "DSP" machine:
    1. Copy the attached networkenv.orbit file locally (to your console) and edit it's addresses to reflect your organisations Address Structure. If this is the first BTS in your organization your address should be of the form 10.3.X.1, where X is the numerical ID given to your group. You'll only need to edit the #MACO segment of information. You will also need to set the NAMESERVER flag to something reasonable like googles public DNS (, or a specfic DNS in your network. Note that we're using class B addresses.
      export INTERFACE_0=eth0
      export IPADDR_0=10.3.Y.1
      export NETMASK_0=
      export BROADCAST_0=
      export GATEWAY_0=10.3.YX.1
      export NAMESERVER_0=
    2. Copy the file to /flash/networkenv on the DSP machine (via SCP). The default IP of the DSP machine is
      scp networkenv.orbit root@
  2. The "Network" Machine
    1. Telnet to the N/W card at User root as the username, you will not be asked for a password.
    2. Edit the /etc/network/interfaces eth1 entry to organisations Address Structure. It should be of the form 10.3.Y.2, for the first BTS. The entry should look similar to:
      auto eth1
      iface eth1 inet static
      address 10.3.Y.2
      gateway 10.3.Y.1
  3. Finally you'll need to configure your own interface to be in the same subnet as the BS Ip's. For the first BS it should be of the form 10.3.X.254.

7.3.2 Step 2 Configure the BTS software

  1. ssh to the new IP of the DSP machine.
ssh !root@10.3.Y.1
  1. Use wiset commands below to correct configuration on the BTS:
    1. Enter these Verbatim
      wiset authgw_id 0x41534E47
      wiset authgw_port 0x08B7
      wiset asngw_id 0x41534E4757303030
      wiset asngw_dp_port  0x08B7
      wiset asngw_ep_port 0x08B7
      wiset bs_rx_port 0x08B7
      wiset frequency  2551500    or ??
      wiset bs_tx_power 40
      wiset bw_mode 0
      wiset dlul_ratio 2
      wiset ttg 296
      wiset rtg 168
      wiset framesync_mode 2
      wiset antenna_gain 0
    2. These commands require you to change the IP paramter specfied in hex. The IP should that of the console's eth1 interface (which speaks to the BTS).
      wiset authgw_ip 0x0A030047
      wiset asngw_dp_ip 0x0A030047
      wiset asngw_ep_ip 0x0A030047
    3. You will find your bsid (OID) on this page. Note remove the colons, and set the last two digits to reflect the IP of the DSP machine (e.g. the first one should be 01).
      wiset bsid 0x303030303030

After this process, the BS will require a reboot.

This site converts dot quad to hex.

7.4 Configuration of ASN-GW Controller and WiMAX RF Agg Mgr

Configuration of software both for the ASN-GW and the WiMAX BTS is done through a single yaml configuration file on the ASN.

To enable the features we will need to copy the wimaxrf.yaml from /etc/omf-aggmgr-5.2/available to /etc/omf-aggmgr-5.2/enabled/.

Edit this file change settings (if needed)

# NOTE: use only 'spaces' to indent !
# ('tab' indents are not supported by the ruby yaml parser used to read this file)
# This is the Config file for the WiMAXRF GridService
   file: '/defaults/reset.xml'

   if: eth1
   rcvport: 2231
   sndport: 2321
   id: ASNGW000
   tecnh: 3
   dsc: IP-Config-Mgmt


   bsid: 00:00:04:00:00:01
   frequency: 2590000  
      :omlServer: localhost
   database: /var/spool/asnctrl/wimax-clients.sql

Making changes in this file should propagate changes to the ASN software and the BTS (IDU) software via the init script:

Usage of init script:

  • init -wimax (verify)
  • init -wimax -f (force)
  • init -wimax -r (forces BTS parameters to default, except key parameters)

These are the files which are located in the /etc directory on the asn-gw machine.

In this section we will describe the changes required to the default configuration files for accommodating custom settings and IPs.


The points that need to be changed in the asnctrl.conf file are:

R6_BSID[0] = 00:00:04:00:00:00      // BSID allocated as per GENI
R6_BSAddress[0] = [10.3.Y.61]:2231  //IP address of the IDU
TunnelEndpoint = [10.3.Y.71]:0      //IP of the ASN - GW




No changes are required in this file.


This is an output file which shows the mapping of the client MAC address to the uplink and downlink GRE tunnel. This file does not need any configuration.


This file contains the mapping of the mac address to the service class. Sample entries are as shown below:

00:18:41:85:5e:a3       IP-Config-Mgmt
00:12:cf:b2:ad:9a       IP-Config-Mgmt
00:12:cf:b2:a4:e8       IP-Config-Mgmt
00:12:cf:b2:9c:73       IP-Config-Mgmt
00:1b:8b:54:02:9a       IP-Config-Mgmt
00:1b:8b:54:02:84       IP-Config-Mgmt
00:1d:e1:0a:5e:87       IP-Config-Mgmt


This file is located here: /usr/share/asngw/ IP addresses need to be updated here based on the settings used:

: ${DEV_R3:="eth0"}
: ${DEV_R6R4:="eth1"}
: ${MSADDR:=""}
: ${R3_NETWORK:=""}
: ${R3_ADDR:=""}   
: ${R6R4_NETWORK:=""}
: ${R6R4_ADDR:=""}  


No changes are required in this file.


R3LocalDevice = eth0
R4LocalDevice = eth1
R6LocalDevice = eth1

7.5 OMF/OML Installation and Configuration

Procedure provided by Evan Zhang in Summer, 2010: This page contains all the information you need to understand the current OMF lab setting and how it was built.

Fig 7) OMF/OML System Configuration
No image "fig 7  121010_ WiMAXSystemOverview.jpg" attached to WiMAX/00


Lab setup:

7.5.1 Installation Instructions

(You should always look at the reference instruction first,

Note: The OMF/OML 5.2 software(our current build target, 5.3 is on the way) mainly includes following packages(debian packages): 
omf-aggmgr-5.2(Aggregate Manager) omf-expctl-5.2(Experiment Controller) omf-resctl-5.2(Resource Controller) oml-server oml-client openfire_3.6.4_all.deb(XMPP server).
omf-aggmgr-5.2, omf-expctl-5.2, oml-server, openfire_3.6.4_all.deb could either be built on the same machine or dedicated machine for each.
omf-resctl-5.2 and oml-client should be installed on each experiment node. We choose to build omf-aggmgr-5.2, omf-server, openfire_3.6.4_all.deb in one machine
(actually and omf-expctl-5.2 in another machine(actually VM:
For the internal test purpose, we made two kinds of the experiment node: VM nodes and physical nodes. VMs are used for the purpose of quick experiment test(without disk loading).
Physical nodes are used for testing disk image loading. For the network design, OMF requires that AM, EC and all the nodes are IP connected as control path. And between nodes 
there should be experiment data path, either through wired, wifi, or wimax. For our current setting, two VM nodes are wired through eth1 as experiment data path. The physical 
node 3 is a NC10 sumsung netbook which is a wimax enbaled node, so the data path suppose to be through our wimax station. 

7.5.2 Installation of the Aggregate Manager VM

Network Setup

  • Different from the reference instruction, we also have two interfaces eth0 and eth1 on AM machine. eth0 is control interface with internet accessibility and

eth1 is used to run our own DHCP server for the disk image loading purpose. Both eth0 and eth1 have fixed IPs and domain names assigned by GPOlab's infrastructure.

Configuring dnsmasq (DHCP, DNS and TFTP server)

  • edit /etc/dnsmasq.conf and I add the following lines at the bottom of the file:
# Added by Evan for OMF installation
dhcp-option=121,,     <----- for dhcp assigned IP to ping, please refer to for details
  • create a new file /etc/dnsmasq.d/testbed.conf and add your node DHCP details here:
  • /etc/init.d/dnsmasq restart

Set up PXE booting

  • Follow the reference instruction and change the related IPs and MACs mentioned in the instruction to ours.

Inventory installation

  • Follow the reference instruction and manually populate the inventory
One testbed info is added to table 'testbeds' with domain name 'sandbox1'
Three nodes info is added to the inventory (need to update four tables for each node: devices, motherboards, locations, nodes). They are,

node[1,1]: control IP:  (vm)
node[1,2]: control IP:  (vm) 
node[1,3]: control IP: (NC10 physical node)

For more detailed please go to:, user:omf, pw:omf

7.5.3 Configuring the Aggregate Manager (AM)

  • Follow the reference instruction and carefully change the IPs to ours.
  • Test the CMC (Dummy) service with
 wget -qO-

                        <node name='n_1_1' x='1' y='1' state='POWERON'/>
                        <node name='n_1_2' x='1' y='2' state='POWERON'/>
                        <node name='n_1_3' x='1' y='3' state='POWERON'/>

7.5.4 Installing the Experiment Controller (EC)

  • We can not find /etc/omf-expctl-5.2/nodehandler.yaml by following the reference instruction, we need to do,
sudo cp /usr/share/doc/omf-expctl-5.2/examples/nodehandler.yaml /etc/omf-expctl-5.2/nodehandler.yaml
  • My nodehandler.yaml:
      :domain: 'sandbox1'
        :path: ["../repository", "/usr/share/omf-expctl-5.2/repository"]

        :url: ''

        :host: ''

        :type: 'xmpp'
          :server: ''
          :password: 'gpo2010'

        :path: ['../repository']
        :type: 'mock'

7.5.5 Installing and Configuring XMPP

Installing Openfire

'wget' doesn't work, should be
wget -O openfire_3.6.4_all.deb

username: admin, password: gpo2010

Creating the system nodes


7.5.6 Preparing the Experiment Node VMs

My nodeagent.yaml:

# This is an example configuration for the Resource Controller at NICTA
# NOTE: use only 'spaces' to indent !
# ('tab' indents are not supported by the ruby yaml parser used to read this file)
  # Communication settings 

    # How many seconds can we go without a message from the node handler
    # before we assume we have lost connectivity and need to reset
    handler_timeout: 40
    # Number of consecutive handler timeouts before a 'handler lost'
    # will be declared.
    timeout_count: 2
    # Number of seconds to wait between consecutive RETRY requests
    retry_interval: 3
    # Number of seconds between consecutive HEARTBEAT messages
    heartbeat_interval: 10
    # Pause between resending previous messages
    resend_interval: 0.1
    server_port: 9026
    # local_if: Control Interface used with TCPServer Comm.
    local_if: eth0

  • For physical nodes (e.g. NC10 netbooks), we need to load disk image to it. How? We have two ways,
A. Run frisbee server and client manually:

1) Download the target disk image from Winlab. Gautam scped nc10-wimax.ndz to
2) Boot NC10 into pxe image. Refer to 'Set up PXE booting' section of this document.
3) Run frisbee server at AM server(herculaneum): > frisbeed -p 7000 -i -m /var/lib/omf-images-5.2/nc10-wimax.ndz          <------Important: -i option must be specified here
4) Run frisbee client at NC10(a shell is offered by pxe image): > frisbee -p 7000 -i -m /dev/sda                          <------At both sides -m option IP could be replaced by a muticast IP e.g. 
B. Load disk image through Experiment Controller       

1) Same as A.1)
2) At Experiment Controller, run: > omf load "[1,3]" nc10-wimax.ndz

7.6 OMF/OML Operations and Testing

7.6.1 Test Experiment

At this point, you may want to run a test experiment. We choose to run a modified(get ride of the wireless configuration) hello world experiment with our two VM nodes. Based on this page, we developed our experiment description,

 # A) Define the 'source' group, which has the unique node [1,1]
 #     Nodes in this group will execute the application 'test:proto:udp_sender'
 defGroup('source', [1,1]) {|node|
   node.prototype("test:proto:udp_sender", {
     'destinationHost' => '',
     'localHost' => '',
     'packetSize' => 256, # in Bytes
     'rate' => 8192 # in bits/sec
   # mode can be 'adhoc' or 'managed' or 'master'
# Commented out by Evan for wired test = "master" 
 # B)  Define the 'sink' group, which has the unique node [1,2]
 #     Nodes in this group will execute the application 'test:proto:udp_receiver'
 defGroup('sink', [1,2]) {|node|
   node.prototype("test:proto:udp_receiver" , {
     'localHost' => ''
   # mode can be 'adhoc' or 'managed' or 'master'
# Commented out by Evan for wired test = "managed" 
 # C)  Configure the wireless interfaces of All the Nodes involved in 
 #     this experiment

# Commented out by Evan for wired test { |w| { |w|
   #w.type = 'g' = "6" 
   #w.essid = "helloworld" 
   w.ip = "%192.168.0.%y" # the '%' triggers some substitutions
 # D)  When all the nodes are turned On and the all the applications
 #     are installed and ready, we can start to perform the experiment
 whenAllInstalled() {|node|
   wait 30 
   wait 20

You can run the experiment by doing:

> omf exec /path/to/hello_wire.rb

When I first ran hello_wired.rb experiment, I encountered a error at the resource controller side saying:

From /var/log/omf-resctl-5.2.log

2010-08-11 11:11:04 DEBUG nodeAgent::EthernetDevice: configure cmd: /sbin/ifconfig exp0 netmask
2010-08-11 11:11:04 ERROR nodeAgent::EthernetDevice: While configuring ip with - CMD reply is: ''

Then I found out that in source file '/usr/share/omf-resctl-5.2/omf-resctl/omf_agent/agentCommands.rb', there is mapping between net.e0 ←→ exp0,

So I changed it to net.e0 ←→ eth1 in order for the experiment description to assign IP to eth1.

Now I can run our first experiment successfully.

7.6.2 Instrumenting an Experiment

Basically, you need to insert some code into your application's source code to utilized the measurement library offered by OML.
Then the measurement data will automatically collected and sent to OML server during the runtime of your experiment.

For more detailed, please refer to:

7.7 Operations and Testing

7.7.1 Login to Base Station Server

Login through the console on the Base Station Server (ASN-GW) and test the following.

Verify operation of asnctrl

ps -elf | grep asnctrl

If the asnctrl process is not running then we'll start is manually

> asn-gw stop
> asn-gw start
  1. The BTS should be reachable from the ASN-GW with the default IP setting:
    • ping the BTS interface; it was assigned the fixed IP
    • measure the round trip times
  1. Power cycle the BTS through the use of stop and start scripts.
    • Perform a hard reset if required (if updated parameter values are not reflected).
    • There should also be a green light on the IDU after a software power cycle of the IDU.
    • The software power cycle can be preformed by the following commands:
      /etc/init.d/asn-gw stop
      /etc/init.d/asn-gw start
  1. Ping the outside interface and see if the DMZ gateway is reachable from the ASN-GW

After successful completion we know that the ASN is able to send traffic both downlink to the IDU and outbound towards the internet.

7.7.2 Login to BTS

  1. To login:


  1. Power cycle the BTS through the use of stop and start scripts.
    • Perform a hard reset if required (if updated parameter values are not reflected).
    • There should also be a green light on the IDU after a software power cycle of the IDU.
    • The software power cycle can be preformed by the following commands:
      /etc/init.d/asn-gw stop
      /etc/init.d/asn-gw start

7.7.3 ASN GW Operation

To control the WiMAX base station, run the stop and start scripts as follows:

Start script:

/etc/init.d/snmpd start
/etc/rc.d/init.d/trapctrl start
sleep 1
/etc/rc.d/init.d/asnctrl start
sleep 1
/etc/rc.d/init.d/epctrl start
#sleep 1

Stop script:

/etc/rc.d/init.d/epctrl stop
/etc/rc.d/init.d/asnctrl stop
/etc/rc.d/init.d/trapctrl stop
/etc/init.d/snmpd stop
pkill -9 asnctrl
pkill -9 epctrl

A few simple checks to make sure things are working:

  1. There should be 3 running processes:
    root      3128     1  0 19:10 ?        00:00:00 trapctrl
    root      3137     1  0 19:10 ?        00:00:02 asnctrl
    root      3227     1  0 19:10 ?        00:00:02 epctrl
  1. Some log files should start filling up in /var/log:
    1. asnctrl.log
    2. epctrl.log

7.7.4 RF Transmission

  1. Scan on the client and check if the basestation's signal is seen using the procedure described below. If we are able to connect step 2 can be ignored. Else try step 2.

Configure driver at the client to ensure all required parameters are configured correctly.

  • Change the /etc/asnctrl_service_class.conf to include client and service class information.
  • Possibly include SSID to match with the BTS
  • Check center frequency to match with the BTS
  • Enable (locks) if any
  • Disable wifi if operating on a dual mode card (since quite a few times they work in a mutually exclusive mode)
  • Enable a static IP setting at the client to allow for baseline IP connectivity
  1. If possible sweep the spectrum through an analyzer to determine proper transmission at the center frequency.
    • Vary transmit power at the BTS using wiset calls on the BTS or through the web interface and then measure the corresponding changes on the analyzer.

7.7.5 CLICK Modular Router Monitoring

7.7.6 Mobile Station Registration

7.7.7 Traffic Monitoring

Install wireshark on ethernet interfaces.

7.7.8 Login to OMF as Experimenter

7.7.9 Use of OMF to Configure Service

7.7.10 Use of OML to Monitor BTS

7.7.11 Use of OML to Monitor Service

7.8 List of Software Packages

  1. OMF Aggregate Manager 5.2 Version 6
  2. OMF Common 5.2 Version 4
  3. ASN Gateway Package Current Release 1.0 Prior Release 0.9
  4. Wimax RF Aggregate Manager 5.2 Version 12 Prior Release 9
  5. Click Router Current Release 1.8 Prior Release 1.6
  6. Wimaxcu Current Release 1.0 Prior Release 1.0 - Client Package
  7. Wimax GPS OML Client Current Release 1.0 Prior Release 1.0 - Client Package

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.