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