aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/sockio.h
blob: 1198dd8728cc6d6a1737962d12d3791fa0b1ee71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
/*	$OpenBSD: sockio.h,v 1.83 2019/11/13 11:54:01 tobhe Exp $	*/
/*	$NetBSD: sockio.h,v 1.5 1995/08/23 00:40:47 thorpej Exp $	*/

/*-
 * Copyright (c) 1982, 1986, 1990, 1993, 1994
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)sockio.h	8.1 (Berkeley) 3/28/94
 */

#ifndef	_SYS_SOCKIO_H_
#define	_SYS_SOCKIO_H_

#include <sys/ioccom.h>

/* Socket ioctl's. */
#define	SIOCATMARK	 _IOR('s',  7, int)		/* at oob mark? */
#define	SIOCSPGRP	 _IOW('s',  8, int)		/* set process group */
#define	SIOCGPGRP	 _IOR('s',  9, int)		/* get process group */

#define	SIOCSIFADDR	 _IOW('i', 12, struct ifreq)	/* set ifnet address */
#define	SIOCGIFADDR	_IOWR('i', 33, struct ifreq)	/* get ifnet address */
#define	SIOCSIFDSTADDR	 _IOW('i', 14, struct ifreq)	/* set p-p address */
#define	SIOCGIFDSTADDR	_IOWR('i', 34, struct ifreq)	/* get p-p address */
#define	SIOCSIFFLAGS	 _IOW('i', 16, struct ifreq)	/* set ifnet flags */
#define	SIOCGIFFLAGS	_IOWR('i', 17, struct ifreq)	/* get ifnet flags */
#define	SIOCGIFBRDADDR	_IOWR('i', 35, struct ifreq)	/* get broadcast addr */
#define	SIOCSIFBRDADDR	 _IOW('i', 19, struct ifreq)	/* set broadcast addr */
#define	SIOCGIFCONF	_IOWR('i', 36, struct ifconf)	/* get ifnet list */
#define	SIOCGIFNETMASK	_IOWR('i', 37, struct ifreq)	/* get net addr mask */
#define	SIOCSIFNETMASK	 _IOW('i', 22, struct ifreq)	/* set net addr mask */
#define	SIOCGIFMETRIC	_IOWR('i', 23, struct ifreq)	/* get IF metric */
#define	SIOCSIFMETRIC	 _IOW('i', 24, struct ifreq)	/* set IF metric */
#define	SIOCDIFADDR	 _IOW('i', 25, struct ifreq)	/* delete IF addr */
#define	SIOCAIFADDR	 _IOW('i', 26, struct ifaliasreq)/* add/chg IF alias */
#define	SIOCGIFDATA	_IOWR('i', 27, struct ifreq)	/* get if_data */
#define	SIOCSIFLLADDR	_IOW('i', 31, struct ifreq)	/* set link level addr */

#define	SIOCADDMULTI	 _IOW('i', 49, struct ifreq)	/* add m'cast addr */
#define	SIOCDELMULTI	 _IOW('i', 50, struct ifreq)	/* del m'cast addr */
#define	SIOCGETVIFCNT	_IOWR('u', 51, struct sioc_vif_req)/* vif pkt cnt */
#define	SIOCGETSGCNT	_IOWR('u', 52, struct sioc_sg_req) /* sg pkt cnt */

/* 53 and 54 used to be SIOC[SG]IFMEDIA with a 32 bit media word */
#define	SIOCSIFMEDIA	_IOWR('i', 55, struct ifreq)	/* set net media */
#define	SIOCGIFMEDIA	_IOWR('i', 56, struct ifmediareq) /* get net media */
#define	SIOCGIFSFFPAGE	_IOWR('i', 57, struct if_sffpage) /* get SFF page */

#define	SIOCDIFPHYADDR	 _IOW('i', 73, struct ifreq)	/* delete gif addrs */
#define	SIOCSLIFPHYADDR	 _IOW('i', 74, struct if_laddrreq) /* set gif addrs */
#define	SIOCGLIFPHYADDR	_IOWR('i', 75, struct if_laddrreq) /* get gif addrs */

#define	SIOCBRDGADD	 _IOW('i', 60, struct ifbreq)	/* add bridge ifs */
#define	SIOCBRDGDEL	 _IOW('i', 61, struct ifbreq)	/* del bridge ifs */
#define	SIOCBRDGGIFFLGS	_IOWR('i', 62, struct ifbreq)	/* get brdg if flags */
#define	SIOCBRDGSIFFLGS	 _IOW('i', 63, struct ifbreq)	/* set brdg if flags */
#define	SIOCBRDGSCACHE	 _IOW('i', 64, struct ifbrparam)/* set cache size */
#define	SIOCBRDGGCACHE	_IOWR('i', 65, struct ifbrparam)/* get cache size */
#define	SIOCBRDGADDS	 _IOW('i', 65, struct ifbreq)	/* add span port */
#define	SIOCBRDGIFS	_IOWR('i', 66, struct ifbreq)	/* get member ifs */
#define	SIOCBRDGDELS	 _IOW('i', 66, struct ifbreq)	/* del span port */
#define	SIOCBRDGRTS	_IOWR('i', 67, struct ifbaconf)	/* get addresses */
#define	SIOCBRDGSADDR	_IOWR('i', 68, struct ifbareq)	/* set addr flags */
#define	SIOCBRDGSTO	 _IOW('i', 69, struct ifbrparam)/* cache timeout */
#define	SIOCBRDGGTO	_IOWR('i', 70, struct ifbrparam)/* cache timeout */
#define	SIOCBRDGDADDR	 _IOW('i', 71, struct ifbareq)	/* delete addr */
#define	SIOCBRDGFLUSH	 _IOW('i', 72, struct ifbreq)	/* flush addr cache */
#define	SIOCBRDGADDL	 _IOW('i', 73, struct ifbreq)	/* add local port */
#define	SIOCBRDGSIFPROT	 _IOW('i', 74, struct ifbreq)	/* set protected grp */

#define SIOCBRDGARL	 _IOW('i', 77, struct ifbrlreq)	/* add bridge rule */
#define SIOCBRDGFRL	 _IOW('i', 78, struct ifbrlreq)	/* flush brdg rules */
#define SIOCBRDGGRL	_IOWR('i', 79, struct ifbrlconf)/* get bridge rules */
#define	SIOCBRDGGPRI	_IOWR('i', 80, struct ifbrparam)/* get priority */
#define	SIOCBRDGSPRI	 _IOW('i', 80, struct ifbrparam)/* set priority */
#define	SIOCBRDGGHT	_IOWR('i', 81, struct ifbrparam)/* get hello time */
#define	SIOCBRDGSHT	 _IOW('i', 81, struct ifbrparam)/* set hello time */
#define	SIOCBRDGGFD	_IOWR('i', 82, struct ifbrparam)/* get forward delay */
#define	SIOCBRDGSFD	 _IOW('i', 82, struct ifbrparam)/* set forward delay */
#define	SIOCBRDGGMA	_IOWR('i', 83, struct ifbrparam)/* get max age */
#define	SIOCBRDGSMA	 _IOW('i', 83, struct ifbrparam)/* set max age */
#define	SIOCBRDGSIFPRIO	 _IOW('i', 84, struct ifbreq)	/* set if priority */
#define	SIOCBRDGSIFCOST  _IOW('i', 85, struct ifbreq)	/* set if cost */

#define SIOCBRDGGPARAM  _IOWR('i', 88, struct ifbropreq)/* get brdg STP parms */
#define SIOCBRDGSTXHC    _IOW('i', 89, struct ifbrparam)/* set tx hold count */
#define SIOCBRDGSPROTO	 _IOW('i', 90, struct ifbrparam)/* set protocol */
#define SIOCBRDGS

#define	SIOCSWGDPID	_IOWR('i', 91, struct ifbrparam)/* get datapath id */
#define	SIOCSWSDPID	 _IOW('i', 92, struct ifbrparam)/* set datapath id */
#define	SIOCSWGMAXGROUP	_IOWR('i', 93, struct ifbrparam)/* get max groups */
#define	SIOCSWSPORTNO	_IOWR('i', 95, struct ifbreq)	/* set port number */
#define	SIOCSWGMAXFLOW	_IOWR('i', 96, struct ifbrparam)/* get max flow per table */

#define	SIOCSIFMTU	 _IOW('i', 127, struct ifreq)	/* set ifnet mtu */
#define	SIOCGIFMTU	_IOWR('i', 126, struct ifreq)	/* get ifnet mtu */

#define	SIOCIFCREATE	 _IOW('i', 122, struct ifreq)	/* create clone if */
#define	SIOCIFDESTROY	 _IOW('i', 121, struct ifreq)	/* destroy clone if */
#define	SIOCIFGCLONERS	_IOWR('i', 120, struct if_clonereq) /* get cloners */

#define	SIOCAIFGROUP	_IOW('i', 135, struct ifgroupreq) /* add an ifgroup */
#define	SIOCGIFGROUP   _IOWR('i', 136, struct ifgroupreq) /* get ifgroups */
#define	SIOCDIFGROUP    _IOW('i', 137, struct ifgroupreq) /* delete ifgroup */
#define	SIOCGIFGMEMB   _IOWR('i', 138, struct ifgroupreq) /* get members */
#define	SIOCGIFGATTR   _IOWR('i', 139, struct ifgroupreq) /* get ifgroup attribs */
#define	SIOCSIFGATTR   _IOW('i', 140, struct ifgroupreq) /* set ifgroup attribs */
#define	SIOCGIFGLIST   _IOWR('i', 141, struct ifgroupreq) /* get ifgroup list */

#define	SIOCSIFDESCR	 _IOW('i', 128, struct ifreq)	/* set ifnet descr */
#define	SIOCGIFDESCR	_IOWR('i', 129, struct ifreq)	/* get ifnet descr */

#define	SIOCSIFRTLABEL	 _IOW('i', 130, struct ifreq)	/* set ifnet rtlabel */
#define	SIOCGIFRTLABEL	_IOWR('i', 131, struct ifreq)	/* set ifnet rtlabel */

#define	SIOCSETVLAN	 _IOW('i', 143, struct ifreq)	/* set vlan parent if */
#define	SIOCGETVLAN	_IOWR('i', 144, struct ifreq)	/* get vlan parent if */

#define	SIOCSSPPPPARAMS	 _IOW('i', 147, struct ifreq)	/* set pppoe params */
#define	SIOCGSPPPPARAMS	_IOWR('i', 148, struct ifreq)	/* get pppoe params */

#define SIOCDELLABEL	 _IOW('i', 151, struct ifreq)	/* del MPLS label */
#define SIOCGPWE3	 _IOWR('i', 152, struct ifreq)	/* get MPLS PWE3 cap */
#define SIOCSETLABEL	 _IOW('i', 153, struct ifreq)	/* set MPLS label */
#define SIOCGETLABEL	 _IOW('i', 154, struct ifreq)	/* get MPLS label */

#define SIOCSIFPRIORITY	 _IOW('i', 155, struct ifreq)	/* set if priority */
#define SIOCGIFPRIORITY	_IOWR('i', 156, struct ifreq)	/* get if priority */

#define	SIOCSIFXFLAGS	 _IOW('i', 157, struct ifreq)	/* set ifnet xflags */
#define	SIOCGIFXFLAGS	_IOWR('i', 158, struct ifreq)	/* get ifnet xflags */

#define	SIOCSIFRDOMAIN	 _IOW('i', 159, struct ifreq)	/* set ifnet VRF id */
#define	SIOCGIFRDOMAIN	_IOWR('i', 160, struct ifreq)	/* get ifnet VRF id */

#define	SIOCSLIFPHYRTABLE _IOW('i', 161, struct ifreq) /* set tunnel VRF id */
#define	SIOCGLIFPHYRTABLE _IOWR('i', 162, struct ifreq) /* get tunnel VRF id */

#define SIOCSETKALIVE	_IOW('i', 163, struct ifkalivereq)
#define SIOCGETKALIVE	_IOWR('i', 164, struct ifkalivereq)

#define	SIOCGIFHARDMTU	_IOWR('i', 165, struct ifreq)	/* get ifnet hardmtu */

#define SIOCSVNETID	_IOW('i', 166, struct ifreq)	/* set virt net id */
#define SIOCGVNETID	_IOWR('i', 167, struct ifreq)	/* get virt net id */

#define SIOCSLIFPHYTTL	_IOW('i', 168, struct ifreq)	/* set tunnel ttl */
#define SIOCGLIFPHYTTL	_IOWR('i', 169, struct ifreq)	/* get tunnel ttl */

#define SIOCGIFRXR	_IOW('i', 170, struct ifreq)
#define SIOCIFAFATTACH	_IOW('i', 171, struct if_afreq)	/* attach given af */
#define SIOCIFAFDETACH	_IOW('i', 172, struct if_afreq)	/* detach given af */

#define SIOCSETMPWCFG	_IOW('i', 173, struct ifreq) /* set mpw config */
#define SIOCGETMPWCFG	_IOWR('i', 174, struct ifreq) /* get mpw config */

#define SIOCDVNETID	_IOW('i', 175, struct ifreq)	/* del virt net id */

#define SIOCSIFPAIR	_IOW('i', 176, struct ifreq)	/* set paired if */ 
#define SIOCGIFPAIR	_IOWR('i', 177, struct ifreq)	/* get paired if */

#define SIOCSIFPARENT	_IOW('i', 178, struct if_parent) /* set parent if */
#define SIOCGIFPARENT	_IOWR('i', 179, struct if_parent) /* get parent if */
#define SIOCDIFPARENT	_IOW('i', 180, struct ifreq)	/* del parent if */

#define	SIOCSIFLLPRIO	_IOW('i', 181, struct ifreq)	/* set ifnet llprio */
#define	SIOCGIFLLPRIO	_IOWR('i', 182, struct ifreq)	/* get ifnet llprio */

#define	SIOCGUMBINFO	_IOWR('i', 190, struct ifreq)	/* get MBIM info */
#define	SIOCSUMBPARAM	 _IOW('i', 191, struct ifreq)	/* set MBIM param */
#define	SIOCGUMBPARAM	_IOWR('i', 192, struct ifreq)	/* get MBIM param */

#define	SIOCSLIFPHYDF	_IOW('i', 193, struct ifreq)	/* set tunnel df/nodf */
#define	SIOCGLIFPHYDF	_IOWR('i', 194, struct ifreq)	/* set tunnel df/nodf */

#define	SIOCSVNETFLOWID	_IOW('i', 195, struct ifreq)	/* set vnet flowid */
#define	SIOCGVNETFLOWID	_IOWR('i', 196, struct ifreq)	/* get vnet flowid */

#define	SIOCSTXHPRIO	_IOW('i', 197, struct ifreq)	/* set tx hdr prio */
#define	SIOCGTXHPRIO	_IOWR('i', 198, struct ifreq)	/* get tx hdr prio */

#define	SIOCSLIFPHYECN	_IOW('i', 199, struct ifreq)	/* set ecn copying */
#define	SIOCGLIFPHYECN	_IOWR('i', 200, struct ifreq)	/* get ecn copying */

#define	SIOCSRXHPRIO	_IOW('i', 219, struct ifreq)	/* set rx hdr prio */
#define	SIOCGRXHPRIO	_IOWR('i', 219, struct ifreq)	/* get rx hdr prio */

#define SIOCSPWE3CTRLWORD	_IOW('i', 220, struct ifreq)
#define SIOCGPWE3CTRLWORD	_IOWR('i',  220, struct ifreq)
#define SIOCSPWE3FAT		_IOW('i', 221, struct ifreq)
#define SIOCGPWE3FAT		_IOWR('i', 221, struct ifreq)
#define SIOCSPWE3NEIGHBOR	_IOW('i', 222, struct if_laddrreq)
#define SIOCGPWE3NEIGHBOR	_IOWR('i', 222, struct if_laddrreq)
#define SIOCDPWE3NEIGHBOR	_IOW('i', 222, struct ifreq)

#define	SIOCSVH		_IOWR('i', 245, struct ifreq)	/* set carp param */
#define	SIOCGVH		_IOWR('i', 246, struct ifreq)	/* get carp param */

#define	SIOCSETPFSYNC	_IOW('i', 247, struct ifreq)
#define	SIOCGETPFSYNC	_IOWR('i', 248, struct ifreq)

#define	SIOCSETPFLOW	_IOW('i', 253, struct ifreq)
#define	SIOCGETPFLOW	_IOWR('i', 254, struct ifreq)

#endif /* !_SYS_SOCKIO_H_ */