4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
23 /* All Rights Reserved */
27 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
29 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
30 * Use is subject to license terms.
33 #ifndef _SYS_NETCONFIG_H
34 #define _SYS_NETCONFIG_H
40 #define NETCONFIG "/etc/netconfig"
41 #define NETPATH "NETPATH"
44 char *nc_netid
; /* network identifier */
45 unsigned int nc_semantics
; /* defined below */
46 unsigned int nc_flag
; /* defined below */
47 char *nc_protofmly
; /* protocol family name */
48 char *nc_proto
; /* protocol name */
49 char *nc_device
; /* device name for network id */
50 unsigned int nc_nlookups
; /* # of entries in nc_lookups */
51 char **nc_lookups
; /* list of lookup directories */
52 unsigned int nc_unused
[8]; /* borrowed for lockd etc. */
56 struct netconfig
**nc_head
;
57 struct netconfig
**nc_curr
;
61 * Values of nc_semantics
66 #define NC_TPI_COTS_ORD 3
69 * NOT FOR PUBLIC USE, Solaris internal only.
70 * This value of nc_semantics is strictly for use of Remote Direct
71 * Memory Access provider interfaces in Solaris only and not for
72 * general use. Do not use this value for general purpose user or
73 * kernel programming. If used the behavior is undefined.
74 * This is a PRIVATE interface to be used by Solaris kRPC only.
84 #define NC_BROADCAST 02
87 * Values of nc_protofmly
90 #define NC_NOPROTOFMLY "-"
91 #define NC_LOOPBACK "loopback"
92 #define NC_INET "inet"
93 #define NC_INET6 "inet6"
94 #define NC_IMPLINK "implink"
96 #define NC_CHAOS "chaos"
99 #define NC_ECMA "ecma"
100 #define NC_DATAKIT "datakit"
101 #define NC_CCITT "ccitt"
103 #define NC_DECNET "decnet"
106 #define NC_HYLINK "hylink"
107 #define NC_APPLETALK "appletalk"
109 #define NC_IEEE802 "ieee802"
112 #define NC_OSINET "osinet"
113 #define NC_GOSIP "gosip"
115 * NOT FOR PUBLIC USE, Solaris internal only.
116 * This value of nc_semantics is strictly for use of Remote Direct
117 * Memory Access provider interfaces in Solaris only and not for
118 * general use. Do not use this value for general purpose user or
119 * kernel programming. If used the behavior is undefined.
120 * This is a PRIVATE interface to be used by Solaris kRPC only.
122 #define NC_RDMA "rdma"
125 * Values for nc_proto
128 #define NC_NOPROTO "-"
131 #define NC_ICMP "icmp"
134 * Values for nc_proto for "rdma" protofmly
136 #define NC_KVIPL "kvipl"
137 #define NC_IBTF "ibtf"
138 #define NC_KDAPL "kdapl"
140 extern void *setnetconfig(void);
141 extern int endnetconfig(void *);
142 extern struct netconfig
*getnetconfig(void *);
143 extern struct netconfig
*getnetconfigent(const char *);
144 extern void freenetconfigent(struct netconfig
*);
145 extern void *setnetpath(void);
146 extern int endnetpath(void *);
147 extern struct netconfig
*getnetpath(void *);
148 extern void nc_perror(const char *);
149 extern char *nc_sperror(void);
155 #endif /* _SYS_NETCONFIG_H */