CATE

CATE Logo

Classification Algorithms Testing Environment

Download .zip Download .tar.gz View on GitHub

Classification Algorithms Testing Environment

CATE is a framework for consistently and reproducibly extracting the key performance characteristics of classification algorithms, such as memory footprint and matching speed. Classification algorithms are utilized in network packet classification which is an essential part of various services of today's packet-switched networks, like, for instance, firewalling, policy routing, intrusion detection, and traffic rate limiting.

Quick Start Guide

  1. Clone CATE (or extract the zip-file).

    $ git clone https://github.com/gusew/cate.git
    
  2. Change into the CATE directory.

    $ cd cate/
    
  3. Build CATE and dependencies.

    $ make
    
  4. Create a directory for output results.

    $ mkdir results 
    
  5. Run CATE with an example benchmark suite (1,000 rules and all algorithms).

    $ ./build/cate/cate examples/all-acl1-1K.lua results/
    

Implementations of Classification Algorithms

Currently, the following algorithms are implemented for the CATE framework:

Dependencies

CATE has three dependencies which are included in this repository and which are automatically build by using the main makefile. These libraries are

Contributing

We cordially welcome any implementations of further classification algorithms as well as patches to the CATE framework. For patches, please start by opening a new issue describing the change you are going to make. Then, fork the project or create a new branch where you will be working at. Finally, push the commits to your fork and submit a pull request.

Publications

Main Paper: if your work uses or extends CATE, please refer to this paper

CATE: An Open and Highly Configurable Framework for Performance Evaluation of Packet Classification Algorithms
W. Gusew, S. Hager, and B. Scheuermann, in Proceedings of Winter Simulation Conference, Huntington Beach, USA, Dec 2015
BibTex · Presentation Slides · Paper