Refactor file layout
[openafs-wiki.git] / archive / hackathon_pittsburgh_2011.mdwn
diff --git a/archive/hackathon_pittsburgh_2011.mdwn b/archive/hackathon_pittsburgh_2011.mdwn
new file mode 100644 (file)
index 0000000..80e624f
--- /dev/null
@@ -0,0 +1,87 @@
+OpenAFS Hackathon, Pittsburgh, April 2011
+
+Config Files
+------------
+
+Server and client side configuration file will be in krb5 config file syntax.
+Some examples done on the white board:
+
+    [core]
+    thiscell = andrew.cmu.edu
+    use_dns = yes    
+    
+    [cells]
+    andrew.edu = {
+        description = "Project Andrew - CMU"
+        vlserver = tcp/128.2.10.2
+        ptserver = udp/128.2.10.11
+        dbserver = 128.1.10.7
+        dbserver = FF00::128.2.10.28
+        dbserver = db3.andrew.cmu.edu
+        use_dns = yes
+    }
+    
+    [ptserver]
+    servers = {
+        vice2 = {
+            address = 128.2.10.2:7002
+            priority = 2
+        }
+    }
+    
+    [fileserver]
+    dbservers = {
+        vlserver = vice7
+    }
+    
+    [rank]
+    # syntax for host addresses:
+    # [proto/]host[/mask][:port]
+    128.2.10.2 = 2000
+    tcp/128.2.10.11 = 9000
+    128.2.10.2 = 2000
+    128.2.10.12:7003 = 1500
+    128.2.172/22 = 100
+    
+    
+
+Per File ACLS
+-------------
+
+On-disk storage of per file acls requires us to extend the VnodeDiskObject, and in a way that 
+allows graceful *downgrades*. After much discussion, it was decided to change the small index
+version number (in the header record) and use the vnodeMagic field of the VnodeDiskObject to
+indicate extension meta data is present. The extension meta data is stored in a new, separate
+file.
+
+    VnodeBigHeader {
+        afs_uint32 magic;
+        afs_uint32 stamp;
+        afs_uint32 free;
+        unsigned char pad[256 - 4 * 3]
+    };
+    
+    VnodeBigObject {
+        afs_uint32 vnode;
+        afs_uint32 unique;
+        afs_uint32 next;
+        afs_uint32 kind;
+        unsigned char data[256 - 4 * 4]
+    };
+
+    VNODE_BIG_TBC  0x40000000
+    VNODE_BIG_CONT 0x80000000
+    VNODE_BIG_TYPE_MAGIC 0x7FFFFFFF
+    VNODE_BIG_EXT1 1
+    VNODE_BIG_ACL  2
+
+
+
+Portability
+-----------
+
+1. osi, opr
+2. defining API
+3. building stuff (pic, not-pic/threads,lwp)
+4. library makeup
+