https://dpdk-docs.readthedocs.io/en/latest/linux_gsg/index.html

https://dpdk-docs.readthedocs.io/en/latest/prog_guide/index.html

编程指南

  • 1. 简介

    • 1.1. 文档地图
    • 1.2. 相关刊物
  • 2. 概述
    • 2.1. 开发环境
    • 2.2. 环境适配层EAL
    • 2.3. 核心组件
      • 2.3.1. 环形缓冲区管理(librte_ring)
      • 2.3.2. 内存池管理(librte_mempool)
      • 2.3.3. 网络报文缓冲区管理(librte_mbuf)
      • 2.3.4. 定时器管理(librte_timer)
    • 2.4. 以太网轮询驱动架构
    • 2.5. 报文转发算法支持
    • 2.6. 网络协议库(librte_net)
  • 3. 环境适配层EAL
    • 3.1. Linux环境下的EAL

      • 3.1.1. 初始化和运行
      • 3.1.2. 多进程支持
      • 3.1.3. 内存映射和内存分配
      • 3.1.4. Xen Dom0非大页运行支持
      • 3.1.5. PCI 访问
      • 3.1.6. 逻辑核及共享变量
      • 3.1.7. 日志
      • 3.1.8. CPU 特性识别
      • 3.1.9. 用户空间中断事件
      • 3.1.10. 黑名单
      • 3.1.11. Misc功能
    • 3.2. 内存段和内存区间
    • 3.3. 多线程
      • 3.3.1. EAL pthread and lcore Affinity
      • 3.3.2. 非EAL的线程支持
      • 3.3.3. 公共线程API
      • 3.3.4. 已知问题
      • 3.3.5. cgroup控制
    • 3.4. 内存申请
      • 3.4.1. Cookies
      • 3.4.2. 对齐和NUMA约束
      • 3.4.3. 用例
      • 3.4.4. 内部实现
  • 4. Ring 库
    • 4.1. FreeBSD* 中 Ring 的实现参考
    • 4.2. Linux* 中的无锁环形缓冲区
    • 4.3. 附加功能
      • 4.3.1. Name
    • 4.4. 使用场景
    • 4.5. Ring Buffer解析
      • 4.5.1. 单生产者入队
      • 4.5.2. 单消费者出队
      • 4.5.3. 多生产者入队
      • 4.5.4. 32-bit取模索引
    • 4.6. 参考文档
  • 5. Mempool 库
    • 5.1. Cookies
    • 5.2. Stats
    • 5.3. 内存对齐约束
    • 5.4. 本地缓存
    • 5.5. Mempool 句柄
    • 5.6. 用例
  • 6. Mbuf 库
    • 6.1. Packet Buffer 设计
    • 6.2. 存储在Mempool中的Buffer
    • 6.3. 构造函数
    • 6.4. 申请及释放 mbufs
    • 6.5. 操作 mbufs
    • 6.6. 元数据信息
    • 6.7. 直接及间接 Buffers
    • 6.8. 调试
    • 6.9. 用例
  • 7. 轮询模式驱动
    • 7.1. 要求及假设条件
    • 7.2. 设计原则
    • 7.3. 逻辑核、内存及网卡队列的联系
    • 7.4. 设备标识及配置
      • 7.4.1. 设备标识
      • 7.4.2. 设备配置
      • 7.4.3. 即时配置
      • 7.4.4. 传输队列配置
      • 7.4.5. 释放 Tx 缓存
      • 7.4.6. 硬件卸载
    • 7.5. PMD API
      • 7.5.1. 概要
      • 7.5.2. 通用报文表示
      • 7.5.3. 以太网设备 API
      • 7.5.4. 扩展的统计 API
  • 8. 通用流 API (rte_flow)
    • 8.1. 概述
    • 8.2. 流规则
      • 8.2.1. 描述
      • 8.2.2. 属性
      • 8.2.3. 模式条目
      • 8.2.4. 匹配模式
      • 8.2.5. Meta item types
      • 8.2.6. Data matching item types
      • 8.2.7. Actions
      • 8.2.8. Action types
      • 8.2.9. Negative types
      • 8.2.10. Planned types
    • 8.3. Rules management
      • 8.3.1. Validation
      • 8.3.2. Creation
      • 8.3.3. Destruction
      • 8.3.4. Flush
      • 8.3.5. Query
    • 8.4. Verbose error reporting
    • 8.5. Caveats
    • 8.6. PMD interface
    • 8.7. Device compatibility
      • 8.7.1. Global bit-masks
      • 8.7.2. Unsupported layer types
      • 8.7.3. ANY pattern item
      • 8.7.4. Unsupported actions
      • 8.7.5. Flow rules priority
    • 8.8. Future evolutions
    • 8.9. API migration
      • 8.9.1. MACVLAN to ETH → VFPF
      • 8.9.2. ETHERTYPE to ETH → QUEUEDROP
      • 8.9.3. FLEXIBLE to RAW → QUEUE
      • 8.9.4. SYN to TCP → QUEUE
      • 8.9.5. NTUPLE to IPV4TCPUDP → QUEUE
      • 8.9.6. TUNNEL to ETHIPV4IPV6VXLAN (or other) → QUEUE
      • 8.9.7. FDIR to most item types → QUEUEDROPPASSTHRU
      • 8.9.8. HASH
      • 8.9.9. L2_TUNNEL to VOID → VXLAN (or others)
  • 9. Cryptography Device Library
    • 9.1. Design Principles
    • 9.2. Device Management
      • 9.2.1. Device Creation
      • 9.2.2. Device Identification
      • 9.2.3. Device Configuration
      • 9.2.4. Configuration of Queue Pairs
      • 9.2.5. Logical Cores, Memory and Queues Pair Relationships
    • 9.3. Device Features and Capabilities
      • 9.3.1. Device Features
      • 9.3.2. Device Operation Capabilities
      • 9.3.3. Capabilities Discovery
    • 9.4. Operation Processing
      • 9.4.1. Enqueue / Dequeue Burst APIs
      • 9.4.2. Operation Representation
      • 9.4.3. Operation Management and Allocation
    • 9.5. Symmetric Cryptography Support
      • 9.5.1. Session and Session Management
      • 9.5.2. Transforms and Transform Chaining
      • 9.5.3. Symmetric Operations
    • 9.6. Asymmetric Cryptography
      • 9.6.1. Crypto Device API
  • 10. 链路绑定PMD
    • 10.1. 链路绑定模式概述
    • 10.2. 实现细节
      • 10.2.1. 链路状态改变中断与轮询
      • 10.2.2. 要求与限制
      • 10.2.3. 配置
    • 10.3. 使用链路绑定设备
      • 10.3.1. 程序中使用轮询模式驱动
      • 10.3.2. 在EAL命令行中使用链路绑定设备
  • 11. 定时器库
    • 11.1. 实现细节
    • 11.2. 用例
    • 11.3. 参考
  • 12. 哈希库
    • 12.1. 哈希API概述
    • 12.2. 多进程支持
    • 12.3. 实现细节
    • 12.4. 哈希表中的条目分发
    • 12.5. 用例:流分类
    • 12.6. 参考
  • 13. Elastic Flow Distributor Library
    • 13.1. Introduction
    • 13.2. Flow Based Distribution
      • 13.2.1. Computation Based Schemes
      • 13.2.2. Flow-Table Based Schemes
      • 13.2.3. EFD Based Scheme
    • 13.3. Example of EFD Library Usage
    • 13.4. Library API Overview
      • 13.4.1. EFD Table Create
      • 13.4.2. EFD Insert and Update
      • 13.4.3. EFD Lookup
      • 13.4.4. EFD Delete
    • 13.5. Library Internals
      • 13.5.1. Insert Function Internals
      • 13.5.2. Lookup Function Internals
      • 13.5.3. Group Rebalancing Function Internals
    • 13.6. References
  • 14. LPM库
    • 14.1. LPM API概述
    • 14.2. 实现细节
      • 14.2.1. 添加
      • 14.2.2. 查询
      • 14.2.3. 规则数目的限制
      • 14.2.4. 用例:IPv4转发
      • 14.2.5. References
  • 15. LPM6库
    • 15.1. LPM6 API概述

      • 15.1.1. 实现细节
      • 15.1.2. 添加
      • 15.1.3. 查询
      • 15.1.4. 规则数目限制
    • 15.2. 用例:IPv6转发
  • 16. 报文分发库
    • 16.1. 分发逻辑核操作
    • 16.2. Worker Operation
  • 17. 排序器库
    • 17.1. 操作
    • 17.2. 实现细节
    • 17.3. 用例:报文分发
  • 18. IP分片及重组库
    • 18.1. 报文分片
    • 18.2. 报文重组
      • 18.2.1. IP分片表
      • 18.2.2. 报文重组
      • 18.2.3. 调试日志及统计收集
  • 19. Librte_pdump库
    • 19.1. 操作
    • 19.2. 实现细节
    • 19.3. 用例:抓包
  • 20. 多进程支持
    • 20.1. 内存共享
    • 20.2. 部署模式
      • 20.2.1. 对称/对等进程
      • 20.2.2. 非对称/非对等进程
      • 20.2.3. 运行多个独立的DPDK应用程序
      • 20.2.4. 运行多个独立的DPDK应用程序组
    • 20.3. 多进程限制
  • 21. 内核网络接口卡接口
    • 21.1. DPDK KNI内核模块
    • 21.2. KNI创建及删除
    • 21.3. DPDK缓冲区流
    • 21.4. 用例: Ingress
    • 21.5. 用例: Egress
    • 21.6. 以太网工具
    • 21.7. 链路状态及MTU改变
  • 22. DPDK功能的线程安全
    • 22.1. 快速路径API
    • 22.2. 非性能敏感API
    • 22.3. 库初始化
    • 22.4. 中断线程
  • 23. QoS框架
    • 23.1. 支持QoS的数据包水线
    • 23.2. 分层调度
      • 23.2.1. 概述
      • 23.2.2. 调度层次
      • 23.2.3. 编程接口
      • 23.2.4. 实现
      • 23.2.5. Worst Case Scenarios for Performance
    • 23.3. Dropper
      • 23.3.1. Configuration
      • 23.3.2. Enqueue Operation
      • 23.3.3. Queue Empty Operation
      • 23.3.4. Source Files Location
      • 23.3.5. Integration with the DPDK QoS Scheduler
      • 23.3.6. Integration with the DPDK QoS Scheduler Sample Application
      • 23.3.7. Application Programming Interface (API)
    • 23.4. Traffic Metering
      • 23.4.1. Functional Overview
      • 23.4.2. Implementation Overview
  • 24. 电源管理
    • 24.1. CPU频率缩放
    • 24.2. 通过C-States调节Core负载
    • 24.3. 电源管理库API概述
    • 24.4. 示例
    • 24.5. 参考
  • 25. 报文分类及访问控制
    • 25.1. 概述

      • 25.1.1. 规则定义
      • 25.1.2. RT 内存大小限制
      • 25.1.3. Classification 方法
    • 25.2. API用法
      • 25.2.1. 多类别报文分类
  • 26. 报文框架
    • 26.1. 设计目标
    • 26.2. 概述
    • 26.3. 端口库设计
      • 26.3.1. 端口类型
      • 26.3.2. 端口操作
    • 26.4. 表库设计
      • 26.4.1. 表类型
      • 26.4.2. 表操作接口
      • 26.4.3. 哈希表设计
    • 26.5. 流水线库设计
      • 26.5.1. 端口和表的连接
      • 26.5.2. 端口动作
      • 26.5.3. 表动作
    • 26.6. 多核处理
      • 26.6.1. 共享的数据结构
    • 26.7. 加速器
  • 27. Vhost 库
    • 27.1. Vhost API 概述
    • 27.2. Vhost-user 实现
    • 27.3. 支持Vhost的vSwitch
  • 28. Metrics 库
    • 28.1. 初始化库
    • 28.2. 注册metrics
    • 28.3. 更新 metric 值
    • 28.4. 查询 metrics
    • 28.5. Bit-rate 统计库
      • 28.5.1. 初始化
      • 28.5.2. 控制采样速率
    • 28.6. 延迟统计库
      • 28.6.1. 初始化
      • 28.6.2. 触发统计值更新
      • 28.6.3. 关闭库
  • 29. 端口热插拔框架
    • 29.1. 概述
    • 29.2. 端口热插拔API概述
    • 29.3. 引用
    • 29.4. 限制
  • 30. 源码组织
    • 30.1. Makefiles 和 Config
    • 30.2. 库
    • 30.3. 驱动
    • 30.4. 应用程序
  • 31. 开发套件构建系统
    • 31.1. 编译DPDK二进制文件

      • 31.1.1. 建立目录概念
    • 31.2. 构建外部应用程序
    • 31.3. Makefile 描述
      • 31.3.1. DPDK Makefiles 的通用规则
      • 31.3.2. Makefile 类型
      • 31.3.3. 内部生成的构建工具
      • 31.3.4. 构建系统提供的有用变量
      • 31.3.5. 只能在Makefile中设置/覆盖的变量
      • 31.3.6. 只能在命令行上由用户设置/覆盖的变量
      • 31.3.7. 可以在Makefile或命令行中由用户设置/覆盖的变量
  • 32. DPDK 根目录 Makefile 理解
    • 32.1. 配置 Targets
    • 32.2. 构建 Targets
    • 32.3. 安装 Targets
    • 32.4. 测试 Targets
    • 32.5. 文档 Targets
    • 32.6. 其他 Targets
    • 32.7. 其他有用的命令行变量
    • 32.8. 在需要构建的目录中执行Make
    • 32.9. 编译为调试 Target
  • 33. 扩展 DPDK
    • 33.1. 示例:添加新的库 libfoo

      • 33.1.1. 示例:在测试用例中使用新库 libfoo
  • 34. 构建你自己的应用程序
    • 34.1. 在DPDK中编译一个示例程序
    • 34.2. 在DPDK外构建自己的应用程序
    • 34.3. 定制 Makefiles
      • 34.3.1. 应用程序 Makefile
      • 34.3.2. 库 Makefile
      • 34.3.3. 定制 Makefile 动作
  • 35. 外部应用程序/库的 Makefile
    • 35.1. 前提
    • 35.2. 构建 Targets
    • 35.3. Help Targets
    • 35.4. 其他有用的命令行变量
    • 35.5. 从其他目录中编译
  • 36. 性能优化指南
    • 36.1. 介绍
  • 37. 编写高效代码
    • 37.1. 内存

      • 37.1.1. 内存拷贝:不要在数据面程序中使用libc
      • 37.1.2. 内存申请
      • 37.1.3. 内存区域的并发访问
      • 37.1.4. NUMA
      • 37.1.5. 跨存储器通道分配
    • 37.2. lcore之间的通信
    • 37.3. PMD 驱动
      • 37.3.1. 低报文延迟
    • 37.4. 锁和原子操作
    • 37.5. 编码考虑
      • 37.5.1. 内联函数
      • 37.5.2. 分支预测
    • 37.6. 设置目标CPU类型
  • 38. 配置你的应用程序
    • 38.1. X86
    • 38.2. ARM64
      • 38.2.1. 使用 Linux perf
      • 38.2.2. 高分辨率的cycle计数器
  • 39. 术语

DPDK 中文编程指南相关推荐

  1. libuv 中文编程指南(零)前言

    最近看了一些有关 libuv 的东西,另外复习了一些与同步.异步.阻塞.非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到. 不多说了,本文 ...

  2. libuv 中文编程指南

    最近看了一些有关 libuv 的东西,另外复习了一些与同步.异步.阻塞.非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到. 不多说了,本文 ...

  3. libuv 中文编程指南(四)网络

    网络 libuv 的网络接口与 BSD 套接字接口存在很大的不同, 某些事情在 libuv 下变得更简单了, 并且所有接口都是都是非阻塞的, 但是原则上还是一致的. 另外 libuv 也提供了一些工具 ...

  4. python界面编程pdf_Python Qt GUI快速编程——PyQt编程指南 中文pdf完整版[99MB]

    内容介绍热点排行相关文章下载地址↓ Python Qt GUI快速编程--PyQt编程指南主要讲述如何利用Python和Qt开发GUI应用程序的原理.方法和关键技术.本书共分四个部分:第一部分主要讲述 ...

  5. POCO库中文编程参考指南(11)如何使用Reactor框架?

    1 Reactor 框架概述 POCO 中的 Reactor 框架是基于 Reactor 设计模式进行设计的.其中由 Handler 将某 Socket 产生的事件,发送到指定的对象的方法上,作为回调 ...

  6. python面向对象编程指南([美stevenflott_Python面向对象编程指南 ([美]StevenFLott洛特) 中文_IT教程网...

    资源截图:Python面向对象编程指南 ([美]StevenFLott洛特) 中文 第1部分 用特殊方法实现Python风格的类 . 1 第1章 __init__()方法 5 第2章 与Python无 ...

  7. Haskell编程指南 | Lynda教程 中文字幕

    Haskell编程指南 | Lynda教程 中文字幕 Learning Haskell Programming 课程ID: 604926 时长: 4.2小时 所属类别:Haskell Haskell是 ...

  8. python面向对象编程实例pdf_Python面向对象编程指南 ([美]StevenFLott洛特) 中文pdf扫描版[52MB]...

    Python是一种面向对象.解释型的程序设计语言,它已经被成功应用于科学计算.数据分析以及游戏开发等诸多领域. Python面向对象编程指南深入介绍Python语言的面向对象特性,全书分3个部分共18 ...

  9. Spark编程指南(Python版)

    Spark编程指南 译者说在前面:最近在学习Spark相关的知识,在网上没有找到比较详细的中文教程,只找到了官网的教程.出于自己学习同时也造福其他初学者的目的,把这篇指南翻译成了中文,笔者水平有限,文 ...

  10. 《javascript面向对象编程指南》读书笔记

    <javascript面向对象编程指南>读书笔记 <javascript面向对象编程指南>读书笔记 第一章 面向对象的JavaScript 第二章 基本数据类型与流程控制 变量 ...

最新文章

  1. 【通俗理解线性代数】 -- 内积与相关
  2. 奇瑞汽车鸿蒙系统,华为鸿蒙OS系统汽车来了!国产汽车巨头奇瑞全球首发:开启崛起之路...
  3. 对光照、阴影和反光具有鲁棒性的变化检测算法及实现
  4. hdmi 屏幕旋转 树莓派_计算机实验室之树莓派:课程 9 屏幕04
  5. openwrt开发环境搭建
  6. 【实施工程师】vim命令
  7. 使用 create-react-app 构建 react应用程序
  8. 用小程序·云开发打造功能全面的博客小程序丨实战
  9. class-dump获取iOS私有api
  10. 博士生是大学的廉价劳动力吗
  11. 还不懂Redis?看完这个故事就明白了!
  12. Kewail-邮件短信接口的基础教程
  13. tcpdump 命令祥解
  14. 如何使用IIS重写模块将HTTP重定向到HTTPS
  15. linux抓肉鸡入侵详细教程,Linux XOR.DDoS入侵排查步骤 | 聂扬帆博客
  16. 停车场管理(C语言版)
  17. h5 上 删除 交互_iH5高级教程:H5交互进阶,擦一擦效果
  18. C# 中DataGridView 表头设置
  19. linux在root安装软件,避免使用root安装软件
  20. Java文字小游戏 The Matrix SalaryMan 1.0v 解读

热门文章

  1. CentOS 6.9 下安装DB2
  2. MFC-CFileException类学习笔记
  3. 工作是工作,爱好是爱好,理想是另外一回事
  4. 尚硅谷mysql高级思维导图_幕布高级版,不花钱也能用!极简大纲笔记 | 一键生成思维导图...
  5. Netty4.0学习笔记系列之六:多种通讯协议支持
  6. 条件注释判断浏览器版本
  7. Node.js、express、mongodb 实现分页查询、条件搜索
  8. MVC模式中编写一个登录的Servlet
  9. 两招轻松恢复误Ghost的硬盘
  10. java实现远程唤醒一台计算机