]>
git.proxmox.com Git - mirror_ovs.git/blob - ofproto/pinsched.h
2 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #define PINSCHED_H_H 1
26 struct pinsched
*pinsched_create(int rate_limit
, int burst_limit
);
27 void pinsched_get_limits(const struct pinsched
*,
28 int *rate_limit
, int *burst_limit
);
29 void pinsched_set_limits(struct pinsched
*, int rate_limit
, int burst_limit
);
30 void pinsched_destroy(struct pinsched
*);
31 void pinsched_send(struct pinsched
*, ofp_port_t port_no
, struct ofpbuf
*,
32 struct ovs_list
*txq
);
33 void pinsched_run(struct pinsched
*, struct ovs_list
*txq
);
34 void pinsched_wait(struct pinsched
*);
36 struct pinsched_stats
{
37 unsigned int n_queued
; /* # currently queued to send. */
38 unsigned long long n_normal
; /* # txed w/o rate limit queuing. */
39 unsigned long long n_limited
; /* # queued for rate limiting. */
40 unsigned long long n_queue_dropped
; /* # dropped due to queue overflow. */
43 void pinsched_get_stats(const struct pinsched
*, struct pinsched_stats
*);
45 #endif /* pinsched.h */