7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 1990 Mentat Inc.
24 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
25 * Copyright (c) 2012, Joyent, Inc. All rights reserved.
26 * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
27 * Copyright 2014, OmniTI Computer Consulting, Inc. All rights reserved.
28 */
29
30 #ifndef _INET_IP_H
31 #define _INET_IP_H
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 #include <sys/isa_defs.h>
38 #include <sys/types.h>
39 #include <inet/mib2.h>
40 #include <inet/nd.h>
41 #include <sys/atomic.h>
42 #include <net/if_dl.h>
43 #include <net/if.h>
44 #include <netinet/ip.h>
45 #include <netinet/igmp.h>
46 #include <sys/neti.h>
47 #include <sys/hook.h>
534 #define IRR_INCOMPLETE 2 /* OK to return incomplete chain */
535
536 /*
537 * Open/close synchronization flags.
538 * These are kept in a separate field in the conn and the synchronization
539 * depends on the atomic 32 bit access to that field.
540 */
541 #define CONN_CLOSING 0x01 /* ip_close waiting for ip_wsrv */
542 #define CONN_CONDEMNED 0x02 /* conn is closing, no more refs */
543 #define CONN_INCIPIENT 0x04 /* conn not yet visible, no refs */
544 #define CONN_QUIESCED 0x08 /* conn is now quiescent */
545 #define CONN_UPDATE_ILL 0x10 /* conn_update_ill in progress */
546
547 /*
548 * Flags for dce_flags field. Specifies which information has been set.
549 * dce_ident is always present, but the other ones are identified by the flags.
550 */
551 #define DCEF_DEFAULT 0x0001 /* Default DCE - no pmtu or uinfo */
552 #define DCEF_PMTU 0x0002 /* Different than interface MTU */
553 #define DCEF_UINFO 0x0004 /* dce_uinfo set */
554 #define DCEF_TOO_SMALL_PMTU 0x0008 /* Smaller than IPv4/IPv6 MIN */
555
556 #ifdef _KERNEL
557 /*
558 * Extra structures need for per-src-addr filtering (IGMPv3/MLDv2)
559 */
560 #define MAX_FILTER_SIZE 64
561
562 typedef struct slist_s {
563 int sl_numsrc;
564 in6_addr_t sl_addr[MAX_FILTER_SIZE];
565 } slist_t;
566
567 /*
568 * Following struct is used to maintain retransmission state for
569 * a multicast group. One rtx_state_t struct is an in-line field
570 * of the ilm_t struct; the slist_ts in the rtx_state_t struct are
571 * alloc'd as needed.
572 */
573 typedef struct rtx_state_s {
574 uint_t rtx_timer; /* retrans timer */
|
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 1990 Mentat Inc.
24 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
25 * Copyright (c) 2012, Joyent, Inc. All rights reserved.
26 * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
27 * Copyright 2017 OmniTI Computer Consulting, Inc. All rights reserved.
28 */
29
30 #ifndef _INET_IP_H
31 #define _INET_IP_H
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 #include <sys/isa_defs.h>
38 #include <sys/types.h>
39 #include <inet/mib2.h>
40 #include <inet/nd.h>
41 #include <sys/atomic.h>
42 #include <net/if_dl.h>
43 #include <net/if.h>
44 #include <netinet/ip.h>
45 #include <netinet/igmp.h>
46 #include <sys/neti.h>
47 #include <sys/hook.h>
534 #define IRR_INCOMPLETE 2 /* OK to return incomplete chain */
535
536 /*
537 * Open/close synchronization flags.
538 * These are kept in a separate field in the conn and the synchronization
539 * depends on the atomic 32 bit access to that field.
540 */
541 #define CONN_CLOSING 0x01 /* ip_close waiting for ip_wsrv */
542 #define CONN_CONDEMNED 0x02 /* conn is closing, no more refs */
543 #define CONN_INCIPIENT 0x04 /* conn not yet visible, no refs */
544 #define CONN_QUIESCED 0x08 /* conn is now quiescent */
545 #define CONN_UPDATE_ILL 0x10 /* conn_update_ill in progress */
546
547 /*
548 * Flags for dce_flags field. Specifies which information has been set.
549 * dce_ident is always present, but the other ones are identified by the flags.
550 */
551 #define DCEF_DEFAULT 0x0001 /* Default DCE - no pmtu or uinfo */
552 #define DCEF_PMTU 0x0002 /* Different than interface MTU */
553 #define DCEF_UINFO 0x0004 /* dce_uinfo set */
554 #define DCEF_TOO_SMALL_PMTU 0x0008 /* Smaller than IPv4 MIN */
555
556 #ifdef _KERNEL
557 /*
558 * Extra structures need for per-src-addr filtering (IGMPv3/MLDv2)
559 */
560 #define MAX_FILTER_SIZE 64
561
562 typedef struct slist_s {
563 int sl_numsrc;
564 in6_addr_t sl_addr[MAX_FILTER_SIZE];
565 } slist_t;
566
567 /*
568 * Following struct is used to maintain retransmission state for
569 * a multicast group. One rtx_state_t struct is an in-line field
570 * of the ilm_t struct; the slist_ts in the rtx_state_t struct are
571 * alloc'd as needed.
572 */
573 typedef struct rtx_state_s {
574 uint_t rtx_timer; /* retrans timer */
|