消息类型

OpenFlow 的消息共分为三类:

  1. Controller-to-Switch

    顾名思义,此类消息是由控制器主动发出
  • Features 用于获取交换机特性
  • Configuration 用于配置 OpenFlow 交换机
  • Modify-State (用来修改交换机状态修改流表)
  • Read-States 用来获取交换机状态
  • Send-Packet 用来发送数据包
  • Barrier 阻塞消息
  1. Asynchronous

    异步消息,此类消息由交换机主动发出
  • Packet-in 用来告知控制器交换机接收到数据包
  • Flow-Removed 用来告知控制器交换机的流表被删除
  • Port-Status y用来告知控制器交换机端口状态更新
  • Error 用来告知控制器交换机发生错误
  1. Symmetric

    对称消息,控制器和交换机都可以发起
  • Hello 用来建立 OpenFLow 连接
  • Echo 用来确认控制器与交换机之间的连接状态
  • Vendor 厂商自定义消息

消息格式

OpenFlow 协议数据包由 Header 和 Message 两部分组成。

OpenFlow Header的结构:

struct ofp_header {
uint8_t version; /*OpenFlow 协议的版本*/
uint8_t type; /*消息类型*/
uint16_t length; /*整个数据包的长度*/
uint32_t xid; /*这个数据包的标识id*/
}

OpenFlow Message 的结构与具体的消息类型有关:

OpenFlow 消息的更多相关文章

  1. OpenFlow消息

    ☞Openflow消息总共分为三大类:   1.Controller‐to‐Switch        控制器至交换机消息此类消息由控制器主动发出  Features 用来获取交换机特性  Con ...

  2. ovs处理openflow消息的流程

    OVS处理各个openflow消息的详细代码在 ofproto/ofproto.c 中: static enum ofperr handle_openflow__(struct ofconn *ofc ...

  3. openflow控制器和交换机之间的消息

    openflow控制器和交换机之间的消息 消息格式 openflow消息由64bit,8个字节组成 Openflow协议数据包由Openflow Header和Openflow Message两部分组 ...

  4. OpenFlow Flow-Mod消息学习

    任务内容 1. 熟悉Flow-Mod消息触发场景. 2. 掌握Flow-Mod消息格式和常用字段含义. 实验原理 OpenFlow 协议支持3种消息类型:Controller-to-Switch(控制 ...

  5. OpenFlow PacketOut消息机制

    OpenFlow PacketOut消息机制 前言 由于最近实验的进行,遇到一个比较棘手的问题,就是利用控制器主动发送packet消息的问题,期间遇到一些问题,后来在RYU群中得到群友左木的帮助成功解 ...

  6. Floodlight中 处理packetin消息的顺序(1)

    当Controller和SW建立连接之后,就能够处理来自SW的各种OF msg.当接收到 packetin 消息之后,会将其分发给各个监听了这个OFMessage的listeners,所以假设我们要设 ...

  7. Openflow协议详解

    http://www.h3c.com/cn/d_201811/1131080_30005_0.htm# 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 .在SDN网络架构中,控制平 ...

  8. [转]SDN与OpenFlow技术简介

    http://blog.163.com/s_zhchluo/blog/static/15014708201411144727961/ 本文是2012年文章,对Openflow的发展.规范.应用和SDN ...

  9. SDN原理 OpenFlow协议 -4

    通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...

随机推荐

  1. nginx 反向代理到目录

    upstream yg{ server 127.0.0.x; } server { listen 80; server_name www.hikaru.pw; location / { rewrite ...

  2. 一次性搞定Session

    相信很多人遇到过同一个浏览器会出现Session覆盖问题.今天主要针对Session覆盖问题来看看Session是如何工作的.那么先看一张简单的图说明一下 上面的图大致的说明Session工作简单创建 ...

  3. python环境通过selenium实现自动化web登陆及终端邀请

    自动化主要的就是识别对象,可以在网上搜到各种各样的方法,自行百度.下面仅附上一个简单的例子. 环境搭建参考如下链接: https://www.cnblogs.com/hepeilinnow/p/101 ...

  4. Pairs Forming LCM LightOJ - 1236 素因子分解

    Find the result of the following code: long long pairsFormLCM( int n ) {    long long res = 0;    fo ...

  5. jupyter通过notedown使用markdown

    0 Problem 最近看了下李沐老师的mxnet教程,在使用jupyter的时候打开教程发现全是markdown源文,没有展示markdown格式的文字. 1 Reason 源代码是用markdow ...

  6. spark的数据结构 RDD——DataFrame——DataSet区别

    转载自:http://blog.csdn.net/wo334499/article/details/51689549 RDD 优点: 编译时类型安全 编译时就能检查出类型错误 面向对象的编程风格 直接 ...

  7. JS 操作 checkbox(cc角色管理等)

    1.获取选中的权限的个数 var size=$("input[name='privileges']:checked").size();

  8. OA_1界面

    <%@ page language="java" contentType="text/html;charset=GB18030" pageEncoding ...

  9. 陈爽 软件工程导论week2.1

    软件工程导论week2.1 第一章概论问题:1.程序=算法+数据结构  软件=程序+软件工程软件工程的目标是创造足够好的软件,可以从用户满意度,可靠性,软件流程的质量,可维护性等方面判断,但是我们没有 ...

  10. QCryptographicHash实现哈希值计算,支持多种算法

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QCryptographicHash实现哈希值计算,支持多种算法     本文地址:http: ...