Go to file
2018-07-12 21:52:14 +00:00
apps runtime: rename udpaddr to netaddr so it can be shared with TCP 2018-06-28 23:52:39 +00:00
base runtime: more tcp header tweaks 2018-07-05 19:05:59 +00:00
bindings runtime: rename udpaddr to netaddr so it can be shared with TCP 2018-06-28 23:52:39 +00:00
dpdk@f38e484e52 dpdk: move back to 18.02-rc4 2018-04-12 21:53:51 -04:00
dune runtime: experimental support for C++ 2017-11-17 00:17:59 -05:00
inc iokernel: embed process identifier in mac address, eliminate per-packet hash table lookups 2018-07-11 14:57:48 -04:00
iokernel iokernel: fix uninitialized variable 2018-07-11 15:00:42 -04:00
ksched ksched: bug fixes 2018-07-12 21:52:14 +00:00
net checkpoint 2018-01-02 15:31:41 -05:00
runtime iokernel: embed process identifier in mac address, eliminate per-packet hash table lookups 2018-07-11 14:57:48 -04:00
scripts runtime: refactor all high priority events into a softirq subsystem 2018-07-03 16:51:31 +00:00
shim shim: cleanup c++ refs 2018-07-11 17:20:10 -04:00
tests runtime: refactor out L4 flow matching so it can be used with TCP 2018-07-01 22:03:24 +00:00
.gitignore Ignore VIM swap files 2017-10-25 13:45:44 -04:00
.gitmodules iokernel: Add a basic DPDK echo server and DPDK 17.08.0 as a git submodule. 2017-11-10 18:33:37 -05:00
dpdk.sh iokernel/dpdk: patch IXGBE driver to allow 64 packet bursts, increase ring sizes 2018-07-09 16:18:28 -04:00
ixgbe.patch iokernel/dpdk: patch IXGBE driver to allow 64 packet bursts, increase ring sizes 2018-07-09 16:18:28 -04:00
Makefile iokernel: embed process identifier in mac address, eliminate per-packet hash table lookups 2018-07-11 14:57:48 -04:00
mlx.patch iokernel/mlx: bug fix 2018-06-01 19:09:37 -04:00
README first pass at a readme file 2017-11-18 16:04:23 -05:00
sample.config checkpoint 2018-01-02 15:31:41 -05:00

Overview
========

base - a extension to the standard C library that provides tools for managing
lists, memory, bitmaps, initialization, atomics, and several other useful
features.

dune - a better implementation of libdune based on the base library.

net - a packet manipulation library.

runtime - a user-level threading and networking runtime.

iokernel - a user-level softNIC.

bindings - language bindings (C++ and rust) for the runtime.


Coding Style
============

Use the following conventions for C code:
https://www.kernel.org/doc/html/v4.10/process/coding-style.html

Use the following conventions for C++ code:
https://google.github.io/styleguide/cppguide.html

For third party libraries and tools, use their existing coding style.

For some helpful tips on how to write clean code, see:
https://www.lysator.liu.se/c/pikestyle.html


Building
========

To build run:
$ make

To build in debug mode run:
$ make clean; make DEBUG=1

To get static checker output:
$ make sparse

For now, eaching binding has its own separate build system.