ONOS意图框架

2023-05-16

1 意图基本概念

Intent是用于描述应用需求的不可变模型对象,ONOS核心根据其改变网络行为。
在最低级别上,可以用以下方式描述意图,即意图的组成:
1、Network Resource:一组对象模型,例如链路,它们绑定到受意图影响的网络部分。
2、Constraints:应用于一组网络资源的权重,例如带宽,光频率和链路类型
3、Criteria:数据包头字段或描述流量切片的模式。 Intent的TrafficSelector会将标准作为实现Criterion接口的一组对象进行承载。(对应流表项的匹配项)
4、Instructions :应用于流量切片的操作,例如标头字段修改或通过特定端口输出。 Intent的TrafficTreatment会将指令作为一组实现指令接口的对象进行传递。(对应流表项的Action)

2 意图状态转换

在这里插入图片描述

  • (1)橙色为过渡状态,处于该状态时间较短。
  • (2)蓝色为停车状态,处于该状态时间较长。
     应用通过IntentManager接口实现意图提交,意图会先进入编译阶段,然后到安装阶段最后到已安装阶段。
     编译阶段可能会失败,比如找不到符合要求的路径,这个时候意图进入失败阶段。当环境变化时,意图会重新进入编译阶段。
     安装阶段可能会失败,比如设备断开与控制器的连接,框架会重新编译意图。如果编译成功重新回到安装阶段,如果编译失败则进入失败阶段。
     已安装意图相关的网络资源发生变化时,意图会重新进入编译阶段。
     对于已安装或安装失败的意图,应用可以发起撤回请求,成功撤回后,意图会从存储中移除。
     意图重编译过程可以看成是一种重路由

3 意图相关源码

 意图批量处理相关的核心类IntentManager、IntentAccumulator、AbstractAccumulator
 意图重构流程

TopologyEvent
->ObjectiveTracker.TopologyChangeHandler
->IntentManager.InternalTopoChangeDelegate.triggerCompile
->IntentManager.buildAndSubmitBatches
->IntentManager.submit(intent)
->IntentStore.addPending(intentData)
->GossipIntentStore.addPending
->GossipIntentStore.pendingMap.put
->GossipIntentStore.InternalPendingListener
->IntentManager.InternalStoreDelegate.process
	->IntentManager.IntentAccumulator.add
->IntentMager. InternalStoreDelegate.notify
	->post(event)
	->if WITHDRAW and !skipReleaseResourcesOnWithdrawal
		->releaseResources

4 新增新类型意图基本流程

  • (1)添加新类型意图,将其添加到core/api/net/intent包内,需要在org.onosproject.store.serializers.KryoNamespace注册自己的意图,以实现序列化。
  • (2)实现一个新内部应用,在其内实现新Compiler,并向IntentManager注册。当新类型意图提交到IntentManager时候,其会根据意图类型调用相关的Compiler。
  • (3)在新内部应用内添加路径计算服务,新Compiler调用新路径计算服务,实现路径计算。(原有的路径计算方法在onos/utils/misc/src/main/java/org.onlab/graph内实现)
    新增waypoint意图
    构建并提交意图,不经过2,4点
    在这里插入图片描述
    在这里插入图片描述

5 代码仓库

https://github.com/custhk/intentx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ONOS意图框架 的相关文章

  • Ubuntu 16.04 安装onos 2.2.0

    之前使用了别人分享的安装好的p4虚拟机 xff0c 应该是这个人的 xff0c 不过我记得的是用的谷永普的 xff0c 当时还是从微云上下载的 xff0c 但是找不到了 不过无所谓 xff0c 本文不讲p4的安装 xff0c 有需要的 xf
  • 【SDN控制器分析之一】ONOS架构概述

    ONOS 设计目标 ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目 xff0c 在最初设计时有这么几个目标是明确的 xff1a 代码模块化 xff1a 支持把新的功能作为新的独立单元引入特性可配置 xff1a 无论是在启动
  • onos实现driver的自动加载

    AbstractDriverLoader 已知driverAdminServer 根据path读取配置文件的内容 1 进入到XMLDriverLoader里 xff0c 根据XML 创建Provider gt XMLDriverLoader
  • ONOS之开放分布式SDN操作系统

    为什么80 的码农都做不了架构师 xff1f gt gt gt 关于构建ONOS xff08 开放式网络操作系统 xff09 的项目专题 xff0c 是通过性能激发创建的实验性分布式 SDN 控制平台 xff0c 满足大型运营商网络的可扩展
  • ONOS高可用性和可扩展性实现初探

    为什么80 的码农都做不了架构师 xff1f gt gt gt ONOS 的发布直面OpenDaylight 进行挑战 xff0c 直接将 SDN 领域两大阵营 xff08 运营商和设备商 xff09 的竞争瞬间升级 xff0c 之所以 O
  • ONOS预热篇之ONOS简介

    为什么80 的码农都做不了架构师 xff1f gt gt gt ONOS问世后引起广泛关注 xff0c 关于 ONOS 与 ODL 的纷争不绝于耳 xff0c 最近小编拜读了一下 ONOS 白皮书 xff0c 并做了一点粗浅总结 xff0c
  • ONOS意图框架

    1 意图基本概念 Intent是用于描述应用需求的不可变模型对象 xff0c ONOS核心根据其改变网络行为 在最低级别上 xff0c 可以用以下方式描述意图 即意图的组成 xff1a 1 Network Resource xff1a 一组
  • ONOS-ifwd-app源码分析总结

    ONOS ifwd源码分析 xff0c 参考资料 xff1a https www sdnlab com 10297 html 在之前的文章中 xff0c 介绍了ONOS sample apps的获取 xff0c 但是将其生成的oar文件导入
  • ONOS简介

    一 与ODL区别 ONOS与OpenDayLight 两个控制器之间的较量 ODL 立场 xff1a 设备厂商 xff1a Cisco Citrix Systems Red Hat Brocade Ericsson ClearPath HP
  • 集群源码安装ONOS

    集群源码安装ONOS 1 每一台待安装onos的配置 bin bash sudo mv apache karaf 3 0 3 tar gz opt sudo mv apache maven 3 3 1 bin tar gz opt cd o
  • ONOS源码笔记--机制

    app注册 private ApplicationId appId appId 61 coreService registerApplication 34 org onosproject fwd 34 注册应用 xff0c 一般在activ
  • 使用ONOS的REST API来下发流表

    1 启动ONOS后 xff0c 浏览器进入doc http 10 109 247 211 8181 onos v1 docs 2 找到Flow xff0c 并打开POST 3 可以直接在这个上面编辑flow stream里面模拟GET获得的
  • 从零开始安装ubuntu18+P4+ONOS

    1 安装VMware Tools xff08 前面VM虚拟机安装Ubuntu的教程太多 xff0c 就不写了 xff09 先从虚拟机下载好 xff0c 然后将压缩包里的文件夹移动出来 xff08 可以用解压或者直接点开压缩包 xff0c 移
  • Mininet连接ONOS的一些问题

    Mininet连接ONOS的一些问题 一 启动ONOS二 简单小问题1 Mininet创建最简拓扑后连接不上远程控制器2 Mininet创建最简拓扑后主机之间ping不通3 不启动fwd应用自己通过REST API下发流表发现两台主机间pi
  • Ubuntu Server 14.04部署ONOS

    参考官网 xff1a https wiki onosproject org display ONOS Installing 43 and 43 Running 43 ONOS 由于笔者习惯ssh xff0c ubuntu默认没有开启ssh
  • P4连接ONOS——导入ONOS虚拟机

    补充 xff1a 2020年5月11日 13点07分 近期有同学私信我安装过程中有这个报错 xff0c 如下图 根据报错信息 xff0c 似乎是下载这个包服务器501出错 xff0c 很可能是因为内网无法下载这个包 我忘记说了 xff0c
  • ONOS链路发现源码

    ONOS链路发现源码 send LLDP by ynogpu private void sendProbes Long portNumber String portDesc if context packetService 61 61 nu
  • Ubuntu16.04下基于BUCK安装onos

    踩了很多坑 xff0c 其中很多错误也没整明白怎么回事 xff0c 实在搞不了就重装系统 xff0c 经过多次测试 xff0c 找到了一个合适的安装步骤安装ONNO 1 13 2 1 安装mininet 需要可以安装 xff09 此步骤安装
  • 基于IDEA分析ONOS源码

    1 安装Java依赖 sudo apt get install software properties common y amp amp sudo add apt repository ppa webupd8team java y amp
  • java.lang.NoSuchFieldError:DEF_CONTENT_CHARSET

    我正在尝试运行 java 程序 但收到以下运行时错误 错误如下所示 Exception in thread main java lang NoSuchFieldError DEF CONTENT CHARSET at org apache

随机推荐

  • Jupyter 更改主题解决 jt 不存在问题

    pip安装之后 xff0c 并不是像传统的那样安装到了envs中的script文件中 而是在C盘的appdata C Users Administrator AppData Roaming Python Python36 Scripts 中
  • 树莓派4 桌面图标显示 No wireless interface found

    树莓派4 桌面图标显示 No wireless interface found 解决方式 先使用有线链接网络 安装wpasupplicant wpagui libengine pkcs11 openssl sudo apt install
  • mysql _外键、实体关系与ER图

    外键约束 概念 A实体的某个字段指向 B实体的主键 则称A实体的那个字段为该实体的外键 一个表里可以有多个外键 span class hljs operator span class hljs keyword drop span span
  • hadoop系列之Configuration类解析

    前言 Configuration是hadoop中五大组件的公用类 xff0c 所以放在了core下 xff0c org apache hadoop conf Configruration 这个类是作业的配置信息类 xff0c 任何作用的配置
  • tty_read和tty_write

    一 tty read 对于tty read这个函数 xff0c 很多标志我也没有弄得太清楚 xff0c 但是问题不大 xff0c 以后有机会在看 我觉得重点是看数据怎么从cdc驱动到通过线路规划到tty xff0c 再从tty到用户空间 标
  • 深度学习 - 模型调优经历(1)

    模型调优经历 xff08 1 xff09 背景遇到问题思路解决办法 背景 样本规模及划分 bullet 二分类问题 xff0c 正负样本 1 1 xff0c 特征数 xff1a 20
  • Android SDK下载安装及配置教程

    让大家很方便的不用翻墙不用代理地就完成Android开发环境的搭建 总结起来 xff0c Android开发环境搭建可以分为以下四步 xff1a 第一步 安装JDK xff1b 略 第二步 安装Eclipse xff1b 略 第三步 下载并
  • (DFS)深度优先搜索算法详解

    背景 DFS 英文全称为 xff08 Depth First Search xff09 xff0c 中文简称深度优先搜索算法 xff0c 其过程为沿着每一个可能的路径向下进行搜索 xff0c 直到不能再深入为止 xff0c 并且每一个节点只
  • ovs-ofctl

    文章目录 64 toc ovs ofctl语法COMMANDSOpenFlow Switch Management Commands OpenFlow Switch Flow Table CommandsGroup Table Comman
  • 【牛客网华为机试】HJ46 截取字符串

    题目 描述 输入一个字符串和一个整数k xff0c 截取字符串的前k个字符并输出 本题输入含有多组数据 输入描述 xff1a 1 输入待截取的字符串 2 输入一个正整数k xff0c 代表截取的长度 输出描述 xff1a 截取后的字符串 示
  • 【牛客网华为机试】HJ50 四则运算

    题目 描述 输入一个表达式 xff08 用字符串表示 xff09 xff0c 求这个表达式的值 保证字符串中的有效字符包括 0 9 43 xff0c 且表达式一定合法 输入描述 xff1a 输入一个算术表达式 输出描述 xff1a 得到计算
  • 【机器学习实战 Task1】 (KNN)k近邻算法的应用

    1 背景 1 1 k近邻算法的概述 xff08 1 xff09 k近邻算法的简介 k 近邻算法是属于一个非常有效且易于掌握的机器学习算法 xff0c 简单的说就是采用测量不同特征值之间距离的方法对数据进行分类的一个算法 xff08 2 xf
  • 【Python量化分析100例】Day1-使用Tushare获取数据

    1 背景 Tushare平台是目前使用python学习量化投资比较好用的而且是免费的一个数据获取平台 主要实现对金融数据从数据采集 清洗加工 到 数据存储的过程 xff0c 能够为金融分析人员提供快速 整洁 和多样的便于分析的数据 xff0
  • python报错:TypeError: Cannot interpret ‘<attribute ‘dtype‘ of ‘numpy.generic‘objects>‘as a data type

    原因 xff1a pandas和matplotlib版本不匹配 方案1 conda更新一下所有包 conda update n base conda 方案2 pip 更新最新版pandas pip install pandas upgrad
  • 【阿里云天池算法挑战赛】零基础入门NLP - 新闻文本分类-Day2-数据读取与数据分析

    一 赛题解析 阿里云天池算法挑战赛 零基础入门NLP 新闻文本分类 Day1 赛题理解 202xxx的博客 CSDN博客 二 数据读取 下载完成数据后推荐使用anaconda xff0c python3 8进行数据读取与模型训练 首先安装需
  • 【阿里云天池算法挑战赛】零基础入门NLP - 新闻文本分类-Day3-基于机器学习的文本分类

    一 赛题解析 阿里云天池算法挑战赛 零基础入门NLP 新闻文本分类 Day1 赛题理解 202xxx的博客 CSDN博客 二 数据读取与数据分析 阿里云天池算法挑战赛 零基础入门NLP 新闻文本分类 Day2 数据读取与数据分析 202xx
  • 【清华大学】2021元宇宙研究报告

    关于元宇宙的详细介绍 xff1b 来源 xff1a 软件定义世界 xff08 SDX xff09
  • MAC OS M1 安装MySQL

    xff08 1 xff09 进入mysql官网下载mysql http www mysql com downloads xff08 2 xff09 选择对应下载版本 xff08 3 xff09 选择直接下载 xff08 4 xff09 下载
  • PX4开源飞控位置控制解析

    位置控制的总体思路为串级PID控制算法 xff0c 内环为对速度的PID控制 xff0c 外环为对位置的比例控制 xff0c 被控对象为四旋翼无人机 xff0c 被控量为四旋翼无人机输出的推力矢量和 xff0c 将测量到的位置与速度进行反馈
  • ONOS意图框架

    1 意图基本概念 Intent是用于描述应用需求的不可变模型对象 xff0c ONOS核心根据其改变网络行为 在最低级别上 xff0c 可以用以下方式描述意图 即意图的组成 xff1a 1 Network Resource xff1a 一组