isabella232 / dpdm_lib Goto Github PK
View Code? Open in Web Editor NEWThis project forked from intel/dpdm_lib
License: Other
This project forked from intel/dpdm_lib
License: Other
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.