Routing for cats
MeowRouter is a hardware accelerated IP packet forwarder running on programmable ICs. MeowRouter utilizes the Cuckoo hashing algorithm, and supports external memory accesses through AXI interface, so it is capable of handling large amount of network traffic / pps with huge routing tables.
This repository contains the RTL source code for the data plane, and is intended to be used alongside an CPU. See MeowRouter-top for an example.
See AUTHORS
file
MeowRouter's directory structure follows the Scala convention, which is:
src/main/scala
contains all the source codesrc/main/test
contains all the unit tests
src/main/scala/router.scala
contains the source for the main router module
Source code is divided into the following components:
acceptor
: Packet receptor + parserdata
: Shared data definationsarp
: ARP cache/matcherforward
: Forwarding tableencoder
: Packet serializertransmitter
: Packet transmitteradapter
: CPU rx/tx buf
All code under this repository is released under the MIT license. See LICENSE
file.