#dpdk #distributor #packet #networking

dpdk-packet-distributor

A wrapper around DPDK's packet distributor framework with support for slave logical cores and service logical cores

2 releases

Uses old Rust 2015

0.1.1 Jul 31, 2018
0.1.0 Jul 31, 2018

#2 in #distributor

AGPL-3.0

5.5MB
152K SLoC

C 143K SLoC // 0.1% comments Rust 7.5K SLoC // 0.1% comments Shell 610 SLoC // 0.2% comments Python 249 SLoC // 0.2% comments Forge Config 103 SLoC // 0.1% comments RPM Specfile 19 SLoC

[](This file is part of .cargo. It is subject to the license terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/.cargo/master/COPYRIGHT. No part of .cargo, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file.) [](Copyright © 2016 The developers of .cargo. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/.cargo/master/COPYRIGHT.)

.cargo

.cargo is a simple repository that contains common files useful when creating crates. It allows for a common style for formatting and clippy across projects. It is intended to be embedded as a submodule and various files symlinked into placed.

Licensing

The license for this project is MIT.


lib.rs:

#dpdk-global-allocator A wrapper around DPDK's packet distributor framework with support for slave logical cores and service logical cores.

An user of this crate should create an instance of PacketDistributorControllerLoop and then use DPDK's slave logical cores or service logical cores to run it repeatedly. This particular loop implementation distributes packets to workers but does not process returned packets.

DPDK's underlying code never reserves but never frees memory on creation... potentially limiting the usefulness of this framework.

Whilst DPDK is supported for Linux on AArch64, ARM v7, PowerPC 64-bit (recent) and x86-64, and FreeBSD on x86-64, only Linux x86-64 will compile.

Some work has been done to try to maintain compatibility with FreeBSD and other architectures but this is not maintained yet.

Dependencies