CephFS is awesome, but without a VPN it's not safe to be routed over the internet, and it lacks client support on many platforms. The Linux Kernel Library allows for the linux kernel to be built as a cross-platform user-space library and integrated into a regular Android, Windows, macOS, etc. application. This project combines CephFS, LKL and wireguard, and sprinkles some io-uring on top.
My objectives are:
- rebase LKL atop v5.6-rc1 ✅
- implement basic CephFS mount support within LKL tools ✅
- fix mount-time stall due to lack of entropy within LKL ✅
- get the CephFS kernel client building against the Android NDK via the LKL ✅
- learn about Wireguard usage and internals ✅
- modify wireguard-tools so that wg can call into the LKL for VPN deployment ✅
- implement a UDP packet forwarder based on io-uring
- the forwarder will route wireguard-encrypted traffic from the LKL network to the Android host network and vice-versa
- io-uring can only be used on the LKL side. Android doesn't provide it on the host side
- WIP: I got part way through this task (just epoll, no io-uring yet), but ran out of time
- stretch goal: create a Android GUI to browse a mounted CephFS filesystem
- stretch goal: help out with the LKL mainlining effort ✅
- reported a couple of minor bugs, discussed Android non-root networking with Hajime
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 19
This project is one of its kind!