作者简介:隙中驹,开放网络拥护者及实践者,熟悉传统网络技术及行业解决方案,关注SDN/NFV等ICT融合技术。 email:51283237@qq.com
OpenFlow协议从2009年发布的v1.0到最近版本2015年的v1.5.1,版本在不断演进和迭代中持续对协议进行丰富和完善。
目前业界实现和使用较多的是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消息。
同时在V1.5.1中已经提供了批量处理报文的bundle机制,并新增了schedule bundle。
2)Multipart消息格式
v1.5.1中对v1.3.5 multipart的Statistics消息重新进行了定义,如queue statistics响应消息。
3)Packet type field
在v1.3.5中,pipeline仅能处理以太类型报文,在v1.5.1中对packet type进行了扩充。
同时通过带namespace的header定义,可以支持更多的协议类型匹配。
4)Ports
v1.5.1中,OpenFlow对port的分类没有改变,仍是:物理端口,逻辑端口和保留端口。但增加了一个端口操作定义port recirculation。允许发送到逻辑端口的报文经过该端口或其他逻辑口重新返回switch。
5)Table
Table增加egress table处理,用于在出口对报文进行规则控制。
6)OXS TLV
v1.5.1中,引入OpenFlow eXtensible Statistics(OXS)编码格式,用于flow entry统计消息格式定义。
7)Actions
v1.5.1增加copy filed action用于对packet header或packet register指定长度字段copy,同时将对meter表的操作从instruction类型中移除,增加到action,即 OFPAT_METER。
以上内容仅针对v1.3.5和v1.5.1的主要协议差异点进行对比说明,尚未穷尽所有细节变化,更详尽的版本演进点,读者可参考v1.5.1规范的Release Notes进行对比分析。