]> git.saurik.com Git - apple/xnu.git/blob - bsd/netinet6/natpt_soctl.h
10204316f794164d60cc681dfdd0147060d926b8
[apple/xnu.git] / bsd / netinet6 / natpt_soctl.h
1 /* $KAME: natpt_soctl.h,v 1.8 2000/03/25 07:23:56 sumikawa Exp $ */
2
3 /*
4 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of the project nor the names of its contributors
16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 */
31
32 /* cmd for use with ioctl at the socket */
33 /* _IO() no parameters */
34 /* _IOR() copy out parameters */
35 /* _IOW() copy in parameters */
36 /* _IOWR() copy in/out parameters */
37
38 #define SIOCSETIF _IOW ('n', 0, struct natpt_msgBox) /* Set interface side */
39 #define SIOCGETIF _IOWR('n', 1, struct natpt_msgBox) /* Get interface sidde */
40 #define SIOCENBTRANS _IOW ('n', 2, struct natpt_msgBox) /* Enable translation */
41 #define SIOCDSBTRANS _IOW ('n', 3, struct natpt_msgBox) /* Disable translation */
42 #define SIOCSETRULE _IOW ('n', 4, struct natpt_msgBox) /* Set rule */
43 #define SIOCGETRULE _IOWR('n', 5, struct natpt_msgBox) /* Get rule */
44 #define SIOCFLUSHRULE _IOW ('n', 6, struct natpt_msgBox) /* Flush rule */
45 #define SIOCSETPREFIX _IOW ('n', 8, struct natpt_msgBox) /* Set prefix */
46 #define SIOCGETPREFIX _IOWR('n', 9, struct natpt_msgBox) /* Get prefix */
47 #define SIOCSETVALUE _IOW ('n', 10, struct natpt_msgBox) /* Set value */
48 #define SIOCGETVALUE _IOW ('n', 11, struct natpt_msgBox) /* Get value */
49
50 #define SIOCTESTLOG _IOW ('n', 12, struct natpt_msgBox) /* Test log */
51
52 #define SIOCBREAK _IO ('n', 255) /* stop */
53
54
55 typedef struct natpt_msgBox /* sizeof(): 44[byte] */
56 {
57 int flags;
58 /* in case SIOC(GET|SET)IF */
59 #define IF_EXTERNAL (0x01)
60 #define IF_INTERNAL (0x02)
61
62 /* in case SIOT(SET|GET)RULE */
63 #ifndef NATPT_STATIC
64 #define NATPT_STATIC (0x01)
65 #define NATPT_DYNAMIC (0x02)
66 #define NATPT_FAITH (0x03)
67 #endif
68
69 /* in case SIOCFLUSHRULE ... bitwise */
70 #define FLUSH_STATIC (0x01)
71 #define FLUSH_DYNAMIC (0x02)
72
73 /* in case SIOC(GET|SET)PREFIX */
74 #define PREFIX_FAITH (0x01)
75 #define PREFIX_NATPT (0x02)
76
77 /* in case SIOC(GET|SET)VALUE */
78 #define NATPT_DEBUG (0x01) /* natpt_debug := <value> */
79 #define NATPT_DUMP (0x02) /* natpt_dump := <value> */
80
81 int size; /* sizeof(*freight) */
82 char *freight;
83 union
84 {
85 char M_ifName[IFNAMSIZ];
86 char M_aux[32];
87 } M_dat;
88 } natpt_msgBox;
89
90 #define m_ifName M_dat.M_ifName
91 #define m_aux M_dat.M_aux