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