next up previous
Next: Changing Network Reserve paramters Up: API for LinuxRK Previous: Apple, help me...

Creating a Network Reserve


rk_reserve_t net_reserve_create(rk_resource_set_t rs,net_reserve_attr_t attr)

Creates a network reservation and attaches it to a resource set rs. The reservation is associated with a particular socket connection. Currently RK supports only one reserve per socket or one socket per reserve. The network reservation at this point only involves a packet scheduler at the sending side. The packet scheduler was implemented using rate-monotonic and deadline monotonic scheduling theories that previously applied to CPU reservation(Please take a look at: Sourav Ghosh and Ragunathan Rajkumar, ``Network Bandwidth Reservation using the Rate-Monotonic Model'', SoftCOM 99).

This packet scheduler decouples bandwidth and delay guarantees for a reserved flow.

The attributes of a network reservation are specified by the attr paramter, which is a pointer to a net_reserve_attr structure defined as follows:


struct net_reserve_attr {    

size_t amount;
struct timespec period;
struct timespec deadline;
struct timespec blocking_time;
struct timespec start_time;
rk_reserve_param_data_t reserve_type;
int socket_fd;
};

The parameters are self-explanatory (similar to CPU reservation). The parameter amount is the reservation in terms of number of bytes that would be sent within a period specified by the variable period. The socket_fd stores the socket descriptor attached to this reserve.


next up previous
Next: Changing Network Reserve paramters Up: API for LinuxRK Previous: Apple, help me...
Luca Abeni 2000-11-03