xref: /titanic_50/usr/src/uts/common/smbsrv/smbinfo.h (revision b89a8333f5e1f75ec0c269b22524bd2eccb972ba)
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 /*
22dc20a302Sas200622  * 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 #include <sys/types.h>
30*b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <smbsrv/netbios.h>
31da6c28aaSamw 
32da6c28aaSamw #ifdef __cplusplus
33da6c28aaSamw extern "C" {
34da6c28aaSamw #endif
35da6c28aaSamw 
36da6c28aaSamw /*
37da6c28aaSamw  * Native OS types used in SmbSessionSetupX.
38da6c28aaSamw  */
39da6c28aaSamw #ifndef NATIVE_OS_DEFINED
40da6c28aaSamw #define	NATIVE_OS_DEFINED
41da6c28aaSamw 
42da6c28aaSamw #define	NATIVE_OS_UNKNOWN	0x00000000
43da6c28aaSamw #define	NATIVE_OS_NT4_0		0x00000001
44da6c28aaSamw #define	NATIVE_OS_WIN95		0x00000002
45da6c28aaSamw #define	NATIVE_OS_OTHER		0x00000003
46da6c28aaSamw #define	NATIVE_OS_NT5_0		0x00000004
47da6c28aaSamw #define	NATIVE_OS_NT5_1		0x00000005
48da6c28aaSamw #define	NATIVE_OS_MACOS		0x00000006
49da6c28aaSamw 
50da6c28aaSamw /*
51da6c28aaSamw  * Backward compatibility aliases.
52da6c28aaSamw  */
53da6c28aaSamw #define	NATIVE_OS_WINNT		NATIVE_OS_NT4_0
54da6c28aaSamw #define	NATIVE_OS_WIN2000	NATIVE_OS_NT5_0
55da6c28aaSamw #define	NATIVE_OS_WINXP		NATIVE_OS_NT5_1
56da6c28aaSamw 
57da6c28aaSamw #endif /* NATIVE_OS_DEFINED */
58da6c28aaSamw 
59da6c28aaSamw 
60da6c28aaSamw /*
61da6c28aaSamw  * Native lanman types in SmbSessionSetupX. Note that these values
62da6c28aaSamw  * are not directly related to the negotiated protocol dialect.
63da6c28aaSamw  */
64da6c28aaSamw #ifndef NATIVE_LANMAN_DEFINED
65da6c28aaSamw #define	NATIVE_LANMAN_DEFINED
66da6c28aaSamw 
67da6c28aaSamw #define	NATIVE_LM_NONE		0x00000000
68da6c28aaSamw #define	NATIVE_LM_NT		0x00000001
69da6c28aaSamw #define	NATIVE_LM_WIN2000	0x00000002
70da6c28aaSamw 
71da6c28aaSamw #endif /* NATIVE_LANMAN_DEFINED */
72da6c28aaSamw 
73da6c28aaSamw 
74da6c28aaSamw /* PDC types to be used in user authentication process */
75da6c28aaSamw 
76da6c28aaSamw #define	PDC_UNKNOWN		0
77da6c28aaSamw #define	PDC_WINNT		1
78da6c28aaSamw #define	PDC_WIN2000		2
79da6c28aaSamw #define	PDC_WINXP		3
80da6c28aaSamw #define	PDC_SAMBA		4
81da6c28aaSamw 
82da6c28aaSamw /*
83da6c28aaSamw  * Please replace the use of MAX_NETWORKS with SMB_PI_MAX_NETWORKS if
84da6c28aaSamw  * you find it used in conjunction with smbparm_info and maybe one day
85da6c28aaSamw  * there will be just a single definition (here) throughout the code.
86da6c28aaSamw  */
87da6c28aaSamw #ifndef MAX_NETWORKS
88da6c28aaSamw #define	MAX_NETWORKS		36
89da6c28aaSamw #endif /* MAX_NETWORKS */
90da6c28aaSamw 
91da6c28aaSamw #define	SMB_PI_MAX_NETWORKS	36
92da6c28aaSamw #define	SMB_PI_MAX_WINS		2
93da6c28aaSamw 
94da6c28aaSamw #define	SMB_SECMODE_WORKGRP	1
95da6c28aaSamw #define	SMB_SECMODE_DOMAIN	2
96da6c28aaSamw 
97da6c28aaSamw #define	SMB_PI_MAX_HOST		48
98*b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	SMB_PI_MAX_DOMAIN	256
99da6c28aaSamw #define	SMB_PI_MAX_SCOPE	16
100da6c28aaSamw #define	SMB_PI_MAX_COMMENT	58
101da6c28aaSamw #define	SMB_PI_MAX_NATIVE_OS	32
102da6c28aaSamw #define	SMB_PI_MAX_LANMAN	32
103da6c28aaSamw 
104da6c28aaSamw 
105da6c28aaSamw #define	SMB_PI_UNKNOWN_DOMAIN		0
106da6c28aaSamw #define	SMB_PI_RESOURCE_DOMAIN		1
107da6c28aaSamw 
108da6c28aaSamw /*
109da6c28aaSamw  * K.L. The keep alive time out use to default to 900
110da6c28aaSamw  * seconds. It is not long enough for some applications
111da6c28aaSamw  * i.e. MS Access. We currently use 5400 seconds.
112da6c28aaSamw  */
113da6c28aaSamw #define	SMB_PI_KEEP_ALIVE_MIN		(90 * 60)
114da6c28aaSamw #define	SMB_LM_COMPATIBILITY_DEFAULT_LEV 3
115da6c28aaSamw 
116da6c28aaSamw /*
117da6c28aaSamw  * This is max networks multiply by canonical address for IPv4
118da6c28aaSamw  * This needs a fix for IPv4
119da6c28aaSamw  */
120da6c28aaSamw #define	MAX_EXCLUDE_LIST_LEN	(SMB_PI_MAX_NETWORKS * INET_ADDRSTRLEN)
121da6c28aaSamw 
122da6c28aaSamw typedef struct smb_kmod_cfg {
123da6c28aaSamw 	uint32_t skc_maxworkers;
124da6c28aaSamw 	uint32_t skc_maxconnections;
125da6c28aaSamw 	uint32_t skc_keepalive;
126dc20a302Sas200622 	int32_t skc_restrict_anon;
127dc20a302Sas200622 	int32_t skc_signing_enable;
128dc20a302Sas200622 	int32_t skc_signing_required;
129dc20a302Sas200622 	int32_t skc_oplock_enable;
130dc20a302Sas200622 	int32_t skc_sync_enable;
131dc20a302Sas200622 	int32_t skc_secmode;
132*b89a8333Snatalie li - Sun Microsystems - Irvine United States 	char skc_nbdomain[NETBIOS_NAME_SZ];
133*b89a8333Snatalie li - Sun Microsystems - Irvine United States 	char skc_fqdn[SMB_PI_MAX_DOMAIN];
134da6c28aaSamw 	char skc_hostname[SMB_PI_MAX_HOST];
135da6c28aaSamw 	char skc_system_comment[SMB_PI_MAX_COMMENT];
136da6c28aaSamw } smb_kmod_cfg_t;
137da6c28aaSamw 
138da6c28aaSamw #define	SMB_VERSION_MAJOR  4
139da6c28aaSamw #define	SMB_VERSION_MINOR  0
140da6c28aaSamw 
141da6c28aaSamw int smbnative_os_value(char *native_os);
142da6c28aaSamw int smbnative_lm_value(char *native_lm);
143da6c28aaSamw int smbnative_pdc_value(char *native_lm);
144da6c28aaSamw 
145da6c28aaSamw /*
146da6c28aaSamw  * Support for passthrough authentication.
147da6c28aaSamw  */
148da6c28aaSamw #define	AUTH_USER_GRANT			0x00000000
149da6c28aaSamw #define	AUTH_GUEST_GRANT		0x00000001
150da6c28aaSamw #define	AUTH_IPC_ONLY_GRANT		0x00000002
151da6c28aaSamw #define	AUTH_CONEXUS_GRANT		0x00000004
152da6c28aaSamw 
153da6c28aaSamw #ifdef __cplusplus
154da6c28aaSamw }
155da6c28aaSamw #endif
156da6c28aaSamw 
157da6c28aaSamw #endif /* _SMBSRV_SMBINFO_H */
158