[[TOC(Internal/WiMAX/WiMAXAPI*, depth=2)]] = Slice Manager API Specification (User Exposed) = The slice manager API are further classified into 1. VM control functions and 2. Client control functions. == SLICE (VM) Control Functions == These set of functions are responsible for managing context isolation of multiple slices through the use of virtual machines. === createSLICE === This function is invoked from a gateway machine by the slice user to instantiate its slice for experimentation. {{{ createSLICE(used_id, passwd, image_type) - user_id is username used in slice creation. - passwd is password used for slice creation. - image_type is an integer which specifies the distribution to be loaded on the disk of the virtual machine. image_type = 1 loads a Debian disk image image_type = 2 loads a Ubuntu disk image image_type = 3 loads a Fedora disk image - Return the IP of the SLICE to which the user can log into (when successful) - Failure returns “nok”, success returns SLICEID. }}} === destroySLICE === This 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. {{{ destroySLICE(user_id, passwd, IP) - user_id is username used in slice creation. - passwd is password used for slice creation. - Returns status “ok” if command was executed correctly, “nok” otherwise. }}} === startSLICE === This 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. . {{{ startSLICE ( SLICEID, user_id, passwd, IP) - Returns status “ok” if command was executed correctly, “nok” otherwise. }}} === stopSLICE === This 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). {{{ stopSLICE ( SLICEID, user_id, passwd, IP) - Returns status “ok” if command was executed correctly, “nok” otherwise. }}} === setSLICEParams === Allows 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). {{{ setSLICEParams (SLICEID, used_id, passwd, tlv) - Successful setting returns “ok”, “nok” otherwise. }}} == Client Control Functions == 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. === addClient === This function is called by the user to add a client with MAC address MSID to the slice SliceID. {{{ addClient (MSID, SliceID) - Successful execution of this function returns “ok” from the grid service, “no” otherwise }}} === deleteClient === Used to remove client with MAC address MSID from the slice with identifier as Slice ID. {{{ deleteClient (MSID, SliceID) - Successful execution of this function returns “ok” from the grid service, “no” otherwise }}}