replace CODEMGR_WS with SRCTOP
[unleashed.git] / include / ndpd.h
blob6cddbfa4e6405798aac7c3e7bf8a3af7d7c98871
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
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.
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]
19 * CDDL HEADER END
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _NDPD_H
27 #define _NDPD_H
29 #pragma ident "%Z%%M% %I% %E% SMI"
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
35 #define NDPD_SNMP_SOCKET "/var/run/in.ndpd_mib"
36 #define NDPD_SNMP_INFO_REQ 1
37 #define NDPD_SNMP_INFO_RESPONSE 2
38 #define NDPD_PHYINT_INFO 3
39 #define NDPD_PREFIX_INFO 4
40 #define NDPD_ROUTER_INFO 5
42 #define NDPD_SNMP_INFO_VER 1
43 #define NDPD_PHYINT_INFO_VER 1
44 #define NDPD_PREFIX_INFO_VER 1
45 #define NDPD_ROUTER_INFO_VER 1
48 * Data structures used to handle configuration variables set in ndpd.conf.
49 * cf_notdefault is set for variables explicitly set in ndpd.conf.
51 struct confvar {
52 uint_t cf_value;
53 boolean_t cf_notdefault;
56 extern struct confvar ifdefaults[];
59 * Interfaces configuration variable indicies
61 #define I_DupAddrDetectTransmits 0 /* From RFC 2462 */
62 #define I_AdvSendAdvertisements 1
63 #define I_MaxRtrAdvInterval 2 /* In seconds */
64 #define I_MinRtrAdvInterval 3 /* In seconds */
65 #define I_AdvManagedFlag 4
66 #define I_AdvOtherConfigFlag 5
67 #define I_AdvLinkMTU 6
68 #define I_AdvReachableTime 7 /* In milliseconds */
69 #define I_AdvRetransTimer 8 /* In milliseconds */
70 #define I_AdvCurHopLimit 9
71 #define I_AdvDefaultLifetime 10 /* In seconds */
72 #define I_StatelessAddrConf 11
73 #define I_TmpAddrsEnabled 12 /* From RFC 3041 */
74 #define I_TmpValidLifetime 13 /* In seconds */
75 #define I_TmpPreferredLifetime 14 /* In seconds */
76 #define I_TmpRegenAdvance 15 /* In seconds */
77 #define I_TmpMaxDesyncFactor 16 /* In seconds */
78 #define I_StatefulAddrConf 17
79 #define I_IFSIZE 18 /* # of variables */
81 typedef struct ndpd_info_s {
82 uint_t info_type;
83 uint_t info_version;
84 uint_t info_num_of_phyints;
85 } ndpd_info_t;
87 typedef struct ndpd_prefix_info_s {
88 uint_t prefix_info_type;
89 uint_t prefix_info_version;
90 struct in6_addr prefix_prefix; /* Used to indentify prefix */
91 uint_t prefix_len; /* Num bits valid */
92 uint_t prefix_flags; /* IFF_ flags */
93 uint_t prefix_phyint_index;
94 uint_t prefix_ValidLifetime; /* In ms w/ 2 hour rule */
95 uint_t prefix_PreferredLifetime; /* In millseconds */
96 uint_t prefix_OnLinkLifetime; /* ms valid w/o 2 hour rule */
97 boolean_t prefix_OnLinkFlag;
98 boolean_t prefix_AutonomousFlag;
99 } ndpd_prefix_info_t;
101 typedef struct ndpd_router_info_s {
102 uint_t router_info_type;
103 uint_t router_info_version;
104 struct in6_addr router_address; /* Used to identify router */
105 uint_t router_lifetime; /* In milliseconds */
106 uint_t router_phyint_index;
107 } ndpd_router_info_t;
110 typedef struct ndpd_phyint_info_s {
111 uint_t phyint_info_type;
112 uint_t phyint_info_version;
113 int phyint_index;
114 struct confvar phyint_config[I_IFSIZE];
115 #define phyint_DupAddrDetectTransmits \
116 phyint_config[I_DupAddrDetectTransmits].cf_value
117 #define phyint_AdvSendAdvertisements \
118 phyint_config[I_AdvSendAdvertisements].cf_value
119 #define phyint_MaxRtrAdvInterval \
120 phyint_config[I_MaxRtrAdvInterval].cf_value
121 #define phyint_MinRtrAdvInterval \
122 phyint_config[I_MinRtrAdvInterval].cf_value
123 #define phyint_AdvManagedFlag phyint_config[I_AdvManagedFlag].cf_value
124 #define phyint_AdvOtherConfigFlag \
125 phyint_config[I_AdvOtherConfigFlag].cf_value
126 #define phyint_AdvLinkMTU phyint_config[I_AdvLinkMTU].cf_value
127 #define phyint_AdvReachableTime phyint_config[I_AdvReachableTime].cf_value
128 #define phyint_AdvRetransTimer phyint_config[I_AdvRetransTimer].cf_value
129 #define phyint_AdvCurHopLimit phyint_config[I_AdvCurHopLimit].cf_value
130 #define phyint_AdvDefaultLifetime \
131 phyint_config[I_AdvDefaultLifetime].cf_value
132 #define phyint_StatelessAddrConf \
133 phyint_config[I_StatelessAddrConf].cf_value
134 #define phyint_TmpAddrsEnabled phyint_config[I_TmpAddrsEnabled].cf_value
135 #define phyint_TmpValidLifetime phyint_config[I_TmpValidLifetime].cf_value
136 #define phyint_TmpPreferredLifetime \
137 phyint_config[I_TmpPreferredLifetime].cf_value
138 #define phyint_TmpRegenAdvance phyint_config[I_TmpRegenAdvance].cf_value
139 #define phyint_TmpMaxDesyncFactor \
140 phyint_config[I_TmpMaxDesyncFactor].cf_value
141 #define phyint_StatefulAddrConf \
142 phyint_config[I_StatefulAddrConf].cf_value
143 uint_t phyint_num_of_prefixes;
144 uint_t phyint_num_of_routers;
145 } ndpd_phyint_info_t;
147 #ifdef __cplusplus
149 #endif
151 #endif /* _NDPD_H */