Catalli's threaded switch
[sliver-openvswitch.git] / ofproto / pinsched.c
index 0afd22f..d749ee4 100644 (file)
@@ -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.
 
 #include <config.h>
 #include "pinsched.h"
+#include <sys/types.h>
+#include <netinet/in.h>
 #include <arpa/inet.h>
+#include <stdint.h>
 #include <stdlib.h>
 #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)
 {