# freeRouter source tree

more about the project at [www.freertr.org](http://www.freertr.org/)
you can find the same source tree at various locations, normally all should be the same:
* http://sources.freertr.org
* http://github.com/rare-freertr/freeRtr

part of the subdirectories under misc/ are somewhere else too:
* p4bf/ @ http://bitbucket.software.geant.org/projects/RARE/repos/rare/browse
* p4lang @ http://github.com/rare-freertr/RARE-bmv2
* maybe alex have an other repo worth donating to the team at githib publicly?

## dependencies

you'll need an up to date debian sid with a jdk installed

for native binaries, you'll need clang, dpdk, libpcap, libbpf, libmnl and libcrypto

## directory structure

the following directories could be found here:
* src contains the main sources
* cfg contains the self tests
* misc contains some smaller subprojects, see below

the following directories will appear here:
* img vm images used for interop and dataplane testing
* binDwn packages used for demo vm creation
* binDsk rootfs used for demo vm creation
* binMnt rootfs mounted for demo vm creation
* binImg outcome of demo vm creation
* binOut output of compilation
* binTmp output of testing

## directories under misc folder

* native dpdk, xdp and mnl based dataplanes
* p4bf tofino based dataplane
* p4lang bmv2 based dataplane
* bogon web based bogon originator
* lookingglass web based looking glass
* captures script to stream captures
* sniffer web based packet capture
* mailer web based mail reader
* gallery web based album viewer
* motion web based alarm/recorder
* player web based music player/streamer/receiver
* temper web based thermostat/controller
* trackmap web based monitoring
* voice an answering machine
* snmp some snmp definitions
* consistency old style check definitions
* tests some volumentric generators
* check some check definitions
* sensor some sensor definitions
* prometheus some grafana definitions
* netconf some yang definitions
* image demo vm iso creator
* img2ova demo vm ova creator
* service install script

## getting started

there is no build system in use, but you'll find shell scripts:
* d.sh to clean up
* c.sh to compile
* r.sh to run
* t.sh to selftest

as a first start to get your routers up, do the following:
* cd src
* ./c.sh
* ./tw.sh rout-bgp001
* telnet 127.0.0.1 20001
* telnet 127.0.0.1 20002
* telnet 127.0.0.1 20003
* telnet 127.0.0.1 20004

## contributing

feel free to reach us on the mailing lists with your patches, ideas, feature requests, etc.

## additional information

* [freertr@groups.io](mailto:freertr@groups.io)
* [docs.freertr.org](http://docs.freertr.org/)
* [demo.freertr.org](http://demo.freertr.org/)
* [rare.freertr.org](http://rare.freertr.org/)
* [blog.freertr.org](http://blog.freertr.org/)
