Transcription of OpenFlow Switch Specification
1 OpenFlow Switch SpecificationVersion ( Protocol version 0x06 )March 26, 2015 ONF TS-025 Copyright 2015; Open Networking FoundationOpenFlow Switch SpecificationVersion 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 ARISINGOUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Without limitation, ONF dis-claims all liability, including liability for infringement of any proprietary rights, relating to useof information in this specification and to the implementation of this specification, and ONFdisclaims all liability for cost of procurement of substitute goods or services, lost profits, loss ofuse, loss of data or any incidental, consequential, direct, indirect, or special damages, whetherunder contract, tort, warranty or otherwise, arising in any way out of use or reliance upon thisspecification or any information license, express or implied, by estoppel or otherwise.
2 To any Open Networking Foundation orOpen Networking Foundation member intellectual property rights is granted that a license is hereby granted by ONF to copy and reproduce this specification forinternal use the Open Networking Foundation informationon specification licensing through membership marks and brands contained herein are the property of their respective 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 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion Introduction112 Switch Components113 Glossary124 OpenFlow OpenFlow Ports.
3 Standard Ports .. Physical Ports .. Logical Ports .. Reserved Ports .. Port changes .. Port recirculation ..185 OpenFlow Pipeline Processing .. Consistency .. Flow Tables and flow entries .. Matching .. Table-miss .. Instructions .. Action Set .. List of Actions .. Actions .. values for fields on push .. Counters .. Group Table .. Group Types .. Group Liveness Monitoring .. Meter Table .. Meter Bands .. Ingress and egress processing differences ..376 OpenFlow Channel and Control OpenFlow Switch Protocol Overview .. Message Handling .. OpenFlow Channel Connections .. URI .. connection transports .. Setup .. Maintenance .. Interruption ..453 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion .. Controllers .. Connections .. Flow Table Modification Messages .. Flow Removal .. Flow Table Synchronisation.
4 Group Table Modification Messages .. Meter Modification Messages .. Bundle Messages .. overview .. example usage .. error processing .. atomic modifications .. parallelism .. Bundles .. Scheduled Bundle Procedure .. Scheduled Bundles .. and Synchronization .. Tolerance ..627 The OpenFlow Switch Protocol basic format .. Header .. and unsupported values and bit positions .. Common Structures .. Structures .. Description Structures .. Description Properties .. Types Structure .. Match Structures .. Match Header .. Match Field Structures .. classes .. Matching .. Match Field Masking .. Match Field Prerequisite .. Match Fields .. Match Fields .. Match Fields .. Packet registers .. Packet Type Match Field .. Experimenter Flow Match Fields .. Stats Structures .. Stats Header .. Stat Field Structures .. classes ..884 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion Stat Fields.
5 Flow Stat Fields .. Instruction Structures .. Structures .. Action Structures .. Action Structures .. Action Structure .. Action Structure .. Actions Structures .. and Pop Actions Structures .. Action Structure .. Action Structure .. Action Structure .. Status Structure .. Structure .. Controller-to- Switch Messages .. Configuration .. Table Configuration .. State Messages .. Flow Table Message .. Flow Entry Message .. Group Entry Message .. Modification Message .. Modification Message .. Messages .. Flow Descriptions .. Flow Statistics .. Flow Statistics .. Statistics .. Description .. Statistics .. Descriptions .. Statistics .. Group Description .. Group Features .. Meter Statistics .. Meter Descriptions .. Meter Features .. Controller Status Multipart .. Table Statistics .. Table Description.
6 Table Features .. Flow Monitoring .. Bundle Features Multipart .. Experimenter Multipart .. 1625 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion Message .. Message .. Request Message .. messages .. control messages .. Add message .. flags .. properties .. Format .. and opening a bundle .. messages to a bundle .. a bundle .. Bundles .. Discarding Bundles .. Other bundle error conditions .. Set Asynchronous Configuration Message .. Asynchronous Messages .. Message .. Removed Message .. Status Message .. Role Status Message .. Status Message .. Forward Message .. Status Message .. Symmetric Messages .. Request .. Reply .. Message .. Failed error codes .. Request error codes .. Action error codes .. Instruction error codes .. Match error codes.
7 Failed error codes .. Failed error codes .. Failed error codes .. Failed error codes .. Queue-op Failed error codes .. Switch Config Failed error codes .. Role Request Failed error codes .. Meter-mod Failed error codes .. Table-features Failed error codes .. Bad Property error codes .. Async Config Failed error codes .. Flow-monitor Failed error codes .. Bundle Failed error codes .. 1986 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion Experimenter Error Message .. Message .. 200A Header file Release OpenFlow version .. OpenFlow version .. OpenFlow version .. OpenFlow version .. OpenFlow version .. OpenFlow version .. IP Netmasks .. New Physical Port Stats .. INPORT Virtual Port .. Port and Link Status and Configuration .. Echo Request/Reply Messages.
8 Vendor Extensions .. Explicit Handling of IP Fragments .. 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 .. Failover .. Emergency Flow Cache .. Barrier Command .. Match on VLAN Priority Bits .. Selective Flow Expirations.
9 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 .. 2557 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion OpenFlow version .. 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 .. Multiple Tables .. Groups .. Tags : MPLS & VLAN .. Virtual ports .. Controller connection failure .. Other changes .. OpenFlow version .. Extensible match support .. Extensible setfield packet rewriting support.
10 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 .. 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 .. metadata .. in packet-in .. for stats .. demand flow counters .. changes .. OpenFlow version .. Improved version negotiation .. Other changes .. OpenFlow version .. Changes .. Clarifications .. 2678 2015; The Open Networking FoundationOpenFlow Switch SpecificationVersion OpenFlow version.