[[PageOutline]] = 4. Software = Fig 2-1) Case 1 WiMAX Base Station Configuration [[BR]] [[Image(WiMAX/00:fig 2-1 121010_ WiMAXSystemOverview.jpg, 100%)]] Fig 3-1) Case 1 Detailed WiMAX Base Station Configuration [[BR]] [[Image(WiMAX/00:fig 3-1 121010_ WiMAXSystemOverview.jpg, 100%)]] Fig 4-1) Case 1 WiMAX Software Configuration [[BR]] [[Image(WiMAX/00:fig 4-1 121010_ WiMAXSystemOverview.jpg, 100%)]] Fig 2-2) Case 2 WiMAX Base Station Configuration [[BR]] [[Image(WiMAX/00:fig 2-2 121010_ WiMAXSystemOverview.jpg, 100%)]] Fig 3-2) Case 2 Detailed WiMAX Base Station Configuration [[BR]] [[Image(WiMAX/00:fig 3-2 121010_ WiMAXSystemOverview.jpg, 100%)]] Fig 4-2) Case 2 WiMAX Software Configuration [[BR]] [[Image(WiMAX/00:fig 4-2 121010_ WiMAXSystemOverview.jpg, 100%)]] == 4.1 NEC BTS == The NEC BTS comes with firmware that 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 (udated 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 libraries could be eliminated. There is an ASN-GW controller configuration file; see (reference below). == 4.3 Data Path Module == The data path is built to support pure layer 2 (L2) traffic to and from the Mobile Stations (MSs), even though WiMAX is inherently an IP (L3) service. * For Cases 1 and 2, the Data Path Module carries UL and DL L2 flows between a GRE tunnel on the NEC BTS side, and a VLAN tag on the GENI Access Network side. * For Case 3, the Data Path Module carries UL and DL L2 flows between a GRE tunnel on the NEC BTS side, and a VLAN tag on the KVM VM side. 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 based on a dynamically configurable L2 learning switch, and its configuration is shown in Fig 4. Both Up Link (UL) and Down Link (DL) data flows are automatically created and installed when MSs associate. Data flows are: * Down Link (DL) from GENI Access Network: classifier, switch, tunnels * Up Link (UL) from Clients: ARP lookup, switch, GENI Access Network * DHCP allocations: learned by the parser, which populates entries in a ARP manager * ARP Requests from GENI Access Network: handled by ARP manager Data paths are setup by the CLICK configuration file; see (reference below). This configuration file is initialized by the Control Module, and then updated whenever data flows are added or deleted. With the current v1.6 implementation, the CLICK modular router must be restarted after the configuration file is updated. === 4.3.2 Open Flow Switch === === 4.3.3 Access Network === The Access Network provides one or more subnets, each identified by a VLAN tag. A group of MSs, each identified by its MAC address, is associated with a particular subnet/VLAN tag. Typically, each subnet/VLAN tag is associated with a particular "slice". When a particlar group of MSs is to be provided with IP service, its subnet includes a DHCP service that assigned an IP address to each registered MS. == 4.4 Control Module == The Control Module talks to 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) === For Case 1, the Simple Authorization Manager (SAM) talks to the ASN-GW Controller (asnctrl) and the Data Path Module (e.g., CLICK Modular Router, vi its configuration file). 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 deals with these parameters: MS MAC address; gre tunnel identifier; VLAN tag number. The SAM does not provide an API to the Experimenter, and does not require the presence of an OMF/OML instance. SAM is a Ruby script. Configurations for the SAM are included within its code, and can be changed by editn ghte code; see (reference below). When a MS tries to register: The SAM listens to the asntrl daemon to receive the registration request with MAC address of MS, and responds with "allow". The SAM talks to the asnctrl, which talks to the epctrl, to create a GRE tunnel between the MS and the GRE tunnel endpoint, and receives the tunnel endpoint identifier, of form gre_emc_xx. The SAM changes the configuration file for the CLICK Modular Router to establish data flows between the GRE tunnel endpoint identifier, and the VLAN tag number, and then restarts the Router to execute the configuration. === 4.4.2 WiMAX RF Aggregate Manager === For Cases 2 and 3, the WiMAX RF Agg Mgr replaces the SAM and talks to the NEC IDU, the ASN-GW Controller and the Data Path Module (e.g., CLICK Modular Router). The WiMAX RF Agg Mgr deals with these parameters: MS MAC address; gre tunnel identifier; VLAN tag number. The WiMAX RF Agg Mgr can: * set up a multiple services for multiple groups of MSs, via multiple VLANs connected to the Outside Access Network. * manage the NEC BTS, i.e., stop, start, restart. * get/set all parameters in the NEC BTS. Caution: need to account for interactions; see (spreadsheet) * provides a REST-based API to the Experimenter, and for use via OMF. This allows a MS to be added, removed, etc., and deals with MS MAC address and VLAN tag number. Fallback is a default service like SAM. * collects data and forwards data from BTS to an OML instance, including info on BTS, MSs, and events. Typically, it queries BTS every 10 sec. The WiMAX RF Agg Mgr provides these services: (list) In Case 2, the WiMAX RF Agg Mgr is controlled by the experimenter via Experiment Controller. In Case 3, the WiMAX RF Agg Mgr is controlled by the VM Agg Mgr. Configurations for the WIAMX RF agg Mgr are carried in the yaml file, see (reference below). When a MS tries to register: The WiMAX RF Agg Mgr listens to the asntrl daemon to receive the registration request with MAC address of MS, and responds with "allow". The WiMAX RF Agg Mgr talks to the asnctrl, which talks to the epctrl, to create a GRE tunnel between the MS and the GRE tunnel endpoint, and receives the tunnel endpoint identifier, of form gre_emc_xx. The WiMAX RF Agg Mgr configures changes the configuration file for the CLICK Modular Router to eestablish data flows between the GRE tunnel endpoint identifier, and the VLAN tag number, and then restarts the Router to execute the configuration. == 4.6 OMF/OML == For Cases 2 and 3, an instance of OMF/OML is setup on two VMs, hosted on the OMF/OML server. See (reference) for complete information on loading and initializing this software. === 4.6.1 Aggregate Manager Services === These services include: * CMC Srvc (dummy) * Frisbee Server * SaveImage Srvc * PXE Srvc * Result Srvc * XMPP Server * OML Server * Inventory Srvc * Dnsmasq * DHCP * TFTP === 4.6.2 Experiment Control Services === These services include: * Experiment Contrl Srvc * Exp App Repository * Exp Description == 4.7 KVM Virtual Machines == For Case 3, a set of KVM VMs is setup on the KVM VM server. One VM is assigned to process the data for each slice, and is associated with one VLAN tag. == 4.8 VM Aggregate Manager == In Case 3, a VM Agg Mgr is sum in a VM on the KVM VM server. The VM Agg Mgr provides provides a REST-based API to the Experimenter, and for use via OMF. This allows a slcie to be added, removed, etc., and is used to define the nature of the slice. In turn, the VM Agg Mgr talks to the WIMAX Agg Mgr to manage the MS for each slice. In addition, the VM Agg Mgr works to prevent interference between slices. === 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 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 }}} === 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 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'/ }}}