Openflow Switch Specification
Total Page:16
File Type:pdf, Size:1020Kb
OpenFlow Switch Specification Version 1.3.1 (Wire Protocol 0x04) September 6, 2012 ONF TS-007 OpenFlow Switch Specification Version 1.3.1 (Wire Protocol 0x04) ONF Document Type: OpenFlow Spec ONF Document Name: openflow-spec-v1.3.1 Disclaimer 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 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 https://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, REASONABLE 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 SPECIFICATION ARE OWNED OR LICENSABLE BY ONF'S MEMBERS AND THEREFORE SUBJECT TO THE RANDZ COMMITMENT OF THE MEMBERS. © Open Networking Foundation OpenFlow Switch Specification Version 1.3.1 Contents 1 Introduction 8 2 Switch Components 8 3 Glossary 9 4 OpenFlow Ports 10 4.1 OpenFlow Ports . 10 4.2 Standard Ports . 11 4.3 Physical Ports . 11 4.4 Logical Ports . 11 4.5 Reserved Ports . 11 5 OpenFlow Tables 12 5.1 Pipeline Processing . 13 5.2 Flow Table . 14 5.3 Matching . 15 5.4 Table-miss . 16 5.5 Flow Removal . 16 5.6 Group Table . 17 5.6.1 Group Types . 17 5.7 Meter Table . 18 5.7.1 Meter Bands . 18 5.8 Counters . 19 5.9 Instructions . 19 5.10 Action Set . 21 5.11 Action List . 22 5.12 Actions . 22 5.12.1 Default values for fields on push . 24 6 OpenFlow Channel 25 6.1 OpenFlow Protocol Overview . 25 6.1.1 Controller-to-Switch . 25 6.1.2 Asynchronous . 26 6.1.3 Symmetric . 27 6.2 Message Handling . 27 6.3 OpenFlow Channel Connections . 28 6.3.1 Connection Setup . 29 6.3.2 Connection Interruption . 29 6.3.3 Encryption . 29 6.3.4 Multiple Controllers . 30 6.3.5 Auxiliary Connections . 32 6.4 Flow Table Modification Messages . 33 6.5 Group Table Modification Messages . 36 6.6 Meter Modification Messages . 38 3 © 2012; The Open Networking Foundation OpenFlow Switch Specification Version 1.3.1 A The OpenFlow Protocol 39 A.1 OpenFlow Header . 39 A.2 Common Structures . 40 A.2.1 Port Structures . 40 A.2.2 Queue Structures . 43 A.2.3 Flow Match Structures . 45 A.2.4 Flow Instruction Structures . 54 A.2.5 Action Structures . 56 A.3 Controller-to-Switch Messages . 61 A.3.1 Handshake . 61 A.3.2 Switch Configuration . 62 A.3.3 Flow Table Configuration . 63 A.3.4 Modify State Messages . 64 A.3.5 Multipart Messages . 72 A.3.6 Queue Configuration Messages . 88 A.3.7 Packet-Out Message . 89 A.3.8 Barrier Message . 90 A.3.9 Role Request Message . 90 A.3.10 Set Asynchronous Configuration Message . 91 A.4 Asynchronous Messages . 92 A.4.1 Packet-In Message . 92 A.4.2 Flow Removed Message . 93 A.4.3 Port Status Message . 94 A.4.4 Error Message . 95 A.5 Symmetric Messages . 101 A.5.1 Hello . 101 A.5.2 Echo Request . 102 A.5.3 Echo Reply . 102 A.5.4 Experimenter . 102 B Release Notes 103 B.1 OpenFlow version 0.2.0 . 103 B.2 OpenFlow version 0.2.1 . 103 B.3 OpenFlow version 0.8.0 . 103 B.4 OpenFlow version 0.8.1 . 104 B.5 OpenFlow version 0.8.2 . 104 B.6 OpenFlow version 0.8.9 . 104 B.6.1 IP Netmasks . 104 B.6.2 New Physical Port Stats . 105 B.6.3 IN PORT Virtual Port . 105 B.6.4 Port and Link Status and Configuration . 106 B.6.5 Echo Request/Reply Messages . 106 B.6.6 Vendor Extensions . 106 B.6.7 Explicit Handling of IP Fragments . 107 B.6.8 802.1D Spanning Tree . 107 B.6.9 Modify Actions in Existing Flow Entries . 108 B.6.10 More Flexible Description of Tables . 108 4 © 2012; The Open Networking Foundation OpenFlow Switch Specification Version 1.3.1 B.6.11 Lookup Count in Tables . 108 B.6.12 Modifying Flags in Port-Mod More Explicit . 109 B.6.13 New Packet-Out Message Format . 109 B.6.14.