DPDK — OvS-DPDK
目录
文章目录
- 目录
- 架构
- OvS 架构
- OvS-DPDK 架构
架构
OvS 架构
openvswitch.ko :在内核态负责 “快速路径” 的数据转发。转发靠流表来完成,每一个流表都包含很多的匹配项(match fields)和相应的动作(actions)。
- match fields:定义了能够标识一个数据包的头部字段。
- actions:定义了能够对这个数据包操作的动作,比如:添加或去除 VLAN 标签、修改数据包的某个头部字段,以及控制数据包从端口的进出等等。
ovs-vswitchd:在用户态负责 “慢速路径” 的数据转发。
- ofproto:OpenFlow 交换机实现。
- netdev:和网络设备(包括物理的和虚拟的)交互的抽象接口层。
- dpif:用户空间数据转发路径的实现。
OvS-DPDK 架构
上图中的深色模块就是引入 DPDK 的相关模块。
- ofproto-dpif:实现了 ofproto 模块 API,直接操作 dpif 层。
- dpif-netdev:用户空间中 “快速路径” 的实现,它实现了 dpif 模块 API,可以直接操作 netdev 设备,能够实现数据包在用户空间的快速处理,减少和内核空间的切换开销。
- netdev-dpdk:应用 DPDK 库实现了 netdev 模块 API,提供了多种类型的接口,如下:
- Physical ports(PMD):使用 vfio 或者 igb_uio 实现的端口。
- vHost(dpdkvhostuser and dpdkvhostcuse):使用 librte_vhost 库实现的端口,用户可以基于这两种端口类型创建 vhost-user 和 vhost-cuse 端口来完成用户空间的数据转发,并且能够实现和 VM 的快速通信,只要提供 virtio 后端驱动 vhost 即可,virtio/vhost 被证实是用于 VM 通信的一套快速、安全、标准的接口。
- dpdkr:使用 librte_ring 实现,用户可以基于这种端口类型创建 dpdk-ring 端口来完成用户空间的数据转发,它能够实现和 VM 之间快速的零拷贝通信(使用 IVSHMEM 或者其他进程间通信方式)。
DPDK — OvS-DPDK相关推荐
- OVS DPDK vs OVS Deep Dive(十六)
背景 OvS(Open vSwitch)是云计算平台的重要连接组件,为虚拟机提供网络连,被各大云平台,基础设施供应商广泛使用,比如OpenStack, OpenNebula.vSwitch–Virtu ...
- OVS DPDK vhost-user详解(十三)
vhost user协议的控制和数据通道 所有的控制信息通过UNIX套接口(控制通道)交互.包括为进行直接内存访问而交换的内存映射信息,以及当数据填入virtio队列后需要出发的kick事件和中断信息 ...
- OVS+DPDK Datapath 包分类技术
本文主体内容译于[DPDK社区文档],但并没有逐字翻译,在原文的基础上进行了一些调整,增加了对TSS分类器的详细阐述. 1. 概览 本文描述了OVS+DPDK中的包分类器(datapath class ...
- OVS DPDK与QEMU之间如何通过vhost user协议通信 vhost user协议的控制和数据通道
netdev_dpdk_vhost_construct定义在文件openvswitch-2.9.2/lib/netdev-dpdk.c1058 static int 1059 netdev_dpdk_ ...
- dpdk中文-dpdk简单介绍
bestboyxie话说DPDK~~其实dpdk中文文档太少了,好多大神都不愿意分享,所以我如果不写对不起谢大神名号啦~~ DPDK = Data Plane Development Kit 数据平 ...
- 【DPDK】dpdk样例源码解析之五:dpdk-rss
本篇文章介绍DPDK-RSS相关的功能,RSS是网卡提供的分流机制,简单讲就是一个HASH值,如果使用DPDK收包,开启RSS后,会根据配置项将数据包分流到不同的收包队列,用来是实现负载均衡. 通过D ...
- 【DPDK】DPDK 入门介绍
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 文章目录 DPDK 入门介绍 网络IO的处境和趋势 Linux + x86网络IO瓶颈 DPDK的基本原理 DPDK旁 ...
- 【DPDK】dpdk样例源码解析之三:dpdk-l3fwd_001
本篇文章主要介绍dpdk-l3fwd实例源码,通过分析代码逻辑,学习DPDK中几个API接口作用以及如何使用? 操作系统版本:CentOS 8.4 DPDK版本:dpdk-20.11.3 如何单独创建 ...
- OVS DPDK vhost-user搭建全过程(四十四)
系统:ubuntu14.04.1 系统:centos7 内核:4.4.0 qemu : >=2.7 Install DPDK 1. Download DPDK cd /usr/src/ wget ...
- OVS DPDK vhost-user详解(十二)
在软件实现的网络I/O半虚拟化中,vhost-user在性能.灵活性和兼容性等方面达到了近乎完美的权衡.虽然它的提出已经过了四年多,也已经有了越来越多的新特性加入,但是万变不离其宗,那么今天就从整个v ...
最新文章
- Compiling: main.cpp /bin/sh: g++: not found
- Jerry的SAP Kyma和Kubernetes讲座的幻灯片分享
- ArrayList单列集合的简单使用常见方法
- Investigating Div-Sum Property【数位DP】
- 切换到 oracle的 hr用户下面练习
- 存储路径_KUKA C4机器人通过KRC CONFIGURATEOR设置存储路径
- matlab中confcounts,Matlab函数分类汇总—R2011b版.doc
- 本周小结!(二叉树系列三)
- Deepfacelab 新手教程【AI智能换脸】
- flink程序在消费kafka数据时出现Error sending fetch request问题
- 线性代数可以做些什么?(之一)
- 测试开发工程师成长日记011 - linux常用命令day03
- Java: 聚合数据API接口调用城市天气预报
- JDK自带的反编译工具 javap
- 嵌入式C设计模式---状态机设计模式
- 中国城市人均月收入已突破9000人民币大关[转载]
- Web渗透 不断更新
- 印尼爪哇岛的火山(图)
- 60天月活破亿,ChatGPT之父传奇:16岁出柜,20岁和男友一同当上CEO
- 年薪50万的程序员_毕业之后,这些年薪50万+的90后程序员经历了什么?-阿里云开发者社区...
热门文章
- 文件包含漏洞检测工具fimap
- Xamarin XAML语言教程使用Visual Studio创建XAML
- Kali Linux安全渗透教程(内部资料)
- 查看数据库大小_查看Oracle 数据库的每天归档量及数据库大小
- linux cpu平均利用率st,理解 CPU 利用率
- python scrapy框架基如何实现多线程_【转】爬虫的一般方法、异步、并发与框架scrapy的效率比较...
- c++ 回调函数_Java中的回调机制,这篇给你整的明明白白的
- multipartfile 获取音频时长_我在音频平台日赚150元的正确打开方式。或许适合你...
- java invoker_Spring的HTTPInvoker
- 院长来信 | 英特尔宋继强:疫情之下对科技创新的再思考,科学为源,技术为器...