xref: /titanic_50/usr/src/uts/common/smbsrv/smbinfo.h (revision cb174861876aea6950a7ab4ce944aff84b1914cd)
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 /*
22148c5f43SAlan Wright  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
23da6c28aaSamw  */
24da6c28aaSamw 
25da6c28aaSamw #ifndef	_SMBSRV_SMBINFO_H
26da6c28aaSamw #define	_SMBSRV_SMBINFO_H
27da6c28aaSamw 
28da6c28aaSamw #include <sys/types.h>
29b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <smbsrv/netbios.h>
307f667e74Sjose borrego #include <netinet/in.h>
317f667e74Sjose borrego #include <smbsrv/smb_inet.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
44a0aa776eSAlan Wright #define	NATIVE_OS_WINNT		0x00000001
45da6c28aaSamw #define	NATIVE_OS_WIN95		0x00000002
46a0aa776eSAlan Wright #define	NATIVE_OS_MACOS		0x00000003
47a0aa776eSAlan Wright #define	NATIVE_OS_WIN2000	0x00000004
48da6c28aaSamw 
49da6c28aaSamw #endif /* NATIVE_OS_DEFINED */
50da6c28aaSamw 
51da6c28aaSamw 
52da6c28aaSamw /*
53da6c28aaSamw  * Native lanman types in SmbSessionSetupX. Note that these values
54da6c28aaSamw  * are not directly related to the negotiated protocol dialect.
55da6c28aaSamw  */
56da6c28aaSamw #ifndef NATIVE_LANMAN_DEFINED
57da6c28aaSamw #define	NATIVE_LANMAN_DEFINED
58da6c28aaSamw 
59da6c28aaSamw #define	NATIVE_LM_NONE		0x00000000
60da6c28aaSamw #define	NATIVE_LM_NT		0x00000001
61da6c28aaSamw #define	NATIVE_LM_WIN2000	0x00000002
62da6c28aaSamw 
63da6c28aaSamw #endif /* NATIVE_LANMAN_DEFINED */
64da6c28aaSamw 
65da6c28aaSamw 
66da6c28aaSamw /* PDC types to be used in user authentication process */
67da6c28aaSamw 
68da6c28aaSamw #define	PDC_UNKNOWN		0
69da6c28aaSamw #define	PDC_WINNT		1
70da6c28aaSamw #define	PDC_WIN2000		2
71da6c28aaSamw #define	PDC_WINXP		3
72da6c28aaSamw #define	PDC_SAMBA		4
73da6c28aaSamw 
74da6c28aaSamw /*
75da6c28aaSamw  * Please replace the use of MAX_NETWORKS with SMB_PI_MAX_NETWORKS if
76da6c28aaSamw  * you find it used in conjunction with smbparm_info and maybe one day
77da6c28aaSamw  * there will be just a single definition (here) throughout the code.
78da6c28aaSamw  */
79da6c28aaSamw #ifndef MAX_NETWORKS
80da6c28aaSamw #define	MAX_NETWORKS		36
81da6c28aaSamw #endif /* MAX_NETWORKS */
82da6c28aaSamw 
83da6c28aaSamw #define	SMB_PI_MAX_NETWORKS	36
84da6c28aaSamw #define	SMB_PI_MAX_WINS		2
85da6c28aaSamw 
86da6c28aaSamw #define	SMB_SECMODE_WORKGRP	1
87da6c28aaSamw #define	SMB_SECMODE_DOMAIN	2
88da6c28aaSamw 
89da6c28aaSamw #define	SMB_PI_MAX_HOST		48
90b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	SMB_PI_MAX_DOMAIN	256
91da6c28aaSamw #define	SMB_PI_MAX_SCOPE	16
92da6c28aaSamw #define	SMB_PI_MAX_COMMENT	58
93da6c28aaSamw #define	SMB_PI_MAX_NATIVE_OS	32
94da6c28aaSamw #define	SMB_PI_MAX_LANMAN	32
95da6c28aaSamw 
96da6c28aaSamw #define	SMB_PI_KEEP_ALIVE_MIN		(90 * 60)
97eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States /*
98eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States  * Some older clients (Windows 98) only handle the low byte
99eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States  * of the max workers value. If the low byte is less than
100eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States  * SMB_PI_MAX_WORKERS_MIN we set it to SMB_PI_MAX_WORKERS_MIN.
101eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States  * SMB_PI_MAX_WORKERS_MIN must therefore be < 256
102eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States  */
103eb1d736bSafshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_PI_MAX_WORKERS_MIN		64
1049fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 
1059fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States typedef struct smb_version {
1069fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 	uint8_t sv_major;
1079fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 	uint8_t sv_minor;
1089fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States } smb_version_t;
109da6c28aaSamw 
110da6c28aaSamw typedef struct smb_kmod_cfg {
111da6c28aaSamw 	uint32_t skc_maxworkers;
112da6c28aaSamw 	uint32_t skc_maxconnections;
113da6c28aaSamw 	uint32_t skc_keepalive;
114dc20a302Sas200622 	int32_t skc_restrict_anon;
115dc20a302Sas200622 	int32_t skc_signing_enable;
116dc20a302Sas200622 	int32_t skc_signing_required;
117dc20a302Sas200622 	int32_t skc_oplock_enable;
118dc20a302Sas200622 	int32_t skc_sync_enable;
119dc20a302Sas200622 	int32_t skc_secmode;
1207f667e74Sjose borrego 	int32_t skc_ipv6_enable;
121*cb174861Sjoyce mcintosh 	int32_t skc_print_enable;
122148c5f43SAlan Wright 	uint32_t skc_execflags;
1239fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 	smb_version_t skc_version;
124b89a8333Snatalie li - Sun Microsystems - Irvine United States 	char skc_nbdomain[NETBIOS_NAME_SZ];
125b89a8333Snatalie li - Sun Microsystems - Irvine United States 	char skc_fqdn[SMB_PI_MAX_DOMAIN];
126da6c28aaSamw 	char skc_hostname[SMB_PI_MAX_HOST];
127da6c28aaSamw 	char skc_system_comment[SMB_PI_MAX_COMMENT];
128da6c28aaSamw } smb_kmod_cfg_t;
129da6c28aaSamw 
130148c5f43SAlan Wright #define	SMB_EXEC_MAP	0x01
131148c5f43SAlan Wright #define	SMB_EXEC_UNMAP	0x02
132148c5f43SAlan Wright #define	SMB_EXEC_TERM	0x04
133148c5f43SAlan Wright 
134148c5f43SAlan Wright #define	SMB_EXEC_DISP_CONTINUE	"continue"
135148c5f43SAlan Wright #define	SMB_EXEC_DISP_TERMINATE	"terminate"
136148c5f43SAlan Wright 
1379fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /*
1389fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  * Major version numbers
1399fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  */
1409fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_NT		4
1419fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_2000		5
1429fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_XP		5
1439fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_2003		5
1449fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_VISTA		6
1459fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_2008		6
1469fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MAJOR_2008R2	6
1479fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 
1489fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /*
1499fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  * Minor version numbers
1509fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  */
1519fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_NT		0
1529fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_2000		0
1539fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_XP		1
1549fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_2003		2
1559fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_VISTA		0
1569fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_2008		0
1579fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_MINOR_2008R2	1
1589fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States 
1599fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States /*
1609fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  * Max version length in string format
1619fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States  */
1629fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States #define	SMB_VERSTR_LEN		8
163da6c28aaSamw 
164fc724630SAlan Wright int smbnative_os_value(const char *);
165fc724630SAlan Wright int smbnative_lm_value(const char *);
166fc724630SAlan Wright int smbnative_pdc_value(const char *);
1679fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char *smbnative_os_str(smb_version_t *);
1689fb67ea3Safshin salek ardakani - Sun Microsystems - Irvine United States const char *smbnative_lm_str(smb_version_t *);
169da6c28aaSamw 
170da6c28aaSamw /*
171da6c28aaSamw  * Support for passthrough authentication.
172da6c28aaSamw  */
173da6c28aaSamw #define	AUTH_USER_GRANT			0x00000000
174da6c28aaSamw #define	AUTH_GUEST_GRANT		0x00000001
175da6c28aaSamw #define	AUTH_IPC_ONLY_GRANT		0x00000002
176da6c28aaSamw 
177da6c28aaSamw #ifdef __cplusplus
178da6c28aaSamw }
179da6c28aaSamw #endif
180da6c28aaSamw 
181da6c28aaSamw #endif /* _SMBSRV_SMBINFO_H */
182