xref: /dflybsd-src/sys/net/altq/altq_var.h (revision 805c8e8e4093ceca2e27510ad3a66d4de8060a55)
14d723e5aSJoerg Sonnenberger /*	$KAME: altq_var.h,v 1.17 2004/04/20 05:09:08 kjc Exp $	*/
24d723e5aSJoerg Sonnenberger 
34d723e5aSJoerg Sonnenberger /*
44d723e5aSJoerg Sonnenberger  * Copyright (C) 1998-2003
54d723e5aSJoerg Sonnenberger  *	Sony Computer Science Laboratories Inc.  All rights reserved.
64d723e5aSJoerg Sonnenberger  *
74d723e5aSJoerg Sonnenberger  * Redistribution and use in source and binary forms, with or without
84d723e5aSJoerg Sonnenberger  * modification, are permitted provided that the following conditions
94d723e5aSJoerg Sonnenberger  * are met:
104d723e5aSJoerg Sonnenberger  * 1. Redistributions of source code must retain the above copyright
114d723e5aSJoerg Sonnenberger  *    notice, this list of conditions and the following disclaimer.
124d723e5aSJoerg Sonnenberger  * 2. Redistributions in binary form must reproduce the above copyright
134d723e5aSJoerg Sonnenberger  *    notice, this list of conditions and the following disclaimer in the
144d723e5aSJoerg Sonnenberger  *    documentation and/or other materials provided with the distribution.
154d723e5aSJoerg Sonnenberger  *
164d723e5aSJoerg Sonnenberger  * THIS SOFTWARE IS PROVIDED BY SONY CSL AND CONTRIBUTORS ``AS IS'' AND
174d723e5aSJoerg Sonnenberger  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
184d723e5aSJoerg Sonnenberger  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
194d723e5aSJoerg Sonnenberger  * ARE DISCLAIMED.  IN NO EVENT SHALL SONY CSL OR CONTRIBUTORS BE LIABLE
204d723e5aSJoerg Sonnenberger  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
214d723e5aSJoerg Sonnenberger  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
224d723e5aSJoerg Sonnenberger  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
234d723e5aSJoerg Sonnenberger  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
244d723e5aSJoerg Sonnenberger  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
254d723e5aSJoerg Sonnenberger  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
264d723e5aSJoerg Sonnenberger  * SUCH DAMAGE.
274d723e5aSJoerg Sonnenberger  */
284d723e5aSJoerg Sonnenberger #ifndef _ALTQ_ALTQ_VAR_H_
294d723e5aSJoerg Sonnenberger #define	_ALTQ_ALTQ_VAR_H_
304d723e5aSJoerg Sonnenberger 
314d723e5aSJoerg Sonnenberger #ifdef _KERNEL
324d723e5aSJoerg Sonnenberger 
3303d6a592SMatthew Dillon #ifndef _SYS_PARAM_H_
344d723e5aSJoerg Sonnenberger #include <sys/param.h>
3503d6a592SMatthew Dillon #endif
3603d6a592SMatthew Dillon #ifndef _SYS_KERNEL_H_
374d723e5aSJoerg Sonnenberger #include <sys/kernel.h>
3803d6a592SMatthew Dillon #endif
3903d6a592SMatthew Dillon #ifndef _SYS_QUEUE_H_
404d723e5aSJoerg Sonnenberger #include <sys/queue.h>
4103d6a592SMatthew Dillon #endif
424d723e5aSJoerg Sonnenberger 
43*805c8e8eSzrj #ifdef MALLOC_DECLARE
444d723e5aSJoerg Sonnenberger MALLOC_DECLARE(M_ALTQ);
45*805c8e8eSzrj #endif
464d723e5aSJoerg Sonnenberger 
474d723e5aSJoerg Sonnenberger /*
484d723e5aSJoerg Sonnenberger  * machine dependent clock
494d723e5aSJoerg Sonnenberger  * a 64bit high resolution time counter.
504d723e5aSJoerg Sonnenberger  */
51870b0161SMatthew Dillon extern uint64_t	machclk_freq;
524d723e5aSJoerg Sonnenberger extern uint32_t	machclk_per_tick;
534d723e5aSJoerg Sonnenberger 
544d723e5aSJoerg Sonnenberger void		init_machclk(void);
554d723e5aSJoerg Sonnenberger uint64_t	read_machclk(void);
564d723e5aSJoerg Sonnenberger 
574d723e5aSJoerg Sonnenberger #define	m_pktlen(m)		((m)->m_pkthdr.len)
584d723e5aSJoerg Sonnenberger 
594d723e5aSJoerg Sonnenberger extern int pfaltq_running;
604d723e5aSJoerg Sonnenberger 
614d723e5aSJoerg Sonnenberger struct ifnet;
624d723e5aSJoerg Sonnenberger struct mbuf;
634d723e5aSJoerg Sonnenberger struct pf_altq;
6470224baaSJan Lentfer struct pf_mtag;
654d723e5aSJoerg Sonnenberger 
664d723e5aSJoerg Sonnenberger void	*altq_lookup(const char *, int);
674d723e5aSJoerg Sonnenberger uint8_t	read_dsfield(struct mbuf *, struct altq_pktattr *);
684d723e5aSJoerg Sonnenberger void	write_dsfield(struct mbuf *, struct altq_pktattr *, uint8_t);
694d723e5aSJoerg Sonnenberger int	tbr_set(struct ifaltq *, struct tb_profile *);
704d723e5aSJoerg Sonnenberger int	tbr_get(struct ifaltq *, struct tb_profile *);
714d723e5aSJoerg Sonnenberger 
724d723e5aSJoerg Sonnenberger int	altq_pfattach(struct pf_altq *);
734d723e5aSJoerg Sonnenberger int	altq_pfdetach(struct pf_altq *);
744d723e5aSJoerg Sonnenberger int	altq_add(struct pf_altq *);
754d723e5aSJoerg Sonnenberger int	altq_remove(struct pf_altq *);
764d723e5aSJoerg Sonnenberger int	altq_add_queue(struct pf_altq *);
774d723e5aSJoerg Sonnenberger int	altq_remove_queue(struct pf_altq *);
784d723e5aSJoerg Sonnenberger int	altq_getqstats(struct pf_altq *, void *, int *);
794d723e5aSJoerg Sonnenberger 
809db4b353SSepherosa Ziehau int	cbq_pfattach(struct pf_altq *, struct ifaltq *);
814d723e5aSJoerg Sonnenberger int	cbq_add_altq(struct pf_altq *);
824d723e5aSJoerg Sonnenberger int	cbq_remove_altq(struct pf_altq *);
834d723e5aSJoerg Sonnenberger int	cbq_add_queue(struct pf_altq *);
844d723e5aSJoerg Sonnenberger int	cbq_remove_queue(struct pf_altq *);
854d723e5aSJoerg Sonnenberger int	cbq_getqstats(struct pf_altq *, void *, int *);
864d723e5aSJoerg Sonnenberger 
879db4b353SSepherosa Ziehau int	priq_pfattach(struct pf_altq *, struct ifaltq *);
884d723e5aSJoerg Sonnenberger int	priq_add_altq(struct pf_altq *);
894d723e5aSJoerg Sonnenberger int	priq_remove_altq(struct pf_altq *);
904d723e5aSJoerg Sonnenberger int	priq_add_queue(struct pf_altq *);
914d723e5aSJoerg Sonnenberger int	priq_remove_queue(struct pf_altq *);
924d723e5aSJoerg Sonnenberger int	priq_getqstats(struct pf_altq *, void *, int *);
934d723e5aSJoerg Sonnenberger 
949db4b353SSepherosa Ziehau int	hfsc_pfattach(struct pf_altq *, struct ifaltq *);
954d723e5aSJoerg Sonnenberger int	hfsc_add_altq(struct pf_altq *);
964d723e5aSJoerg Sonnenberger int	hfsc_remove_altq(struct pf_altq *);
974d723e5aSJoerg Sonnenberger int	hfsc_add_queue(struct pf_altq *);
984d723e5aSJoerg Sonnenberger int	hfsc_remove_queue(struct pf_altq *);
994d723e5aSJoerg Sonnenberger int	hfsc_getqstats(struct pf_altq *, void *, int *);
1004d723e5aSJoerg Sonnenberger 
1019db4b353SSepherosa Ziehau int	fairq_pfattach(struct pf_altq *, struct ifaltq *);
1025950bf01SMatthew Dillon int	fairq_add_altq(struct pf_altq *);
1035950bf01SMatthew Dillon int	fairq_remove_altq(struct pf_altq *);
1045950bf01SMatthew Dillon int	fairq_add_queue(struct pf_altq *);
1055950bf01SMatthew Dillon int	fairq_remove_queue(struct pf_altq *);
1065950bf01SMatthew Dillon int	fairq_getqstats(struct pf_altq *, void *, int *);
1075950bf01SMatthew Dillon 
1084d723e5aSJoerg Sonnenberger #endif /* _KERNEL */
1094d723e5aSJoerg Sonnenberger #endif /* _ALTQ_ALTQ_VAR_H_ */
110