kAFS To-Do List

Component What Where Ease State
AF_RXRPC protocol Service upgrade Kernel C Medium Done
Kerberos 5 support Kernel C Unknown Done
RxGK/GSS security class Kernel C Unknown no
YFS-RxGK security class Kernel C Unknown no
kAFS filesystem Provide pioctl replacement, using getxattr, sysfs, procfs, keyctl and other interfaces as appropriate. This is needed for path-based services Kernel C Easy to Hard Partial
Dynamic root support (mount -o dyn) Kernel C Medium v4.16
IPv6: Upcall for IPv6 addresses as well as IPv4 Kernel C Easy v4.18
IPv6: Support for VL server comms Kernel C Hard v4.15
IPv6: Support for FS server comms with YFS Kernel C Hard v4.15
Multipage read support Kernel C Medium Done
Multipage write support Kernel C Medium v4.15
Handling volumes being moved, busy or offline Kernel C Medium v4.15
Re-evaluate server/volume state after having had difficulty reaching it. Kernel C Medium v4.18
Magic path substitution handling (@sys and @cell) Kernel C Easy v4.17
Use of speculative batched file status fetching from dir lookup Kernel C Medium v4.17
Local directory blob editing to avoid reload after create/mkdir/unlink/etc. Kernel C Hard v4.17
Handle permissions on a per file basis instead of per directory Kernel C Easy v4.15
Modify unix mode bit handling Kernel C Easy v4.11
Network namespacing support Kernel C Medium v4.18
Network namespace propagation over automounts Kernel C Medium Pending
O_DIRECT read/write support Kernel C Medium Partial
AIO read/write support Kernel C Medium no
Container keyring Kernel C Medium no
inotify (and similar) support Kernel C Medium-Hard no
Fix population of the vfs group id Kernel C Easy no
SELinux/Smack label storage - requires xattr support on the server Kernel C Unknown no
YFS FS client and CM service support Kernel C Unknown v4.20
File system exports for afs2nfs translation Kernel C Medium no
kafs-client systemd files Config Easy Done
Start/stop managing and mounter systemd Easy Done
Configuration loading from systemd C/Script Easy Done
Support for Loading AuriStorFS profile cell information Unknown Unknown Done
SRV DNS record support for DNS upcalls (RFC 5864) User C Easy Done
IPv6: DNS lookups User C Easy Done
Read CellServDB on demand User C Easy Done
aklog program; may need to interact with kafs-utils. A cut down program is here. C Easy Partial
PAM support (libpam_kafs_session) C Easy no
keyutils SRV DNS record support for DNS upcalls (RFC 5864) User C Easy Pending
IPv6: DNS lookups User C Easy Pending
Allow override by kafs-client User C Easy Pending
kafs-utils Provide compatible AFS command line support (bos, vos, pts, fs, ...) commands Python app & lib Easy to Hard Partial
Introduce high-level Python scripting interface immediately underneath the command line argument parsing Python library Many; easy no
Introduce RPC abstraction wrappers, hiding differences between variants of RPC calls (eg. ListVolumes and XListVolumes) Python library Many; relatively easy no
Separate out the AF_RXRPC transport as a shared library plug-in C backend Slightly tricky Mostly done; have patch
Provide other transport plug-ins for OpenAFS librx, etc..
  • Note that the AF_RXRPC doesn't work in quite the same way as the standard Rx library interface (connections aren't accessible to user; local errors separate from remote aborts). Requires transport separation.
C backend Medium no
Provide AFS filesystem query interface Python Lib & C backend Medium no
Provide kAFS pluggable query module. Requires kAFS kernel module support. C backend Medium no
Python server support.
  • Maybe pass Python dict of operation ID -> function mappings to backend when starting server, where the server will call the appropriate function to get an app call object. The object would then have methods with predefined names called upon it to deliver data, aborts, acks, etc.
Python lib & C backend Medium no