Giter Club home page Giter Club logo

ipgen's Introduction

ipgen

screenshot

ipgen is an Interactive Packet Generator with netmap|XDP

Abstract

ipgen is a packet traffic generator that uses netmap or XDP. It can interactively output packets of various sizes and rates, and measure how many have been dropped.

ipgen is implemented using the netmap feature of FreeBSD or the XDP feature of Linux.

AF_XDP on Linux is developed and tested on Ubuntu 21.04. It should work on recent Fedora Linux too with some minor tweaks.

Build

FreeBSD

  • setup FreeBSD and config kernel with NETMAP (add "device netmap" to conf/GENERIC).
  • gmake, perl and libevent are required to compile.
  • checkout and build
git clone [email protected]:iij/ipgen.git
cd ipgen
gmake depend && gmake && sudo gmake install
  • run ipgen

Linux

You will need libbsd and other libraries etc. See below.

apt install libbsd-dev clang libssl-dev libevent-dev libbpf-dev bmake
git clone https://github.com/iij/ipgen.git
cd ipgen
make depend && make && sudo make install
  • run ipgen

Caveat

On linux, ipgen with AF_XDP uses only the 1st hardware queue on a netowrk adapter, so if the network adapter uses multiple hardware queues ipgen with AF_XDP doesn't work correctly.

You can check if your network adapter, say eth0, uses multiple queues by ethtool -l eth0. If so you can change the number of using queues to just one by:

ethtool -L eth0 combined 1

Usage

Please refer to the following presentation materials.

ipgen: Interactive Packet Generator for performance measurement

ipgen's People

Contributors

ryo avatar ozaki-r avatar brian90013 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.