Data Plane Development Kit

Overview
DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: [email protected]
Report bugs and issues to the development mailing list: [email protected]
Issues
  • net/kni: set packet input port in eth_kni_rx()

    net/kni: set packet input port in eth_kni_rx()

    Store port_id in pmd_internals when eth kni device is created. Then set packet port of rte_mbuf in function eth_kni_rx.

    Signed-off-by: Jecky Pei [email protected]

    opened by jeckypei 3
  • doc: fix and add some message

    doc: fix and add some message

    1. Fixup the suffix of the PCI ID to consistent with the code: from wwww:xx:yy.z_port_n to wwww:xx:yy.z_portn
    2. Add specification of using Mac address to identify port.

    Signed-off-by: Chaoyong.He [email protected]

    opened by hechaoyong 2
  • Allow C++ source code as well a C source in projects.

    Allow C++ source code as well a C source in projects.

    Hi. We are working on a project with C and C++ source code. This change allows all the Makefile infrastructure to correctly work with C++ source files too. Please include it. Much thanks!

    opened by aharonscada 2
  • Add proper support for the IPv4 UDP mode for the netvsc driver

    Add proper support for the IPv4 UDP mode for the netvsc driver

    The current netvsc driver does not really support the IPv4 UDP RSS mode, as it does not handle the NDIS_HASH_UDP_IPV4 constant. Therefore trying to use that mode fails:

    hn_rndis_set(): RNDIS set 0x10204 failed: status 0xc000000d
    hn_rndis_conf_rss(): RSS config num queues=8 failed: 5
    hn_rss_hash_update(): rss reconfig failed (RSS disabled)
    

    This change aims at defining the NDIS constant and using it so that the RSS update can work properly.

    opened by remmog 1
  • Cannot initialize tailq: UIO_RESOURCE_LIST

    Cannot initialize tailq: UIO_RESOURCE_LIST

    Problem: Cannot initialize tailq: UIO_RESOURCE_LIST the terminal output is as follow:

    [[email protected] helloworld]# build/helloworld -l 0-3 -n 2
    EAL: Detected CPU lcores: 32
    EAL: Detected NUMA nodes: 1
    EAL: Detected shared linkage of DPDK
    EAL: UIO_RESOURCE_LIST tailq is already registered
    PANIC in tailqinitfn_rte_uio_tailq():
    Cannot initialize tailq: UIO_RESOURCE_LIST
    16: [build/helloworld() [0x400770]]
    15: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x7f04d7d1f555]]
    14: [build/helloworld() [0x4006c6]]
    13: [librte_eal.so.22(rte_eal_init+0x726) [0x7f04d80f8476]]
    12: [librte_eal.so.22(+0x19628) [0x7f04d80e4628]]
    11: [/lib64/libdl.so.2(dlopen+0x31) [0x7f04d77f8041]]
    10: [/lib64/libdl.so.2(+0x15ad) [0x7f04d77f85ad]]
    9: [/lib64/ld-linux-x86-64.so.2(+0xf7d4) [0x7f04d83e27d4]]
    8: [/lib64/libdl.so.2(+0xfab) [0x7f04d77f7fab]]
    7: [/lib64/ld-linux-x86-64.so.2(+0x13b8b) [0x7f04d83e6b8b]]
    6: [/lib64/ld-linux-x86-64.so.2(+0xf7d4) [0x7f04d83e27d4]]
    5: [/lib64/ld-linux-x86-64.so.2(+0x1459e) [0x7f04d83e759e]]
    4: [/lib64/ld-linux-x86-64.so.2(+0xf9c3) [0x7f04d83e29c3]]
    3: [/usr/local/lib64/dpdk/pmds-22.1/librte_bus_pci.so.22.1(+0x2a9c) [0x7f04c94a6a9c]]
    2: [librte_eal.so.22(__rte_panic+0xba) [0x7f04d80d807a]]
    1: [librte_eal.so.22(rte_dump_stack+0x1a) [0x7f04d80f9fea]]
    Aborted
    

    I search the problem online, and find the solution, but still confused about the operation: -> 把静态链接librte_.a都改成动态链接librte_.so. I wonder if there are some more specific operations ? Thanks!

    opened by liudongdong1 1
  • Correcting incorrect memory zeroing

    Correcting incorrect memory zeroing

    Hello. Memory will be cleared incorrectly when working with a pointer. The pointer is zeroed, not the structure it points to. Working with null pointers is not possible. An emergency exit from the program will occur. These changes correct this situation.

    opened by CyberGreg05 1
  • hash/rte_hash: fix the document of rte_hash

    hash/rte_hash: fix the document of rte_hash

    The rte_hash_lookup_data function can return ZERO which is not a positive value.

    // code to print the return vlaue
    ret = rte_hash_lookup_data(flow_hash_table, key, (void **) &data);
    zlog_debug(zc, "packet(%u)(%d): %s", m->pkt_len,ret, pkt_info);
    
    // the log of my code
    //worker | DEBUG [packet_processing.c:90] packet(74)(-2):  - src_ip=108.61.180.247:33080 - dst_ip=125.209.234.39:443 - queue=0x0
    //worker | DEBUG [packet_processing.c:98] success add a flow to flow hash table
    //worker | DEBUG [packet_processing.c:90] packet(74)(-2):  - src_ip=108.61.180.247:33082 - dst_ip=125.209.234.39:443 - queue=0x0
    //worker | DEBUG [packet_processing.c:98] success add a flow to flow hash table
    //worker | DEBUG [packet_processing.c:90] packet(74)(-2):  - src_ip=125.209.234.39:443 - dst_ip=108.61.180.247:33080 - queue=0x0
    //worker | DEBUG [packet_processing.c:98] success add a flow to flow hash table
    //worker | DEBUG [packet_processing.c:90] packet(66)(0):  - src_ip=108.61.180.247:33080 - dst_ip=125.209.234.39:443 - queue=0x0
    //worker | ERROR [packet_processing.c:105] unhandled error occur
    
    opened by chen622 1
  • raw/ioat: extend config script functionality

    raw/ioat: extend config script functionality

    The DSA device supports both Dedicated Work Queues and Shared Work Queues. Currently, config script hardcodes some values i.e. mode, priority, so it is impossible to choose Work Queue mode. This patch extends script functionality so WQs may be configured in a more specific manner. Now, it is possible to:

    • choose between shared and dedicated WQ mode
    • specify WQ priority
    • specify threshold value for Shared WQ
    • specify the type of WQ

    Signed-off-by: Klimowicz, PatrykX [email protected]

    opened by pklimowx 1
  • dpdk-devbind.py: consider interfaces used for bonding as active

    dpdk-devbind.py: consider interfaces used for bonding as active

    in case of interface bonding the "check device names in routing table" will not match. this change adds all interfaces used in bonds as active.

    opened by xaki23 1
  • net/ice: fix possible integer overflow when computing max_pkt_len

    net/ice: fix possible integer overflow when computing max_pkt_len

    The len variable, used in the computation of max_pkt_len could overflow, if used to store the result of the following computation:

    ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len

    Since, we could define the mbuf size to have a large value (i.e 13312), and ICE_SUPPORT_CHAIN_NUM is defined as 5, the computation mentioned above, could potentially result in a value which might be bigger than MAX_USHORT.

    The result will be that Jumbo Frames will not work properly

    opened by tudor1805 1
  • ppc64le: fix build with Clang and without glibc

    ppc64le: fix build with Clang and without glibc

    There are couple of issues when building with Clang:

    1. vector is a keyword and should not be used in code. I undefined it, but it would probably be better to just change the variable name.
    2. vector long is deprecated by Clang and should not be used. I switched here to vector int.
    3. Additionally, sys/platform/ppc.h is glibc-dependant and is not available in other libc's. Use the portable method of reading TBR when glibc is not used. Taken from https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/powerpc/sys/platform/ppc.h

    This was tested with Clang 11.0.1 on FreeBSD 13.0-RC1 on POWER9 box.

    opened by pkubaj 1
  • net/ice: null field checks in ice_{r,t}x_queue_release

    net/ice: null field checks in ice_{r,t}x_queue_release

    In case rte_eth_dma_zone_reserve fails in ice_tx_queue_setup ice_tx_queue_release is called on 0 allocated but not initialized txq struct. This may happen on ENOMEM condition, size exhaustion of memconfig->memzones array as well as some others.

    opened by tomaszjonak 0
  • Adds  include inttypes.h

    Adds include inttypes.h

    Without this type def we get a compiler error: error: expected ')' before 'PRId64' Similar to the errors here: http://mails.dpdk.org/archives/test-report/2022-February/256520.html

    This is when being compiled on Cent7 using gcc version 4.8.5

    opened by mike006322 0
Owner
DPDK
Data Plane Development Kit
DPDK
The little C kit

ckit The little C kit bin/ckit — tool for building and testing projects (calls cmake & ninja) pkg/ — directory of some packages The main thing here is

Rasmus 42 May 19, 2022
A Linux reference software for building the Demo Core-Image on Renesas RZ/V2M Evaluation Kit

Introduction This repository is a Linux reference software for building the Demo Core-Image on Renesas RZ/V2M Evaluation Kit . You have to get the pro

Lexra Chang 3 Jan 20, 2022
Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.

WDT Warp speed Data Transfer Design philosophy/Overview Goal: Lowest possible total transfer time - to be only hardware limited (disc or network bandw

Facebook 2.7k Jul 26, 2022
Enabling services on your device 70 Jul 31, 2022
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.

Espressif IoT Development Framework 中文版 ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS. ESP-IDF Release

Espressif Systems 8.9k Aug 5, 2022
Steve's Persistent Unreal Data library

SPUD: Steve's Persistent Unreal Data library What is it? SPUD is a save game and streaming level persistence solution for Unreal Engine 4. The 2 main

Steve Streeting 141 Jul 23, 2022
Steve's Unreal Quest System: data-driven quest system for UE4

Steve's Unreal Quest System (SUQS) What Is It? SUQS is a simple, data-driven quest system for UE4. It helps you define quest structures for your game,

Steve Streeting 58 Jul 29, 2022
Realtime Client/Server app for Linux allowing joystick (and other HID) data to be transferred over a local network

netstick What is it? Netstick enables HID devices to be remotely connected between a "client" and "server" over a network connection. It allows the ke

null 29 Jul 24, 2022
Upload arbitrary data via Apple's Find My network.

Send My allows you to to upload abritrary data from devices without an internet connection by (ab)using Apple's Find My network. The data is broadcasted via Bluetooth Low Energy and forwarded by nearby Apple devices.

Positive Security 1.5k Jul 30, 2022
Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor

MQTT connectivity for the Ikea VINDRIKTNING This repository contains an ESP8266 firmware, which adds MQTT to the Ikea VINDRIKTNING PM2.5 air quality s

Sören Beye 865 Aug 5, 2022
Tool for Preventing Data Exfiltration with eBPF

bouheki: Tool for Preventing Data Exfiltration with eBPF bouheki is a KSRI implementation using LSM Hook by eBPF. Flexibility to apply restricted netw

mrtc0 44 Aug 3, 2022
WDT Warp speed Data Transfer

Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.

Meta Archive 2.7k Jul 26, 2022
Data-oriented networking playground for the reliable UDP transports

NetDynamics is a data-oriented networking playground for the reliable UDP transports. The application was created for stress testing and debugging a p

Stanislav Denisov 89 Aug 9, 2022
A small data-oriented and SIMD-optimized 3D rigid body physics library.

nudge Nudge is a small data-oriented and SIMD-optimized 3D rigid body physics library. For more information, see: http://rasmusbarr.github.io/blog/dod

null 235 Aug 7, 2022
A software C library designed to extract data attributes from network packets, server logs, and from structured events in general, in order to make them available for analysis

MMT-DPI A software C library desinged to extract data attributes from network packets, server logs, and from structured events in general, in odrder t

Montimage 3 Apr 14, 2022
A data plane framework that supports any layer-7 protocols.

中文 meta-protocol-proxy Why MetaProtocol is needed? Almost all open source and commercial Service Meshes currently support only two Layer-7 protocols -

Aeraki 52 Aug 10, 2022
Cloud Native Data Plane (CNDP) is a collection of user space libraries to accelerate packet processing for cloud applications.

CNDP - Cloud Native Data Plane Overview Cloud Native Data Plane (CNDP) is a collection of userspace libraries for accelerating packet processing for c

Cloud Native Data Plane 23 Aug 8, 2022
KVDK (Key-Value Development Kit) is a key-value store library implemented in C++ language

KVDK (Key-Value Development Kit) is a key-value store library implemented in C++ language. It is designed for persistent memory and provides unified APIs for both volatile and persistent scenarios. It also demonstrates several optimization methods for high performance with persistent memory. Besides providing the basic APIs of key-value store, it offers several advanced features, like transaction, snapshot as well.

Persistent Memory Programming 175 Jul 29, 2022
Internal Software Development Kit for Battlefield 2042

battlefield-2042-internal-sdk Internal Software Development Kit for Battlefield 2042 SDK Includes the following: Entity Classes Player Classes Vehicle

Skengdo 11 Jun 27, 2022
🎮 Cross platform development kit for Z80 and SM83 based consoles.

cdk ?? Cross platform development kit for Z80 and SM83 based consoles. Platform We planned to support the following consoles: Nintendo Game Boy Ninten

Micro Console 4 Jan 10, 2022
bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of RISC-V based chips in the future.

bl mcu sdk is an MCU software development kit provided by the Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of chips in the future

Bouffalo Lab 125 Aug 8, 2022
Kit: a magical, high performance programming language, designed for game development

Kit: a magical, high performance programming language, designed for game development

Kit Programming Language 989 Aug 5, 2022
cdk is a minimal cross-platform c language development kit.

Overview cdk is a minimal cross-platform c language development kit. Requirement Based on c11 standard. Compile create a build directory under the cdk

Red 19 Jul 26, 2022
This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.

![Contributors][Huang Jianyu] Statement 由于工具源码在网上公开,除使用部分开源项目代码外,其余代码均来自我个人,工具本身不包含公司的知识产权,所有与公司有关的内容均从软件包中移除,软件发布遵循Apache协议,任何人均可下载进行修改使用,如使用过程中出现任何问

HuangJianyu 34 May 5, 2022
A RGB-D SLAM system for structural scenes, which makes use of point-line-plane features and the Manhattan World assumption.

This repo proposes a RGB-D SLAM system specifically designed for structured environments and aimed at improved tracking and mapping accuracy by relying on geometric features that are extracted from the surrounding.

Yanyan Li 233 Jul 28, 2022
A 3GPP R16 compliant open source 5G core UPF (User Plane Function).

OpenUPF A 3GPP R16 compliant open source UPF. The OpenUPF is an open source project for 5th generation (5G) mobile core networks User Plane Function.

openupf 69 Aug 9, 2022
RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments (Code & Dataset)

RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments RP-VIO is a monocular visual-inertial odometry (VIO) system that uses onl

Karnik Ram 151 Jul 7, 2022
Simu5G - 5G NR and LTE/LTE-A user-plane simulation model for OMNeT++ & INET

5G NR and LTE/LTE-A user-plane simulation model, compatible with the INET Framework

Università di Pisa 79 Jul 28, 2022
Recognize stairs with lidar. Project the laser points to X-Z plane and use least squares for linear fitting.

stairs_recogniton Recognize stairs with lidar. Project the laser points to X-Z plane and use least squares for linear fitting. Dependencies PCL 1.8 Ei

Junyi Ma 11 Jul 27, 2022