Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,478 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What it is

"The OpenFlow eXtensible DataPath daemon (xDPd) is a multi-platform, multi OF version, open-source datapath built focusing on performance and extensibility."

xDPd can also be considered a framework for building OpenFlow datapath elements, as it is designed to be easily extended with the support of new forwarding devices.

Supported platforms (drivers)

Shipped with all xDPd instances:

  • GNU/Linux amd64/x86 user-space with mmap or netmap (gnu-linux). open-source
  • GNU/Linux + NetFGPA-10G (netfpga10g). open-source.
  • GNU/Linux Intel's DPDK accelerated driver (gnu-linux-dpdk). open-source

Also available:

  • Broadcom Triumph2 (bcm).
  • Octeon network processors (octeon5650).
  • Other: refer to the wiki page for more details

You may want to have a look to the particular README pages of each platform by inspecting:

src/xdpd/drivers/{platform_name}/README

Requirements

  • A modern GNU build-system (autoconf, automake, libtool, ...)
  • GNU/Linux and libc development headers (linux-libc-dev and libc6-dev package in Debian/Ubuntu systems)
  • pkg-config
  • libconfig C++ lib (libconfig++-dev in Debian/Ubuntu systems)
  • ROFL libraries installed [1]
  • [optional] if you want to run automatic tests (make check), libcunit and libcppunit are required (in libcunit1-dev and libcppunit-dev packages in Debian-like systems).
  • [optional] Doxygen to generate the documentation.

[1] http://www.roflibs.org/, https://github.com/bisdn/rofl-core

How to build

Install the dependencies and run:

sh# ./autogen.sh  
sh# cd build  
sh# ../configure  
sh# make  
sh# make install

Optionally you can make check for consistency checks. For other platforms different than gnu-linux, please make sure --with-hw-support=platform-name is specified, and that the appropriate README is read (e.g. src/xdpd/drivers/example/README).

How to run it

Copy the example.cfg:

sh# cd build/src/xdpd  
sh# cp ../../../src/xdpd/management/plugins/config/example.cfg .  

Now edit the configuration. Make sure ports attached to the Logical Switch Instance (LSI) exist in the system.

sh# vi example.cfg  

Run xdpd:

sh# ./xdpd -c example.cfg

Optional ../configure parameters

--with-hw-support=platform-name: Compiles support for the platform-name (platform driver). Default is gnu-linux.   
--with-plugins="plugin1...pluginN": Compile with plugin1..pluginN enabled. Default is --with-plugins="config" plugin.  
--enable-debug: Compile with debug symbols (-g) and debug output (warning, it may affect performance).  
--disable-silent-rules: Enable verbose compilation mode (AM_SILENT_RULES disabled)   

Known issues with Automake 1.14

xDPd package uses subdir-objects. From 1.14 on, the support of subdir-objects must be explicitly added in AM_INIT_AUTOMAKE() in order to prevent warnings that will abort compilation. However, due to the following bug:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928

The build system won't work if subdir-objects is added in AM_INIT_AUTOMAKE().

Currently, in order to compile the package, the suggested strategy is to remove -Werror from AM_INIT_AUTOMAKE() in ALL the configure.ac-s (configure.ac, src/xdpd/drivers/example/configure.ac ...):

diff --git a/configure.ac b/configure.ac
index ccf3f21..96931b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_INIT(xdpd, 0.4, xdpd@bisdn.de, xdpd)
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_MACRO_DIR([m4])
 
-AM_INIT_AUTOMAKE([-Wall -Werror foreign])
+AM_INIT_AUTOMAKE([-Wall foreign])
 
 AC_GNU_SOURCE

Note there will be a considerably number of warnings shown. Once bug 13928, 'subdir-objects' will be added as it should be.

Doxygen documentation

You can have a look on:

http://www.xdpd.org/doc/

Documentation can be compiled via make doc. Documentation is generated in build/doc/ folder

More information, documentation and support

http://www.xdpd.org https://github.com/bisdn/xdpd

For getting support or participate in the discussions, join the mailing list xdpd-devel@xdpd.org at https://lists.xdpd.org/mailman

Authorship

(c) Copyright BISDN GmbH 2013

Marc Sune<marc.sune (at) bisdn.de>
Andreas Koepsel<andreas.koepsel (at) bisdn.de>
Victor Alvarez<victor.alvarez (at) bisdn.de>
Tobias Jungel<tobias.jungel (at) bisdn.de>

And others

About

OpenFlow switch (multi-platform) - The OpenFlow eXtensible DataPath daemon,an SDN datapath framework written in C/C++

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors