Table of Contents
- API Classification and Usage
- Accessing the WiMAX Base Station
- Slice Manager API Specification (User Exposed)
- Radio Management API (User Exposed)
- System Administrator API Specification (Internal)
- SM – Datapath API (Internal)
- RM – Datapath API (Internal)
- BSFB – Datapath API (Internal)
API Classification and Usage
The APIs are primarily classified as:
User exposed APIs are those that will be available to slice users for allowing experiment configuration and permitting smooth automated experimentation. This API will allow the users of a virtualized system to have a standard interface for common activities while being independent of the technology used underneath. An example could be, that irrespective of the virtualization technology used to create virtual machines (KVM, OpenVZ or Xen), all standard API calls will allow the user to work oblivious to the underlying details. Slice management APIs allow the user to configure slice parameters such as settings of the VM. Radio resource management (RRM) parameters allow the user to monitor radio level information such as per client MCS.
The other set of APIs are classified as internal API. These API are useful for understanding the interaction between different components of the system and provide means for appending or changing functionality of the system. The SM-Datapath API describes the API used for communication between the slice manager grid service and the datapath controller. The RM-Datapath controller describes the API used for interaction between Radio resource grid service and the datapath generator. The BSFB-Datapath API is the API used for interaction between the BS Feedback mechanism, which is a part of the customized NEC R6 controller and the datapath manager.
The API specification is classified based on functionality. Each category of APIs has both:
- getters – responsible for reporting based on specified control information, and
- setters – responsible for setting the specified control information.
Sample Experiment Setup Using API
A sample usage of the API for experiment setup is as shown in the Figure below.
As shown in the figure, the most basic tasks involve two operations:
- Requesting the slice manager to create and start the slice – createSlice()
- Adding a mobile client to the slice through the addClient() call.
On the completion of these two API and after the client registers with the system, the slice manager service should inform the Slice that the datapath setup is complete. Completion of the datapath setup indicates that there is a L2 link from the slice virtual machine to the mobile client. The addclient() API has an optional service class parameter that the user can specify. If the user does not specify the service class id, a default service class is allocated that has a single best effort type of service flow. After this sequence is complete, the user can direct traffic to the local virtual interface in the VM with the appropriate MAC address, and traffic will be automatically sent to the correct wireless client.
Sample Experiment: Custom Service Class Control
To demonstrate how the user could possibly create custom service classes we show an example of how system components will interact in the Figure below.
The process starts when the user requests the radio manager grid service for creation of a custom service class. As a part of this request we are assuming that the user intends to create the new service class using existing pre-defined service flows. The installation supports 5 pre-defined service flows which represent a typical setting with every traffic type. The user could also define a custom service flow and include it as a part of its customized service class. If the service class request by the user is valid, and all flows requested as a part of the service class request are valid, the system assigns the service class a service class id (SCID). The RM service will create an internal record of the service class parameters when it assigns the service class id (SCID). The slice user can actually start using the service class only after invoking the installServiceClass(MAC, SCID) API. This results in the addition of all service flows for the client by the modified BS controller, and appropriate datapath mapping by the datapath controller. In the illustration we see the addition of two service flows when the SCID is being installed for the MAC.