Home | History | Annotate | Line # | Download | only in net
      1 /*	$NetBSD: pf_mtag.h,v 1.2 2008/06/18 09:06:27 yamt Exp $	*/
      2 /*	$OpenBSD: pfvar.h,v 1.231 2005/10/17 08:43:35 henning Exp $ */
      3 
      4 /*
      5  * Copyright (c) 2001 Daniel Hartmeier
      6  * All rights reserved.
      7  *
      8  * Redistribution and use in source and binary forms, with or without
      9  * modification, are permitted provided that the following conditions
     10  * are met:
     11  *
     12  *    - Redistributions of source code must retain the above copyright
     13  *      notice, this list of conditions and the following disclaimer.
     14  *    - Redistributions in binary form must reproduce the above
     15  *      copyright notice, this list of conditions and the following
     16  *      disclaimer in the documentation and/or other materials provided
     17  *      with the distribution.
     18  *
     19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     22  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     23  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     25  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     26  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     27  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     29  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     30  * POSSIBILITY OF SUCH DAMAGE.
     31  *
     32  */
     33 
     34 #ifndef _NET_PF_MTAG_H_
     35 #define _NET_PF_MTAG_H_
     36 
     37 #include <sys/types.h>
     38 #include <sys/socket.h>
     39 
     40 #ifdef _KERNEL
     41 
     42 #define	PF_TAG_GENERATED		0x01
     43 #define	PF_TAG_FRAGCACHE		0x02
     44 #define	PF_TAG_TRANSLATE_LOCALHOST	0x04
     45 
     46 struct pf_mtag {
     47 	void		*hdr;		/* saved hdr pos in mbuf, for ECN */
     48 	u_int		 rtableid;	/* alternate routing table id */
     49 	u_int32_t	 qid;		/* queue id */
     50 	u_int16_t	 tag;		/* tag id */
     51 	u_int8_t	 flags;
     52 	u_int8_t	 routed;
     53 	sa_family_t	 af;		/* for ECN */
     54 };
     55 
     56 struct pf_mtag	*pf_find_mtag(struct mbuf *);
     57 struct pf_mtag	*pf_get_mtag(struct mbuf *);
     58 
     59 #endif /* _KERNEL */
     60 
     61 #endif /* _NET_PF_MTAG_H_ */
     62