= 4. Software = == ASN-GW Controller == The ASN-_GW controller code is provided by NEC, and is based upon their commercial code. Three components are provided by NEC, in binary only: * trapctrl - used for (snmp) alerts management (not currently used) * asnctrl - Daemon process that is in charge of R6 control functions. (well defined API) * epctrl - Daemon process that is in charge of R6 interface datapath. (sets up GRE tunnel from Mobile Station (MS) to data path module (e.g., CLICK modular router) These must currently be loaded with various libraries, including the SF Tables library; some could be eliminated. The asnctrl API can be found at: These is an ASN_GW Controller configuration file; see below. [wiki:/Software/Create Create Debian Package][[BR]] [wiki:/Software/Configuration Create Package Site][[BR]] == Data Path Module == For Case 1, the Data Path Module carries data between the NEC IDU and tbe GENI Access Network. For Case 2, the Data Path Module carries data between the NEC IDU 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. === Click Modular Router === The current supported Data Path Module is the Click Modular Router, v1.6. These is CLICK Modular Router configuration file; see below. === Open Flow Switch === == Control Module == The Control Module sets the functionality of the NEC IDU, the ASN-GW Controller and the Data Path Module (e.g., CLICK Modular Router). For Case 1, the Control Module us the Simple Authorization Manager (SAM). For Case 2, the Control Module is the WiMAX RF Aggregate Manager. === 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. === 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. == KVM Virtual Machines == == VM Aggregate Manager == === Accessibility === Running on: cons-wm-02 Base URL: http://wm-asngw-02:5012/wimaxcl/ === Functions supported === {{{ root@cons-wm-02:/usr/lib/ruby/1.8/omf-aggmgr/ogs_wimaxvm Service to control virtual machines Service to Add a wimax clientMAC address of the clientName of the virtual machine Service to create a VMMAC address of the vmIP address of the vmName of the virtual machine Service to start a VMName of the virtual machineService to start vnts controller Service to stop a VMName of the virtual machine Stop shaping scrip tList all VMs Service to query info from a VMName of the virtual machine }}} === 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 vm30 94c79efa-01b1-64e7-3bd7-2baedd3cfb1a 262144 262144 1 hvm destroy restart destroy /usr/bin/kvm }}} 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'/ }}}