Overview

iris is a CCNx 1.0 forwarder with the following features:

The following features are currently in progress:

iris is not meant to be a high performance forwarder. It was built for two reasons: (a) to learn Rust and (b) to aid academic research projects at UC Irvine. To that end, I will try to keep it up to date so long as my research activity requires it. Going forward, I cannot make any promises about interoperability with other existing forwarders, e.g., the PARC CCNx Athena forwarder.

irisctl

iris is controlled with a program called irisctl (iris control). This is used to perform tasks such as creating passive link listeners, active link connections, and managing FIB routes. Please consult the program executable for comprehensive usage information (i.e., run `irisctl --help`).

Packet Flow

iris uses the Rust mio asynchronous I/O library to read and write data from and to the network. Each packet invokes the processing pipeline shown in the figure below.

pipeline

Contributing

As previously mentioned, iris was developed to aid my personal research. I will update it as needed. However, I would openly welcome any contributions to improve the design, implementation, or documentation. I'm not picky about the format of contributions (i.e., email patches would work fine), but Github pull requests would probably be easiest for everyone involved.