logo资料库

openflow1.3.3 协议描述 英文版.pdf

第1页 / 共164页
第2页 / 共164页
第3页 / 共164页
第4页 / 共164页
第5页 / 共164页
第6页 / 共164页
第7页 / 共164页
第8页 / 共164页
资料共164页,剩余部分请下载后查看
Introduction
Switch Components
Glossary
OpenFlow Ports
OpenFlow Ports
Standard Ports
Physical Ports
Logical Ports
Reserved Ports
Port changes
OpenFlow Tables
Pipeline Processing
Flow Table
Matching
Table-miss
Flow Removal
Group Table
Group Types
Meter Table
Meter Bands
Counters
Instructions
Action Set
Action List
Actions
Default values for fields on push
OpenFlow Channel and Control Channel
OpenFlow Switch Protocol Overview
Controller-to-Switch
Asynchronous
Symmetric
Message Handling
OpenFlow Channel Connections
Connection Setup
Connection Interruption
Encryption
Multiple Controllers
Auxiliary Connections
Flow Table Modification Messages
Group Table Modification Messages
Meter Modification Messages
The OpenFlow Switch Protocol
OpenFlow Header
Padding
Common Structures
Port Structures_读取端口信息时用到
Queue Structures
Flow Match Structures_解析match表时用到
Flow Match Header
Flow Match Field Structures
OXM classes
Flow Matching
Flow Match Field Masking
Flow Match Field Prerequisite
Flow Match Fields
Experimenter Flow Match Fields
Flow Instruction Structures_解析Instruction表时用到
Action Structures
Controller-to-Switch Messages
Handshake
Switch Configuration
Flow Table Configuration
Modify State Messages
Modify Flow Entry Message
Modify Group Entry Message
Port Modification Message
Meter Modification Message
Multipart Messages
Description
Individual Flow Statistics
Aggregate Flow Statistics
Table Statistics
Table Features
Port Statistics
Port Description
Queue Statistics
Group Statistics
Group Description
Group Features
Meter Statistics
Meter Configuration Statistics
Meter Features Statistics
Experimenter Multipart
Queue Configuration Messages
Packet-Out Message
Barrier Message
Role Request Message
Set Asynchronous Configuration Message
Asynchronous Messages
Packet-In Message
Flow Removed Message
Port Status Message
Error Message
Symmetric Messages
Hello
Echo Request
Echo Reply
Experimenter
Header file openflow.h
Release Notes
OpenFlow version 0.2.0
OpenFlow version 0.2.1
OpenFlow version 0.8.0
OpenFlow version 0.8.1
OpenFlow version 0.8.2
OpenFlow version 0.8.9
IP Netmasks
New Physical Port Stats
IN_PORT Virtual Port
Port and Link Status and Configuration
Echo Request/Reply Messages
Vendor Extensions
Explicit Handling of IP Fragments
802.1D Spanning Tree
Modify Actions in Existing Flow Entries
More Flexible Description of Tables
Lookup Count in Tables
Modifying Flags in Port-Mod More Explicit
New Packet-Out Message Format
Hard Timeout for Flow Entries
Reworked initial handshake to support backwards compatibility
Description of Switch Stat
Variable Length and Vendor Actions
VLAN Action Changes
Max Supported Ports Set to 65280
Send Error Message When Flow Not Added Due To Full Tables
Behavior Defined When Controller Connection Lost
ICMP Type and Code Fields Now Matchable
Output Port Filtering for Delete*, Flow Stats and Aggregate Stats
OpenFlow version 0.9
Failover
Emergency Flow Cache
Barrier Command
Match on VLAN Priority Bits
Selective Flow Expirations
Flow Mod Behavior
Flow Expiration Duration
Notification for Flow Deletes
Rewrite DSCP in IP ToS header
Port Enumeration now starts at 1
Other changes to the Specification
OpenFlow version 1.0
Slicing
Flow cookies
User-specifiable datapath description
Match on IP fields in ARP packets
Match on IP ToS/DSCP bits
Querying port stats for individual ports
Improved flow duration resolution in stats/expiry messages
Other changes to the Specification
OpenFlow version 1.1
Multiple Tables
Groups
Tags : MPLS & VLAN
Virtual ports
Controller connection failure
Other changes
OpenFlow version 1.2
Extensible match support
Extensible 'set_field' packet rewriting support
Extensible context expression in 'packet-in'
Extensible Error messages via experimenter error type
IPv6 support added
Simplified behaviour of flow-mod request
Removed packet parsing specification
Controller role change mechanism
Other changes
OpenFlow version 1.3
Refactor capabilities negotiation
More flexible table miss support
IPv6 Extension Header handling support
Per flow meters
Per connection event filtering
Auxiliary connections
MPLS BoS matching
Provider Backbone Bridging tagging
Rework tag order
Tunnel-ID metadata
Cookies in packet-in
Duration for stats
On demand flow counters
Other changes
OpenFlow version 1.3.1
Improved version negotiation
Other changes
OpenFlow version 1.3.2
Changes
Clarifications
OpenFlow version 1.3.3
Changes
Clarifications
Credits
OpenFlow Switch Specification Version 1.3.3 (Protocol version 0x04) October 18, 2013
OpenFlow Switch Specification Version 1.3.3 Disclaimer THIS SPECIFICATION HAS BEEN APPROVED BY THE BOARD OF DIRECTORS OF THE OPEN NETWORKING FOUNDATION ("ONF") BUT WILL NOT BE A FINAL SPECIFICATION UNTIL RATIFIED BY THE MEMBERS PER ONF'S POLICIES AND PROCEDURES. THE CONTENTS OF THIS SPECIFICATION MAY BE CHANGED PRIOR TO PUBLICATION AND SUCH CHANGES MAY INCLUDE THE ADDITION OR DELETION OF NECESSARY CLAIMS OF PATENT AND OTHER INTELLECTUAL PROPERTY RIGHTS. THEREFORE, ONF PROVIDES THIS SPECIFICATION TO YOU ON AN "AS IS" BASIS, AND WITHOUT WARRANTY OF ANY KIND. THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Without limitation, ONF disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information in this specication and to the implementation of this specication, 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 r eproduce this specification f or 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. Contents 1 Introduction 2 Switch Components 3 Glossary 4 OpenFlow Ports 4.1 OpenFlow Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Standard Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Physical Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Logical Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Reserved Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Port changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 OpenFlow Tables 5.1 Pipeline Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Flow Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Table-miss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Flow Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 11 12 12 12 12 13 14 14 14 16 17 18 18 2 © 2013; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.3 5.6 Group Table 5.7.1 Meter Bands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.1 Group Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7 Meter Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10 Action Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11 Action List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12 Actions 5.12.1 Default values for fields on push . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 OpenFlow Channel and Control Channel Symmetric 6.1 OpenFlow Switch Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Controller-to-Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 Asynchronous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Message Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 OpenFlow Channel Connections 6.3.1 Connection Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2 Connection Interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.3 Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4 Multiple Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.5 Auxiliary Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Flow Table Modification Messages 6.5 Group Table Modification Messages 6.6 Meter Modification Messages 7 The OpenFlow Switch Protocol 7.1 OpenFlow Header 7.2 Common Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Port Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Queue Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3 Flow Match Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.1 Flow Match Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.2 Flow Match Field Structures . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.3 OXM classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.4 Flow Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.5 Flow Match Field Masking . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.6 Flow Match Field Prerequisite . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.7 Flow Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.8 Experimenter Flow Match Fields . . . . . . . . . . . . . . . . . . . . . . 7.2.4 Flow Instruction Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.5 Action Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Controller-to-Switch Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Switch Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Handshake 7.3.2 19 19 20 20 21 23 23 24 25 27 28 28 28 29 30 30 31 31 32 33 33 35 37 40 42 43 43 44 45 45 48 49 49 50 51 51 52 53 54 58 59 61 66 66 67 3 © 2013; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.3 7.3.5 Multipart Messages 68 7.3.3 Flow Table Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7.3.4 Modify State Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7.3.4.1 Modify Flow Entry Message . . . . . . . . . . . . . . . . . . . . . . . . 72 7.3.4.2 Modify Group Entry Message . . . . . . . . . . . . . . . . . . . . . . . . 74 7.3.4.3 Port Modification Message . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.3.4.4 Meter Modification Message . . . . . . . . . . . . . . . . . . . . . . . . 77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3.5.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3.5.2 Individual Flow Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.3.5.3 Aggregate Flow Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.3.5.4 Table Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.3.5.5 Table Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.3.5.6 Port Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.3.5.7 Port Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.3.5.8 Queue Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.3.5.9 Group Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3.5.10 Group Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.5.11 Group Features 93 7.3.5.12 Meter Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.3.5.13 Meter Configuration Statistics . . . . . . . . . . . . . . . . . . . . . . . 94 7.3.5.14 Meter Features Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.3.5.15 Experimenter Multipart . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.3.6 Queue Configuration Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.3.7 Packet-Out Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.3.8 Barrier Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.3.9 Role Request Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.3.10 Set Asynchronous Configuration Message . . . . . . . . . . . . . . . . . . . . . . 99 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.1 Packet-In Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.4.2 Flow Removed Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.4.3 Port Status Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.4.4 Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.5 Symmetric Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.5.1 Hello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.5.2 Echo Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.5.3 Echo Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.5.4 Experimenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.4 Asynchronous Messages A Header file openflow.h 110 B Release Notes 137 B.1 OpenFlow version 0.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 B.2 OpenFlow version 0.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 B.3 OpenFlow version 0.8.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 B.4 OpenFlow version 0.8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 B.5 OpenFlow version 0.8.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4 © 2013; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.3 B.6 OpenFlow version 0.8.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 B.6.1 IP Netmasks B.6.2 New Physical Port Stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 B.6.3 IN PORT Virtual Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 B.6.4 Port and Link Status and Configuration . . . . . . . . . . . . . . . . . . . . . . . 140 B.6.5 Echo Request/Reply Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 B.6.6 Vendor Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 B.6.7 Explicit Handling of IP Fragments . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B.6.8 802.1D Spanning Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B.6.9 Modify Actions in Existing Flow Entries . . . . . . . . . . . . . . . . . . . . . . . 142 B.6.10 More Flexible Description of Tables . . . . . . . . . . . . . . . . . . . . . . . . . 142 B.6.11 Lookup Count in Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 B.6.12 Modifying Flags in Port-Mod More Explicit . . . . . . . . . . . . . . . . . . . . . 143 B.6.13 New Packet-Out Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 B.6.14 Hard Timeout for Flow Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 B.6.15 Reworked initial handshake to support backwards compatibility . . . . . . . . . . 144 B.6.16 Description of Switch Stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 B.6.17 Variable Length and Vendor Actions . . . . . . . . . . . . . . . . . . . . . . . . . 145 B.6.18 VLAN Action Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 B.6.19 Max Supported Ports Set to 65280 . . . . . . . . . . . . . . . . . . . . . . . . . . 147 B.6.20 Send Error Message When Flow Not Added Due To Full Tables . . . . . . . . . . 147 B.6.21 Behavior Defined When Controller Connection Lost . . . . . . . . . . . . . . . . 147 B.6.22 ICMP Type and Code Fields Now Matchable . . . . . . . . . . . . . . . . . . . . 148 B.6.23 Output Port Filtering for Delete*, Flow Stats and Aggregate Stats . . . . . . . . 148 B.7 OpenFlow version 0.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 B.7.1 Failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 B.7.2 Emergency Flow Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.7.3 Barrier Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.7.4 Match on VLAN Priority Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.7.5 Selective Flow Expirations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.7.6 Flow Mod Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.7.7 Flow Expiration Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.7.8 Notification for Flow Deletes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 B.7.9 Rewrite DSCP in IP ToS header . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 B.7.10 Port Enumeration now starts at 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 150 B.7.11 Other changes to the Specification . . . . . . . . . . . . . . . . . . . . . . . . . . 150 B.8 OpenFlow version 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 B.8.1 Slicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 B.8.2 Flow cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 B.8.3 User-specifiable datapath description . . . . . . . . . . . . . . . . . . . . . . . . . 151 B.8.4 Match on IP fields in ARP packets . . . . . . . . . . . . . . . . . . . . . . . . . . 151 B.8.5 Match on IP ToS/DSCP bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 B.8.6 Querying port stats for individual ports . . . . . . . . . . . . . . . . . . . . . . . 151 B.8.7 Improved flow duration resolution in stats/expiry messages . . . . . . . . . . . . 151 B.8.8 Other changes to the Specification . . . . . . . . . . . . . . . . . . . . . . . . . . 151 B.9 OpenFlow version 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 B.9.1 Multiple Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 5 © 2013; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.3 B.9.2 Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 B.9.3 Tags : MPLS & VLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 B.9.4 Virtual ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 B.9.5 Controller connection failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 B.9.6 Other changes B.10 OpenFlow version 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 B.10.1 Extensible match support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 B.10.2 Extensible ’set field’ packet rewriting support . . . . . . . . . . . . . . . . . . . . 155 B.10.3 Extensible context expression in ’packet-in’ . . . . . . . . . . . . . . . . . . . . . 155 B.10.4 Extensible Error messages via experimenter error type . . . . . . . . . . . . . . . 155 B.10.5 IPv6 support added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 B.10.6 Simplified behaviour of flow-mod request . . . . . . . . . . . . . . . . . . . . . . 156 B.10.7 Removed packet parsing specification . . . . . . . . . . . . . . . . . . . . . . . . 156 B.10.8 Controller role change mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 156 B.10.9 Other changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 B.11 OpenFlow version 1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 B.11.1 Refactor capabilities negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 B.11.2 More flexible table miss support B.11.3 IPv6 Extension Header handling support . . . . . . . . . . . . . . . . . . . . . . 158 B.11.4 Per flow meters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 B.11.5 Per connection event filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 B.11.6 Auxiliary connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.11.7 MPLS BoS matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.11.8 Provider Backbone Bridging tagging . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.11.9 Rework tag order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.11.10Tunnel-ID metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.11.11Cookies in packet-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.11.12Duration for stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.11.13On demand flow counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.11.14Other changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.12 OpenFlow version 1.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.12.1 Improved version negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 B.12.2 Other changes B.13 OpenFlow version 1.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 B.13.1 Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 B.13.2 Clarifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 B.14 OpenFlow version 1.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 B.14.1 Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 B.14.2 Clarifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 C Credits List of Tables 164 1 Main components of a flow entry in a flow table. 2 Main components of a group entry in the group table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 19 6 © 2013; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.3 3 Main components of a meter entry in the meter table. 4 Main components of a meter band in a meter entry. 5 6 7 8 9 10 OXM mask and value. 11 Required match fields. 12 Match fields details. 13 Match combinations for VLAN tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List of counters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Push/pop tag actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Change-TTL actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Existing fields that may be copied into new fields on a push action. . . . . . . . . . . . . OXM TLV header fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List of Figures 1 Main components of an OpenFlow switch. . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Packet flow through the processing pipeline. . . . . . . . . . . . . . . . . . . . . . . . . . Flowchart detailing packet flow through an OpenFlow switch. . . . . . . . . . . . . . . . 3 4 OXM TLV header layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 21 22 26 27 27 50 52 55 57 57 8 15 17 50 7 © 2013; The Open Networking Foundation
OpenFlow Switch Specification Version 1.3.3 1 Introduction This document describes the requirements of an OpenFlow Logical Switch. Additional information describing OpenFlow and Software Defined Networking is available on the Open Networking Foundation website (https://www.opennetworking.org/). This specification covers the components and the basic functions of the switch, and the OpenFlow switch protocol to manage an OpenFlow switch from a remote OpenFlow controller. Figure 1: Main components of an OpenFlow switch. 2 Switch Components An OpenFlow Logical Switch consists of one or more flow tables and a group table, which perform packet lookups and forwarding, and one or more OpenFlow channel to an external controller (Figure 1). The switch communicates with the controller and the controller manages the switch via the OpenFlow switch protocol. Using the OpenFlow switch protocol, the controller can add, update, and delete flow entries in flow tables, both reactively (in response to packets) and proactively. Each flow table in the switch contains a set of flow entries; each flow entry consists of match fields, counters, and a set of instructions to apply to matching packets (see 5.2). Matching starts at the first flow table and may continue to additional flow tables of the pipeline (see 5.1). Flow entries match packets in priority order, with the first matching entry in each table being used (see 5.3). If a matching entry is found, the instructions associated with the specific flow entry are executed. If no match is found in a flow table, the outcome depends on configuration of the table-miss flow entry: for example, the packet may be forwarded to the controllers over the OpenFlow channel, dropped, or may continue to the next flow table (see 5.4). 8 © 2013; The Open Networking Foundation ControllerFlow TableFlow TableOpenFlow Channel...PipelineOpenFlow SwitchOpenFlow ProtocolGroup Table
分享到:
收藏