• Nie Znaleziono Wyników

PERFORMANCE EVALUATION OF OPENFLOW DEVICES.

N/A
N/A
Protected

Academic year: 2021

Share "PERFORMANCE EVALUATION OF OPENFLOW DEVICES."

Copied!
6
0
0

Pełen tekst

(1)

Performance Evaluation of OpenFlow Devices

Mariusz ˙Zal, Janusz Kleban Poznan University of Technology Faculty of Electronic and Telecommunications Chair of Communication and Computer Networks Email: mariusz.zal@put.poznan.pl, janusz.kleban@put.poznan.pl

Abstract—The paper presents an environment for performance evaluation of OpenFlow capable devices. This environment was configured for performance evaluation of hardware employing the HAL (Hardware Abstraction Layer), proposed within the ALIEN FP7 project. The HAL layer implemented at non-OpenFlow devices convert them to non-OpenFlow capable devices. The proposed testing environment is based on OFLOPS appli-cation. In this paper experiment scenarios as well as selected results of tests obtained for Open VSwitch are presented.

Index Terms - OpenFlow, Software Defined Networking, OFLOPS.

I. INTRODUCTION

The complexity of current IP networks is growing very fast. It is difficult to configure the network according to predefined policies, as well as to reconfigure it to respond to faults, load and changes. Each individual network device must be configured by network operators separately using vendor specific software. Two planes are implemented in networking devices and are responsible for traffic forwarding, namely a control plane and data plane. The control plane decides how to deal with network traffic. The data plane forwards traffic according to the control plane decisions. Implementa-tion of these two planes in each network node reduces the flexibility of networks and its evolution. This state of affairs may be changed by Software Defined Networking (SDN) technology [1]. The SDN separates the network’s control logic from routers and switches and employs a logically centralized controller simplifying policy enforcement, network configuration and evolution. The routers and switches become simple forwarding devices with implemented data plane rules. A well-defined application programming interface is needed to allow the SDN controller to exercise direct control on the data plane elements. The well known example of such an API is OpenFlow.

OpenFlow is an open standard managed by the Open Networking Foundation. It separates the control plane im-plemented in an OpenFlow controller and the data plane performed by an OpenFlow switches. The behavior of the OpenFlow switch may be modified through a well-defined ”forwarding instruction set”. According to instructions sent by the controller, the OpenFlow switch can behave like a router, switch, firewall, load balancer, traffic shaper etc. The OpenFlow protocol specifies a set of instructions that can be used by the controller to program the data plane of network devices.

This paper presents performance tests which can be used to evaluate how fast selected actions can be performed by an OpenFlow switch implemented on different hardware plat-form. These tests were prepared for evaluation of an OpenFlow switch implementation within the ALIEN project. The ALIEN project aimed at delivering innovative Network abstraction layer to connect non-OpenFlow capable equipment (called also ”alien hardware”) to OpenFlow environment. It was achieved by providing the Hardware Abstraction Layer (HAL) for non-OpenFlow capable network devices. ”Alien hardware” is any type of network device that does not support natively an OpenFlow. The following equipment was considered in the ALIEN project: NetFPGA cards, EZChip NP-3 network processors (in EZappliance platform), Cavium OCTEON Plus AMC Network processor (module in an ATCA systems and DELL switch), optical switches, GEPON OLT and ONU units, and DOCSIS hardware.

The performance tests are designed in order to show that ALIEN platforms with implemented HAL have the perfor-mance comparable with existing commercial and open source OpenFlow switch implementation. We want to show, that ALIEN platforms are capable to act as native OpenFlow devices.

The paper is organized as follows: Section II presents main ideas of OpenFlow switch, Section III describes testing environment, and Section IV includes description of tests scenarios. Section V presents selected results obtained for Open VSwitch. The paper is concluded in Section VI.

II. OPENFLOW SWITCH

The main components of an OpenFlow switch are shown in Figure 1 [2]. It consists of one or more flow tables and an OpenFlow channel to an external controller. The flow tables are used to manage flows and perform packet lookups, and forwarding. The OpenFlow channel is used by the controller to manage the switch via the OpenFlow protocol. Using this communication channel the controller can add, update, and delete flow entries in flow tables. Each flow table contains a set of flow entries with match fields, counters, and a set of instructions to apply to matching packets. Matching starts at the first flow table and continues to additional flow tables until a matching entry is found. In the case of matching, the instructions associated with the matching entry are executed. If no match is found in the flow table the packet may be forwarded to the controller over the OpenFlow channel, may

(2)

2SHQ)ORZ 3URWRFRO 2SHQ)ORZ6ZLWFK &RQWUROOHU )ORZ 7DEOH )ORZ 7DEOH *URXS 7DEOH 2SHQ)ORZ &KDQQHO



3LSHOLQH

Fig. 1. Main components of the OpenFlow switch

be dropped or may continue to the next flow table. Actions performed on packets and pipeline processing are defined by a set of instructions associated with each flow entry. Packet forwarding, packet modification and group table processing are described by actions. Pipeline processing instructions define how subsequent tables process packets and what kind of information, in the form of metadata, is sent between tables. If a next table is not specified by the instruction set associated with a matching flow entry the table pipeline processing stops and the actions in the pre-defined action set of the packet are executed.

Packets may be forwarded to a physical or logical port. The logical port may be defined by the switch or by the OpenFlow switch specification. Ports defined by the OpenFlow switch specification are called reserved ports. These ports may specify generic forwarding actions such as: sending to the controller, flooding, or forwarding using non-OpenFlow methods. The switch-defined logical ports may specify link aggregation groups, tunnels or loopback interfaces.

Additional processing is specified by a group table. The group table consists of group entries and represents sets of actions for flooding, as well as more complex forwarding semantics (e.g. multipath, fast reroute, and link aggregation). Each group entry contains a list of actions buckets with specific semantics dependent on group type. The actions in one or more action buckets are applied to packets sent to the group.

OpenFlow ports are the logical network interfaces made by an OpenFlow switch for OpenFlow processing. Using these ports OpenFlow switches connect logically to each other. The number of OpenFlow ports may not be identical to the number of network interfaces provided by the switch hardware. Some physical network interfaces may be disabled for OpenFlow, and some additional OpenFlow ports may be defined by the switch. OpenFlow packets arrive to an ingress port, next they are processed by the OpenFlow pipeline, and finally they may be forwarded to an output port. An OpenFlow switch must support three types of OpenFlow ports: physical ports, logical

7DEOH 7DEOH 7DEOHQ 3DFNHW LQJUHVVSRUW PHWDGDWD $FWLRQ 6HW  $FWLRQ 6HW 3DFNHW 3DFNHW ,Q 3DFNHW2XW 2SHQ)ORZ6ZLWFK ,QJUHVV SRUW $FWLRQ 6HW ^` ([HFXWH $FWLRQ 6HW

Fig. 2. Packet flow through the processing pipeline

ports and reserved ports.

OpenFlow switches may be classified into two types:

OpenFlow-only, and OpenFlow-hybrid. OpenFlow-only

switches support only OpenFlow operations, and all packets are processed by the OpenFlow pipeline. OpenFlow-hybrid switches support both OpenFlow operations and normal Ethernet (or any Layer 2 techniques) operations. These switches must classify traffic and route it to either the OpenFlow pipeline or the normal pipeline. In this kind of switch packets may go from the OpenFlow pipeline to the normal pipeline through reserved ports. The main components of the OpenFlow pipeline are shown in Figure 2 [2].

The OpenFlow pipeline processing defines interactions be-tween packets and flow tables containing multiple flow entries. One or more flow tables may be implemented in the OpenFlow switch. The pipeline processing is greatly simplified when only a single flow table is used. In the case of multiple flow tables they are sequentially numbered, starting at 0. During pipeline processing the OpenFlow packet is first matched against flow entries of flow table 0. Depending on the outcome of the match in the first table, other flow tables may be used. If the flow entry is found, the instruction set included in that flow entry is executed. The packet may be directed to another flow table, where the same process is repeated again. If the packet is not directed to another flow entry, pipeline processing stops at this table. Next, the packet is processed according to the associated action set and forwarded. Unmatched packets are: drooped, passed to another table or to the controller over the control channel.

Each flow table contains flow entries. Each flow table entry consists of the following fields: Match Fields, Priority, Counters, Instructions, Timeouts, and Cookie:

Match Fields - to match against packets. These fields comprise the ingress port and packet headers, and op-tionally metadata specified by a previous table.

Priority - matching precedence of the flow entry. Counters - are updated when packets are matched. Instructions - to modify the action set or pipeline

pro-cessing.

Timeouts - maximum amount of time or idle time before flow is expired by the switch.

Cookie - opaque data value chosen by the controller. May be used by the controller to filter flow statistics, flow modification and flow deletion.

A flow table entry is identified by its match fields and priority: the match fields and priority taken together identify a unique flow entry in the flow table. The flow entry that

(3)

wildcards all fields (all fields omitted) and has priority equal to 0 is called the table-miss flow entry.

Flow entries may be removed from flow tables in two ways: at the request of the controller or by the switch flow expiry mechanism. This mechanism is based on the two parameters: idle_timeout and hard_timeout. These parameters are associated with each flow entry. If the hard_timeout_field is non-zero, the entry’s arrival time must be noted by the switch and the flow entry has to be removed after the given number of seconds. If the idle_time_field is non-zero, the arrival time of the last packet of the flow must be noted by the switch, and the flow entry has to be removed when it has matched no packets in the given number of seconds. When one of the timeouts is exceeded the associated flow entries must be removed from the flow table. Flow entries may be also removed by the controller using delete flow table modification messages. After deletion of a flow entry the switch must check the flow entry’s flag. If the flag is set, the switch must send a flow removed message to the controller. Each flow removed message consists of the following: a complete description of the flow entry, the reason for removal (expiry or deletion), the flow duration at the time of removal, and the flow statistics at the time of removal.

The OpenFlow channel is the interface that connects each OpenFlow switch to a controller. It is usually encrypted and may be run over the TCP/IP protocol stack. Using the OpenFlow channel the controller configures and manages the switch, receives messages about events from the switch, and sends packets out the switch. A typical OpenFlow controller manages multiple OpenFlow channels, each one to a different OpenFlow switch. An OpenFlow switch may have one Open-Flow channel to a single controller, or multiple channels for reliability, each to a different controller. The OpenFlow switch always initiates connections to an OpenFlow controller.

All OpenFlow Channel messages must be formatted ac-cording to the OpenFlow protocol, which supports three mes-sage types: controller-to-switch, asynchronous, and symmetric, each with multiple sub-types. Controller-to-switch messages are initiated by the controller and used to directly manage or inspect the state of the switch. Asynchronous messages are initiated by the switch and used to update the controller about network events and changes to the switch state. Symmetric messages are initiated by either the switch or the controller and sent without solicitation.

The OpenFlow protocol provides reliable message deliv-ery and processing. It does not automatically provide ac-knowledgements or ensure ordered message processing. If the OpenFlow channel fails, the switch may have gone into ”fail standalone mode”.

Switches must process every message received from a controller, and possibly generate a reply. If a switch cannot completely process a message received from a controller, it must send back an error message. Packets may be silently dropped after OpenFlow processing due to congestion at the switch, QoS policy, or if sent to a blocked or invalid port. Switches must send to the controller all asynchronous messages generated by the OpenFlow state changes, such as

flow-removed, port-status or packet-in messages to ensure that the controller has the actual knowledge about the switch state. Packets may be dropped also when they fail to match any entries in a flow table, and that table’s default action is to send to the controller. Controllers are free to ignore messages they receive, but must respond to echo messages to prevent the switch from terminating the connection.

The detailed information about each component of the OpenFlow switch as well as the OpenFlow protocol may be found in [2].

III. TESTING ENVIRONMENT OVERVIEW ALIEN platforms performance tests are based on OFLOPS application [3], [4]. The OFLOPS is a tool that allows develop-ing use-case tests for both hardware and software OpenFlow implementations. Using this tool, developers can define and simulate specific usage scenario and understand the impact of switch implementation on its performance. The OFLOPS platform is implemented as multi-thread application without any concurrent access control. It results in reduced latency. The OFLOPS consists of the following five threads, each one serving specific type of events (Figure 3):

1) Packet generator - controls data plane traffic generators, 2) Packet capture/analyzer - captures and pushes data plane

traffic to modules,

3) Message generator - translate OpenFlow packets to control events or generates OpenFlow messages, 4) SNMP channel - perform asynchronous SNMP polling

(because selected HAL implementation does not sup-port SNMP protocol, in prepared tests this module is switched off),

5) Action scheduler - manages time events scheduled by measurement modules

The OFLOPS application offers many ready to use ex-periment scenarios. Some of these scenarios are adopted to performance evaluation of the OpenFlow implementation on ALIEN platforms. These scenarios and modified application will be referred to later in this document as ALIEN OFLOPS. In order to avoid any additional delay caused by other network devices, the host with installed ALIEN OFLOPS application is connected directly with tested platform. The minimal number of required interfaces is equal to two, one for control channel and one for data path. Unfortunately, in this configuration only two test scenarios can be realized. In order to realize full set of prepared test scenarios two interfaces in data plane are required. The OFLOPS application allows to use also the third data plane interface, but for our purpose, this interface is superfluous.

The test scenarios are implemented as runtime linked mod-ules written in C++ code. The parameters of each experiment are configured using the configuration script presented in Listing 1.

(4)

FRQW UR O FK DQQHO 3DFNHWJHQHUDWRU 3DFNHWFDSWXUH DQDO\]HU 0HVVDJH JHQHUDWRU $FWLRQVVFKHGXOHU &RQILJXUDWLRQVFULSW 3HUIRUPDQFHWHVWHU2)/236 2SHQ)ORZVZLWFK )ORZ IRUZDUGLQJ IXQFWLRQV GHY HWK GHY HWK GHY HWK GHY HWK VGHY HWK VGHY HWK VGHY HWK VGHY HWK RIBSRUW$ GDW D RIBSRUW% RIBSRUW& )ORZWDEOHV

Fig. 3. Hardware configuration

o f l o p s : { c o n t r o l : { c o n t r o l _ d e v = " e t h 0 " ; c o n t r o l _ p o r t = 6 6 3 3 ; s n m p _ a d d r = " 1 0 . 1 . 0 . 2 " ; cpu_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 5 . 3 . 3 . 1 . 2 . 7 6 8 " ; i n _ m i b = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 1 . 2 " ; o u t _ m i b = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 7 . 2 " ; snmp_community = " p u b l i c " ; } ; d a t a = ( { dev =" e t h 1 " ; p o r t _ n u m = 8 ; in_snmp_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 1 . 3 " ; out_snmp_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 7 . 3 " ; } , { dev =" e t h 2 " ; p o r t _ n u m = 7 ; in_snmp_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 1 . 4 " ; out_snmp_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 7 . 4 " ; } , { dev =" e t h 3 " ; p o r t _ n u m = 6 ; in_snmp_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 1 . 5 " ; out_snmp_mib = " 1 . 3 . 6 . 1 . 2 . 1 . 2 . 2 . 1 . 1 7 . 5 " ; } ) ; t r a f f i c _ g e n e r a t o r = 1 ; d u m p _ c o n t r o l _ c h a n n e l = 0 ; module : ( { p a t h = " / home / a l i e n / o f l o p s / e x a m p l e _ m o d u l e s / o p e n f l o w _ a d d _ f l o w / . l i b s / l i b o p e n f l o w _ a d d _ f l o w . s o " ; param =" f l o w s =1 d a t a _ r a t e = 5 0 0 / p r o b e _ r a t e =500 p k t _ s i z e =500 t a b l e = 0 / p r o b e _ t i m e =120 e c h o _ r a t e = 4 " ; } ) ; } ;

Listing 1. OFLOPS configuration file

IV. DESCRIPTION OF EXPERIMENT SCENARIOS

A. PacketIn test

For every packet that does not have a matching flow entry or if a packet matches an entry with a forward to In_Port action or when flow table is empty, an asynchronous packet-in event is sent to the controller. If the switch has sufficient memory to buffer packets that are sent to the controller, the packet-in events contain some fraction of the packet header (by default 128 bytes) and a buffer ID to be used by the controller, when it is ready for the switch to forward the packet. Switches that do not support internal buffering (or have run out of internal buffering) must send the full packet to the controller as part of the event.

ALIEN platforms are based on existing network devices and don’t support such packet buffering. In In_Port action the OpenFlow controller receives whole data packets. It is very important to check, how many In_Packet actions can be served by Alien platforms and how length of data packets affect the delay of packet transfer. In order to measure In_Packet action throughput and packet delay, the following scenario, presented in Figure 4, was prepared. When ALIEN-OFLOPS application receives OFPT_HELLO messages, OFPT_FLOW_MOD mes-sage is sent. OFPT_FLOW_MOD contains OFPFC_DELETE action, which is applied to all installed flows. Simultaneously, through dev1 ALIEN-OFLOPS starts generate UDP packets, which contain (in payload field) sequence number and gener-ation time. Since the OpenFlow switch flow table is empty, switch sends OFPT_PACKET_IN messages containing UDP packets. Basing on reception of OFPT_PACKET_IN message and generation time of conveyed UDP packet we can calculate delay of In_Packet action. Additionally, basing on sequence numbers loss probability is calculated. Test is repeated for different UDP packets sizes and different time interval between packets.

B. PacketOut test

This test scenario, presented in Figure 5, is similar to previous one. In this test ALIEN-OFLOPS application gen-erates sequence of OFPT_PACKET_OUT messages, which convey UDP packets. As previously, UDP packets are marked by sequence numbers and OFPT_PACKET_OUT message generation time. The OFPT_PACKET_OUT message contains also of_port number determining the output port of the action. Basing on reception of UDP packets and generation time conveyed in this packet we can calculate delay of Out_Packet action. Moreover basing on sequence numbers loss probability is calculated. Test is repeated for different UDP packet sizes and different time interval between packets.

C. Path_delay test

The Path_delay test allows determining path delay in control and data plane. In case of control plane both, OFPT_ECHO_REQUEST and OFPT_ECHO_REPLY sages are used. The data field in echo request mes-sage must be copied into echo replay data field. When OFPT_ECHO_REQUEUST is generated into this field the

(5)

ĚĞǀϬ ;ĞƚŚϬͿ ĚĞǀϭ ;ĞƚŚϭͿ ƐĚĞǀϬ ;ĞƚŚϬͿ ƐĚĞǀϭ ;ĞƚŚϭͿ K&Wdͺ,>>K K&Wdͺ&>KtͺDK ;K&W&ͺ>dͿ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎK&WWͺ/EͺWKZdͿ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ K&WdͺW<dͺ/E ;hWͺƉĂĐŬĞƚͿ K&WdͺW<dͺ/E ;hWͺƉĂĐŬĞƚͿ K&WdͺW<dͺ/E ;hWͺƉĂĐŬĞƚͿ K&WdͺW<dͺ/E ;hWͺƉĂĐŬĞƚͿ WĂĐŬĞƚ/Ŷ ĚĞůĂLJ WĂĐŬĞƚ/Ŷ ĚĞůĂLJ WĂĐŬĞƚ/Ŷ ĚĞůĂLJ WĂĐŬĞƚ/Ŷ ĚĞůĂLJ

Fig. 4. PacketIn test scenario

ĚĞǀϬ ;ĞƚŚϬͿ ĚĞǀϭ ;ĞƚŚϭͿ ƐĚĞǀϬ ;ĞƚŚϬͿ ƐĚĞǀϭ ;ĞƚŚϭͿ K&Wdͺ,>>K K&Wdͺ&>KtͺDK ;K&W&ͺ>dͿ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎK&WWͺ/EͺWKZdͿ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ K&WdͺW<dͺKhd ;ŽĨͺƉŽƌƚ͗hWͺƉĂĐŬĞƚͿ K&WdͺW<dͺ/E ;ŽĨͺƉŽƌƚ͗hWͺƉĂĐŬĞƚͿ K&WdͺW<dͺ/E ;ŽĨͺƉŽƌƚ͗hWͺƉĂĐŬĞƚͿ K&WdͺW<dͺ/E ;ŽĨͺƉŽƌƚ͗hWͺƉĂĐŬĞƚͿ WĂĐŬĞƚKƵƚ ĚĞůĂLJ WĂĐŬĞƚKƵƚ ĚĞůĂLJ WĂĐŬĞƚKƵƚ ĚĞůĂLJ WĂĐŬĞƚKƵƚ ĚĞůĂLJ

Fig. 5. PacketOut test scenario

current system time is written. The difference between OFPT_ECHO_REPLY message reception time and the time included in data field of this message, indicates the control path delay. In the case of data plane path delay UDP packets are marked by the sequence numbers and packet generation time. In order to reduce packet processing time the flow table stores only one defined flow entry matches for incoming UDP packets and directs them into specific output port. Path delay in control plane is determined without any parameters. Path delay in data plane is studied for different packet sizes and different time intervals between packets. The message flow

ĚĞǀϬ ;ĞƚŚϬͿ ĚĞǀϭ ;ĞƚŚϭͿ ĚĞǀϮ ;ĞƚŚϮͿ ƐĚĞǀϬ ;ĞƚŚϬͿ ƐĚĞǀϭ ;ĞƚŚϭͿ ƐĚĞǀϮ ;ĞƚŚϮͿ K&Wdͺ,>>K K&Wdͺ&>KtͺDK ;K&W&ͺ>dͿ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎŽĨͺƉŽƌƚͿ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ K&Wdͺ,KZY hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ ŽŶƚƌŽů ĐŚĂŶŶĞů ĚĞůĂLJ K&Wdͺ,KͺZW>z K&Wdͺ,KZY K&Wdͺ,KͺZW>z K&Wdͺ,KͺZW>z ĂƚĂƉĂƚŚ ĚĞůĂLJ ĂƚĂƉĂƚŚ ĚĞůĂLJ ĂƚĂƉĂƚŚ ĚĞůĂLJ ĂƚĂƉĂƚŚ ĚĞůĂLJ ĂƚĂƉĂƚŚ ĚĞůĂLJ K&Wdͺ,KZY ŽŶƚƌŽů ĐŚĂŶŶĞů ĚĞůĂLJ ŽŶƚƌŽů ĐŚĂŶŶĞů ĚĞůĂLJ

Fig. 6. PathDelay test scenario

diagram for this experiment is presented in Figure 6.

D. AddFlow test

The aim of this test is to determine time required to add the given number of flows. Only exact match flows entries are considered. This test procedure is repeated several times in order to achieve reliable test results. During whole test time ALIEN-OFLOPS application generates UDP packets containing in data field packet generation time and send these messages through dev1 port. In the first step Alien platform flow table is cleared. Next, the determined number of ADD_FLOW operation is generated and sent. It starts time counter. Only the last added flow entry matches generated UDP packets. According to action bound with this flow, the generated packets which appear on sdev1 port are directed to sdev2 port. When some packet occurson dev2 port triggers the test procedure repetition and stops time counter. Time counter shows how long flows are installed. The message flow diagram for this experiment is presented in Figure 7.

V. TESTING ENVIRONMENT AND RESULTS

ALIEN OFLOPS application was used for performance evaluation of OpenFlow functionality implementation on ALIEN platforms. The source code and installation procedure of presented application are available on [5]. The results of per-formance tests for ALIEN platforms were compared with the results obtained for the software OpenFlow switch OVS (Open VSwitch) [6]. Both, ALIEN OFLOPS application and OVS switch, were configured as two virtual machines connected directly through VirtualBox internal networks (see Figure 8). In Figures 9 and 10 results for PacketIn, PacketOut and AddFlow tests are presented. In Figure 10 we can observe, that OFTP_PACKET_OUT execution time is smaller by two orders of magnitude than time consumed by OFPT_PACKET_IN actions. In case of AddFlow test, presented in Figure 9, we

(6)

ĚĞǀϬ ;ĞƚŚϬͿ ĚĞǀϭ ;ĞƚŚϭͿ ĚĞǀϮ ;ĞƚŚϮͿ ƐĚĞǀϬ ;ĞƚŚϬͿ ƐĚĞǀϭ ;ĞƚŚϭͿ ƐĚĞǀϮ ;ĞƚŚϮͿ K&Wdͺ,>>K K&Wdͺ&>KtͺDK ;K&W&ͺ>dͿ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎK&WWͺ/EͺWKZdͿ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ ĚĚ ĨůŽǁƐ ĚĞůĂLJ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎK&WWͺ/EͺWKZd͕ ͙ &ůŽǁE͗ΎŽĨͺƉŽƌƚͿ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ K&Wdͺ&>KtͺDK ;K&W&ͺ>dͿ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎK&WWͺ/EͺWKZdͿ K&Wdͺ&>KtͺDK ;K&W&ͺ͗͗ &ůŽǁϭ͗ΎK&WWͺ/EͺWKZd͕ ͙ &ůŽǁE͗ΎŽĨͺƉŽƌƚͿ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ hWͺƉĂĐŬĞƚ K&Wdͺ&>KtͺDK ;K&W&ͺ>dͿ ĚĚ ĨůŽǁƐ ĚĞůĂLJ

Fig. 7. AddFlow test scenario +3'/*9LUWXDOL]DWLRQVHUYHU KƉĞŶ&ůŽǁƌĞĨĞƌĞŶĐĞƐǁŝƚĐŚsD KƉĞŶ&ůŽǁƉĞƌĨŽƌŵĂĐĞƚĞƐƚŝŶŐsD ƚŚϬ ƚŚϭ ƚŚϮ >/EK&>KW^ KƉĞŶs^ǁŝƚĐŚ ƚŚϭ ƚŚϮ ƚŚϬ /ŶƚĞƌŶĂů ŶĞƚǁŽƌŬ /ŶƚĞƌŶĂů ŶĞƚǁŽƌŬ /ŶƚĞƌŶĂů ŶĞƚǁŽƌŬ

Fig. 8. Implementation of OpenFlow reference switch performance testing environment

can see, that time required to add given number of entries to flow table increases exponentially.

VI. CONCLUSIONS

This paper presents basic issues related to performance tests of OpenFlow capable devices. The presented testing environ-ment was used in ALIEN project for performance evaluation of non-OpenFlow devices which were converted to OpenFlow capable devices using HAL layer. The tests allow us also to draw some conclusions concerning prototype implementation

ϯϱϬϬ ϰϬϬϬ ϰϱϬϬ ϱϬϬϬ ĞůĂLJ ΀μμμμ ƐĞ Đ΁

ĚĚ&ůŽǁƚĞƐƚ

ϮϱϬϬ ϯϬϬϬ Ϭ ϮϬ ϰϬ ϲϬ ϴϬ ϭϬϬ ϭϮϬ EƵŵďĞƌŽĨƚĂďůĞĞŶƚƌŝĞƐƚŽŝŶƐƚĂůů΀ͬ΁

Fig. 9. Time required by modify flow entry message

ϭϬϬ ϭϬϬϬ ϭϬϬϬϬ ϭϬϬϬϬϬ ĂLJ΀ μμμμμμμμ ƐĞĐ ΁

WĂĐŬĞƚ/ŶĂŶĚWĂĐŬĞƚKƵƚƚĞƐƚƐ

ϭ ϭϬ ϭϬϬ Ϭ ϱϬϬ ϭϬϬϬ ϭϱϬϬ Ğ ůĂ hWƉĂĐŬĞƚƐŝnjĞ΀΁ WĂĐŬĞƚKƵƚ WĂĐŬĞƚ/Ŷ

Fig. 10. Delays of OFPT_PACKET_OUT and OFPT_PACKET_IN Open-Flow command executions

of HAL. The detailed description of test results obtained for different platforms considered within the ALIEN project may be found in D5.3 report, which is available on the project website in section Deliverables (http://www.fp7-alien.eu).

ACKNOWLEDGEMENTS

The work described in this paper was partially financed from funds of Ministry of Science and Higher Education for year 2014.

REFERENCES

[1] D. Kreutz, F. M. V. Ramos, P. Verissimo, Ch. E. Rothenberg, S. Azodolmolky, S. Uhlig. (2014, October). Software-Defined Network-ing: A Comprehensive Survey. To appear in Proceedings of the IEEE, 2015, current version 2.01, pp. 1-61, [On-line]. Available: http://arxiv.org/pdf/1406.0440v3.pdf

[2] OpenFlow Switch Specification v. 1.3.4. (2014, March). Open Networking Foundation [Online]. Available: https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.3.4.pdf [3] OFLOPS webpage, http://archive.openflow.org/wk/index.php/Oflops [4] Charalampos Rotsos, Nadi Sarrar, Steve Uhlig, Rob Sherwood, Andrew

W. Moore, "OFLOPS: An Open Framework for OpenFlow Switch Eval-uation", in Passive and Active Measurement, Lecture Notes in Computer Science Volume 7192, 2012, pp 85-95, Springer 2012

[5] FP7 ALIEN performance test webpage, https://github.com/fp7-alien/performance-tests,

Cytaty

Powiązane dokumenty

Which famous sportsperson appears in “The Hangover”?. What is the name of the hospital where Dr Gregory

The statis- tical model for stochastic processes, defined by (1), is essentially more gen- eral than that considered in Magiera and Wilczy´ nski (1991) (it also contains some models

and [9]. Generally, if X is an algebraic set of pure dimension n ≥ 1, X is said to be uniruled if every component of X is uniruled. Points at which a polynomial map is not proper.

The common “definition” of a set as a collection of distinct objects considered as an object itself turns out to be inadequate and leads to certain paradoxes (we will discuss that

For the group D(4) find the set of generators containing possibly least elements.. Is this

[r]

Stack-losses of ammonia Y were measured in course of 21 days of operation of a plant for the oxidation of ammonia (NH3) to nitric acid (HNO 3 )... Discuss the obtained

For a differential inclusion with Lipschitz right hand side without state constraints, several papers [2, 5, 6, 9–11] yield results on the relaxation theorem and some other