Programmable devices run scripts written in Repy, a sandboxed Python dialect. Using these devices, networking data can be read and written as raw Ethernet packages.
The library is part of the ToMaTo source code and located at Github. It contains the following:
Library files can be found in the lib directrory and can be included like in the C programming language
Build your final output script using these steps:
Code sharing: Share your code with others on Github to improve the library and to get feedback.
Performance: Code that uses struct to convert binary data to numbers is a faster but the fastest code avoids convertions.
Exception handling: Wrap the per-packet code in a try-except block, otherwise the script will abort on an error.
80-20 rule: 80% of the functionality of a protocol is implemented in 20% of its code, and vice versa. Most protocols have optional features that are not needed in most cases.
Arguments: Scripts can take arguments, no need to write different scripts just to have different addresses.
ToMaTo is Open-Source! It can be simply downloaded from the Github page. There is also a step-by-step tutorial on how to setup ToMaTo in a testbed. ToMaTo includes some nice features that make it pretty easy to install it in an experimental facility:
As an Open-Source project ToMaTo is open for hints and contributions.
/
#