Print this page
NEX-17289 Minimal SMB 3.0.2 support
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-10019 SMB server min_protocol setting
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5273 SMB 3 Encryption
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-4598 SMB2 credit shortage with Mac client
Reviewed by: Bayard Bell <bayard.bell@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <Matt.Barden@nexenta.com>
NEX-3611 CLONE NEX-3550 Replace smb2_enable with max_protocol
Reviewed by: Yuri Pankov <Yuri.Pankov@nexenta.com>
NEX-1050 enable_smb2 should be smb2_enable
SMB-11 SMB2 message parse & dispatch
SMB-12 SMB2 Negotiate Protocol
SMB-13 SMB2 Session Setup
SMB-14 SMB2 Logoff
SMB-15 SMB2 Tree Connect
SMB-16 SMB2 Tree Disconnect
SMB-17 SMB2 Create
SMB-18 SMB2 Close
SMB-19 SMB2 Flush
SMB-20 SMB2 Read
SMB-21 SMB2 Write
SMB-22 SMB2 Lock/Unlock
SMB-23 SMB2 Ioctl
SMB-24 SMB2 Cancel
SMB-25 SMB2 Echo
SMB-26 SMB2 Query Dir
SMB-27 SMB2 Change Notify
SMB-28 SMB2 Query Info
SMB-29 SMB2 Set Info
SMB-30 SMB2 Oplocks
SMB-53 SMB2 Create Context options
(SMB2 code review cleanup 1, 2, 3)
SMB-56 extended security NTLMSSP, inbound
SMB-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>
re #6813 rb1757 port 2976 Child folder visibility through shares

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/smbsrv/smbinfo.h
          +++ new/usr/src/uts/common/smbsrv/smbinfo.h
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  23      - * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
       23 + * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
  25   25  
  26   26  #ifndef _SMBSRV_SMBINFO_H
  27   27  #define _SMBSRV_SMBINFO_H
  28   28  
  29   29  #include <sys/types.h>
  30   30  #include <sys/uuid.h>
  31   31  #include <smbsrv/netbios.h>
  32   32  #include <netinet/in.h>
  33   33  #include <smbsrv/smb_inet.h>
↓ open down ↓ 90 lines elided ↑ open up ↑
 124  124   * sizeof (smb_version_t).
 125  125   */
 126  126  typedef struct smb_version {
 127  127          uint32_t        sv_size;
 128  128          uint32_t        sv_major;
 129  129          uint32_t        sv_minor;
 130  130          uint32_t        sv_build_number;
 131  131          uint32_t        sv_platform_id;
 132  132  } smb_version_t;
 133  133  
      134 +typedef enum smb_cfg_val {
      135 +        SMB_CONFIG_DISABLED = 0,
      136 +        SMB_CONFIG_ENABLED = 1,
      137 +        SMB_CONFIG_REQUIRED = 2
      138 +} smb_cfg_val_t;
      139 +
      140 +void smb_cfg_set_require(const char *, smb_cfg_val_t *);
      141 +
 134  142  /* See also: smb_ioc_cfg_t */
 135  143  typedef struct smb_kmod_cfg {
 136  144          uint32_t skc_maxworkers;
 137  145          uint32_t skc_maxconnections;
 138  146          uint32_t skc_keepalive;
 139  147          int32_t skc_restrict_anon;
 140  148          int32_t skc_signing_enable;
 141  149          int32_t skc_signing_required;
 142  150          int32_t skc_oplock_enable;
 143  151          int32_t skc_sync_enable;
 144  152          int32_t skc_secmode;
 145  153          int32_t skc_netbios_enable;
 146  154          int32_t skc_ipv6_enable;
 147  155          int32_t skc_print_enable;
 148  156          int32_t skc_traverse_mounts;
 149  157          uint32_t skc_max_protocol;      /* SMB_VERS_... */
      158 +        uint32_t skc_min_protocol;      /* SMB_VERS_... */
      159 +        smb_cfg_val_t skc_encrypt; /* EncryptData and RejectUnencryptedAccess */
 150  160          uint32_t skc_execflags;
 151  161          uint32_t skc_negtok_len;
 152  162          smb_version_t skc_version;
 153  163          uint16_t skc_initial_credits;
 154  164          uint16_t skc_maximum_credits;
 155  165          uuid_t skc_machine_uuid;
 156  166          uchar_t skc_negtok[SMB_PI_MAX_NEGTOK];
 157  167          char skc_native_os[SMB_PI_MAX_NATIVE_OS];
 158  168          char skc_native_lm[SMB_PI_MAX_LANMAN];
 159  169          char skc_nbdomain[NETBIOS_NAME_SZ];
↓ open down ↓ 53 lines elided ↑ open up ↑
 213  223  
 214  224  /*
 215  225   * Defined SMB1, SMB2(+) protocol versions, as returned by
 216  226   * smb_config_get_max_protocol()
 217  227   */
 218  228  #define SMB_VERS_1              1       /* arbitrary value < 0x200 */
 219  229  #define SMB_VERS_2_BASE         0x200   /* for (SMB2 or higher?) tests */
 220  230  #define SMB_VERS_2_002          0x202   /* "2.002" */
 221  231  #define SMB_VERS_2_1            0x210   /* "2.1" */
 222  232  #define SMB_VERS_3_0            0x300   /* "3.0" */
      233 +#define SMB_VERS_3_02           0x302   /* "3.02" */
 223  234  
 224  235  #ifdef __cplusplus
 225  236  }
 226  237  #endif
 227  238  
 228  239  #endif /* _SMBSRV_SMBINFO_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX