| | 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 |