| 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 |
In progress |
| Pin UDP routes by rxrpc_connection |
Kernel C |
Medium |
no |
| Use MSG_CONFIRM on the UDP socket |
Kernel C |
Easy |
no |
| Support per-call sendfile(), splice-in and splice-out,
using setsockopt() to select the call to use |
Kernel C |
Easy |
Written |
| Allow sockets to be bonded together to make multiple queues |
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 |
| Make calls asynchronous inside the kernel, including address
and server rotation |
Kernel C |
Medium |
v5.8 |
| Make xfstests
able to test kAFS |
xfstests |
Medium |
Partial |
| Fix breakage induced by xfstests |
Kernel C |
Medium |
v5.8 |
| AIO read/write support |
Kernel C |
Medium |
no |
| O_DIRECT read/write support |
Kernel C |
Medium |
Partial |
| 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 |
| Local caching |
Fscache: Rewrite of object model |
Kernel C |
Medium |
Written |
| Fscache: Rewrite of I/O API |
Kernel C |
Medium |
Written |
| Cachefiles: Use bitmap to track contents rather than bmap() |
Kernel C |
Easy |
Written |
| Cachefiles: Use kiocb asynchronous direct-I/O interface rather
than event interception |
Kernel C |
Easy |
Written |
| Cachefiles: Use O_TMPFILE to speed up invalidation |
Kernel C |
Medium |
Written |
| Write local data changes to cache |
Kernel C |
Medium |
Written |
| Write local directory changes to cache |
Kernel C |
Medium |
Written |
| Disconnected mode: Operation |
Kernel C |
Medium |
no |
| Disconnected mode: Modification journal and change submission on
reconnection |
Kernel C |
Medium |
no |
| Disconnected mode: Conflict resolution |
Kernel C |
Medium |
no |
| 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 AFS-compatible command line framework (bos, vos, pts, fs,
...) |
User C |
Easy |
Written |
| Provide a mid-level library, to hide differences between RPC call
variants (eg. ListVolumes, XListVolumes), RPC
service variants (AFS vs YFS) and to handle server and address
rotation |
User C |
Medium |
In progress |
| Provide compatible AFS command line support (bos, vos, pts, fs,
...) commands |
User C |
Easy to Hard |
In progress |
| Make it possible to override the AF_RXRPC transport with a
shared library plug-in |
User C |
Slightly tricky |
Written |
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.
|
User C |
Medium |
no |
| Provide AFS filesystem query interface |
User C |
Medium |
no |
| Provide kAFS pluggable query module. Requires kAFS kernel
module support. |
User C |
Medium |
no |
| Provide Python language bindings and scripting interface |
Python, swig |
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 |