1*bbb1b6f9SApple OSS Distributions /* 2*bbb1b6f9SApple OSS Distributions * Copyright (c) 2011-2016 Apple Inc. All rights reserved. 3*bbb1b6f9SApple OSS Distributions * 4*bbb1b6f9SApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5*bbb1b6f9SApple OSS Distributions * 6*bbb1b6f9SApple OSS Distributions * This file contains Original Code and/or Modifications of Original Code 7*bbb1b6f9SApple OSS Distributions * as defined in and that are subject to the Apple Public Source License 8*bbb1b6f9SApple OSS Distributions * Version 2.0 (the 'License'). You may not use this file except in 9*bbb1b6f9SApple OSS Distributions * compliance with the License. The rights granted to you under the License 10*bbb1b6f9SApple OSS Distributions * may not be used to create, or enable the creation or redistribution of, 11*bbb1b6f9SApple OSS Distributions * unlawful or unlicensed copies of an Apple operating system, or to 12*bbb1b6f9SApple OSS Distributions * circumvent, violate, or enable the circumvention or violation of, any 13*bbb1b6f9SApple OSS Distributions * terms of an Apple operating system software license agreement. 14*bbb1b6f9SApple OSS Distributions * 15*bbb1b6f9SApple OSS Distributions * Please obtain a copy of the License at 16*bbb1b6f9SApple OSS Distributions * http://www.opensource.apple.com/apsl/ and read it before using this file. 17*bbb1b6f9SApple OSS Distributions * 18*bbb1b6f9SApple OSS Distributions * The Original Code and all software distributed under the License are 19*bbb1b6f9SApple OSS Distributions * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20*bbb1b6f9SApple OSS Distributions * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21*bbb1b6f9SApple OSS Distributions * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22*bbb1b6f9SApple OSS Distributions * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23*bbb1b6f9SApple OSS Distributions * Please see the License for the specific language governing rights and 24*bbb1b6f9SApple OSS Distributions * limitations under the License. 25*bbb1b6f9SApple OSS Distributions * 26*bbb1b6f9SApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27*bbb1b6f9SApple OSS Distributions */ 28*bbb1b6f9SApple OSS Distributions 29*bbb1b6f9SApple OSS Distributions /* $NetBSD: altq_red.h,v 1.5 2006/10/12 19:59:08 peter Exp $ */ 30*bbb1b6f9SApple OSS Distributions /* $KAME: altq_red.h,v 1.8 2003/07/10 12:07:49 kjc Exp $ */ 31*bbb1b6f9SApple OSS Distributions 32*bbb1b6f9SApple OSS Distributions /* 33*bbb1b6f9SApple OSS Distributions * Copyright (C) 1997-2003 34*bbb1b6f9SApple OSS Distributions * Sony Computer Science Laboratories Inc. All rights reserved. 35*bbb1b6f9SApple OSS Distributions * 36*bbb1b6f9SApple OSS Distributions * Redistribution and use in source and binary forms, with or without 37*bbb1b6f9SApple OSS Distributions * modification, are permitted provided that the following conditions 38*bbb1b6f9SApple OSS Distributions * are met: 39*bbb1b6f9SApple OSS Distributions * 1. Redistributions of source code must retain the above copyright 40*bbb1b6f9SApple OSS Distributions * notice, this list of conditions and the following disclaimer. 41*bbb1b6f9SApple OSS Distributions * 2. Redistributions in binary form must reproduce the above copyright 42*bbb1b6f9SApple OSS Distributions * notice, this list of conditions and the following disclaimer in the 43*bbb1b6f9SApple OSS Distributions * documentation and/or other materials provided with the distribution. 44*bbb1b6f9SApple OSS Distributions * 45*bbb1b6f9SApple OSS Distributions * THIS SOFTWARE IS PROVIDED BY SONY CSL AND CONTRIBUTORS ``AS IS'' AND 46*bbb1b6f9SApple OSS Distributions * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 47*bbb1b6f9SApple OSS Distributions * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 48*bbb1b6f9SApple OSS Distributions * ARE DISCLAIMED. IN NO EVENT SHALL SONY CSL OR CONTRIBUTORS BE LIABLE 49*bbb1b6f9SApple OSS Distributions * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 50*bbb1b6f9SApple OSS Distributions * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 51*bbb1b6f9SApple OSS Distributions * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 52*bbb1b6f9SApple OSS Distributions * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 53*bbb1b6f9SApple OSS Distributions * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 54*bbb1b6f9SApple OSS Distributions * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 55*bbb1b6f9SApple OSS Distributions * SUCH DAMAGE. 56*bbb1b6f9SApple OSS Distributions */ 57*bbb1b6f9SApple OSS Distributions 58*bbb1b6f9SApple OSS Distributions #ifndef _NET_CLASSQ_CLASSQ_RED_H_ 59*bbb1b6f9SApple OSS Distributions #define _NET_CLASSQ_CLASSQ_RED_H_ 60*bbb1b6f9SApple OSS Distributions 61*bbb1b6f9SApple OSS Distributions #ifdef PRIVATE 62*bbb1b6f9SApple OSS Distributions #ifdef BSD_KERNEL_PRIVATE 63*bbb1b6f9SApple OSS Distributions #include <net/classq/if_classq.h> 64*bbb1b6f9SApple OSS Distributions #endif /* BSD_KERNEL_PRIVATE */ 65*bbb1b6f9SApple OSS Distributions 66*bbb1b6f9SApple OSS Distributions #ifdef __cplusplus 67*bbb1b6f9SApple OSS Distributions extern "C" { 68*bbb1b6f9SApple OSS Distributions #endif 69*bbb1b6f9SApple OSS Distributions 70*bbb1b6f9SApple OSS Distributions /* 71*bbb1b6f9SApple OSS Distributions * simpler versions of red parameters and statistics used by other 72*bbb1b6f9SApple OSS Distributions * disciplines (e.g., CBQ) 73*bbb1b6f9SApple OSS Distributions */ 74*bbb1b6f9SApple OSS Distributions struct redparams { 75*bbb1b6f9SApple OSS Distributions int th_min; /* red min threshold */ 76*bbb1b6f9SApple OSS Distributions int th_max; /* red max threshold */ 77*bbb1b6f9SApple OSS Distributions int inv_pmax; /* inverse of max drop probability */ 78*bbb1b6f9SApple OSS Distributions }; 79*bbb1b6f9SApple OSS Distributions 80*bbb1b6f9SApple OSS Distributions struct red_stats { 81*bbb1b6f9SApple OSS Distributions int32_t q_avg; 82*bbb1b6f9SApple OSS Distributions u_int32_t _pad; 83*bbb1b6f9SApple OSS Distributions u_int32_t drop_forced; 84*bbb1b6f9SApple OSS Distributions u_int32_t drop_unforced; 85*bbb1b6f9SApple OSS Distributions u_int32_t marked_packets; 86*bbb1b6f9SApple OSS Distributions }; 87*bbb1b6f9SApple OSS Distributions 88*bbb1b6f9SApple OSS Distributions #ifdef __cplusplus 89*bbb1b6f9SApple OSS Distributions } 90*bbb1b6f9SApple OSS Distributions #endif 91*bbb1b6f9SApple OSS Distributions #endif /* PRIVATE */ 92*bbb1b6f9SApple OSS Distributions #endif /* _NET_CLASSQ_CLASSQ_RED_H_ */ 93