README
///////////////////////////////////////////////////////////////////////////////
Lightweight Autonomic Network Architecture (LANA)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Web: http://www.epics-project.eu/
Abstract: http://dl.acm.org/citation.cfm?id=2065222
Network programming is widely understood as programming strictly defined socket
interfaces. Only some frameworks have made a step towards 'real' network
programming by decomposing networking functionality into small modular blocks
(functional blocks) that can be assembled in a flexible, graph-like manner. In
this work, we tackle the challenge of accommodating 3 partially conflicting
objectives:
(i) high flexibility for network programmers,
(ii) re-configuration of the network stack at runtime, and
(iii) high packet forwarding rates.
First experiences with a prototype implementation in Linux suggest little
performance overhead compared to the standard Linux protocol stack.
How to browse the source:
src/ - Contains all kernel modules of LANA
usr/ - Contains userspace configuration tools for LANA
app/ - Contains a voice-over-Ethernet application that
uses PF_LANA BSD sockets
sem/ - Contains a set of semantic patches that can be
used with Coccinelle (http://coccinelle.lip6.fr/)
microblaze/ - SoC design files and kernel conf for the ML605 board
LANA microblaze port:
https://github.com/borkmann/linux-microblaze
doc/ - The name says everything, you need LaTeX for this
Within the src/ folder, there are files named:
fb_*.c - These are functional block kernel modules
core.c - LANA core loader (-> lana.ko)
xt_*.{c,h} - LANA core extensions
For questions, bugs and other things, you can write the authors, see the
REPORTING-BUGS file. Happy Kernel Hacking! :-)