Time-based Updates in OpenFlow: A Proposed Extension to the OpenFlow Protocol



Similar documents
OpenFlow 1.4. (Changes compared to 1.3 OpenDaylight Perspec>ve) - Abhijit Kumbhare

Using R EVERSE PTP to Distribute Time in Software Defined Networks

Limitations of Current Networking Architecture OpenFlow Architecture

Comparisons of SDN OpenFlow Controllers over EstiNet: Ryu vs. NOX

Auto-Configuration of SDN Switches in SDN/Non-SDN Hybrid Network

COMPSCI 314: SDN: Software Defined Networking

Information- Centric Networks. Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics

OpenFlow Notifications Framework OpenFlow Management

VIDEO STREAMING OVER SOFTWARE DEFINED NETWORKS WITH SERVER LOAD BALANCING. Selin Yilmaz, A. Murat Tekalp, Bige D. Unluturk

Implementation of Address Learning/Packet Forwarding, Firewall and Load Balancing in Floodlight Controller for SDN Network Management

Carrier-grade Network Management Extensions to the SDN Framework

A Study on Software Defined Networking

OpenFlow: Enabling Innovation in Campus Networks

SDN. What's Software Defined Networking? Angelo Capossele

OpenFlow Switch Specification Version ( Protocol version 0x04 )

POX CONTROLLER PERFORMANCE FOR OPENFLOW NETWORKS. Selçuk Yazar, Erdem Uçar POX CONTROLLER ЗА OPENFLOW ПЛАТФОРМА. Селчук Язар, Ердем Учар

IxNetwork OpenFlow Solution

Software Defined Networking

Autonomicity Design in OpenFlow Based Software Defined Networking

Software Defined Networking (SDN) - Open Flow

OpenFlow Switch Specification

Formal Specification and Programming for SDN

Layer 2 Openflow Authors: Wenle Yang; Ruobin Zheng, Hesham ElBakoury Version: 1.0 HUAWEI TECHNOLOGIES CO., LTD.

On QoS Support to Ofelia and OpenFlow

Survey: Software Defined Networks with Emphasis on Network Monitoring

OpenFlow - the key standard of Software-Defined Networks. Dmitry Orekhov, Epam Systems

OpenFlow and Onix. OpenFlow: Enabling Innovation in Campus Networks. The Problem. We also want. How to run experiments in campus networks?

Getting traffic statistics from network devices in an SDN environment using OpenFlow

OpenFlow Switch Specification Version ( Protocol version 0x06 )

Internet Architecture and Philosophy

libnetvirt: the network virtualization library

A Testbed for research and development of SDN applications using OpenFlow

Software Defined Networking for Telecom Operators: Architecture and Applications

Software Defined Networking

OpenFlow based Load Balancing for Fat-Tree Networks with Multipath Support

An OpenFlow Extension for the OMNeT++ INET Framework

Research on Errors of Utilized Bandwidth Measured by NetFlow

SOFTWARE-DEFINED NETWORKING AND OPENFLOW

/15/$ IEEE

OpenFlow Switch Specification

A Method for Load Balancing based on Software- Defined Network

Combined Smart Sleeping and Power Scaling for Energy Efficiency in Green Data Center Networks

Dynamic Security Traversal in OpenFlow Networks with QoS Guarantee

Xperience of Programmable Network with OpenFlow

COAP: A Software-Defined Approach for Managing Residential Wireless Gateways

NDNFlow: Software-Defined Named Data Networking

Learning Concept Hierarchy from YANG for Management of Software-Defined Networking based on Theory of Concept Lattices

Outline. Institute of Computer and Communication Network Engineering. Institute of Computer and Communication Network Engineering

Accurate Anomaly Detection using Adaptive Monitoring and Fast Switching in SDN

OF 1.3 Testing and Challenges

Guide to TCP/IP, Third Edition. Chapter 3: Data Link and Network Layer TCP/IP Protocols

The State of OpenFlow: Advice for Those Considering SDN. Steve Wallace Executive Director, InCNTRE SDN Lab Indiana University

LIN (Local Interconnect Network):

Exploiting Stateful Inspection of Network Security in Reconfigurable Hardware

Software Defined Networking (SDN)

An Architecture for the Self-management of Lambda-Connections in Hybrid Networks

On the effect of forwarding table size on SDN network utilization

Ethernet (LAN switching)

Software Defined Network Application in Hospital

A304a: Understanding User Needs for Field Management Stations Part 1 Object Definitions for Signal System Masters (SSM) Based on NTCIP 1210 Standard

OpenFlow Switch Specification. Version (Wire Protocol 0x04) April 25, 2013

LineSwitch: Efficiently Managing Switch Flow in Software-Defined Networking while Effectively Tackling DoS Attacks

Steroid OpenFlow Service: Seamless Network Service Delivery in Software Defined Networks

Realizing Packet-Optical Integration with SDN and OpenFlow 1.1 Extensions

Content Based Traffic Engineering in Software Defined Information Centric Networks

RARP: Reverse Address Resolution Protocol

Relationship between SMP, ASON, GMPLS and SDN

Multiple Service Load-Balancing with OpenFlow

ON THE IMPLEMENTATION OF ADAPTIVE FLOW MEASUREMENT IN THE SDN-ENABLED NETWORK: A PROTOTYPE

Software Defined Networking Architecture

Poisoning Network Visibility in Software-Defined Networks: New Attacks and Countermeasures Sungmin Hong, Lei Xu, Haopei Wang, Guofei Gu

Software Defined Networking and OpenFlow: a Concise Review

VXLAN: Scaling Data Center Capacity. White Paper

New protocol concept for wireless MIDI connections via Bluetooth

Security improvement in IoT based on Software Defined Networking (SDN)

IP - The Internet Protocol

Open Source Network: Software-Defined Networking (SDN) and OpenFlow

The ISP Column A monthly column on all things Internet

FlexNetwork Architecture Delivers Higher Speed, Lower Downtime With HP IRF Technology. August 2011

B4: Experience with a Globally-Deployed Software Defined WAN TO APPEAR IN SIGCOMM 13

Precision Time Protocol (PTP/IEEE-1588)

Cisco IOS Flexible NetFlow Technology

AN OVERVIEW OF QUALITY OF SERVICE COMPUTER NETWORK

OpenFlow: Load Balancing in enterprise networks using Floodlight Controller

SDN Software Defined Networks

An Overview of OpenFlow

DESIGN AND ANALYSIS OF TECHNIQUES FOR MAPPING VIRTUAL NETWORKS TO SOFTWARE- DEFINED NETWORK SUBSTRATES

Research on Video Traffic Control Technology Based on SDN. Ziyan Lin

SDN AND SECURITY: Why Take Over the Hosts When You Can Take Over the Network

Ethernet. Ethernet. Network Devices

Question: 3 When using Application Intelligence, Server Time may be defined as.

L4-L7 Service Function Chaining Solution Architecture

Understanding OpenFlow

In-band Network Telemetry (INT) Mukesh Hira, VMware Naga Katta, Princeton University

ulobal: Enabling In-Network Load Balancing for Arbitrary Internet Services on SDN

How To Configure Voice Vlan On An Ip Phone

REDUCING PACKET OVERHEAD IN MOBILE IPV6

Online Measurement of Large Traffic Aggregates on Commodity Switches

Software Defined Networking What is it, how does it work, and what is it good for?

Secure SCTP against DoS Attacks in Wireless Internet

Transcription:

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 1 Time-based Updates in : A Proposed Extension to the Protocol Tal Mizrahi, Yoram Moses Department of Electrical Engineering Technion Israel Institute of Technology dew@tx.technion.ac.il, moses@ee.technion.ac.il July 7, 2013 Abstract Software Defined Networking (SDN) defines a network architecture in which the control plane is managed by a logically centralized controller, and thus configuration updates occur frequently. We have recently introduced an approach that uses time-based configuration updates, allowing to simplify complex update procedures and to minimize transient effects caused by configuration changes. This paper proposes an extension to the Protocol that allows time-triggered configuration updates. 1 Introduction Software Defined Networking (SDN) defines a clear distinction between the data plane and the control plane; on the data plane, forwarding decisions are taken locally at each switch in the network, while the control plane is managed by a logically-centralized controller, overcoming the need for complicated distributed control protocols and providing network operators with powerful and efficient tools to control the data plane. The centralized approach in SDN introduces various challenges in terms of performance and consistency. The controller is required to routinely perform frequent network configuration updates. Thus, update procedures must be as simple as possible, avoiding complex and stateful processes in the controller. Moreover, the controller must take care to minimize network anomalies during update procedures, such as packet drops or misroutes caused by temporary inconsistencies. Time-based configuration [1] can be a useful tool that enables an entire class of coordinated and scheduled configuration procedures. Time-triggered configuration allows coordinated network updates in multiple devices; a controller can invoke a coordinated configuration change by sending update messages to multiple switches with the same scheduled execution time. A controller can also invoke a time-based sequence The Israel Pollak academic chair at Technion; this work was supported in part by the ISF grant 1520/11.

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 2 of updates by sending n update messages with n different update times, T 1,T 2,...,T n, determining the order in which the corresponding operations are executed. This paper introduces time-based updates in [2, 3]. Configuration in is performed on two different planes; the control plane is managed by a controller using the wire protocol [3], whereas the management plane is managed by a configuration point using the Management and Configuration Protocol (OF CONFIG) [4]. The latter is typically used for initializing basic configuration in the network, whereas the former is used for routine and frequent configuration updates. This paper defines an extension to the wire protocol that allows the use of time-triggered configuration updates. This extension is implemented using a Type/Length/Value (TLV) field that can be included in any of the existing messages. Since the OF CONFIG Protocol uses NETCONF [5] messages, the NETCONF time capability we defined in [6] can be used to provide similar functionality in OF CONFIG. The rest of this paper is organized as follows. Section 2 describes a few basic scenarios of time-based configuration updates. In Section 3 we present a high-level overview of our proposal for time-triggered updates in. In Section 4 we present a proposal for an extension that allows generic TLVs, and finally Section 5 introduces the time extension. 2 Time-based Update Scenarios This section presents three basic scenarios of time-based updates in. Example 1. Consider a network with four switches (Figure 1). Flow A is forwarded through path 1, and we consider a scenario in which the controller updates the route from path 1 to path 2. Switch 2 path 1 Switch 3 Flow A Flow A Switch 1 path 2 Switch 4 Figure 1: Rerouting a Flow

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 3 Without using time: The controller performs two steps; first the controller configures the flow table in Switch 4 to forward traffic from Flow A through path 2, and then it configures Switch 1 with the new path. Obviously if Switch 1 is updated before Switch 4, traffic may temporarily be mis-routed or dropped. Thus, the controller must wait for an acknowledgment from Switch 4 about completing the update before sending the update message to Switch 1. Time-based Update: The controller sends two time-based update messages to Switches 1 and 4. Switch 4 is scheduled to modify its configuration at time T, and Switch 1 at T +. The time-based update guarantees the update order while simplifying the controller s procedure. Example 2. In this example two flows, A and B, are forwarded through a common path that has a bandwidth of 10 Gbps, and thus the combined bandwidth of the two flows cannot exceed 10 Gbps. A metering mechanism is used in the n switches to limit the rates of Flow A and Flow B to 3 Gbps and 7 Gbps, respectively. The goal in this scenario is to reconfigure the metering tables in Switches 1,2,...,n so that the rate limits of flows A and B are 8 Gbps and 2 Gbps, respectively. Configuration 1 r A = 3 Gbps r B = 7 Gbps Configuration 2 r A = 8 Gbps r B = 2 Gbps Flow A Flow B r A r A r A Switch 1 Switch 2 Switch n r B r B r B Figure 2: Metering Update Without using time: The controller reconfigures Switches 1,2,...,n with the new configuration. Since the n updates do not occur simultaneously, this procedure yields a transition period during which some of the switches operate according to Configuration 1, while other switches operate according to Configuration 2. During this transition period Flow A is effectively limited to 3 Gbps and Flow B is effectively limited to 2 Gbps, reducing the total bandwidth of the two flows to 5 Gbps. Time-based Update: The controller configures the n switches to update the rate limits to the new values at time T. After a short transition period, the n switches are configured with Configuration 2. The length of the transition period is a function of the clock accuracy of the switches, and of the time it takes the rate limiters to adapt to the new bandwidth.

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 4 Example 3. In this example, the controller implements the Spanning Tree Protocol (STP) by directly configuring the switches ports. 1 The network is configured according to spanning tree 1 (Figure 3), and then the controller reconfigures the network to spanning tree 2. spanning tree 1 spanning tree 2 Switch 2 link a Switch 3 Switch 1 link c Switch 4 Figure 3: Spanning Tree Update Without using time: The controller updates the network by a series of updates to the four switches. These updates essentially disable link a, and enable link c. The order in which the updates are performed is cardinal; if link c is enabled first a temporary network loop is created. On the other hand, disabling link a first temporarily breaks the connectivity between two subsets of the switches, and more importantly may also disconnect the controller from some of the switches. Time-based Update: The controller invokes the configuration change, such that all updates are scheduled at time T. The switches update their configuration at time T, and after a short transition period the network is configured with the new spanning tree. The short transition period has two causes: the switch clocks may not be perfectly synchronized, and packets that are en-route during the configuration change may be dropped or forwarded incorrectly. The time-based update in this case reduces the transition period, and prevents the potential problem of disconnecting the controller from some of the switches. 1 The spec explicitly specifies that the controller can implement the spanning tree protocol using the port flags. Version 1.0 of the spec [7] also includes a comment that this approach interacts poorly with in-band control, but this comment was removed in more recent versions of the spec.

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 5 3 Using Time in Overview The extension defined in this document allows to add a time field to any existing Open- Flow message. Controller-to-switch messages: When a message includes a time field, this field indicates the time at which the switch is scheduled to perform the operation specified in the message. For example (see Figure 4): if an OFPT_PORT_MOD message is sent with a time field (T s ), it specifies the time at which the switch should perform the port attribute changes specified in the message. controller Message (with T s ) Time switch T s Switch executes operation at T s. Figure 4: Controller to Switch Message Switch-to-controller message: When a message includes a time field, it indicates the time of the event or operation that triggered this message. For example (see Figure 5), if an OFPT_FLOW_REMOVED message includes a time field (T e ), it specifies the time at which the corresponding flow was removed from the switch s flow table. controller Time Message (with Te) switch T e Switch executes operation at T e Figure 5: Switch to Controller Message

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 6 Request/reply handshakes: When the controller sends a request message, it may include the GET_TIME flag, indicating that the corresponding reply should include the time field. For example (see Figure 6), if the controller sends an OFPT_MULTIPART_REQUEST with a request for flow statistics and with the GET_TIME flag, the switch includes the time field (T e ) in its reply, specifying when the statistics were sampled. controller Time REQUEST message (with GET_TIME) REPLY message (with Te) switch T e Switch executes operation at T e Figure 6: Controller to Switch Message with GET TIME The Time TLV The proposed extension allows to add the time field to all existing and future messages by using a time TLV. Type/Length/Value (TLV) fields allow a flexible method to add information with potentially variable or unknown format and length. Currently, [3] does not support generic TLVs. Although future versions of the protocol may support generic TLVs, the approach proposed here enables using TLVs in all message types. Hence, we define the time TLV in two steps: first, in Section 4 we define a generic mechanism that allows to add TLVs to all existing messages, and second, in Section 5 we define the Time TLV. Synchronization Aspects The time capability defined in this document requires switches to maintain clocks. It is assumed that clocks are synchronized by a method that is outside the scope of this document. This document does not define any requirements pertaining to the degree of accuracy of performing scheduled operations. Note that two factors affect how accurately a switch can perform a scheduled operation; one factor is the accuracy of the clock synchronization method used to synchronize the switches, and the second factor is the switch s ability to execute real-time configuration changes, which greatly depends on how it is implemented. Typical networking devices are implemented by a combination of hardware and software. While the execution time of a hardware module can

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 7 typically be predicted with a high level of accuracy, the execution time of a software module may be variable and hard to predict. A configuration update typically involves the switch s software, thus affecting how accurately the operation can be scheduled. Since a switch does not perform configuration changes instantaneously, the processing time of required operations should not be overlooked; in the context of the extension described in this paper the scheduled time and execution time always refer to the completion time of the relevant operation. 4 Generic Experimenter TLV Extension This document describes an ONF extension to version 1.3.x / 1.4 that allows a generic experimenter TLV-based extension to all existing message types. This section is also submitted as an extension proposal to the ONF Extensibility Working Group. How It Works Type/Length/Value (TLV) fields allow a flexible method to add information with potentially variable or unknown format and length. Thus, TLVs can provide a useful tool for experimentation. This extension allows to add TLV-based extensions to any existing and future Open- Flow message. This is done by encapsulating the standard message in the Experimenter TLV Message defined in this document, as shown in Figure 7. The experimenter TLV message format is illustrated in Figure 7. The message is comprised of the Experimenter message header, followed by one or more TLV fields, and finally the encapsulated message, which can be any type of message. The experimenter TLV approach is a generic mechanism that can add extensions to existing messages without changing their format. Experimenter ID The experimenter ID of this extension is: TBD-TLV-Extension-ID Experimenter TLV Message Experimenter TLV Header This extension defines the following experimenter types : /* Message types */ enum onf_exp_type { /* Experimenter TLV Message. */ ONF_TLV_EXTENSION = 0x3210, The experimenter TLV header is based on ofp_experimenter_header, as follows:

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 8 ofp_header onf_experimenter_tlv_header Experimenter TLV Header TLVs (one or more) Experimenter TLV Message ofp_header Encapsulated Message Encapsulated Message Figure 7: Experimenter TLV Message Format /* Experimenter TLV header */ struct onf_experimenter_tlv_header { struct ofp_header header; /* Type OFPT_EXPERIMENTER. */ uint32_t experimenter; /* TBD-TLV-Extension-ID */ uint32_t exp_type; /* ONF_TLV_EXTENSION */ uint16_t tlv_length; /* Total length of the (one or more) TLV fields */ uint8_t pad[6]; /* 64-bit alignment */ OFP_ASSERT(sizeof(struct ofp_experimenter_header) == 24); The experimenter TLV header is followed by one or more TLV. TLV Fields The TLV fields defined in this document have the following format: /* TLV Format. */ struct onf_experimenter_tlv { uint16_t type; /* Defines the type of this TLV. */ uint16_t length; uint8_t value[0]; /* value. */ /* Length of the TLV in bytes including the type and length fields. MUST be a multiple of 8 to guarantee 64-bit alignment.*/ Experimenter TLV Parsing The following procedure highlights the main steps in Experimenter TLV message parsing:

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 9 1. Upon receiving an message, it is identified as an Experimenter TLV message if it matches the following 3 criteria: The type field in the header matches OFPT_EXPERIMENTER. The experimenter field matches TBD-TLV-Extension-ID. The exp_type field matches ONF_TLV_EXTENSION. 2. The parser processes each TLV according to its type and length fields. The tlv_length field determines the total length of the TLV fields. 3. The parser processes the encapsulated message. The parser should verify the following sanity checks: The length in the header is equal to tlv_length plus the length in the encapsulated message header. The tlv_length is equal to the sum of all length fields in the packet s TLVs. 5 The Time TLV Extension The time TLV is an ONF extension for version 1.3.X / 1.4 that enables timebased updates in. This extension allows controllers to invoke configuration updates at scheduled times, and allows switches to attach timestamps to the responses they send to the controller. This section is also submitted as an extension proposal to the ONF Extensibility Working Group. Experimenter ID The experimenter ID of this extension is: TBD-Time-Extension-ID The Time TLV Detailed Description When the controller sends a message to a switch it may incorporate a time TLV, as described below. A switch that sends a message to a controller may incorporate a time TLV in the message. This extension uses the Experimenter TLV message type defined in Section 4. The message format is illustrated in Figure 8, where the TLV section includes at least the time TLV and possibly other TLVs as well.

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 10 Experimenter TLV Header TLV (one or more) Encapsulated Message Figure 8: Experimenter TLV Message Format This extension defines the Time TLV, as follows: /* Time TLV Format. */ struct onf_time_tlv { uint16_t type; /* ONF_TIME_TLV_TYPE. */ uint16_t length; /* 24 bytes.*/ uint64_t seconds; uint32_t nanoseconds; uint32_t flags; uint8_t pad[4]; /* 64-bit alignment */ This extension defines the following TLV type: /* TLV type */ enum onf_tlv_type { /* Time TLV type. */ ONF_TIME_TLV_TYPE = 0xFA57, Time Format: The time format defined in this extension is similar to the one defined in [8]. It consists of two sub-fields; a seconds field, representing the integer portion of time in seconds, and a nanoseconds field, representing the fractional portion of time in nanoseconds. As defined in [8], time is measured according to the International Atomic Time (TAI) timescale. The epoch is defined as 1 January 1970 00:00:00 TAI. Flags: The flags field is a bitmap that has the following structure: /* Time TLV flags. */ enum onf_time_flags { INCLUDE_TIME = 1 << 0; /* Indicates that this TLV includes a valid time field. */ GET_TIME = 1 << 1; /* Indicates that the REPLY message should include the execution time. */

CCIT Report #835, July 2013, EE Pub No. 1792, Technion, Israel 11 INCLUDE_TIME: specifies whether the current time TLV includes a valid time field. When this flag is enabled, it indicates that the seconds and the nanoseconds fields include a valid time. The INCLUDE_TIME flag may be disabled when the GET_TIME flag is enabled. GET_TIME: this is relevant only to REQUEST message types. When this flag is enabled it indicates that the corresponding REPLY message must incorporate a valid time, indicating the execution time of the corresponding operation. Note: when a message includes the time TLV at least one of the two flags, INCLUDE_TIME and GET_TIME, must be enabled. References [1] T. Mizrahi and Y. Moses, Time-based updates in software defined networks, in the second workshop on hot topics in software defined networks (HotSDN), to appear, 2013. [2] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner, Openflow: enabling innovation in campus networks, SIGCOMM Comput. Commun. Rev., vol. 38, no. 2, pp. 69 74, Mar. 2008. [3] Open Networking Foundation, Openflow switch specification, Version 1.3.2, 2013. [4], Management and Configuration Protocol (OF-Config 1.1), Version 1.1, 2012. [5] R. Enns, M. Bjorklund, J. Schoenwaelder, and A. Bierman, Network configuration protocol (NETCONF), IETF, RFC 6241, 2011. [6] T. Mizrahi and Y. Moses, Time Capability in NETCONF, IETF, draft-mmnetconf-time-capability, work in progress, 2013. [7] Open Networking Foundation, Openflow switch specification, Version 1.0.0, 2009. [8] IEEE TC 9, 1588 IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems Version 2, 2008.