GithubHelp home page GithubHelp logo

dpdm_lib's Introduction

Data Plane Device Management (DPDM) framework includes a set of user-space libraries (FreeBSD license)
and a kernel module (GPL license), vni.ko. A DPDK application built with DPDM user-space libraries would
enable the application to use traditional network management tools, such as ethtool, ip, ifconfig etc,
to manage target NIC devices. A typical DPDK managed NIC devices is bound with a proxy kernel driver
(igb_uio, vfio-pci etc) that exposes driver resources to user-space DPDK device drivers. But the
proxy kernel driver itself doesn't support Netdev interface, therefore the user-space driver
could not access Netdev interface based utilities. With DPDM framework, the vni.ko serves as conduit
to pass requests from kernel Netdev interface to user-space DPDK drivers and returns the result back
to vni then kernel Netdev interface.

The DPDM user-space libraries are libraries based upon DPDK libraries, and they provide additional
device-neutral APIs to support device management capabilities, mainly functions equivalent to kernel
Netdev ops and a set of SR-IOV management functions. A high-level overview of DPDM can be found at
dpdm/doc/DPDM.pdf

I. building DPDM framework libraries and kernel module. 
	1. Creating four environment variables
		a. RTE_SDK/RTE_TARGET: these two variables are used for locating DPDK build
		b. RTE_SDKEX: path for DPDM source code.
		c. VNI_NETDEV: path for vni source code
	2. Build user-space libraries by running dpdm/build_all.sh: 
	#cd dpdm
	#./build_all.sh
	3. Build DPDM kernel module, vni.ko, through make file.
	#cd vni
	#make

II. building an application with DPDM, please refer to dpdm/examples/test-vni/README

III. running the application. This requires instantiating the vni knerle module before
	running user-space DPDK-based applications.
	#insmod vni/vni.ko

IV. debugging. After vni.ko is installed, below sys files are created for debugging, tracking and others:
	1. /sys/kernel/vni_manage/client_cache: used for user-space DPDM library to return
		get-statistic.
	2. /sys/kernel/vni_manage/get_stats_en: used by customer to turn on/off Netdev get-statistics
		which are constantly invoked by kernel to retain NIC run-time traffic information.
	3. /sys/kernel/vni_manage/trace: the most recent 4K debug message recorded from kernel and
		user-space Netlink activities.
 

dpdm_lib's People

Contributors

azelezniak avatar timothymiskell avatar wangliangmin1962 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.