Crate oskr

Source
Expand description

The document here mainly for:

  • Instruction on how to implement protocols on top of the framework. Check protocol::unreplicated module for a beginner example.
  • Instruction on how to evaluate with this codebase. Check provided binaries for reference.
  • Record some explanation of design choice, help me think consistently over long develop period.

The detail implementation of various protocols and applications are mostly undocumented, refer to original work for them.

§Stability

As the time of writing this, we are around release candidate of 1.0 version, and I have tried out most alternative architecture and components, and I believe that most thing remain here comes with a reason.

As a result, hopefully there will be no major breaking update on the codebase, i.e. everything in facade module remains the same forever. The future work should be:

  • Add more protocols and applications implementation and evaluate them.
  • Add more framework components, e.g. kernel network stack, if necessary.
  • Bump toolchain and dependencies version.

Modules§

app
Application implementations.
common
Common definitions. Extract them so future refactor can be easier.
dpdk_shim
Low-level DPDK binding.
facade
Interfaces across top-level modules, and to outside.
framework
Engineering components.
protocol
Protocol implementations.
simulated
Simulated facilities for writing test cases.
stage
Stage abstraction. Receiver on stage can use multiple threads efficiently.