+ All Categories
Home > Documents > OpenFlow Switch Specification - Open Networking · PDF fileOpenFlow Switch Specification...

OpenFlow Switch Specification - Open Networking · PDF fileOpenFlow Switch Specification...

Date post: 29-Mar-2018
Category:
Upload: vokhanh
View: 230 times
Download: 5 times
Share this document with a friend
283
OpenFlow Switch Specification Version 1.5.1 ( Protocol version 0x06 ) March 26, 2015 ONF TS-025 Copyright © 2015; Open Networking Foundation
Transcript
  • OpenFlow Switch SpecificationVersion 1.5.1 ( Protocol version 0x06 )

    March 26, 2015

    ONF TS-025

    Copyright 2015; Open Networking Foundation

  • OpenFlow Switch Specification Version 1.5.1

    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 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 herein.No license, express or implied, by estoppel or otherwise, to any Open Networking Foundation orOpen Networking Foundation member intellectual property rights is granted herein.Except that a license is hereby granted by ONF to copy and reproduce this specification forinternal use only.Contact the Open Networking Foundation at http://www.opennetworking.org for informationon 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 ONFS MEMBERS AND THEREFORE SUBJECT TO THE RANDZ COMMITMENT OF THE MEMBERS.

    2 2015; The Open Networking Foundation

    http://www.opennetworking.org

  • OpenFlow Switch Specification Version 1.5.1

    Contents1 Introduction 11

    2 Switch Components 11

    3 Glossary 12

    4 OpenFlow Ports 154.1 OpenFlow Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.2 Standard Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.3 Physical Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.4 Logical Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.5 Reserved Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.6 Port changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.7 Port recirculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    5 OpenFlow Tables 185.1 Pipeline Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    5.1.1 Pipeline Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.2 Flow Tables and flow entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.3 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.4 Table-miss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.5 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.6 Action Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.7 List of Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.8 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    5.8.1 Default values for fields on push . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.9 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.10 Group Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    5.10.1 Group Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.10.2 Group Liveness Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    5.11 Meter Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.11.1 Meter Bands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    5.12 Ingress and egress processing differences . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    6 OpenFlow Channel and Control Channel 386.1 OpenFlow Switch Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    6.1.1 Controller-to-Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.1.2 Asynchronous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.1.3 Symmetric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    6.2 Message Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.3 OpenFlow Channel Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    6.3.1 Connection URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.3.2 Alternate connection transports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.3.3 Connection Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.3.4 Connection Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.3.5 Connection Interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    3 2015; The Open Networking Foundation

  • OpenFlow Switch Specification Version 1.5.1

    6.3.6 Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.3.7 Multiple Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.3.8 Auxiliary Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    6.4 Flow Table Modification Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.5 Flow Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.6 Flow Table Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.7 Group Table Modification Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.8 Meter Modification Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.9 Bundle Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    6.9.1 Bundle overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.9.2 Bundle example usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.9.3 Bundle error processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.9.4 Bundle atomic modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.9.5 Bundle parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.9.6 Scheduled Bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    6.9.6.1 The Scheduled Bundle Procedure . . . . . . . . . . . . . . . . . . . . . 606.9.6.2 Discarding Scheduled Bundles . . . . . . . . . . . . . . . . . . . . . . . 616.9.6.3 Timekeeping and Synchronization . . . . . . . . . . . . . . . . . . . . . 616.9.6.4 Scheduling Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    7 The OpenFlow Switch Protocol 627.1 Protocol basic format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    7.1.1 OpenFlow Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637.1.2 Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.1.3 Reserved and unsupported values and bit positions . . . . . . . . . . . . . . . . . 65

    7.2 Common Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667.2.1 Port Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    7.2.1.1 Port Description Structures . . . . . . . . . . . . . . . . . . . . . . . . . 667.2.1.2 Port Description Properties . . . . . . . . . . . . . . . . . . . . . . . . . 68

    7.2.2 Header Types Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.2.3 Flow Match Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    7.2.3.1 Flow Match Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.2.3.2 Flow Match Field Structures . . . . . . . . . . . . . . . . . . . . . . . . 757.2.3.3 OXM classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757.2.3.4 Flow Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767.2.3.5 Flow Match Field Masking . . . . . . . . . . . . . . . . . . . . . . . . . 777.2.3.6 Flow Match Field Prerequisite . . . . . . . . . . . . . . . . . . . . . . . 777.2.3.7 Flow Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787.2.3.8 Header Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.2.3.9 Pipeline Match Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837.2.3.10 Packet registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.2.3.11 Packet Type Match Field . . . . . . . . . . . . . . . . . . . . . . . . . . 857.2.3.12 Experimenter Flow Match Fields . . . . . . . . . . . . . . . . . . . . . . 86

    7.2.4 Flow Stats Str


Recommended