[[TOC(Internal/WiMAX/WiMAXAPI*, depth=2)]] = Radio Management API (User Exposed) = These API define the calls that can be made by the system user for controlling radio-related features of the WiMAX system. These API are further classified based on the functionality they provide. == Custom Service Class Suport == These APIs will allow the user to create user-defined service flow types apart from the 5 standard service flows supported as a part of the current model. === createServiceFlow(SlideID, direction, priority, classifier-ips, classifier-ports, service_type, service_params) === - Direction – Uplink or downlink for the class. - Priority – priority of the service class - Classifier-ips TLV - Source/Destination IP classifiers for flow classification - Classifier-ports TLV – Source/Destination port classifiers for flow classification. - Service_type - One of the five types – BE/UGS/rtPS/nrtPS/ertPS - Service params is the TLV for each service type - Return type: Service type id - STID (integer) > 6. 1-5 are reserved for the default service flow types. - Note that the service type is created by the Radio management grid service for a specific slice ID and hence it will be specific to that slice. === createServiceClass(SlideID,STIDs{}) === - SliceID identifies the requesting slice. - STIDs are the service type ids. - Success returns the Service class ID (SCID), which can be used in install or remove. === installServiceClass(SlideID,SCID) === - SliceID identifies the requesting slice. - Installs all the service flows that are part of the service class SCID. - Success results in end – to – end datapath setup between wireless clients and virtual machine slice. === uninstallServiceClass(SlideID,SCID) === - SliceID identifies the requesting slice. - Un-installs all the service flows that are part of the service class SCID. - Success returns ok and nok otherwise. === deleteServiceClass(SlideID, SCID) === - Deletes the service class corresponding to the specification in the request. - Returns success if the service class could be successfully deleted (none of the flows are actively using these service classifiers). === deleteServiceFlow(SlideID, STID) === - Results in deletion of service flow type identified by STID if any such flow type exists. - Success results in “ok” and “nok” otherwise. == Slice Radio Control == === setMinimalMcs(SliceID, MSID, SCID, mcs) === - Used to set the minimal modulation and coding scheme (MCS) to be used for that service class. An auto rate provision will select a better MCS based on the observed CINR conditions. - The user can chose one among available MCSs as an option for that class. - We are still exploring the possibility of setting this per class per MSID. As per our current understanding, this is difficult. === setFixedMcs(SliceID, MSID, SCID, mcs) === - Used to set a fixed MCS for a particular service class. - This disables the automatic MCS adjustment using measured CINR. - If possible we wish to set this mcs value per MSID. === setRadioResource(SliceID, MSID, RR) === - Information provided by this function should be consulted during initial ranging and connection setup. - RR – Radio resource uplink + downlink (set in % - 0 to 100) === setBandwithUlDlRatio(bandwidth UL_DL_ratio) === - Set supported bandwidth: 10M, 7.5M, 5M Hz - Based on RR allocation in set_radio_resource(), this routine allows the user to set the uplink-downlink ratio as a fraction of the RR. - UL_DL_ratio is used as a key to select one among standard UL_DL ratio supported by the BS. All MS has to use the same ul_dl_ratio == Slice Radio Monitoring == === getAllClientsInfo( SLICEID ) === - Returns the number of WiMAX clients associated with a particular SLICEID. - Return value ranges between 0 and maximum number of clients that can be owned by a slice on success, “nok” otherwise === getClientInfo(SLICE ID, MSID) === - Returns detailed information about a single client in the network. - Information for individual MAC address includes the amount of disk quota, disk space used, and the CPU quota (reserved and used). - Returns XML with appropriate parameters on success, “nok” otherwise === getSliceResource(SLICEID) === - This mechanism allows every slice to monitor its current usage, and the limits - Values returned may vary based on the virtualization technology used - (disk space, CPU). - Returns XML with appropriate parameters on success, “nok” otherwise