X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Fpinsched.c;h=d749ee4e6f912cd71f1d75873cc45e94626c7533;hb=62471e59fccf3c48d75becfa12690e23bb683407;hp=0afd22ff645958861172c51be308349deb6f6f07;hpb=1d87357a1322c2faa290452c08c7f794c0be848b;p=openvswitch diff --git a/ofproto/pinsched.c b/ofproto/pinsched.c index 0afd22ff..d749ee4e 100644 --- a/ofproto/pinsched.c +++ b/ofproto/pinsched.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,10 @@ #include #include "pinsched.h" +#include +#include #include +#include #include #include "ofpbuf.h" #include "openflow/openflow.h" @@ -67,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; @@ -227,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; @@ -264,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) {