整理的最完整的OFPT_STATS_REQUEST && REPLY消息-部分转载(含有1.0与1.3的对比)
来源:互联网 发布:安泰管理学院知乎 编辑:程序博客网 时间:2024/06/05 11:52
OFPT_STATS_REQUEST && REPLY
以上的消息如hallo等都是通信过程中必须的部分。还有一些数据包是为了某些目的而设计的如OFPT_STATS_REQUEST && REPLY可以获得统计信息,主要用于请求数据或从交换机状态信息我们可以利用统计信息做:负载平衡,流量监控等基于流量的操作。(在1.3中请求被放在一个或多个OFPT_MULTIPART_REQUEST 消息中,交换机用一个或多个OFPT_MULTIPART_REPLY 消息进行响应。复合消息用于编码请求或应答那些可能携带大量数据而且不能装进单个 OpenFlow 消息(仅限于 64 kb)的情况。)
消息格式:
OFPT_STATS_REQUEST(12B)
version
type
length
xid
type
flags
body[0]
OFPT_STATS_REPLY(12B)
version
type
length
xid
type
flags
body[0]
OFPT_STATS_REQUEST类型有很多,回复的类型也很多。
Type:在请求和响应中,type字段指所传递信息的种类,并决定如何解析 body字段:
OFPMP_DESC= 0:整体统计信息。请求交换机版本信息,制造商家等信息。
request body结构体是空。replaybody回复结构体ofp_desc_stats
OFPMP_FLOW = 1:OFPST_DESC单流请求信息,request body结构体是:ofp_flow_stats_request.回复bodyreplay: ofp_flow_stats
OFPMP_AGGREGATE = 2:OFPST_FLOW多流请求信息,request body结构体是ofp_aggregate_stats_request.回复body结构体ofp_aggregate_stats_replay
OFPMP_TABLE =3:OFPST_AGGREGATE,流表请求信息:request为空,回复是流表数组ofp_table_stats
FPMP_PORT_STATS =4:OFPST_TABLE物理端口信息请求。fp_port_stats_request.
ofp_port_stats.
OFPMP_QUEUE=5:队列请求信息:供应商扩展
6:vendor请求信息,有时候没有定义
在1.3中
OFPMP_GROUP=6 组计数器描述
OFPMP_GROUP_DESC=7组描述
OFPMP_GROUP_FEATURES=8。。。13组特征呢个描述。。。
详细的
OFPST_DESC(整体统计信息)
请求BODY:无
回复BODY:ofp_desc_stats
制造商
硬件描述
软件描述
序列号
可读的数据通道描述
OFPST_FLOW(单流统计信息)
请求BODY: ofp_flow_stats_request.
要读的TABLE_ID(来自ofp_table_stats (流表))ofptt_all:所有表
Table_id 表示一个将读取的一个流表的索引值
对齐到32bit
回复BODY:ofp_flow_stats
这个项的长度
流的来源表ID
流已生成的时间
流存在的时间超过上面的时间的时间。
流表项的优先权
超时时间 2个(老化时间)
流里包的数目
流里的字节数
OFPST_AGGREGATE(多流统计信息)-多个流表项的总计信息
请求BODY: ofp_aggregate_stats_request
要读取的表的ID
回复BODY: ofp_aggregate_stats_replay
流中的数据包
流的字节数
流的数量
OFPST_TABLE(表统计信息)
请求BODY:无
回复BODY:ofp_table_stats
表的标识符,低编号的表先
通配符
最大支持的流表项
活跃流表项的数量
被查找表的数量
匹配表的数量
在交换机支持的每一个表中,数组都有一个结构。流表项是以数据包通过表的顺序返回
的。
OFPST_PORT(端口统计信息)
请求BODY:fp_port_stats_request.
必须制定端口
在1.3中port_no字段有选择的过滤统计请求到给定的端口。若访问所有端口的统计,port_no必须设置成 OFPP_ANY
回复BODY:ofp_port_stats.
收到包的数量
已传送包的数量
收到的字节数
传送的字节数
被rx丢弃的包数
被tx丢弃的包数
接收到错误的包数
帧调整的错误数量
在RX溢出的数据包数
CRC错误数
冲突数量
OFPST_QUEUE(队列统计信息)
请求BODY:
回复BODY:
(1)controller分别向sw1、sw2发送stats_request消息(stats_type=0)
(2)sw1应答,发送stats_reply消息
(3)aggregate_stats_request(stats_type=2)
(4)aggregate_stats_reply
结构:header(type=17)/reply_header()/flow_stats/wildcards/match/flow_stats_data
作用:携带流的统计信息,如通过的数据包个数,字节数。
ofp_flow_stats(body[4:8])里面会有的table_id字段表明该流存放在哪一个流表里。
flow_stats_data里面有packet_count和byte_count是最有价值的字段,流量统计就是由这两个字段提供的信息。如想统计某条流的速率:前后两个reply的字节数相减除以duration_time只差就可以求得速率,由速率我们可以做很多基于流量的app,如流量监控,负载均衡等等。
- 整理的最完整的OFPT_STATS_REQUEST && REPLY消息-部分转载(含有1.0与1.3的对比)
- Mybatis generator最完整的配置文件(转载)
- 数字签名与消息验证码的对比
- 最完整的htaccess文件用法收集整理
- dll的创建和使用的整理【部分转载】
- 最优化理论与算法部分整理-常见的参数搜索算法
- 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(转载)
- 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(转载)
- 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(转载)
- 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(转载)
- 最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(转载)
- vc 消息与事件的区别 转载
- 原型模式的思考与学习(部分转载)
- JAVA接口与抽象类的区别(部分转载)
- Hibernate - DetachedCriteria 的完整用法(转载)
- 最全的Android开发资源整理--进阶必备(转载)
- mysql语句与sql语句的部分对比
- 基于request/reply模式的MQ例子
- 2-线程的调度
- 魅族应用上传应用市场空包签名的问题,快捷解决方案!
- 视图
- 基于深度相机的三维重建技术
- Linux下安装MySQL-5.7
- 整理的最完整的OFPT_STATS_REQUEST && REPLY消息-部分转载(含有1.0与1.3的对比)
- flume使用
- C语言交换两个变量的值
- Android 案例---SQLite数据库的学习
- Linux——ubuntu硬盘分区
- caffe训练加BN层的网络时loss为87.3365的问题解决办法
- myeclipse struts2环境配置(入门教程)
- 将查询信息整合成一个实体类
- java部分基础类型及时间格式的数据格式相互转换方法整理