dpdk
文章平均质量分 85
造夢先森
一定要努力努力,永不放弃,才可以改变世界,改变自己~
展开
-
【dpdk专题】
DPDK实践一:技术介绍 + 编译运行DPDK实践二:用TestPMD测试DPDK性能和功能原创 2022-06-04 19:41:36 · 947 阅读 · 0 评论 -
性能调优 -- 系统篇
BIOS原创 2021-09-17 14:51:07 · 859 阅读 · 0 评论 -
DPDK rte_hash实例
/* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2014 Intel Corporation */#include <stdio.h>#include <string.h>#include <stdint.h>#include <errno.h>#include <sys/queue.h>#include <rte_memory.h>#inc原创 2021-01-22 16:35:51 · 2664 阅读 · 0 评论 -
DPDK实践二:用TestPMD测试DPDK性能和功能
本文介绍了数据平面开发工具包(DPDK)TestPMD应用程序,展示了如何构建和配置TestPMD, 以及如何用它来检查使用DPDK的不同网络设备的性能和功能。TestPMD是一个使用DPDK软件包分发的参考应用程序。其主要目的是在网络接口的以太网端口之间转发数据包。此外,用户还可以用TestPMD尝试一些不同驱动程序的功能,例如RSS,过滤器和英特尔®以太网流量控制器(Intel® Ether...原创 2019-01-20 17:23:44 · 10939 阅读 · 7 评论 -
dpdk vhost-user协议
消息机制当使用vhost-user时,需要在系统中创建一个unix domain socket server,用来处理qemu发送给host的消息。如果有新的socket连接,说明guest创建了新的virtio-net设备,vhost驱动会为之创建一个vhost设备,之后qemu就可以通过socket和vhost进行通信了;当socket关闭,vhost就会销毁对应的设备。常用的消息包括:......原创 2018-12-28 22:02:54 · 1543 阅读 · 0 评论 -
ovs+dpdk+vhostuser高性能交换机
首先给出基于dpdk的ovs软件架构: ovs-vswitchd是ovs中最核心的组件,openflow的相关逻辑都在vswitchd里实现,一般来说ovs分为datapath, vswitchd以及ovsdb三个部分,datapath一般是和具体是数据面平台相关的,比如白盒交换机,或者linux内核等。ovsdb用于存储vswitch本身的配置信息,比如端口,拓扑,规则等。vswitchd...原创 2018-08-29 23:07:54 · 5449 阅读 · 0 评论 -
【PCIe与包处理I/0】mbuf和mempool
mbuf是报文中的描素的结构体,是整个转发过程中最核心的数据结构之一。主要针对于mbuf的常用API与基本原理做一个简单的介绍。内存结构首先我们看一下rte_mbuf的数据结构的定义:先主要说明几个跟数据有关的变量struct rte_mbuf { void *buf_addr; /**< Virtual address of segment buffer. */ ......原创 2018-03-25 15:30:32 · 11427 阅读 · 4 评论 -
DPDK单核收发包 源码解读
dpdk 使用 mbuf 保存 packet,mempool 用于操作 mbuf。数据结构: rte_mbuf——dpdk对报文的封装结构 rte_ring——dpdk无锁缓冲区,用于高性能的生产者消费者场景,比如virtio的前后端收发报文。常用函数: rte_eal_init——dpdk初始化函数,里面读了各种命令行参数,解析配置,初始化大页及其管理结构,创建dpdk线程均在里面...原创 2018-03-20 23:23:42 · 20418 阅读 · 2 评论 -
【流分类与多队列】RSS 和 Flow Director
多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。 常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析一下..................原创 2018-01-20 20:08:40 · 4904 阅读 · 0 评论 -
OVS+DPDK
DPDK简介DPDK是X86平台报文快速处理的库和驱动的集合,不是网络协议栈,不提供二层,三层转发功能,不具备防火墙ACL功能,但通过DPDK可以轻松的开发出上述功能。DPDK的优势在于,可以将用户态的数据,不经过内核直接转发到网卡,实现加速目的。主要架构如图所示:传统的socket方式与DPDK对比:DPDK关键技术点:使用大页缓存支持来提高内存访问效率。利用UI...原创 2017-09-07 22:41:45 · 21434 阅读 · 3 评论 -
DPDK内存管理-l2fwd代码解读
1. initDPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能。DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续、属于哪个Socket等,有效的组织起来,为后续管理提供便利。1. eal_hugepage_info_initeal_hugepage_info_init()主要是获取配置好的Hugetlbfs的相关信息,......原创 2017-10-02 10:05:28 · 6821 阅读 · 0 评论 -
深入理解dpdk rte_ring无锁队列
一、rte_ring简介rte_ring的实质是FIFO的无锁环形队列,无锁队列的出队入队操作是rte_ring实现的关键。常用于多线程/多进程之间的通信。ring的特点:无锁出入队(除了cas(compare and swap)操作)多消费/生产者同时出入队使用方法:1.创建一个ring对象。接口:structrte_ring * rte_ring_create(constchar *na...原创 2017-10-01 16:33:24 · 15080 阅读 · 3 评论 -
DPDK实践一:技术介绍 + 编译运行
一、Intel® DPDK技术引入网路的核心是报文的转发过程,linux网路是通过内核协议栈进行转发的,报文控制平面和数据转发平面没有分离,不适合处理大规模网络数据包,因为linux分为内核区和用户区,报文先进入内核区然后拷贝到用户区,供给上层应用程序处理。并且为了全面的支持用户空间的各个功能,协议栈中嵌入了大量用于对接的接口。如果能让应用程序直接接管网络数据包处理、内存管理以及CPU调度,那...原创 2017-10-01 11:20:17 · 13341 阅读 · 1 评论