Resources

Source code

The main NEAT code repository is publicly available on github:

https://github.com/NEAT-project/neat

Please note:

  • This is work-in-progress and in early stages of development. However, we believe in open code, hence why we have made it public.
  • The API is still subject to change.

i.e., you should not use this code in its current state to build a product on.

Feedback – suggestions, comments, bug reports or patches – is more than welcome on github!

You can also send us your feedback via this page.


Tutorial and online documentation

A tutorial of how to program with the NEAT User API is available online.

Online documentation (API reference, optional arguments, error codes, properties) is available at: http://neat.readthedocs.io/en/latest/


VMs pre-packaged with NEAT

The NEAT library, including installation instructions, sample test applications and documentation, is now provided within ready-to-deploy virtual machine (VM) environments. These NEAT VMs support both VMware and VirtualBox hypervisors. Each VM contains a pre-configured version of the NEAT library, built from a recent snapshot of the NEAT Github repository.

Each VM contains a recent binary version of the NEAT library that has successfully passed the automated Buildbot tests. The Policy Manager is configured to run as a daemon, using a minimal set of pre-configured policies and CIB entries. In addition, the VMs contain the NEAT sources in the ~/neat directory which is linked to the NEAT Github repository enabling users to pull updated development code or push contributions. The images also include all package dependencies required to build and debug NEAT, as well as compiler suites and example NEAT code.

Please follow this link to get to the downloads page.

You can provide us feedback on the NEAT VMs by clicking here.


Tools

The following software tools have been either developed by NEAT, or are used by the project for tests and experiments. They are used for either measurements or traffic generation. Some are independent from the NEAT library, whereas others are built on top of the library. More details about these tools can be found in Deliverable D4.2.

Measurements

  • Fling
    • When developing protocol extensions, it is often important to know what will happen to particular types of packets along a path (e.g. “If we add an option to this packet, is it more likely to be dropped? Will the option often be removed?”). fling allows for experimentation of various protocols of interest. fling transmits packets from a pcap file, following a dialogue defined in a JSON file, between fling clients and servers.
  • Edgetrace
    • Edgetrace is a probing and measurement tool for evaluating DSCP mark survivability in the Internet from a geographically diverse set of measurement locations. Edgetrace is a small simple client and server with a host capturing packet data for evaluation. The edgetrace survey concluded at the end of June 2017.
  • PATHspider
    • PATHspider is a framework for performing and analyzing easily customized A/B tests. PATHspider makes it easy to run large scale measurements on the Internet, with plugins available to support a large range of protocols. PATHspider has been developed by the MAMI EU project.

Traffic generation

  • phttpget
    • Minimal HTTP client with pipelining support, extended by the NEAT project to support SCTP. Used to analyze the benefits and disadvantages of using multiple SCTP streams instead of multiple TCP connections. The original phttpget software can be found here.
  • thttpd
    • Modified thttpd web server with SCTP support. This includes the mapping of multiple http requests to distinguish SCTP streams over a single SCTP association. The original thttpd software can be found here.
  • NEAT web server
    • Simple NEAT-enabled web server supporting HTTP 1.1 and TLS.
  • tneat
    • Benchmarking and traffic generation tool testing a wide variety of NEAT features.
  • pReplay
    • HTTP request generator, simulating the typical request behaviour of a web browser loading a website. The tool supports TCP and SCTP.
  • Nghttp2
    • Modified Nghttp2 web server, using the NEAT library to deliver websites via HTTP2 over TCP and SCTP. The original Nghttp2 software can be found here.

Zenodo collection

NEAT outputs are collected and curated in a Zenodo community collection:

https://zenodo.org/collection/user-neat-h2020


Please watch this space for future resources (like source code) coming out of the NEAT project.