X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Fpinsched.c;h=d749ee4e6f912cd71f1d75873cc45e94626c7533;hb=1f0af7586e9ffbdbafe00344aca56cd2663b1f62;hp=306d8516ecc565c5d30a3808e97b8dedf48d68ca;hpb=54e05b5f6f7d3504dc74a73dcf9707cbdb28d1d1;p=openvswitch diff --git a/ofproto/pinsched.c b/ofproto/pinsched.c index 306d8516..d749ee4e 100644 --- a/ofproto/pinsched.c +++ b/ofproto/pinsched.c @@ -16,6 +16,8 @@ #include #include "pinsched.h" +#include +#include #include #include #include @@ -68,7 +70,7 @@ dequeue_packet(struct pinsched *ps, struct ovs_queue *q, struct ofpbuf *packet = queue_pop_head(q); if (!q->n) { free(q); - port_array_set(&ps->queues, port_no, NULL); + port_array_delete(&ps->queues, port_no); } ps->n_queued--; return packet; @@ -228,7 +230,7 @@ pinsched_create(int rate_limit, int burst_limit, struct switch_status *ss) { struct pinsched *ps; - ps = xcalloc(1, sizeof *ps); + ps = xzalloc(sizeof *ps); port_array_init(&ps->queues); ps->n_queued = 0; ps->last_tx_port = PORT_ARRAY_SIZE; @@ -265,6 +267,14 @@ pinsched_destroy(struct pinsched *ps) } } +void +pinsched_get_limits(const struct pinsched *ps, + int *rate_limit, int *burst_limit) +{ + *rate_limit = ps->rate_limit; + *burst_limit = ps->burst_limit; +} + void pinsched_set_limits(struct pinsched *ps, int rate_limit, int burst_limit) {