DPDK
文章平均质量分 56
功名半纸
功名未半纸 风雪已千山
展开
-
DPDK X710 DDP PPPoE 实践
DPDK X710 DDP PPPoE 实践DPDK version: 21.08X710 firmware-version: 6.80 0x80003cc1 1.1747.0# lspci |grep Ethernet |grep X71004:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)04:00.1 Ethernet controller: Intel原创 2021-11-24 13:36:20 · 1634 阅读 · 0 评论 -
QEMU/KVM libvirt X710 PCI passthrough & DPDK 网络性能测试
QEMU/KVM libvirt X710 PCI passthrough & DPDK 网络性能测试宿主机(Host) 配置QEMU/KVM$ sudo dnf install qemu-kvm libvirt-daemon-driver-qemu libvirt-daemon-kvm libvirt virt-install libguestfs-tools-c kernel-tools dpdk dpdk-tools$ sudo systemctl start libvirtd$ s原创 2021-09-17 10:23:44 · 1424 阅读 · 0 评论 -
QEMU/KVM PCI Passthrough(82599ES) & DPDK 网络性能测试
QEMU/KVM PCI Passthrough(82599ES) & DPDK 网络性能测试IOMMU & qemu-kvm & hugepages 等具体配置在这里不再重复介绍, 可参考QEMU/KVM PCI Passthrough(i350) & DPDK 网络性能测试.这里只上传不同测试场景下性能数据.测试环境CPU:Architecture: x86_64CPU op-mode(s):原创 2021-09-14 22:32:08 · 2307 阅读 · 0 评论 -
QEMU/KVM PCI Passthrough(i350) & DPDK 网络性能测试
qemu-kvm i350 PCI Passthrough & DPDK testpmd 性能测试硬件要求:CPU必须支持硬件虚拟化(Intel VT-d or AMD-Vi) 和 IOMMU主机配置设置iommuIOMMU kernel 配置, 确保以下配置项已启用:Device Drivers ---> [*] IOMMU Hardware Support ---> Generic IOMMU Pagetable Support ----原创 2021-09-10 11:59:54 · 1554 阅读 · 0 评论 -
DPDK 21.08 hygon (海光) CPU 环境构建
DPDK hygon (海光) CPU 环境构建海光(hygon) CPU 是基于 AMD Zen 1 (znver1)核心设计授权许可, AMD与国内合资研发的一款 x86_64 CPU. 支持 SSE/SSE2/SSE3/SSE4A/SSE4.1/SSE4.2/AVX/AVX2/RDRND/RDSEED/PCLMUL 指令集.GCCGCC 6.3+ 可指定微架构 -march=znver1 优化 hygon 代码:$ gcc -march=znver1 -E -dM - < /dev/原创 2021-09-06 09:33:37 · 10472 阅读 · 6 评论 -
DPDK - 海光(hygon) 3250 l2fwd 性能测试
DPDK - 海光(hygon) 3250 8核 l2fwd 性能测试CPU# lscpu Architecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 16On-line CPU(s) list: 0-15Thread(s) per core: 2Core(s) per socket:原创 2021-08-24 18:08:52 · 18978 阅读 · 0 评论 -
f-stack nginx 单进程模式BSD网络初始化流程
接f-stack nginx 单进程模式启动流程分析, 添加了BSD 网络初始化以及协议栈说明原创 2021-06-11 14:10:00 · 305 阅读 · 0 评论 -
DPDK BPF
DPDK BPFDPDK 自版本 18.05 已集成了 librte_bpf, 主要利用rte_eth_rx_burst/rte_eth_tx_burst 回调函数机制, 执行eBPF字节码. 当前支持以下特性:base eBPF ISA (except tail-pointer)JIT (x86_64 and arm64 only)eBPF code verifieruser-defined helper functions (64-bit only)RX/TX filter (加载 eBP原创 2021-05-28 16:01:25 · 1955 阅读 · 0 评论 -
DPDK AF_XDP
DPDK AF_XDPAF_XDP 是 kernel v4.18+ 新加入的一个协议族(如AF_INET), 主要使用 XDP 实现(下图是 XDP 的基本原理图). 核心原理是在 kernel NAPI poll 位置(网卡驱动内部实现, 为内核最早RX数据包位置)运行 BPF 程序, 通过不断调用 poll 方法, 最终将数据包送到正确的XDP程序处理.XDP 支持 3 种工作模式:Native XDP -运行在网卡驱动实现的 poll 函数中, 需网卡驱动支持;Offloaded X原创 2021-05-26 19:15:50 · 4113 阅读 · 0 评论 -
f-stack nginx 单进程模式启动流程分析
f-stack nginx 单进程模式启动流程分析本文主要对 f-stack nginx 单进程模式启动流程做基本梳理, 单进程模式主要调用函数 ngx_single_process_cycle , 配置单进程启动 nginx.conf:daemon off;master_process off;原创 2021-05-18 11:59:20 · 993 阅读 · 0 评论 -
f-stack nginx 多进程模式启动 & main_loop 流程分析
f-stack nginx 启动 & main_loop 流程分析主要对nginx启动后 f-stack 启动流程做一个基本梳理, 包含以下函数的基本流程分析:ngx_master_process_cyclengx_worker_process_cyclef-statck main_loop原创 2021-05-18 11:38:36 · 755 阅读 · 0 评论 -
f-stack 编译&测试笔记
f-stack 使用笔记注:以下过程在fedora29+/centos8测试通过.Intel® Xeon® CPU E5-2670 0 @ 2.60GHz x2DIMM DDR3 Synchronous Registered (Buffered) 1600 MHz (0.6 ns) 16GiB x2Intel Corporation I350 Gigabit Network Connection (rev 01) x2Intel Corporation Ethernet Controller原创 2021-05-17 09:36:47 · 3256 阅读 · 3 评论 -
DPDK - mlx5 ConnectX-6 Dx flow 性能问题
DPDK - mlx5 ConnectX-6 Dx flow 性能问题继测试完Mellanox ConnectX-5 flow 性能问之后, 这次测试Mellanox ConnectX-6 Dx 卡.结果出乎意料, 比ConnectX-5 好了不少, 但是依然存在性能影响, 三条no match flow 绝杀, 性能从线速收包降到了 115.9Mpps:flow create 0 ingress pattern eth / ipv4 / udp dst is 53 / end actions co原创 2021-05-11 20:37:26 · 1351 阅读 · 2 评论 -
DPDK - mlx5 drop action 性能 patch
DPDK - mlx5 drop action 性能 patch算吐槽一下吧!Mellanox CX5 一条简单的 drop flow 在就能导致网卡硬件丢包造成数据包处理瓶颈!跟了这个问题 2 年多, 这次终于解决了!flow create 0 ingress pattern eth / ipv4 / udp / end actions drop / end可惜的是, 这个只是解决了一个问题 ! hw flow 性能问题依然没有解决, 不知道是本身CX5硬件的瓶颈还是 firmware问题,原创 2021-05-11 20:24:52 · 1106 阅读 · 0 评论 -
DPDK - flow Haripin
DPDK - HaripinHairpin 原是交换机上的一种技术, 主要是将数据包从一个接口上收上来之后再扔回去, 多用于网关设备. DPDK 19.11 之后版本也针对 Mellaonx CX5/CX6的这项硬件特性做了支持(Broadcom NetXtreme-E/NetXtreme-S 好像也支持).DPDK Hairpin 主要的应用场景是针对网关场景卸载数据报文处理, 通过 rte_flow在硬件层面上对数据报文直接改写并发送回去, 释放CPU.以下是hairpin数据报文处理机制与DP原创 2021-05-11 19:51:53 · 1624 阅读 · 0 评论 -
DPDK- flow Metering
DPDK- flow Meteringflow Metering 是 DPDK 19.11 及后续版本添加的新特性. 主要针对 Mellanox ConnectX-5/ConnectX-6/ConnectX-6Dx 系列网卡硬件Metering特性. 其支持的限速算法是 rfc2697 单色双桶 限速机制, 支持对 ingress 流量 metering .环境准备DPDK 19.11 OFED 4.7-3ConnectX-5启用 DevX:mlxconfig -d d8:00.0 set原创 2021-05-11 19:05:48 · 1347 阅读 · 1 评论 -
DPDK DPVS 笔记 -> 基本框架整理
简单整理了基本流程框架制作成脑图原创 2021-03-16 18:57:36 · 370 阅读 · 1 评论 -
DPDK - 使用 cmake 构建l2fwd多平台编译系统
DPDK 之使用 cmake 构建编译系统cmake_minimum_required(VERSION 3.10)set(CMAKE_SYSTEM_NAME Linux)message(STATUS "CC: \"$ENV{CC}\"")message(STATUS "CXX: \"$ENV{CXX}\"")message(STATUS "CMAKE_C_COMPILER: \"${CMAKE_C_COMPILER}\"")message(STATUS "CMAKE_CXX_COMPILER原创 2021-01-30 17:53:25 · 721 阅读 · 1 评论 -
DPDK-VPP 学习笔记-06 bond 链路聚合 LACP
DPDK-VPP 学习笔记-06 bond 链路聚合 LACP本笔记主要测试VPP与交换机链路聚合配置&状态:Switch: HW CE6880NIC: Mellanox CX5链路聚合简介以太网链路聚合(Eth-Trunk)简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。使用上因系统不同, PortChannel & Bond 都是链路聚合的别名原创 2021-01-27 18:48:38 · 4113 阅读 · 2 评论 -
DPDK-VPP 学习笔记-05 NAT配置
DPDK-VPP 学习笔记-05 NAT配置WAN: TenGigabitEthernet5/0/1 172.16.41.1LAN: TenGigabitEthernet5/0/0 172.16.40.1 注:VPP v2101 版本NAT配置有差异;VPP Config LAN->NAT44->WANvpp# show versionvpp v20.05.1-release built by root on d17a60fbc087 at 2020-07-15T20:27:00原创 2021-01-24 22:07:26 · 1591 阅读 · 0 评论 -
DPDK-VPP 学习笔记-04 Load Balancer plugin nat4 PATCH
DPDK-VPP 学习笔记-04 Load Balancer plugin nat4 PATCH此patch主要修改以下问题:1) NAT4 模式下RS回包经SNAT后端口错误问题;2) NAT4 添加TCP SNAT支持;3) NAT4 添加相同TCP/UDP port 失败问题;diff --git a/src/plugins/lb/lb.c b/src/plugins/lb/lb.cindex ab5e808..5bec0d2 100644--- a/src/plugins/lb/lb原创 2021-01-24 20:08:19 · 471 阅读 · 0 评论 -
DPDK-VPP 学习笔记-03 Load Balancer plugin
DPDK-VPP 学习笔记-03 lb-pluginVPP Load Balancer plugin 现阶段支持以下几种部署模式:1). IPv4+GRE ad IPv6+GRE encap2). IPv4+L3DSR encap3). IPv4/IPv6 + NAT4/NAT6 encap以下根据测试环境列出不同模式下的典型配置:Client: 172.16.41.41VPP: VIP - 10.10.2.2/32 WAN- 172.16.41.1 LAN- 172.16.40.1原创 2021-01-24 20:03:15 · 1273 阅读 · 0 评论 -
DPDK 20.11 meson build
DPDK 20.11 meson buildDPDK 20.11 已正式发布, 其中的编译机制做出了很大改动, 不再支持 make 方式, 只支持使用 meson 作为构建工具.mesonhttp://mesonbuild.com/Getting-meson.htmlhttps://github.com/mesonbuild/meson/releasesFedora安装:dnf install mesonpython3 pip 安装:pip3 install mesonpip3 i原创 2020-11-28 14:04:48 · 14205 阅读 · 2 评论 -
DPDK-VPP 学习笔记-02
DPDK-VPP 学习笔记-02本文主要记录一些基本配置与基础命令.startup configunix { nodaemon log /var/log/vpp/vpp.log full-coredump cli-listen /run/vpp/cli.sock}socksvr { default}api-trace { on}cpu { main-core 0 corelist-workers 1-16,24-39 scheduler-policy原创 2020-08-18 13:31:06 · 1445 阅读 · 1 评论 -
DPDK-VPP 学习笔记-01
DPDK-VPP 学习笔记-01install with CentOS yuminstall with source code环境准备编译vpp编译参数vpp 使用startup.confvppctlvpp.cfginstall with CentOS yumyum update -y yum -y install epel-release dpdk-toolscurl -s https://packagecloud.io/install/repositories/fdio/release/scri原创 2020-08-13 19:22:33 · 3089 阅读 · 2 评论 -
发包工具 TRex stateless 使用笔记
发包工具 TRex stateless 使用笔记https://github.com/cisco-system-traffic-generator/trex-coreLinux 运行优化for file in `find /sys/devices/system/cpu/ -name scaling_governor`; do echo performance > $file; don...原创 2020-04-21 19:11:59 · 8321 阅读 · 1 评论 -
DPDK - Symmetric Receive-side Scaling
DPDK 之 Symmetric Receive-side Scaling上篇介绍到RSS HASH默认RK是一个非对称KEY,也就是同一条数据流收、发这两个方向的数据包的RSS HASH值是不同的。在IDS/IDP等流量分析应用场景中,同一条流数据由非对称HASH计算讲分流到不同的CPU,这样极大的增加了应用负担,降低了处理能力。为了解决这个问题,有人提出了修改(RSSRK),将其改为重复的...原创 2018-09-06 14:47:15 · 2118 阅读 · 0 评论 -
DPDK - RSS
DPDK 之 RSSRSS(receive side scaling)是由微软提出的一种负载分流方法,通过计算网络数据报文中的网络层&amp;amp;传输层二/三/四元组HASH值,取HASH值的最低有效位(LSB)用于索引间接寻址表RETA(Redirection Table),间接寻址表RETA中的保存索引值用于分配数据报文到不同的CPU接收处理。原创 2018-09-06 14:21:20 · 12932 阅读 · 4 评论 -
pktgen-dpdk 使用笔记
pktgen-dpdk安装yum install gcc libpcap-devel kernel-devel kernel-headersTOPDIR=/develmkdir -p $TOPDIRcd $TOPDIRgit clone http://dpdk.org/git/dpdkgit clone http://dpdk.org/git/apps/pktgen-dp...原创 2018-03-02 13:10:26 · 4300 阅读 · 1 评论 -
DPDK - TX-Offload Checksum
DPDK rte_mbuf 启用网卡 Offload 计算校验和配置方法计算 IP checksummb->l2_len = len(out_eth)mb->l3_len = len(out_ip)mb->ol_flags |= PKT_TX_IPV4 | PKT_TX_IP_CSUM注: out_ip.checksum = 0 网卡支持 DEV_TX_OFFLOAD_IPV4_CKSUM原创 2017-10-10 11:59:58 · 33075 阅读 · 0 评论