没有合适的资源?快使用搜索试试~ 我知道了~
openflow13协议
需积分: 27 4 下载量 112 浏览量
2018-08-06
07:52:55
上传
评论
收藏 1.58MB PDF 举报
温馨提示
随着互联网的发展,今天的互联网业务对互联网提出了越来越高的传输质量要求,如何修改互联网以满足新业务的需求,出现了改良派和改革派两种不同的做法。改良派认为可以在原有的基础设施上添加新的协议来解决问题,改革派则认为必须推倒一切重来。改革派提出这样的两个问题:“就目前掌握的知识,如果我从一个全新的开始设计互联网,我会怎么做”和“15年后的互联网应该是什么样子”。为此,改革派们开始了一系列新的设计方案,OpenFlow就是改革派提出的一种新型网络交换模型,与此相应的,他们还成立了OpenFlow交换机论坛(The OpenFlow Switch Consortium,后文简称OpenFlow论坛)。
资源推荐
资源详情
资源评论
OpenFlow Switch Specification
Version 1.3.5 ( Protocol version 0x04 )
March 26, 2015
ONF TS-023
Copyright © 2015; Open Networking Foundation
OpenFlow Switch Specification Version 1.3.5
Disclaimer
THIS SPECIFICATION IS PROVIDED ”AS IS” WITH NO WARRANTIES WHATSOEVER,
INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FIT-
NESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING
OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Without limitation, ONF dis-
claims all liability, including liability for infringement of any proprietary rights, relating to use
of information in this specification and to the implementation of this specification, and ONF
disclaims all liability for cost of procurement of substitute goods or services, lost profits, loss of
use, loss of data or any incidental, consequential, direct, indirect, or special damages, whether
under contract, tort, warranty or otherwise, arising in any way out of use or reliance upon this
specification or any information herein.
No license, express or implied, by estoppel or otherwise, to any Open Networking Foundation or
Open Networking Foundation member intellectual property rights is granted herein.
Except that a license is hereby granted by ONF to copy and reproduce this specification for
internal use only.
Contact the Open Networking Foundation at http://www.opennetworking.org for information
on specification licensing through membership agreements.
Any marks and brands contained herein are the property of their respective owners.
WITHOUT LIMITING THE DISCLAIMER ABOVE, THIS SPECIFICATION OF THE OPEN
NETWORKING FOUNDATION (”ONF”) IS SUBJECT TO THE ROYALTY FREE, REA-
SONABLE AND NONDISCRIMINATORY (”RANDZ”) LICENSING COMMITMENTS OF
THE MEMBERS OF ONF PURSUANT TO THE ONF INTELLECTUAL PROPERTY
RIGHTS POLICY. ONF DOES NOT WARRANT THAT ALL NECESSARY CLAIMS OF
PATENT WHICH MAY BE IMPLICATED BY THE IMPLEMENTATION OF THIS SPEC-
IFICATION ARE OWNED OR LICENSABLE BY ONF’S MEMBERS AND THEREFORE
SUBJECT TO THE RANDZ COMMITMENT OF THE MEMBERS.
2 © 2015; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.5
Contents
1 Introduction 9
2 Switch Components 9
3 Glossary 10
4 OpenFlow Ports 13
4.1 OpenFlow Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Standard Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Physical Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Logical Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5 Reserved Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6 Port changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 OpenFlow Tables 15
5.1 Pipeline Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.1 Pipeline Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Flow Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.4 Table-miss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.5 Flow Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.6 Group Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.6.1 Group Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.7 Meter Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.7.1 Meter Bands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.8 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.9 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.10 Action Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.11 List of Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.12 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.12.1 Default values for fields on push . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6 OpenFlow Channel and Control Channel 31
6.1 OpenFlow Switch Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.1.1 Controller-to-Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.1.2 Asynchronous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.1.3 Symmetric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2 Message Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.3 OpenFlow Channel Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.3.1 Connection URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.3.2 Alternate connection transports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3.3 Connection Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.3.4 Connection Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.3.5 Connection Interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.3.6 Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.3.7 Multiple Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3 © 2015; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.5
6.3.8 Auxiliary Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4 Flow Table Modification Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.5 Group Table Modification Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.6 Meter Modification Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7 The OpenFlow Switch Protocol 49
7.1 Protocol basic format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.1.1 OpenFlow Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.1.2 Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.1.3 Reserved and unsupported values and bit positions . . . . . . . . . . . . . . . . . 52
7.2 Common Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.1 Port Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.2.2 Queue Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2.3 Flow Match Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.3.1 Flow Match Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.3.2 Flow Match Field Structures . . . . . . . . . . . . . . . . . . . . . . . . 58
7.2.3.3 OXM classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.2.3.4 Flow Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.2.3.5 Flow Match Field Masking . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.2.3.6 Flow Match Field Prerequisite . . . . . . . . . . . . . . . . . . . . . . . 61
7.2.3.7 Flow Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.2.3.8 Header Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2.3.9 Pipeline Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.2.3.10 Experimenter Flow Match Fields . . . . . . . . . . . . . . . . . . . . . . 67
7.2.4 Flow Instruction Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.2.5 Action Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.3 Controller-to-Switch Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.3.1 Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.3.2 Switch Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.3.3 Flow Table Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.3.4 Modify State Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.3.4.1 Modify Flow Entry Message . . . . . . . . . . . . . . . . . . . . . . . . 79
7.3.4.2 Modify Group Entry Message . . . . . . . . . . . . . . . . . . . . . . . . 82
7.3.4.3 Port Modification Message . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.3.4.4 Meter Modification Message . . . . . . . . . . . . . . . . . . . . . . . . 84
7.3.5 Multipart Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7.3.5.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.3.5.2 Individual Flow Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.3.5.3 Aggregate Flow Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.3.5.4 Table Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.5.5 Table Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.5.6 Port Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.3.5.7 Port Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.3.5.8 Queue Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.3.5.9 Group Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.3.5.10 Group Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.3.5.11 Group Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4 © 2015; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.5
7.3.5.12 Meter Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.3.5.13 Meter Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.3.5.14 Meter Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.3.5.15 Experimenter Multipart . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.3.6 Queue Configuration Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.3.7 Packet-Out Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.3.8 Barrier Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.3.9 Role Request Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.3.10 Set Asynchronous Configuration Message . . . . . . . . . . . . . . . . . . . . . . 109
7.4 Asynchronous Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.4.1 Packet-In Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.4.2 Flow Removed Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.3 Port Status Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4.4 Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.5 Symmetric Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.5.1 Hello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.5.2 Echo Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.5.3 Echo Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.5.4 Experimenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
A Header file openflow.h 122
B Release Notes 148
B.1 OpenFlow version 0.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
B.2 OpenFlow version 0.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
B.3 OpenFlow version 0.8.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
B.4 OpenFlow version 0.8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.5 OpenFlow version 0.8.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.6 OpenFlow version 0.8.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.6.1 IP Netmasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.6.2 New Physical Port Stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
B.6.3 IN PORT Virtual Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
B.6.4 Port and Link Status and Configuration . . . . . . . . . . . . . . . . . . . . . . . 151
B.6.5 Echo Request/Reply Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
B.6.6 Vendor Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
B.6.7 Explicit Handling of IP Fragments . . . . . . . . . . . . . . . . . . . . . . . . . . 152
B.6.8 802.1D Spanning Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
B.6.9 Modify Actions in Existing Flow Entries . . . . . . . . . . . . . . . . . . . . . . . 153
B.6.10 More Flexible Description of Tables . . . . . . . . . . . . . . . . . . . . . . . . . 153
B.6.11 Lookup Count in Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
B.6.12 Modifying Flags in Port-Mod More Explicit . . . . . . . . . . . . . . . . . . . . . 154
B.6.13 New Packet-Out Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
B.6.14 Hard Timeout for Flow Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
B.6.15 Reworked initial handshake to support backwards compatibility . . . . . . . . . . 156
B.6.16 Description of Switch Stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
B.6.17 Variable Length and Vendor Actions . . . . . . . . . . . . . . . . . . . . . . . . . 156
B.6.18 VLAN Action Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5 © 2015; The Open Networking Foundation
剩余176页未读,继续阅读
资源评论
diaodan
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功