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.

Changes between Version 10 and Version 11 of Old/WiMAX/16


Ignore:
Timestamp:
Dec 9, 2010, 7:31:11 PM (13 years ago)
Author:
hmussman
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Old/WiMAX/16

    v10 v11  
    1 [[TOC(Internal/WiMAX/WiMAXAPI*, depth=2)]]
     1[[PageOutline]]
    22
    33= A.  APIs =
    44
    5 == A.1  API Classification and Usage ==
     5== A.1  API Classification ==
    66
    77
    88The APIs are primarily classified as:
    99  * User exposed
    10     * [wiki:WiMAX/16/3 Slice management service]
    11     * [wiki:WiMAX/16/4 Radio management service]
     10    * [wiki:WiMAX/55 Slice management service]
     11    * [wiki:WiMAX/57 Radio management service]
    1212
    1313  * Internal
    14    * [wiki:WiMAX/16/1 System Administration API]
    15    * [wiki:WiMAX/16/5 SM-Datapath API]
     14   * [wiki:WiMAX/50 System Administration API]
     15   * [wiki:WiMAX/59 SM-Datapath API]
    1616   * [wiki:WiMAX/WiMAXAPI/05RMDpApi RM-Datapath API]
    1717   * [wiki:WiMAX/WiMAXAPI/06BSFBDpApi BSFB-Datapath API]
     
    2525  * setters – responsible for setting the specified control information.
    2626
    27 === A.1.1 Sample Experiment Setup Using API ===
     27== A.2  API Usage  ==
     28
     29=== A.2.1 Sample Experiment Setup Using API ===
    2830
    2931A sample usage of the API for experiment setup is as shown in the Figure below.
     
    3840The 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.
    3941
    40 === A.1.2 Sample Experiment: Custom Service Class Control ===
     42=== A.2.2 Sample Experiment: Custom Service Class Control ===
    4143To demonstrate how the user could possibly create custom service classes we show an
    4244example of how system components will interact in the Figure below.
     
    4850
    4951
    50 == A.2 System Administrator API Specification (Internal) ==
     52== A.3 System Administrator API Specification (Internal) ==
    5153These set of functions are exposed to the system administrator for managing and monitoring slice quotas from a virtualization perspective. More administrative functionality is provided on the RF side as discussed in the BS-RF API.
    5254
    53 === A.2.1 VM Administration ===
    54 
    55 === setSliceParams(SLICEID, disk_quota, cpu) ===
     55=== A.3.1 VM Administration ===
     56
     57==== setSliceParams(SLICEID, disk_quota, cpu) ====
    5658-       This function is provided to the administrator for setting up slice level parameters such as total disk / cpu quota assigned to a slice.
    5759-       Successful setting of these parameters returns “ok”
    58 === getSliceParams(SLICEID) ===
     60
     61==== getSliceParams(SLICEID) ====
    5962-       This function is provided to the administrator for getting slice level parameters such as total disk/CPU quota assigned to a slice. 
    6063-       Online information such as current usage is also be made available.
    6164-       Returns XML with appropriate parameters on success, “nok” otherwise.
    62 == getTotalParams(SLICEID) ===
     65
     66==== getTotalParams(SLICEID) ====
    6367-       This function is provided to the administrator for getting information on total available resources, such as disk space/ cpu quota available for allocation.
    6468-       This function is typically used by the administrator before the use of  setSliceParams() function.
    6569-       Returns XML with appropriate parameters on success, “nok” otherwise.
    6670
    67 = Slice Manager API Specification (User Exposed) =
     71== A.4 Slice Manager API Specification (User Exposed) ==
    6872
    6973The slice manager API are further classified into
     
    7175  2. Client control functions.
    7276
    73 == SLICE (VM) Control Functions ==
     77=== A.4.1 SLICE (VM) Control Functions ===
    7478
    7579These set of functions are responsible for managing context isolation of multiple slices through the use of virtual machines.
    7680
    77 === createSLICE ===
     81==== createSLICE ====
    7882This function is invoked from a gateway machine by the slice user to instantiate its slice for experimentation.
    7983
     
    9094}}}
    9195
    92 === destroySLICE  ===
     96==== destroySLICE  ====
    9397This function is used to destroy instance of the SLICE for which IP is assigned; slice is destroyed only after authentication of  the used_id and passwd.
    9498
     
    100104}}}
    101105
    102 === startSLICE ===
     106==== startSLICE ====
    103107This function is used to start the slice for which IP is assigned; can be invoked only after the the createSLICE() call is made and is successful only if the instance is owned by the issuing user. .
    104108
     
    108112}}}
    109113
    110 === stopSLICE ===
     114==== stopSLICE ====
    111115This function is used to stop the instance of the SLICE for which IP is assigned (SLICE instance is stopped only if the instance is owned by the issuing user).
    112116{{{
     
    115119}}}
    116120
    117 === setSLICEParams ===
     121==== setSLICEParams ====
    118122Allows the user to set all controllable parameters for creation of SLICE. Features include the amount of disk space per SLICE template, percentage of CPU resources (number of parameters supported as a part of this API may vary with underlying virtualization technology).
    119123{{{
     
    122126}}}
    123127
    124 == Client Control Functions ==
     128=== A.4.2 Client Control Functions ===
    125129
    126130These set of functions allow the datapath controller to determine which WiMAX clients can associate with the BTS and vice-versa. These API are internal and are based on the input provided by the slice user.
    127131
    128 === addClient ===
     132==== addClient ====
    129133This function is called by the user to add a client with MAC address MSID to the slice SliceID.
    130134{{{
     
    133137}}}
    134138
    135 === deleteClient ===
     139==== deleteClient ====
    136140Used to remove client with MAC address MSID  from the slice with identifier as Slice ID.
    137141{{{
     
    141145
    142146
    143 = Radio Management API (User Exposed) =
     147== A.5 Radio Management API (User Exposed) ==
    144148
    145149These 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.
    146 == Custom Service Class Suport ==
     150
     151=== A.5.1 Custom Service Class Support ===
    147152These 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.
    148 === createServiceFlow(SlideID, direction, priority, classifier-ips, classifier-ports, service_type, service_params) ===
     153==== createServiceFlow(SlideID, direction, priority, classifier-ips, classifier-ports, service_type, service_params) ====
    149154-       Direction – Uplink or downlink for the class.
    150155-       Priority – priority of the service class
     
    156161-       Note that the service type is created by the Radio management grid service for
    157162        a specific slice ID and hence it will be specific to that slice.
    158 === createServiceClass(SlideID,STIDs{}) ===
     163==== createServiceClass(SlideID,STIDs{}) ====
    159164-       SliceID identifies the requesting slice.
    160165-       STIDs are the service type ids.
    161166-       Success returns the Service class ID (SCID), which can be used in install or remove.
    162 === installServiceClass(SlideID,SCID) ===
     167==== installServiceClass(SlideID,SCID) ====
    163168-       SliceID identifies the requesting slice.
    164169-       Installs all the service flows that are part of the service class SCID.
    165170-       Success results in end – to – end datapath setup between wireless clients and virtual machine slice.
    166 === uninstallServiceClass(SlideID,SCID) ===
     171==== uninstallServiceClass(SlideID,SCID) ====
    167172-       SliceID identifies the requesting slice.
    168173-       Un-installs all the service flows that are part of the service class SCID.
    169174-       Success returns ok and nok otherwise.
    170175
    171 === deleteServiceClass(SlideID, SCID) ===
     176==== deleteServiceClass(SlideID, SCID) ====
    172177-       Deletes the service class corresponding to the specification in the request.
    173178-       Returns success if the service class could be successfully deleted (none of the
    174179flows are actively using these service classifiers).
    175180
    176 === deleteServiceFlow(SlideID, STID) ===
     181==== deleteServiceFlow(SlideID, STID) ====
    177182-       Results in deletion of service flow type identified by STID if any such flow type exists.
    178183-       Success results in “ok” and “nok” otherwise.
    179184
    180185
    181 == Slice Radio Control ==
    182 
    183 === setMinimalMcs(SliceID, MSID, SCID, mcs) ===
     186=== A.5.2 Slice Radio Control ===
     187
     188==== setMinimalMcs(SliceID, MSID, SCID, mcs) ====
    184189-       Used to set the minimal modulation and coding scheme (MCS) to be used for
    185190that service class. An auto rate provision will select a better MCS based on the
     
    189194current understanding, this is difficult.
    190195
    191 === setFixedMcs(SliceID, MSID, SCID, mcs) ===
     196==== setFixedMcs(SliceID, MSID, SCID, mcs) ====
    192197-       Used to set a fixed MCS for a particular service class.
    193198-       This disables the automatic MCS adjustment using measured CINR.
    194199-       If possible we wish to set this mcs value per MSID.
    195200
    196 === setRadioResource(SliceID, MSID,  RR) ===
     201==== setRadioResource(SliceID, MSID,  RR) ====
    197202-       Information provided by this function should be consulted during initial ranging and connection setup.
    198203-       RR  – Radio resource uplink + downlink (set in % - 0 to 100)
    199204
    200 === setBandwithUlDlRatio(bandwidth UL_DL_ratio) ===
     205==== setBandwithUlDlRatio(bandwidth UL_DL_ratio) ====
    201206-       Set supported bandwidth: 10M, 7.5M, 5M Hz
    202207-   Based on  RR allocation in set_radio_resource(), this routine allows the user to set
     
    204209-       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
    205210
    206 == Slice Radio Monitoring ==
    207 
    208 === getAllClientsInfo( SLICEID ) ===
     211=== A.5.3 Slice Radio Monitoring ===
     212
     213==== getAllClientsInfo( SLICEID ) ====
    209214-       Returns the number of WiMAX clients associated with a particular SLICEID.
    210215-       Return value ranges between 0 and maximum number of clients that can be owned by a slice on success, “nok” otherwise
    211216
    212 === getClientInfo(SLICE ID, MSID) ===
     217==== getClientInfo(SLICE ID, MSID) ====
    213218-       Returns detailed information about a single client in the network.
    214219-       Information for individual MAC address includes the amount of disk quota, disk space used, and the CPU quota (reserved and used).
    215220-       Returns XML with appropriate parameters on success, “nok” otherwise
    216221
    217 === getSliceResource(SLICEID) ===
     222==== getSliceResource(SLICEID) ====
    218223-       This mechanism allows every slice to monitor its current usage,  and the limits
    219224-       Values returned may vary based on the virtualization technology used - (disk space, CPU).
     
    221226
    222227
    223 = SM – Datapath API (Internal) =
     228==  A.6 SM – Datapath API (Internal) ==
    224229
    225230These set of API are responsible for dealing with the datapath creation after slice initialization and client registration.
    226 === addClient(VLAN, MSID) ===
     231==== addClient(VLAN, MSID) ====
    227232-       This function is invoked by the slice manager after the user requests it to add a client to the slice.
    228233-       The slice manager looks up the appropriate VLAN tag number and requests that the MAC MSID  of the mobile client be added to the VLAN.
    229234-       This API facilitates half of the datapath creation, which will be completed when the MSID associates with the system.
    230235
    231 === removeClient(VLAN, MSID) ===
     236==== removeClient(VLAN, MSID) ====
    232237-       Compliments  the addClient() function.
    233238-       On the execution of this call the datapath manager removes the mapping from the slice virtual machine to the wireless mobile client.