| 1 | = Slice Manager API Specification (User Exposed) = |
| 2 | |
| 3 | The API specification is classified based on functionality. Each category of APIs has both: |
| 4 | * getters – responsible for reporting based on specified control information, and |
| 5 | * setters – responsible for setting the specified control information. |
| 6 | |
| 7 | The slice manager API are further classified into |
| 8 | 1. VM control functions and |
| 9 | 2. Client control functions. |
| 10 | |
| 11 | == SLICE (VM) Control Functions == |
| 12 | |
| 13 | These set of functions are responsible for managing context isolation of multiple slices through the use of virtual machines. |
| 14 | |
| 15 | === createSLICE(used_id, passwd, image_type) === |
| 16 | This function is invoked from a gateway machine by the slice user to instantiate its slice for experimentation. |
| 17 | - Uses the slice user_id and passwd to create a new SLICE. |
| 18 | - image_type is an integer which specifies the distribution to be loaded on the disk of the virtual machine. |
| 19 | image_type = 1 loads a Debian disk image |
| 20 | image_type = 2 loads a Ubuntu disk image |
| 21 | image_type = 3 loads a Fedora disk image |
| 22 | - Return the IP of the SLICE to which the user can log into (when successful) |
| 23 | - Failure returns “nok”, success returns SLICEID. |
| 24 | |
| 25 | === destroySLICE(user_id, passwd, IP) === |
| 26 | - Destroy instance of the SLICE for which IP is assigned |
| 27 | - SLICE is destroyed only after authentication of the used_id and passwd. |
| 28 | - Returns status “ok” if command was executed correctly, “nok” otherwise. |
| 29 | |
| 30 | === startSLICE( SLICEID, user_id, passwd, IP) === |
| 31 | This functionality can be invoked after the the createSLICE() call is made. |
| 32 | - Start instance of the SLICE for which IP is assigned |
| 33 | - SLICE instance is started only if the instance is owned by the issuing user. |
| 34 | - Returns status “ok” if command was executed correctly, “nok” otherwise. |
| 35 | |
| 36 | === stopSLICE( SLICEID, user_id, passwd, IP) === |
| 37 | - Stop instance of the SLICE for which IP is assigned |
| 38 | - SLICE instance is stopped only if the instance is owned by the issuing user. |
| 39 | - Returns status “ok” if command was executed correctly, “nok” otherwise. |
| 40 | |
| 41 | === setSLICEParams(SLICEID, used_id, passwd) === |
| 42 | - Allows the user to set all controllable parameters for creation of SLICE. |
| 43 | - Features include the amount of disk space per SLICE template, percentage of CPU resources. |
| 44 | - Number of parameters supported as a part of this API may vary with underlying virtualization technology. |
| 45 | - Successful setting returns “ok”, “nok” otherwise. |
| 46 | |
| 47 | |
| 48 | == Client Control Functions == |
| 49 | |
| 50 | These 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. |
| 51 | |
| 52 | === addClient(MSID, SliceID) === |
| 53 | - This API is called by the user to add a client with MAC address MSID to the slice SliceID. |
| 54 | - Successful execution of this function returns “ok” from the grid service, “no” otherwise |
| 55 | === deleteClient(MSID, SliceID)== |
| 56 | - Used to remove client with MAC address MSID from the slice with identifier as Slice ID. |
| 57 | - Successful execution of this function returns “ok” from the grid service, “no” otherwise |