1193323Sed/*	$NetBSD$	*/
2193323Sed/*	$KAME: qop_rio.h,v 1.2 2000/10/18 09:15:20 kjc Exp $	*/
3193323Sed/*
4193323Sed * Copyright (C) 1999-2000
5193323Sed *	Sony Computer Science Laboratories, Inc.  All rights reserved.
6193323Sed *
7193323Sed * Redistribution and use in source and binary forms, with or without
8193323Sed * modification, are permitted provided that the following conditions
9193323Sed * are met:
10193323Sed * 1. Redistributions of source code must retain the above copyright
11193323Sed *    notice, this list of conditions and the following disclaimer.
12193323Sed * 2. Redistributions in binary form must reproduce the above copyright
13193323Sed *    notice, this list of conditions and the following disclaimer in the
14193323Sed *    documentation and/or other materials provided with the distribution.
15193323Sed *
16193323Sed * THIS SOFTWARE IS PROVIDED BY SONY CSL AND CONTRIBUTORS ``AS IS'' AND
17193323Sed * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18193323Sed * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19193323Sed * ARE DISCLAIMED.  IN NO EVENT SHALL SONY CSL OR CONTRIBUTORS BE LIABLE
20193323Sed * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21193323Sed * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22193323Sed * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23193323Sed * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24193323Sed * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25193323Sed * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26193323Sed * SUCH DAMAGE.
27193323Sed */
28193323Sed
29193323Sed/*
30193323Sed * rio private ifinfo structure
31193323Sed */
32193323Sedstruct rio_ifinfo {
33193323Sed	struct redparams red_params[RIO_NDROPPREC];
34193323Sed	int weight;		/* weight for EWMA */
35193323Sed	int qlimit;		/* max queue length */
36193323Sed	int pkttime;		/* average packet time in usec */
37193323Sed	int flags;		/* see below */
38193323Sed};
39193323Sed
40193323Sedint rio_interface_parser(const char *ifname, int argc, char **argv);
41193323Sedint qcmd_rio_add_if(const char *ifname, u_int bandwidth, int weight,
42193323Sed		    int lo_inv_pmax, int lo_th_min, int lo_th_max,
43193323Sed		    int mid_inv_pmax, int mid_th_min, int mid_th_max,
44193323Sed		    int hi_inv_pmax, int hi_th_min, int hi_th_max,
45193323Sed		    int qlimit, int pkttime, int flags);
46193323Sedint qop_rio_add_if(struct ifinfo **rp, const char *ifname,
47193323Sed		   u_int bandwidth, int weight, struct redparams *red_params,
48193323Sed		   int qlimit, int pkttime, int flags);
49193323Sed