xref: /titanic_53/usr/src/uts/common/smbsrv/smbinfo.h (revision da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0)
1*da6c28aaSamw /*
2*da6c28aaSamw  * CDDL HEADER START
3*da6c28aaSamw  *
4*da6c28aaSamw  * The contents of this file are subject to the terms of the
5*da6c28aaSamw  * Common Development and Distribution License (the "License").
6*da6c28aaSamw  * You may not use this file except in compliance with the License.
7*da6c28aaSamw  *
8*da6c28aaSamw  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*da6c28aaSamw  * or http://www.opensolaris.org/os/licensing.
10*da6c28aaSamw  * See the License for the specific language governing permissions
11*da6c28aaSamw  * and limitations under the License.
12*da6c28aaSamw  *
13*da6c28aaSamw  * When distributing Covered Code, include this CDDL HEADER in each
14*da6c28aaSamw  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*da6c28aaSamw  * If applicable, add the following below this CDDL HEADER, with the
16*da6c28aaSamw  * fields enclosed by brackets "[]" replaced with your own identifying
17*da6c28aaSamw  * information: Portions Copyright [yyyy] [name of copyright owner]
18*da6c28aaSamw  *
19*da6c28aaSamw  * CDDL HEADER END
20*da6c28aaSamw  */
21*da6c28aaSamw /*
22*da6c28aaSamw  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23*da6c28aaSamw  * Use is subject to license terms.
24*da6c28aaSamw  */
25*da6c28aaSamw 
26*da6c28aaSamw #ifndef	_SMBSRV_SMBINFO_H
27*da6c28aaSamw #define	_SMBSRV_SMBINFO_H
28*da6c28aaSamw 
29*da6c28aaSamw #pragma ident	"%Z%%M%	%I%	%E% SMI"
30*da6c28aaSamw 
31*da6c28aaSamw #include <sys/types.h>
32*da6c28aaSamw 
33*da6c28aaSamw #ifdef __cplusplus
34*da6c28aaSamw extern "C" {
35*da6c28aaSamw #endif
36*da6c28aaSamw 
37*da6c28aaSamw /*
38*da6c28aaSamw  * Native OS types used in SmbSessionSetupX.
39*da6c28aaSamw  */
40*da6c28aaSamw #ifndef NATIVE_OS_DEFINED
41*da6c28aaSamw #define	NATIVE_OS_DEFINED
42*da6c28aaSamw 
43*da6c28aaSamw #define	NATIVE_OS_UNKNOWN	0x00000000
44*da6c28aaSamw #define	NATIVE_OS_NT4_0		0x00000001
45*da6c28aaSamw #define	NATIVE_OS_WIN95		0x00000002
46*da6c28aaSamw #define	NATIVE_OS_OTHER		0x00000003
47*da6c28aaSamw #define	NATIVE_OS_NT5_0		0x00000004
48*da6c28aaSamw #define	NATIVE_OS_NT5_1		0x00000005
49*da6c28aaSamw #define	NATIVE_OS_MACOS		0x00000006
50*da6c28aaSamw 
51*da6c28aaSamw /*
52*da6c28aaSamw  * Backward compatibility aliases.
53*da6c28aaSamw  */
54*da6c28aaSamw #define	NATIVE_OS_WINNT		NATIVE_OS_NT4_0
55*da6c28aaSamw #define	NATIVE_OS_WIN2000	NATIVE_OS_NT5_0
56*da6c28aaSamw #define	NATIVE_OS_WINXP		NATIVE_OS_NT5_1
57*da6c28aaSamw 
58*da6c28aaSamw #endif /* NATIVE_OS_DEFINED */
59*da6c28aaSamw 
60*da6c28aaSamw 
61*da6c28aaSamw /*
62*da6c28aaSamw  * Native lanman types in SmbSessionSetupX. Note that these values
63*da6c28aaSamw  * are not directly related to the negotiated protocol dialect.
64*da6c28aaSamw  */
65*da6c28aaSamw #ifndef NATIVE_LANMAN_DEFINED
66*da6c28aaSamw #define	NATIVE_LANMAN_DEFINED
67*da6c28aaSamw 
68*da6c28aaSamw #define	NATIVE_LM_NONE		0x00000000
69*da6c28aaSamw #define	NATIVE_LM_NT		0x00000001
70*da6c28aaSamw #define	NATIVE_LM_WIN2000	0x00000002
71*da6c28aaSamw 
72*da6c28aaSamw #endif /* NATIVE_LANMAN_DEFINED */
73*da6c28aaSamw 
74*da6c28aaSamw 
75*da6c28aaSamw /* PDC types to be used in user authentication process */
76*da6c28aaSamw 
77*da6c28aaSamw #define	PDC_UNKNOWN		0
78*da6c28aaSamw #define	PDC_WINNT		1
79*da6c28aaSamw #define	PDC_WIN2000		2
80*da6c28aaSamw #define	PDC_WINXP		3
81*da6c28aaSamw #define	PDC_SAMBA		4
82*da6c28aaSamw 
83*da6c28aaSamw /*
84*da6c28aaSamw  * Please replace the use of MAX_NETWORKS with SMB_PI_MAX_NETWORKS if
85*da6c28aaSamw  * you find it used in conjunction with smbparm_info and maybe one day
86*da6c28aaSamw  * there will be just a single definition (here) throughout the code.
87*da6c28aaSamw  */
88*da6c28aaSamw #ifndef MAX_NETWORKS
89*da6c28aaSamw #define	MAX_NETWORKS		36
90*da6c28aaSamw #endif /* MAX_NETWORKS */
91*da6c28aaSamw 
92*da6c28aaSamw #define	SMB_PI_MAX_NETWORKS	36
93*da6c28aaSamw #define	SMB_PI_MAX_WINS		2
94*da6c28aaSamw 
95*da6c28aaSamw #define	SMB_SECMODE_WORKGRP	1
96*da6c28aaSamw #define	SMB_SECMODE_DOMAIN	2
97*da6c28aaSamw 
98*da6c28aaSamw #define	SMB_PI_MAX_HOST		48
99*da6c28aaSamw #define	SMB_PI_MAX_DOMAIN	48
100*da6c28aaSamw #define	SMB_PI_MAX_SCOPE	16
101*da6c28aaSamw #define	SMB_PI_MAX_COMMENT	58
102*da6c28aaSamw #define	SMB_PI_MAX_USERNAME	40
103*da6c28aaSamw #define	SMB_PI_MAX_PASSWD	40
104*da6c28aaSamw #define	SMB_PI_MAX_NATIVE_OS	32
105*da6c28aaSamw #define	SMB_PI_MAX_LANMAN	32
106*da6c28aaSamw 
107*da6c28aaSamw 
108*da6c28aaSamw #define	SMB_PI_UNKNOWN_DOMAIN		0
109*da6c28aaSamw #define	SMB_PI_RESOURCE_DOMAIN		1
110*da6c28aaSamw 
111*da6c28aaSamw /*
112*da6c28aaSamw  * K.L. The keep alive time out use to default to 900
113*da6c28aaSamw  * seconds. It is not long enough for some applications
114*da6c28aaSamw  * i.e. MS Access. We currently use 5400 seconds.
115*da6c28aaSamw  */
116*da6c28aaSamw #define	SMB_PI_KEEP_ALIVE_MIN		(90 * 60)
117*da6c28aaSamw #define	SMB_LM_COMPATIBILITY_DEFAULT_LEV 3
118*da6c28aaSamw 
119*da6c28aaSamw /*
120*da6c28aaSamw  * This is max networks multiply by canonical address for IPv4
121*da6c28aaSamw  * This needs a fix for IPv4
122*da6c28aaSamw  */
123*da6c28aaSamw #define	MAX_EXCLUDE_LIST_LEN	(SMB_PI_MAX_NETWORKS * INET_ADDRSTRLEN)
124*da6c28aaSamw 
125*da6c28aaSamw typedef struct smb_kmod_cfg {
126*da6c28aaSamw 	uint32_t skc_maxbufsize;
127*da6c28aaSamw 	uint32_t skc_maxworkers;
128*da6c28aaSamw 	uint32_t skc_maxconnections;
129*da6c28aaSamw 	uint32_t skc_keepalive;
130*da6c28aaSamw 	uint32_t skc_restrict_anon;
131*da6c28aaSamw 	uint32_t skc_signing_enable;
132*da6c28aaSamw 	uint32_t skc_signing_required;
133*da6c28aaSamw 	uint32_t skc_signing_check;
134*da6c28aaSamw 	uint32_t skc_oplock_enable;
135*da6c28aaSamw 	uint32_t skc_oplock_timeout;
136*da6c28aaSamw 	uint32_t skc_flush_required;
137*da6c28aaSamw 	uint32_t skc_sync_enable;
138*da6c28aaSamw 	uint32_t skc_dirsymlink_enable;
139*da6c28aaSamw 	uint32_t skc_announce_quota;
140*da6c28aaSamw 	uint32_t skc_secmode;
141*da6c28aaSamw 	uint32_t skc_lmlevel;
142*da6c28aaSamw 
143*da6c28aaSamw 	char skc_resource_domain[SMB_PI_MAX_DOMAIN];
144*da6c28aaSamw 	char skc_hostname[SMB_PI_MAX_HOST];
145*da6c28aaSamw 	char skc_system_comment[SMB_PI_MAX_COMMENT];
146*da6c28aaSamw } smb_kmod_cfg_t;
147*da6c28aaSamw 
148*da6c28aaSamw #define	SMB_VERSION_MAJOR  4
149*da6c28aaSamw #define	SMB_VERSION_MINOR  0
150*da6c28aaSamw 
151*da6c28aaSamw int smbnative_os_value(char *native_os);
152*da6c28aaSamw int smbnative_lm_value(char *native_lm);
153*da6c28aaSamw int smbnative_pdc_value(char *native_lm);
154*da6c28aaSamw 
155*da6c28aaSamw /*
156*da6c28aaSamw  * Support for passthrough authentication.
157*da6c28aaSamw  */
158*da6c28aaSamw #define	AUTH_USER_GRANT			0x00000000
159*da6c28aaSamw #define	AUTH_GUEST_GRANT		0x00000001
160*da6c28aaSamw #define	AUTH_IPC_ONLY_GRANT		0x00000002
161*da6c28aaSamw #define	AUTH_CONEXUS_GRANT		0x00000004
162*da6c28aaSamw 
163*da6c28aaSamw #define	SMBD_DOOR_NAME		"/var/run/smbd_door_old"
164*da6c28aaSamw #define	SMBD_DOOR_VERSION	1
165*da6c28aaSamw 
166*da6c28aaSamw #define	SMBD_DOOR_COOKIE	((void*)(0xdeadbeef^SMBD_DOOR_VERSION))
167*da6c28aaSamw #define	SMBD_DOOR_SIZE		256
168*da6c28aaSamw 
169*da6c28aaSamw #define	SMBD_DOOR_SRV_SUCCESS	0
170*da6c28aaSamw #define	SMBD_DOOR_SRV_ERROR	-1
171*da6c28aaSamw 
172*da6c28aaSamw #define	SMBD_DOOR_JOIN				1
173*da6c28aaSamw #define	SMBD_DOOR_PARAM_GET			2
174*da6c28aaSamw #define	SMBD_DOOR_PARAM_SET			3
175*da6c28aaSamw #define	SMBD_DOOR_NETBIOS_RECONFIG		4
176*da6c28aaSamw 
177*da6c28aaSamw #ifdef __cplusplus
178*da6c28aaSamw }
179*da6c28aaSamw #endif
180*da6c28aaSamw 
181*da6c28aaSamw #endif /* _SMBSRV_SMBINFO_H */
182