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
-
Clone CATE (or extract the zip-file).
$ git clone https://github.com/gusew/cate.git
-
Change into the CATE directory.
$ cd cate/
-
Build CATE and dependencies.
$ make
-
Create a directory for output results.
$ mkdir results
-
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:
- Linear Search
- Bit Vector Search
- Hierarchical Intelligent Cuttings (HiCuts)
- Tuple Space Search
Dependencies
CATE has three dependencies which are included in this repository and which are automatically build by using the main makefile. These libraries are
- Lua Interpreter
- The GNU Multiple Precision Arithmetic Library
- A lightweight and portable C++ unit testing library
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