Open vSwitch源码分析之 (一)源码文件布局介绍

【OVS2.5.0源码分析】datapath之netlink ovs datapath是通过netlink与用户态进行通信的,实现dp、端口、流表、packet的操作。 netlink的注册是在datapath模块的初始化函数中实现的。 1、dp_init函数 static int __init dp_init(void) { int err; BUILD_BUG_ON(sizeof(struct ovs_skb_cb) > FIELD_SIZEO 阅读详情

一 前言

该文档主要通过2.17.1版本的OVS源码,对OVS的源码组织进行简单的介绍。方便在需要的时候,进行查阅。

二 Open vSwitch简介

2.1 简介

Open vSwitch是一款基于C语言开发的开源的多层(multilayer)软件虚拟机,且支持多种基于Linux的虚拟化平台,诸如KVM、Xen、VirtualBox等。
OVS官方对OVS的定义如下图所示:
在这里插入图片描述

2.2 重要组件

组成OVS的重要组件大致有:

  • ovs-vswitchd用户态程序
  • datapath内核模块
  • ovs-vsctl:管理ovs-vswitchd程序命令行工具
  • ovs-dpctl:管理datapath内核模块的命令行工具
  • ovsdb-server:一个保存ovs-vswitchd程序中相关信息的数据库

三 帮助文档分类

本小节主要对OVS源码中提供的一系列官方文档进行分类说明,按需自取。

3.1 通用帮助文档

OVS的帮助文档主要位于源码下的Documentation目录下,本节对经常使用的帮助文档的作用进行说明,便于后续有需要时,自行查找。

源码分析openvswitch vxlan ovs对于vxlan的支持依赖datapath的类型,对于kernel space datapath来说,创建vxlan端口后,在将此端口添加到datapath时,会调用kernel自身提供的vxlan.ko模块创建出vxlan_sys_port来,ovs只需要将流表action指向vxlan_sys_port即可,vxlan报文的封装,封装后路由查找和邻居查找都由vxlan模块/kernel来实现; 阅读详情

相关推荐

devstack源码分析

# Additional repos # ================ # Some distros need to add repos beyond the defaults provided by the vendor # to pick up required packages. # The Debian Wheezy official repositories do not con

yaodi833的专栏 1486

【OVS2.5.0源码分析】bridge&bundle&port分析(1)

一、按照用途划分,openvswitch中桥、端口大致可以分成如下几类:   1、配置管理     主要对象包括:bridge、port、interface。   2、openflow     主要对象包括:ofproto、ofproto_dpif、ofbundle、ofport、ofport_dpif。   3、端口镜像     主要对象包括:mbridge、mbundle。  

one_clouder的专栏 2160

我看过的SDN方面的好文章

本文不定期更新,最后更新于2019-5-18 GitHub上实时更新,地址:good-articles-by-sort/SDN.md 技术分享 | OpenShift网络之SDN 央行数字货币研究所姚前:SDN增添金融科技新动力 SDN 技术指南(一):架构概览 SDN 技术指南(二):OpenFlow 基于SDN构建智能DDoS清洗系统 SDN学习之OpenFlow协议分析 深入思考SDN的...

个人博客 1592

openvswitch vxlan 源码分析

ovs vxlan实现分析

fengcai_ke的博客 1255

Openvswitch源码深度解析:控制面到数据面的端到端映射

Openvswitch(OVS)作为主流开源虚拟交换机,其核心在于控制面与数据面的协同机制。理解OVS源码的关键,是厘清ofproto(控制面抽象)如何通过dpif接口调度datapath(内核态转发引擎),以及netlink消息如何在用户态dpif-netlink.c与内核模块openvswitch.ko之间完成flow下发与upcall处理。这一过程涉及结构体对齐、字节序约定、recirc_id机制、TC offload路径等底层契约,直接影响流表匹配、性能瓶颈定位与硬件卸载集成。本文聚焦OVS 30万

weixin_33483304的博客 257

Open vSwitch源码阅读实战:从启动到流表匹配的三级加速机制

Open vSwitch(OVS)作为主流开源虚拟交换机,其核心能力源于高效的数据平面转发架构。理解其流表匹配原理,需从基础概念切入:流(flow)是网络报文特征的结构化抽象,而Megaflow则是面向真实流量语义相似性的泛化缓存机制。OVS通过精确哈希匹配、Wildcard掩码泛化、慢路径回退构成三级加速体系,兼顾性能与灵活性。该设计支撑Kubernetes网络、NFV隧道卸载及DPDK高性能转发等关键场景。本文聚焦OVS源码中`ofproto-dpif-xlate`流表翻译逻辑与`dpcls`分类器实现

weixin_42128315的博客 261

实战分享:如何用Java调用Doris FE接口实现高效Stream Load数据导入(附完整代码)

本文详细介绍了如何通过Java调用Doris FE接口实现高效的Stream Load数据导入,包含完整代码示例和性能优化技巧。Stream Load作为Doris的高效数据导入方式,相比传统JDBC提升5-10倍速度,适用于大规模数据处理场景,帮助开发者解决高吞吐量数据导入挑战。

weixin_29304985的博客 417

多孔材料吸附性质模拟程序RASPA的离线和在线安装方法

RASPA-2.0是今年美国西北大学教授Randall Q. Snurr等人开发的针对于MC,MD,分子力学优化等用途的程序,相比于之前开发的MUSIC软件,RASPA的功能更加齐全,操作更加简便,可以在MC的吸附过程中考虑骨架的柔性,也可以想MUSIC一样先制作积分格点(music中的map)。 A、离线安装(centos为例): (1)、安装之前要检查一下是否装了automake,

youyno的博客 1万+

基于PlatformIO与CMSIS的STM32库函数开发实战:从环境搭建到外设驱动

本文详细介绍了基于PlatformIO与CMSIS的STM32库函数开发实战,从环境搭建到外设驱动实现。通过对比传统IDE,PlatformIO结合CMSIS框架在跨平台开发、代码可移植性和调试体验上更具优势。文章包含PlatformIO.ini配置详解、GPIO/USART驱动开发实例及常见问题解决方案,帮助开发者高效完成STM32项目开发。

weixin_29190169的博客 421

OpenHarmony 5.1 RK3568 开发板烧录:从源码编译到镜像写入的 6 步实战

本文详细解析了OpenHarmony 5.1在RK3568开发板上的全链路开发流程,包括环境搭建、源码编译、镜像烧录等6个关键步骤。通过实战指南和避坑技巧,帮助开发者快速掌握OpenHarmony系统的烧录与定制能力,提升物联网设备开发效率。

weixin_33722405的博客 343

ck3m多轴运动控制器笔记1:电机的配置与注意事项

利用PMAC(CK3M)运动控制器来实现对电机的控制,对具体的配置流程和注意事项讲解

p975468132的博客 4640

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 591

Vue3 - 实现内网使用天地图离线地图,详解项目加载天地图的离线地图服务器部署与使用教程示例源码,vue3如何实现天地图的离线加载部署在内网访问(天地图资源下载/瓦片等流程教学,实现天地图各种功能)

Vue3中加载天地图的离线地图,天地图——内网使用离线地图,vue3+leaflet实现天地图离线访问,vue3项目中利用leaflet使用天地图,vue3项目中使用天地图离线地图,天地图离线瓦片的打包与发布(GeoServer)天地图离线瓦片数据下载及本地化部署,在内网中无法直接使用外网天地图资源怎么办,在vue3中openLayers加载地图 -使用天地图的瓦片数据。VUE3天地图离线怎么使用,内网部署天地图,天地图离线瓦片,部分瓦片数据,天地图如何离线,无需网络调用天地图API,vue天地图离线地图,

🏆 前端领域优质创作者 1万+

用 ABAP OAuth 2.0 Client 直连 SAP SuccessFactors:从体系到落地的一条龙实践指南

ABAP SMI允许在后端对外部服务的OData端点进行定义与自定义化配置,并以受信连接的方式暴露给ABAP应用调用。它并不替代OAuth,而是扮演端点与自定义参数的集中化定义者,最终认证依旧由完成。对于需要在ABAP后端发起临时或补充型OData调用的场景,SMI是一个轻量而清晰的集成入口。scope的客户端应用已经完成注册,API DomainCompany ID、证书或密钥都已归档。ABAP的Profile与Client已建立并绑定,OA2C_GRANT可见绿色访问状态。SMI。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 284

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: Go语言基础篇 (二)安装VSCode开发环境
下一篇: Open vSwitch源码解析之(二) 源码安装OVS
「已注销」
博客等级 码龄7年 49粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值