Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/netinet/in.h

Source at commit 1146 created 12 years 11 months ago.
By azimutz, Sync with trunk (r1145). Add nVidia dev id's, 0DF4 for "GeForce GT 450M" (issue 99) and 1251 for "GeForce GTX 560M" (thanks to oSxFr33k for testing).
1/*
2 * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/*
29 * Copyright (c) 1982, 1986, 1990, 1993
30 *The Regents of the University of California. All rights reserved.
31 *
32 * Redistribution and use in source and binary forms, with or without
33 * modification, are permitted provided that the following conditions
34 * are met:
35 * 1. Redistributions of source code must retain the above copyright
36 * notice, this list of conditions and the following disclaimer.
37 * 2. Redistributions in binary form must reproduce the above copyright
38 * notice, this list of conditions and the following disclaimer in the
39 * documentation and/or other materials provided with the distribution.
40 * 3. All advertising materials mentioning features or use of this software
41 * must display the following acknowledgement:
42 *This product includes software developed by the University of
43 *California, Berkeley and its contributors.
44 * 4. Neither the name of the University nor the names of its contributors
45 * may be used to endorse or promote products derived from this software
46 * without specific prior written permission.
47 *
48 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
49 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
50 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
51 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
52 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
53 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
54 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
55 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
56 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
57 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
58 * SUCH DAMAGE.
59 *
60 *@(#)in.h8.3 (Berkeley) 1/3/94
61 * $FreeBSD: src/sys/netinet/in.h,v 1.48.2.2 2001/04/21 14:53:06 ume Exp $
62 */
63
64#ifndef _NETINET_IN_H_
65#define _NETINET_IN_H_
66#include <sys/appleapiopts.h>
67#include <sys/_types.h>
68#include <stdint.h>/* uint(8|16|32)_t */
69
70#ifndef _IN_ADDR_T
71#define _IN_ADDR_T
72typedef__uint32_tin_addr_t;/* base type for internet address */
73#endif
74
75#ifndef _IN_PORT_T
76#define _IN_PORT_T
77typedef__uint16_tin_port_t;
78#endif
79
80/*
81 * POSIX 1003.1-2003
82 * "Inclusion of the <netinet/in.h> header may also make visible all
83 * symbols from <inttypes.h> and <sys/socket.h>".
84 */
85#include <sys/socket.h>
86
87/*
88 * The following two #includes insure htonl and family are defined
89 */
90#include <machine/endian.h>
91#include <sys/_endian.h>
92
93/*
94 * Constants and structures defined by the internet system,
95 * Per RFC 790, September 1981, and numerous additions.
96 */
97
98/*
99 * Protocols (RFC 1700)
100 */
101#defineIPPROTO_IP0/* dummy for IP */
102#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
103#defineIPPROTO_HOPOPTS0/* IP6 hop-by-hop options */
104#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
105#defineIPPROTO_ICMP1/* control message protocol */
106#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
107#defineIPPROTO_IGMP2/* group mgmt protocol */
108#defineIPPROTO_GGP3/* gateway^2 (deprecated) */
109#define IPPROTO_IPV44 /* IPv4 encapsulation */
110#define IPPROTO_IPIPIPPROTO_IPV4/* for compatibility */
111#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
112#defineIPPROTO_TCP6/* tcp */
113#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
114#defineIPPROTO_ST7/* Stream protocol II */
115#defineIPPROTO_EGP8/* exterior gateway protocol */
116#defineIPPROTO_PIGP9/* private interior gateway */
117#defineIPPROTO_RCCMON10/* BBN RCC Monitoring */
118#defineIPPROTO_NVPII11/* network voice protocol*/
119#defineIPPROTO_PUP12/* pup */
120#defineIPPROTO_ARGUS13/* Argus */
121#defineIPPROTO_EMCON14/* EMCON */
122#defineIPPROTO_XNET15/* Cross Net Debugger */
123#defineIPPROTO_CHAOS16/* Chaos*/
124#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
125#defineIPPROTO_UDP17/* user datagram protocol */
126#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
127#defineIPPROTO_MUX18/* Multiplexing */
128#defineIPPROTO_MEAS19/* DCN Measurement Subsystems */
129#defineIPPROTO_HMP20/* Host Monitoring */
130#defineIPPROTO_PRM21/* Packet Radio Measurement */
131#defineIPPROTO_IDP22/* xns idp */
132#defineIPPROTO_TRUNK123/* Trunk-1 */
133#defineIPPROTO_TRUNK224/* Trunk-2 */
134#defineIPPROTO_LEAF125/* Leaf-1 */
135#defineIPPROTO_LEAF226/* Leaf-2 */
136#defineIPPROTO_RDP27/* Reliable Data */
137#defineIPPROTO_IRTP28/* Reliable Transaction */
138#defineIPPROTO_TP29 /* tp-4 w/ class negotiation */
139#defineIPPROTO_BLT30/* Bulk Data Transfer */
140#defineIPPROTO_NSP31/* Network Services */
141#defineIPPROTO_INP32/* Merit Internodal */
142#defineIPPROTO_SEP33/* Sequential Exchange */
143#defineIPPROTO_3PC34/* Third Party Connect */
144#defineIPPROTO_IDPR35/* InterDomain Policy Routing */
145#defineIPPROTO_XTP36/* XTP */
146#defineIPPROTO_DDP37/* Datagram Delivery */
147#defineIPPROTO_CMTP38/* Control Message Transport */
148#defineIPPROTO_TPXX39/* TP++ Transport */
149#defineIPPROTO_IL40/* IL transport protocol */
150#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
151#define IPPROTO_IPV641/* IP6 header */
152#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
153#defineIPPROTO_SDRP42/* Source Demand Routing */
154#define IPPROTO_ROUTING43/* IP6 routing header */
155#define IPPROTO_FRAGMENT44/* IP6 fragmentation header */
156#defineIPPROTO_IDRP45/* InterDomain Routing*/
157#define IPPROTO_RSVP46 /* resource reservation */
158#defineIPPROTO_GRE47/* General Routing Encap. */
159#defineIPPROTO_MHRP48/* Mobile Host Routing */
160#defineIPPROTO_BHA49/* BHA */
161#defineIPPROTO_ESP50/* IP6 Encap Sec. Payload */
162#defineIPPROTO_AH51/* IP6 Auth Header */
163#defineIPPROTO_INLSP52/* Integ. Net Layer Security */
164#defineIPPROTO_SWIPE53/* IP with encryption */
165#defineIPPROTO_NHRP54/* Next Hop Resolution */
166/* 55-57: Unassigned */
167#define IPPROTO_ICMPV658/* ICMP6 */
168#define IPPROTO_NONE59/* IP6 no next header */
169#define IPPROTO_DSTOPTS60/* IP6 destination option */
170#defineIPPROTO_AHIP61/* any host internal protocol */
171#defineIPPROTO_CFTP62/* CFTP */
172#defineIPPROTO_HELLO63/* "hello" routing protocol */
173#defineIPPROTO_SATEXPAK64/* SATNET/Backroom EXPAK */
174#defineIPPROTO_KRYPTOLAN65/* Kryptolan */
175#defineIPPROTO_RVD66/* Remote Virtual Disk */
176#defineIPPROTO_IPPC67/* Pluribus Packet Core */
177#defineIPPROTO_ADFS68/* Any distributed FS */
178#defineIPPROTO_SATMON69/* Satnet Monitoring */
179#defineIPPROTO_VISA70/* VISA Protocol */
180#defineIPPROTO_IPCV71/* Packet Core Utility */
181#defineIPPROTO_CPNX72/* Comp. Prot. Net. Executive */
182#defineIPPROTO_CPHB73/* Comp. Prot. HeartBeat */
183#defineIPPROTO_WSN74/* Wang Span Network */
184#defineIPPROTO_PVP75/* Packet Video Protocol */
185#defineIPPROTO_BRSATMON76/* BackRoom SATNET Monitoring */
186#defineIPPROTO_ND77/* Sun net disk proto (temp.) */
187#defineIPPROTO_WBMON78/* WIDEBAND Monitoring */
188#defineIPPROTO_WBEXPAK79/* WIDEBAND EXPAK */
189#defineIPPROTO_EON80/* ISO cnlp */
190#defineIPPROTO_VMTP81/* VMTP */
191#defineIPPROTO_SVMTP82/* Secure VMTP */
192#defineIPPROTO_VINES83/* Banyon VINES */
193#defineIPPROTO_TTP84/* TTP */
194#defineIPPROTO_IGP85/* NSFNET-IGP */
195#defineIPPROTO_DGP86/* dissimilar gateway prot. */
196#defineIPPROTO_TCF87/* TCF */
197#defineIPPROTO_IGRP88/* Cisco/GXS IGRP */
198#defineIPPROTO_OSPFIGP89/* OSPFIGP */
199#defineIPPROTO_SRPC90/* Strite RPC protocol */
200#defineIPPROTO_LARP91/* Locus Address Resoloution */
201#defineIPPROTO_MTP92/* Multicast Transport */
202#defineIPPROTO_AX2593/* AX.25 Frames */
203#defineIPPROTO_IPEIP94/* IP encapsulated in IP */
204#defineIPPROTO_MICP95/* Mobile Int.ing control */
205#defineIPPROTO_SCCSP96/* Semaphore Comm. security */
206#defineIPPROTO_ETHERIP97/* Ethernet IP encapsulation */
207#defineIPPROTO_ENCAP98/* encapsulation header */
208#defineIPPROTO_APES99/* any private encr. scheme */
209#defineIPPROTO_GMTP100/* GMTP*/
210#defineIPPROTO_IPCOMP108/* payload compression (IPComp) */
211/* 101-254: Partly Unassigned */
212#defineIPPROTO_PIM103/* Protocol Independent Mcast */
213#defineIPPROTO_PGM113/* PGM */
214/* 255: Reserved */
215/* BSD Private, local use, namespace incursion */
216#defineIPPROTO_DIVERT254/* divert pseudo-protocol */
217#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
218#defineIPPROTO_RAW255/* raw IP packet */
219
220#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
221#defineIPPROTO_MAX256
222
223/* last return value of *_input(), meaning "all job for this pkt is done". */
224#defineIPPROTO_DONE257
225#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
226
227/*
228 * Local port number conventions:
229 *
230 * When a user does a bind(2) or connect(2) with a port number of zero,
231 * a non-conflicting local port address is chosen.
232 * The default range is IPPORT_RESERVED through
233 * IPPORT_USERRESERVED, although that is settable by sysctl.
234 *
235 * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
236 * default assignment range.
237 *
238 * The value IP_PORTRANGE_DEFAULT causes the default behavior.
239 *
240 * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers
241 * into the "high" range. These are reserved for client outbound connections
242 * which do not want to be filtered by any firewalls.
243 *
244 * The value IP_PORTRANGE_LOW changes the range to the "low" are
245 * that is (by convention) restricted to privileged processes. This
246 * convention is based on "vouchsafe" principles only. It is only secure
247 * if you trust the remote host to restrict these ports.
248 *
249 * The default range of ports and the high range can be changed by
250 * sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto)
251 *
252 * Changing those values has bad security implications if you are
253 * using a a stateless firewall that is allowing packets outside of that
254 * range in order to allow transparent outgoing connections.
255 *
256 * Such a firewall configuration will generally depend on the use of these
257 * default values. If you change them, you may find your Security
258 * Administrator looking for you with a heavy object.
259 *
260 * For a slightly more orthodox text view on this:
261 *
262 * ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers
263 *
264 * port numbers are divided into three ranges:
265 *
266 * 0 - 1023 Well Known Ports
267 * 1024 - 49151 Registered Ports
268 * 49152 - 65535 Dynamic and/or Private Ports
269 *
270 */
271
272#define__DARWIN_IPPORT_RESERVED1024
273
274#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
275/*
276 * Ports < IPPORT_RESERVED are reserved for
277 * privileged processes (e.g. root). (IP_PORTRANGE_LOW)
278 * Ports > IPPORT_USERRESERVED are reserved
279 * for servers, not necessarily privileged. (IP_PORTRANGE_DEFAULT)
280 */
281#ifndef IPPORT_RESERVED
282#defineIPPORT_RESERVED__DARWIN_IPPORT_RESERVED
283#endif
284#defineIPPORT_USERRESERVED5000
285
286/*
287 * Default local port range to use by setting IP_PORTRANGE_HIGH
288 */
289#defineIPPORT_HIFIRSTAUTO49152
290#defineIPPORT_HILASTAUTO65535
291
292/*
293 * Scanning for a free reserved port return a value below IPPORT_RESERVED,
294 * but higher than IPPORT_RESERVEDSTART. Traditionally the start value was
295 * 512, but that conflicts with some well-known-services that firewalls may
296 * have a fit if we use.
297 */
298#define IPPORT_RESERVEDSTART600
299#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
300
301/*
302 * Internet address (a structure for historical reasons)
303 */
304struct in_addr {
305in_addr_t s_addr;
306};
307
308/*
309 * Definitions of bits in internet address integers.
310 * On subnets, the decomposition of addresses to host and net parts
311 * is done according to subnet mask, not the masks here.
312 */
313#defineINADDR_ANY(u_int32_t)0x00000000
314#defineINADDR_BROADCAST(u_int32_t)0xffffffff/* must be masked */
315
316#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
317#defineIN_CLASSA(i)(((u_int32_t)(i) & 0x80000000) == 0)
318#defineIN_CLASSA_NET0xff000000
319#defineIN_CLASSA_NSHIFT24
320#defineIN_CLASSA_HOST0x00ffffff
321#defineIN_CLASSA_MAX128
322
323#defineIN_CLASSB(i)(((u_int32_t)(i) & 0xc0000000) == 0x80000000)
324#defineIN_CLASSB_NET0xffff0000
325#defineIN_CLASSB_NSHIFT16
326#defineIN_CLASSB_HOST0x0000ffff
327#defineIN_CLASSB_MAX65536
328
329#defineIN_CLASSC(i)(((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
330#defineIN_CLASSC_NET0xffffff00
331#defineIN_CLASSC_NSHIFT8
332#defineIN_CLASSC_HOST0x000000ff
333
334#defineIN_CLASSD(i)(((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
335#defineIN_CLASSD_NET0xf0000000/* These ones aren't really */
336#defineIN_CLASSD_NSHIFT28/* net and host fields, but */
337#defineIN_CLASSD_HOST0x0fffffff/* routing needn't know. */
338#defineIN_MULTICAST(i)IN_CLASSD(i)
339
340#defineIN_EXPERIMENTAL(i)(((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
341#defineIN_BADCLASS(i)(((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
342
343#defineINADDR_LOOPBACK(u_int32_t)0x7f000001
344#defineINADDR_NONE0xffffffff/* -1 return */
345
346#defineINADDR_UNSPEC_GROUP(u_int32_t)0xe0000000/* 224.0.0.0 */
347#defineINADDR_ALLHOSTS_GROUP(u_int32_t)0xe0000001/* 224.0.0.1 */
348#defineINADDR_ALLRTRS_GROUP(u_int32_t)0xe0000002/* 224.0.0.2 */
349#defineINADDR_MAX_LOCAL_GROUP(u_int32_t)0xe00000ff/* 224.0.0.255 */
350
351#ifdef __APPLE__
352#define IN_LINKLOCALNETNUM(u_int32_t)0xA9FE0000 /* 169.254.0.0 */
353#define IN_LINKLOCAL(i)(((u_int32_t)(i) & IN_CLASSB_NET) == IN_LINKLOCALNETNUM)
354#endif
355
356#defineIN_LOOPBACKNET127/* official! */
357#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
358
359/*
360 * Socket address, internet style.
361 */
362struct sockaddr_in {
363__uint8_tsin_len;
364sa_family_tsin_family;
365in_port_tsin_port;
366structin_addr sin_addr;
367charsin_zero[8];
368};
369
370#define INET_ADDRSTRLEN 16
371
372#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
373/*
374 * Structure used to describe IP options.
375 * Used to store options internally, to pass them to a process,
376 * or to restore options retrieved earlier.
377 * The ip_dst is used for the first-hop gateway when using a source route
378 * (this gets put into the header proper).
379 */
380struct ip_opts {
381structin_addr ip_dst;/* first hop, 0 w/o src rt */
382charip_opts[40];/* actually variable in size */
383};
384
385/*
386 * Options for use with [gs]etsockopt at the IP level.
387 * First word of comment is data type; bool is stored in int.
388 */
389#defineIP_OPTIONS1 /* buf/ip_opts; set/get IP options */
390#defineIP_HDRINCL2 /* int; header is included with data */
391#defineIP_TOS3 /* int; IP type of service and preced. */
392#defineIP_TTL4 /* int; IP time to live */
393#defineIP_RECVOPTS5 /* bool; receive all IP opts w/dgram */
394#defineIP_RECVRETOPTS6 /* bool; receive IP opts for response */
395#defineIP_RECVDSTADDR7 /* bool; receive IP dst addr w/dgram */
396#defineIP_RETOPTS8 /* ip_opts; set/get IP options */
397#defineIP_MULTICAST_IF9 /* u_char; set/get IP multicast i/f */
398#defineIP_MULTICAST_TTL10 /* u_char; set/get IP multicast ttl */
399#defineIP_MULTICAST_LOOP11 /* u_char; set/get IP multicast loopback */
400#defineIP_ADD_MEMBERSHIP12 /* ip_mreq; add an IP group membership */
401#defineIP_DROP_MEMBERSHIP13 /* ip_mreq; drop an IP group membership */
402#define IP_MULTICAST_VIF14 /* set/get IP mcast virt. iface */
403#define IP_RSVP_ON15 /* enable RSVP in kernel */
404#define IP_RSVP_OFF16 /* disable RSVP in kernel */
405#define IP_RSVP_VIF_ON17 /* set RSVP per-vif socket */
406#define IP_RSVP_VIF_OFF18 /* unset RSVP per-vif socket */
407#define IP_PORTRANGE19 /* int; range to choose for unspec port */
408#defineIP_RECVIF20 /* bool; receive reception if w/dgram */
409/* for IPSEC */
410#defineIP_IPSEC_POLICY21 /* int; set/get security policy */
411#defineIP_FAITH22 /* bool; accept FAITH'ed connections */
412#ifdef __APPLE__
413#define IP_STRIPHDR 23 /* bool: drop receive of raw IP header */
414#endif
415#define IP_RECVTTL24 /* bool; receive reception TTL w/dgram */
416#defineIP_BOUND_IF25 /* set/get bound interface */
417
418
419#defineIP_FW_ADD 40 /* add a firewall rule to chain */
420#defineIP_FW_DEL 41 /* delete a firewall rule from chain */
421#defineIP_FW_FLUSH 42 /* flush firewall rule chain */
422#defineIP_FW_ZERO 43 /* clear single/all firewall counter(s) */
423#defineIP_FW_GET 44 /* get entire firewall rule chain */
424#defineIP_FW_RESETLOG45 /* reset logging counters */
425
426/* These older firewall socket option codes are maintained for backward compatibility. */
427#defineIP_OLD_FW_ADD 50 /* add a firewall rule to chain */
428#defineIP_OLD_FW_DEL 51 /* delete a firewall rule from chain */
429#defineIP_OLD_FW_FLUSH 52 /* flush firewall rule chain */
430#defineIP_OLD_FW_ZERO 53 /* clear single/all firewall counter(s) */
431#defineIP_OLD_FW_GET 54 /* get entire firewall rule chain */
432#define IP_NAT__XXX55 /* set/get NAT opts XXX Deprecated, do not use */
433#defineIP_OLD_FW_RESETLOG56 /* reset logging counters */
434
435#defineIP_DUMMYNET_CONFIGURE60 /* add/configure a dummynet pipe */
436#defineIP_DUMMYNET_DEL61 /* delete a dummynet pipe from chain */
437#defineIP_DUMMYNET_FLUSH62 /* flush dummynet */
438#defineIP_DUMMYNET_GET64 /* get entire dummynet pipes */
439
440#defineIP_TRAFFIC_MGT_BACKGROUND65 /* int*; get background IO flags; set background IO */
441
442
443/* Background socket configuration flags */
444#ifdef __APPLE_API_UNSTABLE
445#define TRAFFIC_MGT_SO_BACKGROUND0x0001/* background socket */
446#define TRAFFIC_MGT_SO_BG_SUPPRESSED0x0002/* currently throttled */
447#define TRAFFIC_MGT_SO_BG_REGULATE0x0004/* traffic is regulated */
448#endif /* __APPLE_API_UNSTABLE */
449
450/*
451 * Defaults and limits for options
452 */
453#defineIP_DEFAULT_MULTICAST_TTL 1/* normally limit m'casts to 1 hop */
454#defineIP_DEFAULT_MULTICAST_LOOP 1/* normally hear sends if a member */
455#defineIP_MAX_MEMBERSHIPS20/* per socket */
456
457/*
458 * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
459 */
460struct ip_mreq {
461structin_addr imr_multiaddr;/* IP multicast address of group */
462structin_addr imr_interface;/* local IP address of interface */
463};
464
465/*
466 * Argument for IP_PORTRANGE:
467 * - which range to search when port is unspecified at bind() or connect()
468 */
469#defineIP_PORTRANGE_DEFAULT0/* default range */
470#defineIP_PORTRANGE_HIGH1/* "high" - request firewall bypass */
471#defineIP_PORTRANGE_LOW2/* "low" - vouchsafe security */
472
473
474/*
475 * Definitions for inet sysctl operations.
476 *
477 * Third level is protocol number.
478 * Fourth level is desired variable within that protocol.
479 */
480#defineIPPROTO_MAXID(IPPROTO_AH + 1)/* don't list to IPPROTO_MAX */
481
482
483/*
484 * Names for IP sysctl objects
485 */
486#defineIPCTL_FORWARDING1/* act as router */
487#defineIPCTL_SENDREDIRECTS2/* may send redirects when forwarding */
488#defineIPCTL_DEFTTL3/* default TTL */
489#ifdef notyet
490#defineIPCTL_DEFMTU4/* default MTU */
491#endif
492#define IPCTL_RTEXPIRE5/* cloned route expiration time */
493#define IPCTL_RTMINEXPIRE6/* min value for expiration time */
494#define IPCTL_RTMAXCACHE7/* trigger level for dynamic expire */
495#defineIPCTL_SOURCEROUTE8/* may perform source routes */
496#defineIPCTL_DIRECTEDBROADCAST9/* may re-broadcast received packets */
497#define IPCTL_INTRQMAXLEN10/* max length of netisr queue */
498#defineIPCTL_INTRQDROPS11/* number of netisr q drops */
499#defineIPCTL_STATS12/* ipstat structure */
500#defineIPCTL_ACCEPTSOURCEROUTE13/* may accept source routed packets */
501#defineIPCTL_FASTFORWARDING14/* use fast IP forwarding code */
502#defineIPCTL_KEEPFAITH15/* FAITH IPv4->IPv6 translater ctl */
503#defineIPCTL_GIF_TTL16/* default TTL for gif encap packet */
504#defineIPCTL_MAXID17
505
506
507#endif/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
508
509
510/* INET6 stuff */
511#define __KAME_NETINET_IN_H_INCLUDED_
512#include <netinet6/in6.h>
513#undef __KAME_NETINET_IN_H_INCLUDED_
514
515
516#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
517__BEGIN_DECLS
518int bindresvport(int, struct sockaddr_in *);
519struct sockaddr;
520int bindresvport_sa(int, struct sockaddr *);
521__END_DECLS
522#endif
523
524#endif /* _NETINET_IN_H_ */
525

Archive Download this file

Revision: 1146