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
Pin UDP routes by rxrpc_connection Kernel C Medium no
Use MSG_CONFIRM on the UDP socket Kernel C Easy 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 v5.1
Silly rename on unlink or rename Kernel C Medium v5.2
Byte-range file locking emulation Kernel C Medium v5.2
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
Getting kafs enabled in the Fedora kernel (Fedora bz 1616016) . Spec Easy F29
filesystem Getting the /afs mountpoint in the FHS (Linux Foundation bug 1438) Spec - Review
Getting the /afs mountpoint accepted by Fedora (Fedora packaging bug 888) Spec - Accepted
Getting the /afs mountpoint packaged in the base filesystem rpm as a filesystem-afs subpackage (Fedora bz 1720232) . Spec Easy F31
kafs-client systemd files Config Easy v0.1
Start/stop managing and mounter systemd Easy v0.1
Configuration loading from systemd C/Script Easy v0.1
Support for Loading AuriStorFS profile cell information Unknown Unknown v0.1
SRV DNS record support for DNS upcalls (RFC 5864) User C Easy v0.1
IPv6: DNS lookups User C Easy v0.1
Read CellServDB on demand User C Easy v0.1
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
Getting the kafs-client package into Fedora (Fedora bz 1724281) . Spec Easy F31
keyutils SRV DNS record support for DNS upcalls (RFC 5864) User C Easy kafs-client
IPv6: DNS lookups User C Easy kafs-client
Allow override by kafs-client User C Easy v1.6
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