]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/classq/classq_rio.h
xnu-7195.81.3.tar.gz
[apple/xnu.git] / bsd / net / classq / classq_rio.h
index fb3c24199a0a9b2aaf07ef71974de1bbd1ed88df..3729765f7ed643a7aaadbb8f8f2ffaf5e6cdbdd4 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2011-2012 Apple Inc. All rights reserved.
+ * Copyright (c) 2011-2016 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
@@ -56,7 +56,7 @@
  */
 
 #ifndef _NET_CLASSQ_CLASSQ_RIO_H_
  */
 
 #ifndef _NET_CLASSQ_CLASSQ_RIO_H_
-#define        _NET_CLASSQ_CLASSQ_RIO_H_
+#define _NET_CLASSQ_CLASSQ_RIO_H_
 
 #ifdef PRIVATE
 #ifdef BSD_KERNEL_PRIVATE
 
 #ifdef PRIVATE
 #ifdef BSD_KERNEL_PRIVATE
@@ -71,66 +71,7 @@ extern "C" {
  * RIO: RED with IN/OUT bit
  * (extended to support more than 2 drop precedence values)
  */
  * RIO: RED with IN/OUT bit
  * (extended to support more than 2 drop precedence values)
  */
-#define        RIO_NDROPPREC   3       /* number of drop precedence values */
-
-#ifdef BSD_KERNEL_PRIVATE
-/* rio flags */
-#define        RIOF_ECN4       0x01    /* use packet marking for IPv4 packets */
-#define        RIOF_ECN6       0x02    /* use packet marking for IPv6 packets */
-#define        RIOF_ECN        (RIOF_ECN4 | RIOF_ECN6)
-#define        RIOF_CLEARDSCP  0x200   /* clear diffserv codepoint */
-
-#define        RIOF_USERFLAGS                                                  \
-       (RIOF_ECN4 | RIOF_ECN6 | RIOF_CLEARDSCP)
-
-typedef struct rio {
-       /* per drop precedence structure */
-       struct dropprec_state {
-               /* red parameters */
-               int     inv_pmax;       /* inverse of max drop probability */
-               int     th_min;         /* red min threshold */
-               int     th_max;         /* red max threshold */
-
-               /* variables for internal use */
-               int     th_min_s;       /* th_min scaled by avgshift */
-               int     th_max_s;       /* th_max scaled by avgshift */
-               int     probd;          /* drop probability denominator */
-
-               int     qlen;           /* queue length */
-               int     avg;            /* (scaled) queue length average */
-               int     count;          /* packet count since the last */
-                                       /*   dropped/marked packet */
-               int     idle;           /* queue was empty */
-               int     old;            /* avg is above th_min */
-               struct timeval  last;   /* timestamp when queue becomes idle */
-       } rio_precstate[RIO_NDROPPREC];
-
-       int              rio_wshift;    /* log(red_weight) */
-       int              rio_weight;    /* weight for EWMA */
-       struct wtab     *rio_wtab;      /* weight table */
-
-       int              rio_pkttime;   /* average packet time in micro sec */
-                                       /*   used for idle calibration */
-       int              rio_flags;     /* rio flags */
-       struct ifnet    *rio_ifp;       /* back pointer to ifnet */
-
-       u_int8_t         rio_codepoint; /* codepoint value to tag packets */
-       u_int8_t         rio_codepointmask;     /* codepoint mask bits */
-
-       struct red_stats q_stats[RIO_NDROPPREC];        /* statistics */
-} rio_t;
-
-extern void rio_init(void);
-extern rio_t *rio_alloc(struct ifnet *, int, struct redparams *, int, int);
-extern void rio_destroy(rio_t *);
-extern void rio_getstats(rio_t *, struct red_stats *);
-extern int rio_addq(rio_t *, class_queue_t *, struct mbuf *, struct pf_mtag *);
-extern struct mbuf *rio_getq(rio_t *, class_queue_t *);
-extern void rio_purgeq(struct rio *, class_queue_t *, u_int32_t,
-    u_int32_t *, u_int32_t *);
-extern void rio_updateq(rio_t *, cqev_t);
-extern int rio_suspendq(rio_t *, class_queue_t *, boolean_t);
-#endif /* BSD_KERNEL_PRIVATE */
+#define RIO_NDROPPREC   3       /* number of drop precedence values */
 
 #ifdef __cplusplus
 }
 
 #ifdef __cplusplus
 }