Internet DRAFT - draft-bhuvan-bmwg-of-controller-benchmarking
draft-bhuvan-bmwg-of-controller-benchmarking
Internet-Draft Bhuvaneswaran Vengainathan
Network Working Group Anton Basil
Intended Status: Informational Veryx Technologies
Expires: March 2015 Vishwas Manral
Ionos Corp
Mark Tassinari
Hewlett-Packard
September 26, 2014
Benchmarking Methodology for SDN Controller Performance
draft-bhuvan-bmwg-of-controller-benchmarking-01
Abstract
This document defines the metrics and methodologies for measuring
performance of SDN controllers. SDN controllers have been implemented
with many varying designs, in order to achieve their intended network
functionality. Hence, in this document the authors take the approach
of considering an SDN controller as a black box, defining the metrics
in a manner that is agnostic to protocols and network services
supported by controllers. The intent of this document is to provide a
standard mechanism to measure the performance of all controller
implementations.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts
as reference material or to cite them other than as "work in
progress.
This Internet-Draft will expire on March 26, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
Bhuvan, et al. Expires March 26, 2015 [Page 1]
Internet Draft SDN Controller Benchmarking Methodology March 2015
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1 SDN Network - Controller working in Standalone Mode . . . . 5
4.2 SDN Network - Controller working in Cluster Mode . . . . . . 5
4.3 SDN Network with TE - Controller working in Standalone Mode. 6
4.4 SDN Network with TE - Controller working in Cluster Mode . . 6
4.5 SDN Node with TE - Controller working in Standalone Mode . . 7
4.6 SDN Node with TE - Controller working in Cluster Mode . . . 8
5. Test Considerations . . . . . . . . . . . . . . . . . . . . 8
5.1 Network Topology . . . . . . . . . . . . . . . . . . . . . 8
5.2 Test Traffic . . . . . . . . . . . . . . . . . . . . . . . 8
5.3 Connection Setup . . . . . . . . . . . . . . . . . . . . . 9
5.4 Measurement Accuracy . . . . . . . . . . . . . . . . . . . 9
5.5 Real World Scenario . . . . . . . . . . . . . . . . . . . . 9
6. Test Reporting . . . . . . . . . . . . . . . . . . . . . . . 9
7. Benchmarking Tests . . . . . . . . . . . . . . . . . . . . . 10
7.1 Performance . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1.1 Network Topology Discovery Time . . . . . . . . . . . . . 10
7.1.2 Synchronous Message Processing Time . . . . . . . . . . . 12
7.1.3 Synchronous Message Processing Rate . . . . . . . . . . . 13
7.1.4 Path Provisioning Time . . . . . . . . . . . . . . . . . 15
7.1.5 Path Provisioning Rate . . . . . . . . . . . . . . . . . 17
7.1.6 Network Topology Change Detection Time . . . . . . . . . 19
7.2 Scalability . . . . . . . . . . . . . . . . . . . . . . . . 21
7.2.1 Network Discovery Size . . . . . . . . . . . . . . . . . 21
7.2.2 Flow Scalable Limit . . . . . . . . . . . . . . . . . . . 22
7.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.3.1 Exception Handling . . . . . . . . . . . . . . . . . . . 23
7.3.2 Denial of Service Handling . . . . . . . . . . . . . . . 24
7.4 Reliability . . . . . . . . . . . . . . . . . . . . . . . . 25
7.4.1 Controller Failover Time . . . . . . . . . . . . . . . . 25
7.4.2 Network Re-Provisioning Time . . . . . . . . . . . . . . 26
8. Test Coverage . . . . . . . . . . . . . . . . . . . . . . . 28
Bhuvan, et al. Expires March 26, 2015 [Page 2]
Internet Draft SDN Controller Benchmarking Methodology March 2015
9. References . . . . . . . . . . . . . . . . . . . . . . . . 28
9.1 Normative References . . . . . . . . . . . . . . . . . . . 28
9.2 Informative References . . . . . . . . . . . . . . . . . . 29
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 29
11. Security Considerations . . . . . . . . . . . . . . . . . . 29
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 29
13. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 30
1. Introduction
This document provides generic metrics and methodologies for
benchmarking SDN controller performance. An SDN controller may
support many northbound and southbound protocols, implement wide
range of applications and work as standalone or as a group to
achieve the desired functionality. This document considers an SDN
controller as a black box, regardless of design and implementation.
The tests defined in the document can be used to benchmark various
controller designs for performance, scalability, reliability and
security independent of northbound and southbound protocols. These
tests can be performed on an SDN controller running as a virtual
machine (VM) instance or on a bare metal server. This document is
intended for those who want to measure the SDN controller
performance as well as compare various SDN controllers performance.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.
2. Terminology
SDN Node:
An SDN node is a physical or virtual entity that forwards
data in a software defined environment.
Flow:
A flow is a traffic stream having same source and destination
address. The address could be MAC or IP or combination of both.
Learning Rate:
The rate at which the controller learns the new source addresses
from the received traffic without dropping.
Controller Forwarding Table:
A controller forwarding table contains flow records for the flows
configured in the data path.
Bhuvan, et al. Expires March 26, 2015 [Page 3]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Northbound Interface:
Northbound interface is the application programming interface
provided by the SDN controller for communication with SDN
services and applications.
Southbound Interface:
Southbound interface is the application programming interface
provided by the SDN controller for communication with the SDN
nodes.
Proactive Flow Provisioning:
Proactive flow provisioning is the pre-provisioning of flow
entries into the controller's forwarding table through
controller's northbound interface or management interface.
Reactive Flow Provisioning:
Reactive flow provisioning is the dynamic provisioning of flow
entries into the controller's forwarding table based on traffic
forwarded by the SDN nodes through controller's southbound
interface.
Path:
A path is the route taken by a flow while traversing from a source
node to destination node.
Standalone Mode:
Single controller handling all control plane functionalities.
Cluster/Redundancy Mode:
Group of controllers handling all control plane functionalities .
Synchronous Message:
Any message from the SDN node that triggers a response message
from the controller e.g., Keepalive request and response message,
flow setup request and response message etc.,
3. Scope
This document defines a number of tests to measure the networking
aspects of SDN controllers. These tests are recommended for
execution in lab environments rather than in real time deployments.
Bhuvan, et al. Expires March 26, 2015 [Page 4]
Internet Draft SDN Controller Benchmarking Methodology March 2015
4. Test Setup
The tests defined in this document enable measurement of SDN
controller's performance in Standalone mode and Cluster mode. This
section defines common reference topologies that are later referred
to in individual tests.
4.1 SDN Network - Controller working in Standalone Mode
--------------------
| SDN Applications |
--------------------
|
| (Northbound interface)
-----------------------
| SDN Controller |
| (DUT) |
-----------------------
| (Southbound interface)
|
---------------------------
| | |
---------- ---------- ----------
| SDN | | SDN |..| SDN |
| Node 1 | | Node 2 | | Node n |
---------- ---------- ----------
Figure 1
4.2 SDN Network - Controller working in Cluster Mode
--------------------
| SDN Applications |
--------------------
|
| (Northbound interface)
---------------------------------------------------------
| ------------------ ------------------ |
| | SDN Controller 1 | <--E/W--> | SDN Controller n | |
| ------------------ ------------------ |
---------------------------------------------------------
| (Southbound interface)
|
---------------------------
| | |
---------- ---------- ----------
| SDN | | SDN |..| SDN |
| Node 1 | | Node 2 | | Node n |
---------- ---------- ----------
Figure 2
Bhuvan, et al. Expires March 26, 2015 [Page 5]
Internet Draft SDN Controller Benchmarking Methodology March 2015
4.3 SDN Network with Traffic Endpoints (TE) - Controller working in
Standalone Mode
--------------------
| SDN Applications |
--------------------
|
| (Northbound interface)
-----------------------
| SDN Controller (DUT) |
-----------------------
| (Southbound interface)
|
---------------------------
| | |
---------- ---------- ----------
| SDN | | SDN |..| SDN |
| Node 1 | | Node 2 | | Node n |
---------- ---------- ----------
| |
-------------- --------------
| Traffic | | Traffic |
| Endpoint TP1 | | Endpoint TP2 |
-------------- --------------
Figure 3
4.4 SDN Network with Traffic Endpoints (TE) - Controller working in
Cluster Mode
--------------------
| SDN Applications |
--------------------
|
| (Northbound interface)
---------------------------------------------------------
| ------------------ ------------------ |
| | SDN Controller 1 | <--E/W--> | SDN Controller n | |
| ------------------ ------------------ |
---------------------------------------------------------
|
Bhuvan, et al. Expires March 26, 2015 [Page 6]
Internet Draft SDN Controller Benchmarking Methodology March 2015
| (Southbound interface)
|
---------------------------
| | |
---------- ---------- ----------
| SDN | | SDN |..| SDN |
| Node 1 | | Node 2 | | Node n |
---------- ---------- ----------
| |
-------------- --------------
| Traffic | | Traffic |
| Endpoint TP1 | | Endpoint TP2 |
-------------- --------------
Figure 4
4.5 SDN Node with Traffic Endpoints (TE) - Controller working in
Standalone Mode
--------------------
| SDN Applications |
--------------------
|
| (Northbound interface)
-----------------------
| SDN Controller |
| (DUT) |
-----------------------
| (Southbound interface)
|
----------
-------| SDN |---------
| | Node 1 | |
| ---------- |
---------- ----------
| Traffic | | Traffic |
| Endpoint | | Endpoint |
| TP1 | | TP2 |
---------- ----------
Figure 5
Bhuvan, et al. Expires March 26, 2015 [Page 7]
Internet Draft SDN Controller Benchmarking Methodology March 2015
4.6 SDN Node with Traffic Endpoints (TE) - Controller working in Cluster
Mode
--------------------
| SDN Applications |
--------------------
|
| (Northbound interface)
---------------------------------------------------------
| ------------------ ------------------ |
| | SDN Controller 1 | <--E/W--> | SDN Controller n | |
| ------------------ ------------------ |
---------------------------------------------------------
| (Southbound interface)
|
----------
-------| SDN |---------
| | Node 1 | |
| ---------- |
---------- ----------
| Traffic | | Traffic |
| Endpoint | | Endpoint |
| TP1 | | TP2 |
---------- ----------
Figure 6
5. Test Considerations
5.1 Network Topology
The network SHOULD be deployed with SDN nodes interconnected in
either fully meshed, tree or linear topology. Care should be taken
to make sure that the loop prevention mechanism is enabled either in
the SDN controller or in the network. To get complete performance
characterization of SDN controller, it is recommended that the
controller be benchmarked for many network topologies. These network
topologies can be deployed using real hardware or emulated in
hardware platforms.
5.2 Test Traffic
Test traffic can be used to notify the controller about the arrival
of new flows or generate notifications/events towards controller.
In either case, it is recommended that at least five different frame
sizes and traffic types be used, depending on the intended network
deployment.
Bhuvan, et al. Expires March 26, 2015 [Page 8]
Internet Draft SDN Controller Benchmarking Methodology March 2015
5.3 Connection Setup
There may be controller implementations that support
unencrypted and encrypted network connections with SDN nodes.
Further, the controller may have backward compatibility with SDN
nodes running older versions of southbound protocols. It is
recommended that the controller performance be measured with the
applicable connection setup methods.
1. Unencrypted connection with SDN nodes, running same protocol
version.
2. Unencrypted connection with SDN nodes, running
different (previous) protocol versions.
3. Encrypted connection with SDN nodes,running same protocol version
4. Encrypted connection with SDN nodes, running
different (previous)protocol versions.
5.4 Measurement Accuracy
The measurement accuracy depends on the
point of observation where the indications are captured. For example,
the notification can be observed at the ingress or egress point of
the SDN node. If it is observed at the egress point of the SDN node,
the measurement includes the latency within the SDN node also. It is
recommended to make observation at the ingress point of the SDN node
unless it is explicitly mentioned otherwise in the individual test.
5.5 Real World Scenario
Benchmarking tests discussed in the document are
to be performed on a "black-box" basis, relying solely on
measurements observable external to the controller. The network
deployed and the test parameters should be identical to the
deployment scenario to obtain value added measures.
6. Test Reporting
Each test has a reporting format which is specific to individual
test. In addition, the following configuration parameters SHOULD be
reflected in the test report.
1. Controller name and version
2. Northbound protocols and version
3. Southbound protocols and version
4. Controller redundancy mode (Standalone or Cluster Mode)
5. Connection setup (Unencrypted or Encrypted)
6. Network Topology (Mesh or Tree or Linear)
7. SDN Node Type (Physical or Virtual or Emulated)
8. Number of Nodes
9. Number of Links
10. Test Traffic Type
Bhuvan, et al. Expires March 26, 2015 [Page 9]
Internet Draft SDN Controller Benchmarking Methodology March 2015
7. Benchmarking Tests
7.1 Performance
7.1.1 Network Topology Discovery Time
Objective:
To measure the time taken to discover the network topology- nodes
and its connectivity by a controller, expressed in milliseconds.
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the number of nodes present in the
defined network topology
Test setup parameters:
Test Iterations (Tr) - Defines the number of times the test needs
to be repeated. The recommended value is 3.
Test Interval (To)- Defines the maximum time for the test to
complete, expressed in milliseconds.
Test Setup:
The test can use one of the test setup described in section 4.1
and 4.2 of this document.
Prerequisite:
1. The controller should support network discovery.
2. Tester should be able to retrieve the discovered topology
information either through controller's management interface
or northbound interface.
Procedure:
1. Initialize the controller - network applications, northbound
and southbound interfaces.
2. Deploy the network with the given number of nodes using mesh
or linear topology.
3. Initialize the network connections between controller and
network nodes.
4. Record the time for the first discovery message exchange
between the controller and the network node (Tm1).
5. Query the controller continuously for the discovered network
topology information and compare it with the deployed network
topology information.
6. Stop the test when the discovered topology information is
matching with the deployed network topology or the expiry of
test interval (To).
Bhuvan, et al. Expires March 26, 2015 [Page 10]
Internet Draft SDN Controller Benchmarking Methodology March 2015
7. Record the time last discovery message exchange between the
controller and the network node (Tmn) when the test completed
successfully.
Note: While recording the Tmn value, it is recommended that the
messages that are used for aliveness check or session
management be ignored.
Measurement:
Topology Discovery Time Tr1 = Tmn-Tm1.
Tr1 + Tr2 + Tr3 .. Trn
Average Topology Discovery Time = -----------------------
Total Test Iterations
Note:
1. To increase the certainty of measured result, it is
recommended that this test be performed several times with
same number of nodes using same topology.
2. To get the full characterization of a controller's topology
discovery functionality
a. Perform the test with varying number of nodes using same
topology
b. Perform the test with same number of nodes using different
topologies.
Reporting Format:
The Topology Discovery Time results SHOULD be reported in the
format of a table, with a row for each iteration. The last row of
the table indicates the average Topology Discovery Time.
If this test is repeated with varying number of nodes over the
same topology, the results SHOULD be reported in the form of a
graph. The X coordinate SHOULD be the Number of nodes (N), the
Y coordinate SHOULD be the average Topology Discovery Time.
If this test is repeated with same number of nodes over different
topologies,the results SHOULD be reported in the form of a graph.
The X coordinate SHOULD be the Topology Type, the Y coordinate
SHOULD be the average Topology Discovery Time.
Bhuvan, et al. Expires March 26, 2015 [Page 11]
Internet Draft SDN Controller Benchmarking Methodology March 2015
7.1.2 Synchronous Message Processing Time
Objective:
To measure the time taken by the controller to process a
synchronous message, expressed in milliseconds.
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the number of nodes present in the
defined network topology
Test setup parameters:
Test Iterations (Tr) - Defines the number of times the test needs
to be repeated. The recommended value is 3.
Test Duration (Td) - Defines the duration of test iteration,
expressed in seconds. The recommended value is 5 seconds.
Test Setup:
The test can use one of the test setup described in section 4.1
and 4.2 of this document.
Prerequisite:
1. The controller should have completed the network topology
discovery for the connected nodes.
Procedure:
1. Generate a synchronous message from every connected nodes one
at a time and wait for the response before generating the
next message.
2. Record total number of messages sent to the controller by all
nodes (Ntx) and the responses received from the
controller (Nrx) within the test duration (Td).
Measurement:
Td
Synchronous Message Processing Time Tr1 = ------
Nrx
Tr1 + Tr2 + Tr3..Trn
Average Synchronous Message Processing Time= --------------------
Total Test Iterations
Bhuvan, et al. Expires March 26, 2015 [Page 12]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Note:
1. The above test measures the controller's message processing
time at lower traffic rate. To measure the controller's
message processing time at full connection rate, apply the
same measurement equation with the Td and Nrx values obtained
from Synchronous Message Processing Rate test
(defined in Section 7.1.3).
2. To increase the certainty of measured result, it is
recommended that this test be performed several times with
same number of nodes using same topology.
3. To get the full characterization of a controller's synchronous
message processing time
a. Perform the test with varying number of nodes using same
topology
b. Perform the test with same number of nodes using different
topologies.
Reporting Format:
The Synchronous Message Processing Time results SHOULD be
reported in the format of a table with a row for each iteration.
The last row of the table indicates the average Synchronous
Message Processing Time.
The report should capture the following information in addition
to the configuration parameters captured in section 6.
- Offered rate (Ntx)
If this test is repeated with varying number of nodes with same
topology, the results SHOULD be reported in the form of a graph.
The X coordinate SHOULD be the Number of nodes (N), the
Y coordinate SHOULD be the average Synchronous Message Processing
Time.
If this test is repeated with same number of nodes using
different topologies, the results SHOULD be reported in the form
of a graph. The X coordinate SHOULD be the Topology Type, the
Y coordinate SHOULD be the average Synchronous Message Processing
Time.
7.1.3 Synchronous Message Processing Rate
Objective:
To measure the maximum number of synchronous messages (session
aliveness check message, new flow arrival notification
message etc.) a controller can process within the test duration,
expressed in messages processed per second.
Bhuvan, et al. Expires March 26, 2015 [Page 13]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the number of nodes present in the
defined network topology.
Test setup parameters:
Test Iterations (Tr) - Defines the number of times the test needs
to be repeated. The recommended value is 3.
Test Duration (Td) - Defines the duration of test iteration,
expressed in seconds. The recommended value is 5 seconds.
Test Setup:
The test can use one of the test setup described in section 4.1
and 4.2 of this document.
Prerequisite:
1. The controller should have completed the network topology
discovery for the connected nodes.
Procedure:
1. Generate synchronous messages from all the connected nodes
at the full connection capacity for the Test Duration (Td).
2. Record total number of messages sent to the controller by all
nodes (Ntx) and the responses received from the
controller (Nrx) within the test duration (Td).
Measurement:
Nrx
Synchronous Message Processing Rate Tr1 = -----
Td
Tr1 + Tr2 + Tr3..Trn
Average Synchronous Message Processing Rate= --------------------
Total Test Iterations
Note:
1. To increase the certainty of measured result, it is
recommended that this test be performed several times with
same number of nodes using same topology.
2. To get the full characterization of a controller's synchronous
message processing rate
a. Perform the test with varying number of nodes using same
topology.
b. Perform the test with same number of nodes using different
topologies.
Bhuvan, et al. Expires March 26, 2015 [Page 14]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Reporting Format:
The Synchronous Message Processing Rate results SHOULD be
reported in the format of a table with a row for each iteration.
The last row of the table indicates the average Synchronous
Message Processing Rate.
The report should capture the following information in addition
to the configuration parameters captured in section 6.
- Offered rate (Ntx)
If this test is repeated with varying number of nodes over same
topology, the results SHOULD be reported in the form of a graph.
The X coordinate SHOULD be the Number of nodes (N), the
Y coordinate SHOULD be the average Synchronous Message Processing
Rate.
If this test is repeated with same number of nodes over different
topologies,the results SHOULD be reported in the form of a graph.
The X coordinate SHOULD be the Topology Type, the Y coordinate
SHOULD be the average Synchronous Message Processing Rate.
7.1.4 Path Provisioning Time
Objective:
To measure the time taken by the controller to setup a path
between source and destination node, expressed in milliseconds.
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the number of nodes present in the
defined network topology
Number of data path nodes (Ndp) - Defines the number of nodes
present in the path between source and destination node.
Test setup parameters:
Test Iterations (Tr) - Defines the number of times the test needs
to be repeated. The recommended value is 3.
Test Interval (To) - Defines the maximum time for the test to
complete, expressed in milliseconds.
Test Setup:
The test can use one of the test setups described in section 4.3
and 4.4 of this document.
Bhuvan, et al. Expires March 26, 2015 [Page 15]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Prerequisite:
1. The controller should contain the network topology information
for the deployed network topology.
2. The network topology information can be learnt through dynamic
Topology Discovery Mechanism or static configuration.
3. The controller should have learnt about the location of
source/destination endpoint for which the path has to be
provisioned. This can be achieved through dynamic learning or
static provisioning.
4. The SDN Node should send all new flows to the controller when
it receives.
Procedure:
Reactive Path Provisioning:
1. Send traffic with source as source endpoint address and
destination as destination endpoint address from TP1.
2. Record the time for the first frame sent to the source
SDN node (Tsf1).
3. Wait for the arrival of first frame from the destination node
or the expiry of test interval (To).
4. Record the time when the first frame received from the
destination SDN node (Tdf1).
Proactive Path Provisioning:
1. Send traffic with source as source endpoint address and
destination as destination endpoint address from TP1.
2. Install the flow with the learnt source and destination address
through controller's northbound or management interface.
3. Record the time when a successful response for the flow
installation is received (Tp) from the controller.
4. Wait for the arrival of first frame from the destination node
or the expiry of test interval (To).
5. Record the time when the first frame received from the
destination node (Tdf1).
Measurement:
Reactive Path Provisioning:
Flow Provisioning Time Tr1 = Tdf1-Tsf1.
Proactive Path Provisioning:
Path Provisioning Time Tr1 = Tdf1-Tp.
Tr1 + Tr2 + Tr3 .. Trn
Average Path Provisioning Time = ------------------------
Total Test Iterations
Bhuvan, et al. Expires March 26, 2015 [Page 16]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Note:
1. To increase the certainty of measured result,it is recommended
that this test be performed several times with same number of
nodes using same topology.
2. To get the full characterization of a controller's path
provisioning time
a. Perform the test with varying number of nodes using same
topology
b. Perform the test with same number of nodes using different
topologies.
Reporting Format:
The Path Provisioning Time results SHOULD be reported in the
format of a table with a row for each iteration. The last row
of the table indicates the average Path Provisioning Time.
The report should capture the following information in addition
to the configuration parameters captured in section 6.
- Number of data path nodes
If this test is repeated with varying number of nodes with same
topology, the results SHOULD be reported in the form of a graph.
The X coordinate SHOULD be the Number of nodes (N), the
Y coordinate SHOULD be the average Path Provisioning Time.
If this test is repeated with same number of nodes using
different topologies, the results SHOULD be reported in the form
of a graph. The X coordinate SHOULD be the Topology Type, the
Y coordinate SHOULD be the average Path Provisioning Time.
7.1.5 Path Provisioning Rate
Objective:
To measure the maximum number of paths a controller can setup
between sources and destination node within the test duration,
expressed in paths per second.
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the number of nodes present in the
defined network topology.
Test setup parameters:
Test Iterations (Tr) - Defines the number of times the test needs
to be repeated. The recommended value is 3.
Test Duration (Td)- Defines the duration of test iteration,
expressed in seconds. The recommended value is 5 seconds.
Bhuvan, et al. Expires March 26, 2015 [Page 17]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Test Setup:
The test can use one of the test setup described in section 4.3
and 4.4 of this document.
Prerequisite:
1. The controller should contain the network topology information
for the deployed network topology.
2. The network topology information can be learnt through dynamic
Topology Discovery Mechanism or static configuration.
3. The controller should have learnt about the location of
source/destination endpoints for which the paths have to be
provisioned. This can be achieved through dynamic learning or
static provisioning.
4. The SDN Node should send all new flows to the controller when
it receives.
Procedure:
Reactive Path Provisioning:
1. Send traffic at the individual node's synchronous message
processing rate with unique source and/or destination
addresses from test port TP1.
2. Record total number of unique frames received by the
destination node (Ndf) within the test duration (Td).
Proactive Path Provisioning:
1. Send traffic continuously with unique source and destination
addresses from the source node.
2. Install flows with the learnt source and destination
addresses through controller's northbound or management
interface.
3. Record total number of unique frames received from the
destination node (Ndf) within the test duration (Td).
Measurement:
Proactive/Reactive Path Provisioning:
Ndf
Path Provisioning Rate Tr1 = ------
Td
Tr1 + Tr2 + Tr3 .. Trn
Average Path Provisioning Rate = -------------------------
Total Test Iterations
Bhuvan, et al. Expires March 26, 2015 [Page 18]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Note:
1. To increase the certainty of measured result,it is recommended
that this test be performed several times with same number of
nodes using same topology.
2. To get the full characterization of a controller's path
provisioning rate
a. Perform the test with varying number of nodes using same
topology
b. Perform the test with same number of nodes using different
topologies.
Reporting Format:
The Path Provisioning Rate results SHOULD be reported in the
format of a table with a row for each iteration. The last row of
the table indicates the average Path Provisioning Rate.
The report should capture the following information in addition
to the configuration parameters captured in section 6.
- Number of Nodes in the path
- Provisioning Type (Proactive/Reactive)
- Offered rate
If this test is repeated with varying number of nodes with same
topology, the results SHOULD be reported in the form of a graph.
The X coordinate SHOULD be the Number of nodes (N), the
Y coordinate SHOULD be the average Path Provisioning Rate.
If this test is repeated with same number of nodes using
different topologies, the results SHOULD be reported in the form
of a graph. The X coordinate SHOULD be the Topology Type, the
Y coordinate SHOULD be the average Path Provisioning Rate.
7.1.6 Network Topology Change Detection Time
Objective:
To measure the time taken by the controller to detect any changes
in the network topology, expressed in milliseconds.
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the number of nodes present in the
defined network topology
Bhuvan, et al. Expires March 26, 2015 [Page 19]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Test setup parameters:
Test Iterations (Tr) - Defines the number of times the test needs
to be repeated. The recommended value is 3.
Test Interval (To) - Defines the maximum time for the test to
complete,expressed in milliseconds. Test not completed within this
time interval is considered as incomplete.
Test Setup:
The test can use one of the test setup described in section 4.1
and 4.2 of this document.
Prerequisite:
1. The controller should have discovered the network topology
information for the deployed network topology.
2. The periodic network discovery operation should be configured
to twice the Test Interval (To) value.
Procedure:
1. Trigger a topology change event through one of the operation
(e.g., Add a new node or bring down an existing node or a
link).
2. Record the time when the first topology change notification
is sent to the controller (Tcn).
3. Stop the test when the controller sends the first topology
re-discovery message to the SDN node or the expiry of test
interval (To).
4. Record the time when the first topology re-discovery message
is received from the controller (Tcd).
Measurement:
Network Topology Change Detection Time Tr1 = Tcd-Tcn.
Tr1 + Tr2 + Tr3 .. Trn
Average Network Topology Change
Detection Time = ---------------------------
Total Test Iterations
Note:
1. To increase the certainty of measured result,it is recommended
that this test be performed several times with same number of
nodes using same topology.
Reporting Format:
The Network Topology Change Detection Time results SHOULD be
reported in the format of a table with a row for each iteration.
The last row of the table indicates the average Network Topology
Change Time.
Bhuvan, et al. Expires March 26, 2015 [Page 20]
Internet Draft SDN Controller Benchmarking Methodology March 2015
7.2 Scalability
7.2.1 Network Discovery Size
Objective:
To measure the network size (number of nodes) that a controller
can discover within a stipulated time.
Setup Parameters:
The following parameters MUST be defined:
Network setup parameters:
Number of nodes (N) - Defines the initial number of nodes present
in the defined network topology
Test setup parameters:
Network Discovery Time (Tnd) - Defines the stipulated time
acceptable by the user, expressed in seconds.
Test Setup:
The test can use one of the test setup described in section 4.1
and 4.2 of this document.
Prerequisite:
1. The controller should support automatic network discovery.
2. Tester should be able to retrieve the discovered topology
information either through controller's management interface
or northbound interface.
3. Controller should be operational.
4. Network with the given number of nodes and intended topology
(Mesh or Linear or Tree) should be deployed.
Procedure:
1. Initialize the network connections between controller and
network nodes.
2. Query the controller for the discovered network topology
information and compare it with the deployed network topology
information after the expiry of Network Discovery Time (Tnd).
3. Increase the number of nodes by 1 when the comparison is
successful and repeat the test.
4. Decrease the number of nodes by 1 when the comparison fails
and repeat the test.
5. Continue the test until the comparison of step 4 is successful.
6. Record the number of nodes for the last iteration (Ns) where
the topology comparison was successful.
Bhuvan, et al. Expires March 26, 2015 [Page 21]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Measurement:
Network Discovery Size = Ns.
Note:
This test may be performed with different topologies to obtain
the controller's scalability factor for various network
topologies.
Reporting Format:
The Network Discovery Size results SHOULD be reported in addition
to the configuration parameters captured in section 6.
7.2.2 Flow Scalable Limit
Objective:
To measure the maximum number of flow entries a controller can
manage in its Forwarding table.
Setup Parameters:
The following parameters MUST be defined:
Test Setup:
The test can use one of the test setups described in section 4.5
and 4.6 of this document.
Prerequisite:
1. The controller Forwarding table should be empty.
2. Flow Idle time should be set to higher or infinite value.
3. The controller should have completed network topology
discovery.
4. Tester should be able to retrieve the forwarding table
information either through controller's management interface
or northbound interface.
Procedure:
Reactive Path Provisioning:
1. Send bi-directional traffic continuously with unique source
and/or destination addresses from test ports TP1 and TP2 at
the learning rate of controller.
2. Query the controller at a regular interval (e.g., 5 seconds)
for the number of flow entries from its northbound interface.
3. Stop the test when the retrieved value is constant for three
consecutive iterations and record the value received from the
last query (Nrp).
Bhuvan, et al. Expires March 26, 2015 [Page 22]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Proactive Path Provisioning:
1. Install unique flows continuously through controller's
northbound or management interface until a failure response
is received from the controller.
2. Record the total number of successful responses (Nrp).
Note:
Some controller designs for proactive path provisioning may
require the switch to send flow setup requests in order to
generate flow setup responses. In such cases, it is recommended
to generate bi-directional traffic for the provisioned flows.
Measurement:
Proactive Path Provisioning:
Max Flow Entries = Total number of flows provisioned (Nrp)
Reactive Path Provisioning:
Max Flow Entries = Total number of learnt flow entries (Nrp)
Flow Scalable Limit = Max Flow Entries.
Reporting Format:
The Flow Scalable Limit results SHOULD be tabulated with the
following information in addition to the configuration parameters
captured in section 6.
- Provisioning Type (Proactive/Reactive)
7.3 Security
7.3.1 Exception Handling
Objective:
To determine the effect of handling error packets and
notifications on performance tests. The impact SHOULD be measured
for the following performance tests
a. Path Programming Rate
b. Path Programming Time
c. Network Topology Change Detection Time
Prerequisite:
This test should be performed after obtaining the baseline
measurement results for the above performance tests.
Bhuvan, et al. Expires March 26, 2015 [Page 23]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Procedure:
1. Perform the above listed performance tests and send 1% of
messages from the Synchronous Message Processing Rate as
invalid messages from the connected nodes.
2. Perform the above listed performance tests and send 2% of
messages from the Synchronous Message Processing Rate as
invalid messages from the connected nodes.
Note:
Invalid messages can be frames with incorrect protocol fields
or any form of failure notifications sent towards controller.
Measurement:
Measurement should be done as per the equation defined in the
corresponding performance test measurement section.
Reporting Format:
The Exception Handling results SHOULD be reported in the format
of table with a column for each of the below parameters and row
for each of the listed performance tests.
- Without Exceptions
- With 1% Exceptions
- With 2% Exceptions
7.3.2 Denial of Service Handling
Objective:
To determine the effect of handling DoS attacks on performance
and scalability tests The impact SHOULD be measured for the
following tests
a. Path Programming Rate
b. Path Programming Time
c. Network Topology Change Detection Time
d. Network Discovery Size
Prerequisite:
This test should be performed after obtaining the baseline
measurement results for the above tests.
Procedure:
1. Perform the listed tests and launch DoS attack towards
controller while the test is running.
Bhuvan, et al. Expires March 26, 2015 [Page 24]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Note:
DoS attacks can be launched on one of the following interfaces.
a. Northbound (e.g., Sending a huge number of requests on
northbound interface)
b. Management (e.g., Ping requests to controller's management
interface)
c. Southbound (e.g., TCP SYNC messages on southbound interface)
Measurement:
Measurement should be done as per the equation defined in the
corresponding test's measurement section.
Reporting Format:
The DoS Attacks Handling results SHOULD be reported in the format
of table with a column for each of the below parameters and row
for each of the listed tests.
- Without any attacks
- With attacks
The report should also specify the nature of attack and the
interface.
7.4 Reliability
7.4.1 Controller Failover Time
Objective:
To compute the time taken to switch from one controller to
another when the controllers are teamed and the active controller
fails.
Setup Parameters:
The following parameters MUST be defined:
Controller setup parameters:
Number of cluster nodes (CN) - Defines the number of member nodes
present in the cluster.
Redundancy Mode (RM) - Defines the controller clustering mode
e.g., Active - Standby or Active - Active.
Test Setup:
The test can use the test setup described in section 4.4 of this
document.
Bhuvan, et al. Expires March 26, 2015 [Page 25]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Prerequisite:
1. Master controller election should be completed.
2. Nodes are connected to the controller cluster as per the
Redundancy Mode (RM).
3. The controller cluster should have completed the network
topology discovery.
4. The SDN Node should send all new flows to the controller when
it receives.
Procedure:
1. Send bi-directional traffic continuously with unique
source and/or destination addresses from test ports
TP1 and TP2 at the rate that the controller processes without
any drops.
2. Bring down the active controller.
3. Stop the test when a first frame received on TP2 after
failover operation.
4. Record the test duration (Td), total number of frames
sent (Nsnt) on TP1 and number of frames received (Nrvd)
on TP2.
Measurement:
Controller Failover Time = ((Td/Nrvd) - (Td/Nsnt))
Packet Loss = Nsnt - Nrvd
Reporting Format:
The Controller Failover Time results SHOULD be tabulated with the
following information.
- Number of cluster nodes
- Redundancy mode
- Controller Failover
- Time Packet Loss
7.4.2 Network Re-Provisioning Time
Objective:
To compute the time taken to re-route the traffic by the
controller when there is a failure in existing traffic paths.
Setup Parameters:
Same setup parameters as defined in the Path Programming Rate
performance test (Section 7.1.5).
Prerequisite:
Network with the given number of nodes and intended
topology (Mesh or Tree) with redundant paths should be
deployed.
Bhuvan, et al. Expires March 26, 2015 [Page 26]
Internet Draft SDN Controller Benchmarking Methodology March 2015
Procedure:
1. Perform the test procedure mentioned in Path Programming
Rate test (Section 7.1.5).
2. Send bi-directional traffic continuously with unique sequence
number for one particular traffic endpoint.
3. Bring down a link or switch in the traffic path.
4. Stop the test after receiving first frame after network
re-convergence (timeline).
5. Record the time of last received frame prior to the frame loss
at TP2 (TP2-Tlfr) and the time of first frame received after
the frame loss at TP2 (TP2-Tffr).
6. Record the time of last received frame prior to the frame loss
at TP1 (TP1-Tlfr) and the time of first frame received after
the frame loss at TP1 (TP1-Tffr).
Measurement:
Forward Direction Path Re-Provisioning Time (FDRT)
= (TP2-Tffr - TP2-Tlfr)
Reverse Direction Path Re-Provisioning Time (RDRT)
= (TP1-Tffr - TP1-Tlfr)
Network Re-Provisioning Time = (FDRT+RDRT)/2
Forward Direction Packet Loss = Number of missing sequence frames
at TP1
Reverse Direction Packet Loss = Number of missing sequence frames
at TP2
Reporting Format:
The Network Re-Provisioning Time results SHOULD be tabulated with
the following information.
- Number of nodes in the primary path
- Number of nodes in the alternate path
- Network Re-Provisioning Time
- Forward Direction Packet Loss
- Reverse Direction Packet Loss
Bhuvan, et al. Expires March 26, 2015 [Page 27]
Internet Draft SDN Controller Benchmarking Methodology March 2015
8. Test Coverage
+ -----------------------------------------------------------------+
| | Performance | Scalability | Reliablity |
+ -----------+-------------------+---------------+-----------------+
| | 1. Network Topolo-|1. Network | |
| | -gy Discovery | Discovery | |
| | | Size | |
| Setup | 2. Path Provision-| | |
| | -ing Time | | |
| | | | |
| | 3. Path Provision-| | |
| | -ing Rate | | |
+------------+-------------------+---------------+-----------------+
| | 1. Synchronous |1. Flow Scalab-|1. Network |
| | Message Proces-| -le Limit | Topology |
| | -sing Rate | | Change |
| | | | Detection Time|
| | 2. Synchronous | | |
| | Message Proces-| |2. Exception |
| | -sing Time | | Handling |
| Operational| | | |
| | | |3. Denial of |
| | | | Service |
| | | | Handling |
| | | | |
| | | |4. Network Re- |
| | | | Provisioning |
| | | | Time |
| | | | |
+------------+-------------------+---------------+-----------------+
| | | | |
| Tear Down | | |1. Controller |
| | | | Failover Time |
+------------+-------------------+---------------+-----------------+
9. References
9.1 Normative References
[RFC6241] R. Enns, M. Bjorklund, J. Schoenwaelder, A. Bierman,
"Network Configuration Protocol (NETCONF)",RFC 6241,
June 2011.
[RFC6020] M. Bjorklund, "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010
Bhuvan, et al. Expires March 26, 2015 [Page 28]
Internet Draft SDN Controller Benchmarking Methodology March 2015
[RFC5440] JP. Vasseur, JL. Le Roux, "Path Computation Element (PCE)
Communication Protocol (PCEP)", RFC 5440, March 2009.
[OpenFlow Switch Specification] ONF,"OpenFlow Switch Specification"
Version 1.4.0 (Wire Protocol 0x05), October 14, 2013.
[I-D.i2rs-architecture] A. Atlas, J. Halpern, S. Hares, D. Ward,
T. Nadeau, "An Architecture for the Interface to the
Routing System", draft-ietf-i2rs-architecture-05
(Work in progress), July 20,2014.
9.2 Informative References
[OpenContrail] Ankur Singla, Bruno Rijsman, "OpenContrail
Architecture Documentation",
http://opencontrail.org/opencontrail-architecture-documentation
[OpenDaylight] OpenDaylight Controller:Architectural Framework,
https://wiki.opendaylight.org/view/OpenDaylight_Controller
10. IANA Considerations
This document does not have any IANA requests.
11. Security Considerations
Benchmarking tests described in this document are limited to the
performance characterization of controller in lab environment with
isolated network and dedicated address space.
12. Acknowledgements
The authors would like to acknowledge the following individuals for
their help and participation of the compilation of this document:
Al Morton (AT&T), Brain Castelli (Spirent), Sandeep Gangadharan(HP),
Sarah Banks (VSS Monitoring) who made significant suggestions to the
current and earlier versions of this document.
Bhuvan, et al. Expires March 26, 2015 [Page 29]
Internet Draft SDN Controller Benchmarking Methodology March 2015
13. Authors' Addresses
Bhuvaneswaran Vengainathan
Veryx Technologies Inc.
1 International Plaza, Suite 550
Philadelphia
PA 19113
Email: bhuvaneswaran.vengainathan@veryxtech.com
Anton Basil
Veryx Technologies Inc.
1 International Plaza, Suite 550
Philadelphia
PA 19113
Email: anton.basil@veryxtech.com
Vishwas Manral
Ionos Corp,
4100 Moorpark Ave,
San Jose, CA
Email: vishwas@ionosnetworks.com
Mark Tassinari
Hewlett-Packard,
8000 Foothills Blvd,
Roseville, CA 95747
Email: mark.tassinari@hp.com
Bhuvan, et al. Expires March 26, 2015 [Page 30]