Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / filesystems / 9p.txt
diff --git a/kernel/Documentation/filesystems/9p.txt b/kernel/Documentation/filesystems/9p.txt
new file mode 100644 (file)
index 0000000..fec7144
--- /dev/null
@@ -0,0 +1,161 @@
+                   v9fs: Plan 9 Resource Sharing for Linux
+                   =======================================
+
+ABOUT
+=====
+
+v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.
+
+This software was originally developed by Ron Minnich <rminnich@sandia.gov>
+and Maya Gokhale.  Additional development by Greg Watson
+<gwatson@lanl.gov> and most recently Eric Van Hensbergen
+<ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox
+<rsc@swtch.com>.
+
+The best detailed explanation of the Linux implementation and applications of
+the 9p client is available in the form of a USENIX paper:
+   http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html
+
+Other applications are described in the following papers:
+       * XCPU & Clustering
+               http://xcpu.org/papers/xcpu-talk.pdf
+       * KVMFS: control file system for KVM
+               http://xcpu.org/papers/kvmfs.pdf
+       * CellFS: A New Programming Model for the Cell BE
+               http://xcpu.org/papers/cellfs-talk.pdf
+       * PROSE I/O: Using 9p to enable Application Partitions
+               http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf
+       * VirtFS: A Virtualization Aware File System pass-through
+               http://goo.gl/3WPDg
+
+USAGE
+=====
+
+For remote file server:
+
+       mount -t 9p 10.10.1.2 /mnt/9
+
+For Plan 9 From User Space applications (http://swtch.com/plan9)
+
+       mount -t 9p `namespace`/acme /mnt/9 -o trans=unix,uname=$USER
+
+For server running on QEMU host with virtio transport:
+
+       mount -t 9p -o trans=virtio <mount_tag> /mnt/9
+
+where mount_tag is the tag associated by the server to each of the exported
+mount points. Each 9P export is seen by the client as a virtio device with an
+associated "mount_tag" property. Available mount tags can be
+seen by reading /sys/bus/virtio/drivers/9pnet_virtio/virtio<n>/mount_tag files.
+
+OPTIONS
+=======
+
+  trans=name   select an alternative transport.  Valid options are
+               currently:
+                       unix    - specifying a named pipe mount point
+                       tcp     - specifying a normal TCP/IP connection
+                       fd      - used passed file descriptors for connection
+                                (see rfdno and wfdno)
+                       virtio  - connect to the next virtio channel available
+                               (from QEMU with trans_virtio module)
+                       rdma    - connect to a specified RDMA channel
+
+  uname=name   user name to attempt mount as on the remote server.  The
+               server may override or ignore this value.  Certain user
+               names may require authentication.
+
+  aname=name   aname specifies the file tree to access when the server is
+               offering several exported file systems.
+
+  cache=mode   specifies a caching policy.  By default, no caches are used.
+                        none = default no cache policy, metadata and data
+                                alike are synchronous.
+                       loose = no attempts are made at consistency,
+                                intended for exclusive, read-only mounts
+                        fscache = use FS-Cache for a persistent, read-only
+                               cache backend.
+                        mmap = minimal cache that is only used for read-write
+                                mmap.  Northing else is cached, like cache=none
+
+  debug=n      specifies debug level.  The debug level is a bitmask.
+                       0x01  = display verbose error messages
+                       0x02  = developer debug (DEBUG_CURRENT)
+                       0x04  = display 9p trace
+                       0x08  = display VFS trace
+                       0x10  = display Marshalling debug
+                       0x20  = display RPC debug
+                       0x40  = display transport debug
+                       0x80  = display allocation debug
+                       0x100 = display protocol message debug
+                       0x200 = display Fid debug
+                       0x400 = display packet debug
+                       0x800 = display fscache tracing debug
+
+  rfdno=n      the file descriptor for reading with trans=fd
+
+  wfdno=n      the file descriptor for writing with trans=fd
+
+  msize=n      the number of bytes to use for 9p packet payload
+
+  port=n       port to connect to on the remote server
+
+  noextend     force legacy mode (no 9p2000.u or 9p2000.L semantics)
+
+  version=name Select 9P protocol version. Valid options are:
+                       9p2000          - Legacy mode (same as noextend)
+                       9p2000.u        - Use 9P2000.u protocol
+                       9p2000.L        - Use 9P2000.L protocol
+
+  dfltuid      attempt to mount as a particular uid
+
+  dfltgid      attempt to mount with a particular gid
+
+  afid         security channel - used by Plan 9 authentication protocols
+
+  nodevmap     do not map special files - represent them as normal files.
+               This can be used to share devices/named pipes/sockets between
+               hosts.  This functionality will be expanded in later versions.
+
+  access       there are four access modes.
+                       user  = if a user tries to access a file on v9fs
+                               filesystem for the first time, v9fs sends an
+                               attach command (Tattach) for that user.
+                               This is the default mode.
+                       <uid> = allows only user with uid=<uid> to access
+                               the files on the mounted filesystem
+                       any   = v9fs does single attach and performs all
+                               operations as one user
+                       client = ACL based access check on the 9p client
+                                side for access validation
+
+  cachetag     cache tag to use the specified persistent cache.
+               cache tags for existing cache sessions can be listed at
+               /sys/fs/9p/caches. (applies only to cache=fscache)
+
+RESOURCES
+=========
+
+Protocol specifications are maintained on github:
+http://ericvh.github.com/9p-rfc/
+
+9p client and server implementations are listed on
+http://9p.cat-v.org/implementations
+
+A 9p2000.L server is being developed by LLNL and can be found
+at http://code.google.com/p/diod/
+
+There are user and developer mailing lists available through the v9fs project
+on sourceforge (http://sourceforge.net/projects/v9fs).
+
+News and other information is maintained on a Wiki.
+(http://sf.net/apps/mediawiki/v9fs/index.php).
+
+Bug reports are best issued via the mailing list.
+
+For more information on the Plan 9 Operating System check out
+http://plan9.bell-labs.com/plan9
+
+For information on Plan 9 from User Space (Plan 9 applications and libraries
+ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9
+