OFDPA软件概述

2023-05-16

OFDPA软件概述

OF-DPA(openflow data plane abstraction)是一个应用软件组件。实现了 openflow与broadcom SDK间适配层的功能。OF-DPA在broadcom交换芯片上扩展性的支持了openflow 1.3协议。

figure1

如上图,用户应用程序通过北向api从openflow 控制器获取服务。控制器的北向api可以使应用程序控制一个或多个openflow交换机。控制器与每一个openflow交换机保持一个通道交互openflow协议信息。在交换机上,openflow 代理维护其通道的结束,处理收到的openflow协议信息并响应本地事件发送openflow消息。OF-DPA通过向代理提供OF-DPA API,在此结构中起着关键作用。该api根据openflow结构(如流表、组表、端口)代表代理的硬件表。由于OF-DPA将所有与硬件匹配的表的状态都维护到openflow,代理会将openflow消息相对简单且无状态的转换为OF-DPA API调用。OF-DPA应用程序写数据(如路由、lsp)到OF-DPA抽象交换机中。

OF-DPA软件结构

OF-DPA的各种组件的框图

API Layer:

提供北向OF-DPA API。用户应用程序可以通过进程间通信或者直接调用的形式调用OF-DPA库。OF-DPA没有用户接口,对OF-DPA所有的的控制都是通过北向api的调用。所有API调用都是同步的,并且在将更改提交给硬件后,控制将返回给调用者。

OF-DB层:

OF-DPA database层。OFDB是针对流表、组表、port表的一个软件数据库。OFDB可以提供api去操作这些表。OFDB API被OF-DPA以下这些层引用:1)API层:系统OFDB存储的管理者;API层通过调用OFDB API对OFDB中存储的各种表增删修改操作; 2)mapping层:OFDB存储系统状态信息如port link状态等。Mapping层从硬件层接收port状态更新通过调用OFDB API去更新OFDB中的port table;3)datapath层:datapath层通过调用OFDB API来遍历流表,并执行管理动作如老化。

Datapath层:

实现定期唤醒任务并遍历流表以执行老化操作。探测到老化流时候,发送事件通知客户端应用。

Mapping/driver Layer层:

提供系统映射和驱动功能。
驱动、OFDB、datapath层的初始化在这里完成。检索系统特定信息如table size、vlans等功能在这里实现。
驱动程序在博通SDK上提供了一个抽象层。这些功能被用来向硬件写程序和查询硬件信息。驱动程序层定义了OF-DPA在移植到其他平台时所需的接口。

Platform layer层:

提供平台特定的初始化结构和功能。这些函数在系统启动时被引用。

Operational Modes操作模式

两种操作模式:
1) 进程间调用模式:OF-DPA在交换机上运行一个独立的进程。用户程序通过RPC引用OF-DPA APIs。同一时间只能有一个客户端应用使用OF-DPA接口。
2) 单进程模式:用户应用程序与OF-DPA静态链接。一个单一的linux调用包含用户应用程序、OF-DPA层和broadcom SDK。
进程之间的通信的开销导致这两种模式之间的性能差异。使用单一过程模式实现的应用程序调用能够以比使用进程间模式更高的速率调用OF-DPA API。进程间模式对于实验OF-DPA软件非常有用。

初始化概述

1)  SDK:SDK使用默认配置初始化芯片;
2)  Platform:从platform特定结构中读取platform id,description、物理端口映射信息;
3)  Driver:初始化硬件;
4)  分配OFDB中使用的流表、组表、port表;
5)  Datapath:创建socket去发送datapath层的事件通知。
RPC服务器在系统初始化完成后启动,监听来自客户应用的RPC消息。

稳态描述

稳定状态下,仅有一勺部分线程在后台运行。如sdk技术、收包、datapath线程周期性的运行。其他所有的线程只在API调用中触发。

SDK配置和设置

OF-DPA软件建立在BCM API和数据结构上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OFDPA软件概述 的相关文章

  • linux和windows时间同步问题(UTC&localtime)

    Linux使用 UTC xff0c 但是windows默认使用localtime 解决的办法如下 xff08 重启后生效 xff09 进入windows使用regedit写入DWORD值 设置成十六进制 34 1 34 xff1a HKEY
  • Jetson TX1uboot编译与烧写

    Data 2017 09 14 Author cjh Theme Jetson TX1uboot编译与烧写 64 TX1 Linux for Tegra 64 tx1 PS xff1a uboot源码下载 xff0c 参见Jetson TX
  • 中断下半部_工作队列(work queue)

    1 gt work queue lt linux workqueue h gt 3 0 4 2 gt description 中断下半部 xff0c 在内核线程的进程上下文中执行推后的工作 它是唯一能在进程上下文运行的中断下半部实现机制 x
  • ubuntu systray(系统托盘)图标问题

    systray上应用程序的图标无法显示 1 install dconf tools and run 34 dconf editor 34 2 add your application want to show in systray to D
  • 我的减肥经历和一些经验[1]

    概述 xff1a 减肥是一件比较辛苦的事情 xff0c 不但要下苦还要坚持下苦 减肥有 很多方式 xff1a 比如单纯节食 xff08 这个显然会弄坏自己的胃 xff0c 不提倡 xff09 xff1b 比如 抽脂 xff08 这个听着有点
  • linux USB monitor 【linux usb抓包】

    linux stable Documentation usb usbmon txt Introduction The name 34 usbmon 34 in lowercase refers to a facility in kernel
  • device instance IDS(设备范例ID)

    系统提供的设备的设备范例ID是一个唯一标识系统中的设备标识字符串 即插即用 xff08 PnP xff09 管理为系统设备树 xff08 device tree xff09 的每个设备节点 xff08 devnode xff09 分配设备范
  • 在thinkpad上安装(kde)debian wheezy/sid (Note of install (kde)debian wheezy/sid on Thinkpad)

    亲测机型 Thinkpad T420 爱机 1 下载镜像文件 debian testing amd64 DVD 1 iso axel a http cdimage debian org cdimage weekly builds amd64
  • cscope无法索引代码树之外的软链接

    背景 xff1a 为什么非要使用cscope xff1f 不用ctags xff1f 尽管ctags可以索引软链接 xff0c 但是 xff0c ctags不能查找 调用者 xff0c 比如 xff1a 你想看看某个函数在哪些位置被调用了
  • 爬虫常见错误以及难点(一)

    目录 常见错误一 常见错误二 常见错误三 常见错误四 难点 xff1a 难点一 难点二 难点三 难点四 难点五 难点六 难点七 难点八 难点九 难点十 难点十一 难点十二 难点十三 难点十四 难点十五 难点十六 常见错误一 就是设置 hea
  • Linux下开启和禁用触摸板-转

    本文转自 xff1a https blog csdn net junmuzi article details 38491093 感谢原作者分享 电脑型号 xff1a DELL G3 操作系统 xff1a Linux 16 04 LTS 打开
  • function declared implicitly的正确解决方法

    使用GUIBuilder创建了两个 c文件 xff0c 需要在其中一个文件中调用另一个文件的函数 xff0c 他们初始只有 include DIALOG h xff0c 在编译只有一个警告 xff0c declared implicitly
  • Jetson TX2物理引脚与虚拟引脚映射计算

    Data 2017 11 17 Author cjh Theme Jetson TX2物理引脚与虚拟引脚映射计算 最近需要控制Jetson TX2 J21那一排的引脚 xff0c 发现其规律和TX2相距甚远 xff0c 网上NVIDIA的论
  • SVN

    转自 http blog csdn net gexiaobaohelloworld article details 7752862 SVN简介 SVN xff08 Subversion xff09 是一个自由 开源的项目源代码版本控制工具
  • svn使用的适用技巧

    关于SVN的使用 xff0c 这里整理两个重要的问题 xff1a 1 svn不能commit so 2 34 a 34 等库文件 xff1a svn add 还是 svn st 均查看不到想要提交的 so 文件 后来才知道原来是配置文件出了
  • calico更换ip地址池-k8s

    注意 xff1a 生产环境更换ip地址池会导致网络中断 xff0c 请慎重 在Kubernetes中 xff0c 以下所有三个参数必须等于或包含Calico IP池CIDR xff1a kube apiserver xff1a pod ne
  • Centos 7安装GNOME桌面环境

    第一步 xff1a 列出可安装的桌面环境 span class token punctuation span root 64 local span class token punctuation span span class token
  • Linux anaconda3 安装python版zeroc-ice 3.7.3报 undefined symbol: SSLeay

    原因 xff1a linux通过 pip install zeroc ice 61 61 3 7 3时会从源文件重新编译一个二进制版本 xff0c windows与macos不会重新编译 编译过程依赖openssl 但是centos7版本的
  • npm install提示没有权限

    npm install unsafe perm 61 true allow root

随机推荐

  • mysql排序后分页出现的数据混乱

    原因 xff1a 排序的字段值不唯一 xff0c 值相同时排序顺序不固定 解决方法 xff1a 增加排序字段改用值唯一的字段排序
  • Ubuntu安装mysql,修改数据存储目录

    1 创建目录并修改目录权限 mkdir home abc data chown R mysql mysql home abc data 2 修改mysql配置文件 etc mysql my cnf xff0c 增加以下配置 mysqld d
  • 获取CAS全部配置说明

    直接下载 xff1a CAS Server全部配置详解 通过cas bootadmin获取 通过CAS Initializr获取模块cas bootadmin server overlay curl http localhost 8080
  • SpringBoot配置SSL(https)

    生成证书 keytool genkey alias cas keyalg RSA validity 999 keysize 2048 storetype PKCS12 keypass aaaaaa storepass aaaaaa keys
  • 2018年秋招面经

    Data 2017 10 30 Author cjh 一不小心秋招都结束了 xff0c 趁还有些印象 xff0c 留下点东西造福大众 秋招一般聚集在9月初到10月底 xff0c 大公司快的有些8月中旬就开始了 xff0c 所以大家要把握时间
  • CAS Client部署

    参考内容 官方参考文档 xff1a Java Cas Client Cas Server部署参考 CAS Server部署 xff0c 基于版本6 6 4 修改配置 添加依赖 lt dependency gt lt groupId gt o
  • Python机器学习:train_test_split()划分数据集

    调用sklearn里面的model selection包的train test split 函数可以一行代码划分好数据集 包名 xff1a from sklearn model selection import train test spl
  • 安装Python3.8.10和ssh连接

    xff01 xff01 xff01 xff01 制作镜像之前防火墙要关掉 xff08 必须要关的 xff09 systemctl stop ufw span class token punctuation span service syst
  • WebSSH安装和开机自启设置

    一 安装 apt install nfs span class token punctuation span common WebSSH 要求 Python2 7 或 3 4 43 如果有 Python 环境 xff0c 可以使用 pip
  • novnc安装和开机自启设置

    一 安装和使用novnc 1 下载noNVC span class token function git span clone https github com novnc noVNC git 2 创建安装连接 VNC的默认会话不是安全的
  • vnc安装和开机自启设置

    一 安装VNC 键入以下命令以在 Ubuntu 服务器上安装 TigerVNC xff1a sudo apt install tigervnc standalone server tigervnc common 现在安装了 VNC 服务器
  • 研究生如何发表论文必读

    研究生如何发表论文必读 这是一个一年三篇IF大于7的牛人当我问到他怎么这么强的时候 xff0c 他给我他在网上总结发文章的秘笈 看了实在是心中有一种感觉 xff0c 特奉献出来 一 研究生必备四本 俗话说好记性不如烂笔头 xff0c 所以一
  • Debian Linux进入不了图形界面的折腾

    首先我的操作系统是Debian Linux xff0c 我Debian用的是Xfce桌面环境 xff0c 昨天我用了命令apt get install gnome 安装了一堆软件之后重启 xff0c 就进入不了图形界面了 xff0c 只能进
  • ROS与matlab进行通讯—保姆级教程

    话不多说 xff0c 直接来进行配置 xff1a 所用软件 xff1a windows10下matlab2018b和同一台 电脑上虚拟机 virtubalbox上的Ubuntu melodic 18 04版本 第一步 xff1a 将虚拟机网
  • stm32蜂鸣器实验

    硬件连接 xff1a 提示 xff1a 不能通过IO口直接驱动大功率器件 实验步骤 xff1a 使能IO口时钟 调用RCC APB2PeriphColckCmd 初始化IO口模式 调用函数BEEP Init 操作IO口 xff0c 输出高低
  • samba源码安装

    Data 2017 11 30 Author cjh Theme samba源码安装 最近在玩TI的AM5728开发板 xff0c 采用交叉编译 xff0c 在使用nfs挂在确实有些不习惯 xff0c 所以最后还是忍不住在上面安装了samb
  • vscode使用

    VScode自动调整格式 Shift 43 Alt 43 F 简书 jianshu com vscode 设置 tab 为四个空格 abbcccdde的博客 CSDN博客 vscode设置tab为4个空格 生产力 VSCode必备插件 C
  • Ubuntu使用apt-get安装本地deb包

    Ubuntu使用apt get安装本地deb包 milantgh 博客园
  • 随遇而安也是一种选择

    随遇而安也是一种选择 故事的开头都是相似的 xff0c 故事的结尾各有各的传奇 xff0c 各有各的平凡 题记 高中的岁月总是让人难忘的 xff0c 菁菁岁月中的庆阳一中 xff0c 充满了书生意气的神采飞扬 xff0c 恩师与同窗 xff
  • OFDPA软件概述

    OFDPA软件概述 OF DPA xff08 openflow data plane abstraction xff09 是一个应用软件组件 实现了 openflow与broadcom SDK间适配层的功能 OF DPA在broadcom交