36

OpenFlow v1.3.5 VS v1.5.1差异分析

 5 years ago
source link: https://www.sdnlab.com/22385.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作者简介:隙中驹,开放网络拥护者及实践者,熟悉传统网络技术及行业解决方案,关注SDN/NFV等ICT融合技术。 email:[email protected]

OpenFlow协议从2009年发布的v1.0到最近版本2015年的v1.5.1,版本在不断演进和迭代中持续对协议进行丰富和完善。

OpenFlow-1.png

图-1 OF版本演进

目前业界实现和使用较多的是v1.3版本,也有部分厂商已宣称全面支持最近的v1.5版本。本文尝试选取v1.3.5和v1.5.1两个版本进行主要差异点对比分析,以期对希望更进一步了解版本差异的读者有所参考。

1)消息类型
v1.5.1中,Asynchronous中增加了三种消息类型,分别是Role-status、Controller-status和Flow-monitor。v1.3.5中Asynchronous的error消息,在v1.5.1的Symmetric消息中重新进行了定义,允许controller向switch发error消息。

OpenFlow-2.png

同时在V1.5.1中已经提供了批量处理报文的bundle机制,并新增了schedule bundle。

OpenFlow-3.png

图-2 schedule bundle procedure

2)Multipart消息格式
v1.5.1中对v1.3.5 multipart的Statistics消息重新进行了定义,如queue statistics响应消息。

OpenFlow-4.png

3)Packet type field
在v1.3.5中,pipeline仅能处理以太类型报文,在v1.5.1中对packet type进行了扩充。

OpenFlow-5.png

同时通过带namespace的header定义,可以支持更多的协议类型匹配。

OpenFlow-6.png

4)Ports
v1.5.1中,OpenFlow对port的分类没有改变,仍是:物理端口,逻辑端口和保留端口。但增加了一个端口操作定义port recirculation。允许发送到逻辑端口的报文经过该端口或其他逻辑口重新返回switch。

5)Table
Table增加egress table处理,用于在出口对报文进行规则控制。

  • v1.3.5 Match处理流程

OpenFlow-7.png

v1.5.1 match处理流程

OpenFlow-8.png

6)OXS TLV
v1.5.1中,引入OpenFlow eXtensible Statistics(OXS)编码格式,用于flow entry统计消息格式定义。

OpenFlow-9.png

OpenFlow-10.png

7)Actions
v1.5.1增加copy filed action用于对packet header或packet register指定长度字段copy,同时将对meter表的操作从instruction类型中移除,增加到action,即 OFPAT_METER。

OpenFlow-11.png

以上内容仅针对v1.3.5和v1.5.1的主要协议差异点进行对比说明,尚未穷尽所有细节变化,更详尽的版本演进点,读者可参考v1.5.1规范的Release Notes进行对比分析。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK