wiki:Old/WiMAX/02
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 29 (modified by hmussman, 10 years ago) ( diff )

4. Software

4.1 NEC BTS

The NEC BTS comes with firmware that sets its function; it does not need to be installed. The current version is (version).

However, that are many parameters that must be configured; see (reference below).

4.2 ASN-GW Controller

The ASN-GW controller code is provided by NEC, and is based upon their commercial code.

It was originally written in c, c++ and shell.

It is a much simplified version of their commercial ASN-GW code, with several major functions removed, including: all AAA; handoff managment.

Three components are provided by NEC, in binary only, totaling approx 25MB:

  • trapctrl - used for (snmp) alerts management (not currently used)
  • asnctrl - Daemon process that is in charge of R6 control functions.
  • opens a TCP port and listens; provides a well-defined API
  • see (* updated document) for details of the API
  • controls epctrl to setup data path

  • epctrl - Daemon process that is in charge of R6 interface datapath.

  • sets up GRE tunnel from Mobile Station (MS) to GRE tunnel device, numbered gre_emc_xx
  • controlled by asnctrl

These must currently be loaded with various libraries, including the SF Tables library; some could be eliminated.

There ia an ASN-GW controller configuration file; see (reference below).

4.3 Data Path Module

For Cases 1 and 2, the Data Path Module carries data between the NEC BTS and tbe GENI Access Network.

For Case 3, the Data Path Module carries data between the NEC BTS and tbe KVM VMs.

Currently, the only supported Data Path Module is the Click Modular Router

Later, it is expected that an Open FLow Switch will be supported.

4.3.1 Click Modular Router

The currently supported Data Path Module is the Click Modular Router, v1.6; later, this is planned to be replaced with v1.8.

The functionality of the CLICK Modular Router is set by its configuration file; see (reference below). This configuration file is initialzed and then updated by the Control Module. With the current v1.6 implementation, the CLICK moduler router must be restarted after the configuration file is updated.

4.3.2 Open Flow Switch

4.4 Control Module

The Control Module controls the functionality of the NEC BTS, the ASN-GW Controller and the Data Path Module (e.g., CLICK Modular Router).

For Case 1, the Control Module is the Simple Authorization Manager (SAM).

For Cases 2 and 3, the Control Module is the WiMAX RF Aggregate Manager.

4.4.1 Simple Authorization Manager (SAM)

The Simple Authorization Manager (SAM) provides configurations that set the functionality of the NEC IDU, the ASN-GW Controller and the Data Path Module (e.g., CLICK Modular Router).

The SAM sets up a single service for one set of Mobile Stations: basic Internet Access, via one VLAN connected to the Outside Access Network.

The SAM does not provide an API to the Experimenter, and does not require the presence of an OMF/OML instance.

When a MS tries to register:

The SAM listens to the asntrl daemon to find the request

The SAM talks to the epctrl to create a GRE tunnel between the MS and the CLICK modular Router

The SAM configures to the CLICK Modular Router to establish a path from the GRE tunnel to the Outside Access Network, and then restart the Router to begin the configuration.

4.4.2 WiMAX RF Aggregate Manager

The WiMAX RF Agg Mgr provides configurations that set the functionality of the NEC IDU, the ASN-GW Controller and the Data Path Module (e.g., CLICK Modular Router).

The SAM can set up a multiple servicse for multiple sets of Mobile Stations, via multiple VLANs connected to the Outside Access Network.

The WiMAX RF Agg Mgr can get/set all parameters in the NEC IDU.

The WiMAX RF Agg Mgr provides an API to the Experimenter, and for use via OMF, and it collects data and forwards it to an OML instance.

When a MS tries to register:

The WiMAX RF Agg Mgr listens to the asntrl daemon to find the request

The WiMAX RF Agg Mgr talks to the epctrl to create a GRE tunnel between the MS and the CLICK modular Router

The WiMAX RF Agg Mgr configures to the CLICK Modular Router to establish a path from the GRE tunnel to the Outside Access Network, and then restart the Router to begin the configuration.

4.6 OMF/OML

4.6.1 Aggregate Manager Services

4.6.2 Experiment Control Services

4.7 KVM Virtual Machines

4.8 VM Aggregate Manager

4.8.1 Accessibility

Running on: cons-wm-02 Base URL: http://wm-asngw-02:5012/wimaxcl/

4.8.2 Functions supported

root@cons-wm-02:/usr/lib/ruby/1.8/omf-aggmgr/ogs_wimaxvm

<?xml version='1.0'?>
<services><serviceGroup name='wimaxvm' prefix='/wimaxvm'><info>Service to control virtual machines</info>

<service name='addclient'>
<info>Service to Add a wimax client</info><args><arg name='clientmac' isRequired='true' value='clientmac'><info>MAC address of the client</info></arg><arg name='vmname' isRequired='true' value='vmname'><info>Name of the virtual machine</info></arg></args></service>

<service name='create'>
<info>Service to create a VM</info><args><arg name='mac' isRequired='true' value='mac'><info>MAC address of the vm</info></arg><arg name='ip' isRequired='true' value='ip'><info>IP address of the vm</info></arg><arg name='vmname' isRequired='true' value='vmname'><info>Name of the virtual machine</info></arg></args></service>

<service name='initvms'/><service name='start'><info>Service to start a VM</info><args><arg name='vmname' isRequired='true' value='vmname'><info>Name of the virtual machine</info></arg></args></service><service name='startshaping'><info>Service to start vnts controller</info>
</service>

<service name='stop'>
<info>Service to stop a VM</info><args><arg name='vmname' isRequired='true' value='vmname'><info>Name of the virtual machine</info></arg></args>
</service><service name='stopshaping'><info>Stop shaping scrip
t</info></service><service name='vmlist'><info>List all  VMs</info></service>


<service name='vmstat'>
<info>Service to query info from a VM</info><args><arg name='vmname' isRequired='true' value='vmname'><info>Name of the virtual machine</info></arg></args></service></serviceGroup></services>

4.8.3 Sample Queries and corresponding outputs

1) To initialize the service.

  • Checks for the number of running VMs, populates MAC list and also assigns VLAN ids.
  • Is also supposed to send the VLAN information to the server on ASN-GW
    wget http://wm-asngw-02:5012/wimaxvm/initvms
    
    
    vm30 VLANid  7         mac address='52:52:52:52:52:52'/
    vm7 VLANid  2         mac address='52:54:00:1c:00:cb'/
    vm10 VLANid  6         mac address='54:52:00:2c:05:7a'/
    vm55 VLANid  3         mac address='01:23:45:67:89:ab'/
    vm57 VLANid  4         mac address='01:32:54:67:98:ba'/
    vm58 VLANid  5         mac address='01:65:23:67:98:ba'/
    vm5 VLANid  0         mac address='52:54:00:2a:85:b6'/
    vm6 VLANid  1         mac address='52:54:00:34:aa:a3'/
    

2) Start VM

  • Start vm, assign vlan tag and send info to server on ASNGW
  • Socket part is yet to be integrated
     http://wm-asngw-02:5012/wimaxvm/start/?vmname=vm30
    Domain vm30 started  with vlan tag 9
    

3) Stop VM

  • Similar to start VM, but does exactly the opposite
     http://wm-asngw-02:5012/wimaxvm/stop/?vmname=vm8
    Domain vm8 destroyed
    

4) Get statistics about a VM

  • Gets all relavent information for a particular VM name
    http://wm-asngw-02:5012/wimaxvm/vmstat/?vmname=vm8
    <domain type='kvm' id='40'>
      <name>vm30</name>
      <uuid>94c79efa-01b1-64e7-3bd7-2baedd3cfb1a</uuid>
      <memory>262144</memory>
      <currentMemory>262144</currentMemory>
      <vcpu>1</vcpu>
      <os>
        <type arch='i686' machine='pc'>hvm</type>
        <boot dev='hd'/>
      </os>
      <features>
        <acpi/>
      </features>
      <clock offset='utc'/>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>destroy</on_crash>
      <devices>
        <emulator>/usr/bin/kvm</emulator>
        <disk type='file' device='disk'>
          <source file='/home/native/vm30/disk0.qcow2'/>
          <target dev='hda' bus='ide'/>
        </disk>
        <interface type='network'>
          <mac address='52:52:52:52:52:52'/>
          <source network='default'/>
          <target dev='vnet6'/>
          <model type='virtio'/>
        </interface>
        <input type='mouse' bus='ps2'/>
        <graphics type='vnc' port='5905' autoport='yes' listen='127.0.0.1'/>
      </devices>
    </domain>
    

5) Get VM list

  • Useful for an admin and gives a list of all VMs.
  • Format is vmname, Vlanid, vm-mac-addr.
     http://wm-asngw-02:5012/wimaxvm/vmlist
    
    vm30 VLANid  7         mac address='52:52:52:52:52:52'/
    vm7 VLANid  2         mac address='52:54:00:1c:00:cb'/
    vm10 VLANid  6         mac address='54:52:00:2c:05:7a'/
    vm55 VLANid  3         mac address='01:23:45:67:89:ab'/
    vm57 VLANid  4         mac address='01:32:54:67:98:ba'/
    vm58 VLANid  5         mac address='01:65:23:67:98:ba'/
    vm5 VLANid  0         mac address='52:54:00:2a:85:b6'/
    vm6 VLANid  1         mac address='52:54:00:34:aa:a3'/
    
Note: See TracWiki for help on using the wiki.