目录

文章目录

  • 目录
  • 架构
    • 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相关推荐

  1. OVS DPDK vs OVS Deep Dive(十六)

    背景 OvS(Open vSwitch)是云计算平台的重要连接组件,为虚拟机提供网络连,被各大云平台,基础设施供应商广泛使用,比如OpenStack, OpenNebula.vSwitch–Virtu ...

  2. OVS DPDK vhost-user详解(十三)

    vhost user协议的控制和数据通道 所有的控制信息通过UNIX套接口(控制通道)交互.包括为进行直接内存访问而交换的内存映射信息,以及当数据填入virtio队列后需要出发的kick事件和中断信息 ...

  3. OVS+DPDK Datapath 包分类技术

    本文主体内容译于[DPDK社区文档],但并没有逐字翻译,在原文的基础上进行了一些调整,增加了对TSS分类器的详细阐述. 1. 概览 本文描述了OVS+DPDK中的包分类器(datapath class ...

  4. OVS DPDK与QEMU之间如何通过vhost user协议通信 vhost user协议的控制和数据通道

    netdev_dpdk_vhost_construct定义在文件openvswitch-2.9.2/lib/netdev-dpdk.c1058 static int 1059 netdev_dpdk_ ...

  5. dpdk中文-dpdk简单介绍

    bestboyxie话说DPDK~~其实dpdk中文文档太少了,好多大神都不愿意分享,所以我如果不写对不起谢大神名号啦~~ DPDK = Data Plane Development Kit  数据平 ...

  6. 【DPDK】dpdk样例源码解析之五:dpdk-rss

    本篇文章介绍DPDK-RSS相关的功能,RSS是网卡提供的分流机制,简单讲就是一个HASH值,如果使用DPDK收包,开启RSS后,会根据配置项将数据包分流到不同的收包队列,用来是实现负载均衡. 通过D ...

  7. 【DPDK】DPDK 入门介绍

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 文章目录 DPDK 入门介绍 网络IO的处境和趋势 Linux + x86网络IO瓶颈 DPDK的基本原理 DPDK旁 ...

  8. 【DPDK】dpdk样例源码解析之三:dpdk-l3fwd_001

    本篇文章主要介绍dpdk-l3fwd实例源码,通过分析代码逻辑,学习DPDK中几个API接口作用以及如何使用? 操作系统版本:CentOS 8.4 DPDK版本:dpdk-20.11.3 如何单独创建 ...

  9. OVS DPDK vhost-user搭建全过程(四十四)

    系统:ubuntu14.04.1 系统:centos7 内核:4.4.0 qemu : >=2.7 Install DPDK 1. Download DPDK cd /usr/src/ wget ...

  10. OVS DPDK vhost-user详解(十二)

    在软件实现的网络I/O半虚拟化中,vhost-user在性能.灵活性和兼容性等方面达到了近乎完美的权衡.虽然它的提出已经过了四年多,也已经有了越来越多的新特性加入,但是万变不离其宗,那么今天就从整个v ...

最新文章

  1. Compiling: main.cpp /bin/sh: g++: not found
  2. Jerry的SAP Kyma和Kubernetes讲座的幻灯片分享
  3. ArrayList单列集合的简单使用常见方法
  4. Investigating Div-Sum Property【数位DP】
  5. 切换到 oracle的 hr用户下面练习
  6. 存储路径_KUKA C4机器人通过KRC CONFIGURATEOR设置存储路径
  7. matlab中confcounts,Matlab函数分类汇总—R2011b版.doc
  8. 本周小结!(二叉树系列三)
  9. Deepfacelab 新手教程【AI智能换脸】
  10. flink程序在消费kafka数据时出现Error sending fetch request问题
  11. 线性代数可以做些什么?(之一)
  12. 测试开发工程师成长日记011 - linux常用命令day03
  13. Java: 聚合数据API接口调用城市天气预报
  14. JDK自带的反编译工具 javap
  15. 嵌入式C设计模式---状态机设计模式
  16. 中国城市人均月收入已突破9000人民币大关[转载]
  17. Web渗透 不断更新
  18. 印尼爪哇岛的火山(图)
  19. 60天月活破亿,ChatGPT之父传奇:16岁出柜,20岁和男友一同当上CEO
  20. 年薪50万的程序员_毕业之后,这些年薪50万+的90后程序员经历了什么?-阿里云开发者社区...

热门文章

  1. 文件包含漏洞检测工具fimap
  2. Xamarin XAML语言教程使用Visual Studio创建XAML
  3. Kali Linux安全渗透教程(内部资料)
  4. 查看数据库大小_查看Oracle 数据库的每天归档量及数据库大小
  5. linux cpu平均利用率st,理解 CPU 利用率
  6. python scrapy框架基如何实现多线程_【转】爬虫的一般方法、异步、并发与框架scrapy的效率比较...
  7. c++ 回调函数_Java中的回调机制,这篇给你整的明明白白的
  8. multipartfile 获取音频时长_我在音频平台日赚150元的正确打开方式。或许适合你...
  9. java invoker_Spring的HTTPInvoker
  10. 院长来信 | 英特尔宋继强:疫情之下对科技创新的再思考,科学为源,技术为器...