Print this page
NEX-16824 SMB client connection setup rework
NEX-17232 SMB client reconnect failures
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
and: (improve debug)
NEX-16818 Add fksmbcl development tool
NEX-17264 SMB client test tp_smbutil_013 fails after NEX-14666
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
and: (fix ref leaks)

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/smbclnt/netsmb/smb_tran.h
          +++ new/usr/src/uts/common/fs/smbclnt/netsmb/smb_tran.h
↓ open down ↓ 27 lines elided ↑ open up ↑
  28   28   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29   29   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30   30   * SUCH DAMAGE.
  31   31   *
  32   32   * $Id: smb_tran.h,v 1.2 2001/12/21 02:41:30 conrad Exp $
  33   33   */
  34   34  
  35   35  /*
  36   36   * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  37   37   * Use is subject to license terms.
       38 + *
       39 + * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  38   40   */
  39   41  
  40   42  #ifndef _NETSMB_SMB_TRAN_H_
  41   43  #define _NETSMB_SMB_TRAN_H_
  42   44  
  43   45  #include <sys/socket.h>
  44   46  #include <sys/stream.h>
       47 +#ifndef _KERNEL
       48 +struct file;
       49 +#endif
  45   50  
  46   51  /*
  47   52   * Known transports
  48   53   */
  49   54  #define SMBT_NBTCP      1
  50   55  
  51   56  /*
  52      - * Transport parameters
       57 + * Transport parameters, for tr_getparam/tr_setparam
  53   58   */
  54      -#define SMBTP_SNDSZ     1               /* R  - int */
  55      -#define SMBTP_RCVSZ     2               /* R  - int */
  56      -#define SMBTP_TIMEOUT   3               /* RW - struct timespec */
       59 +#define SMBTP_TCP_NODELAY       0x01            /* RW - int */
       60 +#define SMBTP_TCP_CON_TMO       0x13            /* RW - int */
       61 +#define SMBTP_KEEPALIVE         SO_KEEPALIVE    /* RW - int */
       62 +#define SMBTP_SNDBUF            SO_SNDBUF       /* RW - int */
       63 +#define SMBTP_RCVBUF            SO_RCVBUF       /* RW - int */
       64 +#define SMBTP_RCVTIMEO          SO_RCVTIMEO     /* RW - int? */
  57   65  
  58   66  struct smb_tran_ops;
  59   67  
  60   68  struct smb_tran_desc {
  61   69          sa_family_t     tr_type;
  62   70          int     (*tr_create)(struct smb_vc *vcp, cred_t *cr);
  63   71          int     (*tr_done)(struct smb_vc *vcp);
  64   72          int     (*tr_bind)(struct smb_vc *vcp, struct sockaddr *sap);
       73 +        int     (*tr_unbind)(struct smb_vc *vcp);
  65   74          int     (*tr_connect)(struct smb_vc *vcp, struct sockaddr *sap);
  66   75          int     (*tr_disconnect)(struct smb_vc *vcp);
  67   76          int     (*tr_send)(struct smb_vc *vcp, mblk_t *m);
  68   77          int     (*tr_recv)(struct smb_vc *vcp, mblk_t **mpp);
  69   78          int     (*tr_poll)(struct smb_vc *vcp, int ticks);
  70      -        int     (*tr_loan_fp)(struct smb_vc *, struct file *, cred_t *cr);
  71   79          int     (*tr_getparam)(struct smb_vc *vcp, int param, void *data);
  72   80          int     (*tr_setparam)(struct smb_vc *vcp, int param, void *data);
  73   81          int     (*tr_fatal)(struct smb_vc *vcp, int error);
  74   82          LIST_ENTRY(smb_tran_desc)       tr_link;
  75   83  };
  76   84  typedef struct smb_tran_desc smb_tran_desc_t;
  77   85  
  78   86  #define SMB_TRAN_CREATE(vcp, cr)        (vcp)->vc_tdesc->tr_create(vcp, cr)
  79   87  #define SMB_TRAN_DONE(vcp)              (vcp)->vc_tdesc->tr_done(vcp)
  80   88  #define SMB_TRAN_BIND(vcp, sap)         (vcp)->vc_tdesc->tr_bind(vcp, sap)
       89 +#define SMB_TRAN_UNBIND(vcp)            (vcp)->vc_tdesc->tr_unbind(vcp)
  81   90  #define SMB_TRAN_CONNECT(vcp, sap)      (vcp)->vc_tdesc->tr_connect(vcp, sap)
  82   91  #define SMB_TRAN_DISCONNECT(vcp)        (vcp)->vc_tdesc->tr_disconnect(vcp)
  83   92  #define SMB_TRAN_SEND(vcp, m)           (vcp)->vc_tdesc->tr_send(vcp, m)
  84   93  #define SMB_TRAN_RECV(vcp, m)           (vcp)->vc_tdesc->tr_recv(vcp, m)
  85   94  #define SMB_TRAN_POLL(vcp, t)           (vcp)->vc_tdesc->tr_poll(vcp, t)
  86      -#define SMB_TRAN_LOAN_FP(vcp, f, cr)    (vcp)->vc_tdesc->tr_loan_fp(vcp, f, cr)
  87   95  #define SMB_TRAN_GETPARAM(vcp, par, data)       \
  88   96          (vcp)->vc_tdesc->tr_getparam(vcp, par, data)
  89   97  #define SMB_TRAN_SETPARAM(vcp, par, data)       \
  90   98          (vcp)->vc_tdesc->tr_setparam(vcp, par, data)
  91   99  #define SMB_TRAN_FATAL(vcp, error)      (vcp)->vc_tdesc->tr_fatal(vcp, error)
  92  100  
  93  101  /* Ops vectors for each transport. */
  94  102  extern struct smb_tran_desc smb_tran_nbtcp_desc;
  95  103  
  96  104  #endif /* _NETSMB_SMB_TRAN_H_ */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX