I am sponsoring this fast track for the CIFS client team.

This fast track proposes to update the original case,
PSARC/2005/695.  The amendments are outlined below.
The complete version of the updated materials can be found
in the materials directory for the case.  The timeout is
set for one week from today - Friday of next week (8/2/2008)

Darren

Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         CIFS Client on Solaris - Updates
    1.2. Name of Document Author/Supplier:
         Author:  Gordon Ross
    1.3  Date of This Document:
        31 January, 2008
4. Technical Description

Since the approval of PSARC 2005/695, we have modified some
parts of our approach and design.  This fast-track requests
approval of proposed updates to the commitment materials for
PSARC 2005/695.

The (proposed) updated materials are here:
  http://nfs-build.sfbay/sea/projects/cifs/commitment.materials/

The updates are summarized in the file:
  changes_since_commitment.txt
in the location named above, and attached to this message.


6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                ON
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open





Here is a summary of things we changed from what was
approved at commitment of PSARC/2005/695

Here's a high-level list of what changed:
  Phase 1 deliverables - two deferred items (20questions)
  IPv6 non-support (incompatible with NetBIOS)
  sockfs vs (k)TLI -- CIFS_Design_Doc.html
  SMF service      (which doc. mentions this?)
  smbutil login/logout/logoutall -- man pages
  sharectl "smbfs" vs "smb" -- man pages

Detailed changes:


** 20questions.txt

3. What is its plan?

- What is its current status? Has a design review been done?  Are there 
  multiple delivery phases?

Old:
  We have 'smbutil' working without the login and logout subcommands.
  We have 'mount_smbfs' mounting a working read-only filesystem, but
  we have no write operations,  Kerberos support, or SMF support yet.
  We have held a design review and have modified the design document
  [3] based on feedback from it.  We currently believe we will putback
  to Nevada in Q3CY2007, and we may backport it to a future Solaris 10
  update.  We do expect to deliver further SMB/CIFS functionality and
  integration in future putbacks, focusing on items mentioned in "What
  we're not doing" in the requirements document [2].
New:
  Design review and (phase 1) functionality are complete.

  We've refined our plan for multiple delivery phases,
  where "Phase 1" will deliver all of the functionality
  specified in our requirements document [2] except for:

  a: Compliance with the IPv6 "big rule" will not be possible
     until we implement "SMB over plain TCP" (in Phase 2)
     because NetBIOS only supports IPv4.
  b: Automatic connect or reconnect is delayed until Phase 2.

  We do expect to deliver further SMB/CIFS functionality and
  integration in future putbacks, with a "Phase 2" delivery
  focusing on items mentioned in "What we're not doing" in the
  requirements document [2], plus the above items (a, b).


8. ... (RAS)
- How does your project deal with network failures (including
  partition and re- integration)?  How do you handle the failure
  of hardware that your project depends on?

Old:
  Lost TCP connections are automatically reconnected when possible.
  Lost requests and responses cause protocol level retransmissions
  per SMB/CIFS norms.  This project has no dependency on hardware.

New:
  This project has no dependency on hardware.  Lost requests or
  responses cause protocol level retransmissions per SMB/CIFS norms.
  
  Lost connections require user intervention to unmount and remount
  the resources affected.  We plan to improve on this in a "phase 2"
  project (RFE 6587713).

  [ We wanted to do automatic reconnect in phase 1, but found that
    the code we had for this was in need of significant work. ]

9. Observability

- Does the project export status, either via observable output
  (e.g., netstat) or via internal data structures (kstats)?

Add:
  We do provide "mdb" modules that can display all the
  important data structures in the new kernel modules.

11. What is its UNIX operational environment:

- Is the project compatible with IPV6 interfaces and addresses?

Old:
  We have not yet investigated this yet, but it should be possible
  for us to comply with the IPv6 "big rule".

New:
  The current code supports only NetBIOS-style connections, and
  the NetBIOS protocol uses IPv4-specific address formats.
  We will therefore NOT be able to comply with the IPV6
  "big rule" in our phase 1 delivery.
  
  We plan to implement "SMB over Plain TCP" (port 445) in a
  phase 2 project, which will lift the IPv4 limitation.

13. What interfaces... import and export?

Replaced: sockfs with (k)TLI

18. Performance

- What is your project's MT model? How does it use threads internally? 
  How does it expect its client to use threads?  If it uses callbacks,
  can the called entity create a thread and recursively call back?

Old:
  We should be MT-hot.  The device driver handles per-zone worker threads
  to parallelize I/O.

New:
  The kernel code will all be MT-safe.  The device driver uses a thread
  for each connection (a reader), created when the connection is
  established.



** CIFS_Design_Doc.html

3.3 Binary list
    Our packages and lists of binaries have changed.
    We now have three new packages:

    SUNWsmbfskr       (MDB modules)
        kernel/kmdb/$ISA/nsmb
        kernel/kmdb/$ISA/smbfs

    SUNWsmbfsr          (SMF service)
        var/svc/manifest/network/smb/client.xml
        lib/svc/method/smb-client

    SUNWsmbfsu
        usr/kernel/drv/nsmb.conf
        usr/kernel/drv/$ISA/nsmb
        usr/kernel/drv/$ISA/smbfs
        usr/lib/fs/smbfs/mount
        usr/lib/fs/smbfs/umount
        usr/lib/fs/smbfs/smbutil
        usr/lib/fs/smbfs/$ISA/libshare_smbfs.so (sharctl plug-in)
        usr/lib/fs/smbfs/$ISA/libshare_smbfs.so.1
        usr/lib/$ISA/libsmbfs.so
        usr/lib/$ISA/libsmbfs.so.1
        usr/lib/llib-lsmbfs
        usr/lib/llib-lsmbfs.ln
        usr/lib/mdb/kvm/$ISA/nsmb.so
        usr/lib/mdb/kvm/$ISA/smbfs.so
        usr/bin/smbutil         (symlink to usr/lib/fs/smbfs/smbutil)

    We also plan to update binaries these existing packages:

    SUNWcsr
        sbin/mount      (allow use by non-root)
        sbin/umount     (allow use by non-root)

    SUNWcsu
        usr/lib/autofs/automountd
        usr/lib/fs/nfs/libshare_nfs.so.1
        usr/lib/libshare.so.1
        usr/sbin/sharectl

    SUNWzoneu           (add zone config for /dev/nsmb)
        usr/lib/brand/native/platform.xml


4.2 Imported interfaces

Remove "sockfs calls" (4th row) and replace with:
Kernel TLI (kTLI - t_kopen, t_kbind, t_kconnect, ...)

  During our porting efforts, we learned that the Darwin code
  depends on  the ability to build separate message chains and
  concatenate them later.  This is used for things like building
  the "parameters" and "data" sections of an RAP request.
  Similarly, the Darwin code parses some messages by making
  (reference) duplicates (dupmsg) and trimming to the sections
  desired (parameters, data).

  We changed to (k)TLI because that interface supports sending and
  receiving mblk chains.  We use mblk chains to support dissection
  and reassembly of messages.

5.1 Assumptions and Dependencies
   
    "We assume that the requirements and design are changeable, ..."
    This update (fast track?) is about such changes.

7.6.5 TIMEOUT support 

    We now implement receive timeous, using t_kspoll,
    which allows us to report non-responsive servers.

8.3.3 RAP

    We're not implementing any except NetShareEnum.


8.4.2 Interfaces
    The vfsops, vnodeops lists updated.

8.5.2.1 ioctls
    Also updated slightly.

8.5.2.2 exports to smbfs
    Not really complete.  Need this detail?

8.5.2.3 interface to networking code
    Changed from sockfs to (k)TLI.

** Man pages

Several changes.  The latest man pages are here:
  http://jurassic.sfbay/~cathleen/docs/sman1m/smbclient.html



Reply via email to