Ryuo - Using High Level Northbound API for Control ...

19
Ryuo Using High Level Northbound API for Control Messages in SDN Shaoyu Zhang 1 , Yao Shen 1 , Matthias Herlich 2 , Kien Nguyen 3 , Yusheng Ji 2 , Shigeki Yamada 2 1 Shanghai Jiao Tong University, China 2 National Institute of Informatics, Japan 3 National Institute of Information and Communications Technology, Japan August 18, 2015 1 / 19

Transcript of Ryuo - Using High Level Northbound API for Control ...

Page 1: Ryuo - Using High Level Northbound API for Control ...

RyuoUsing High Level Northbound API for Control Messages in SDN

Shaoyu Zhang1, Yao Shen1, Matthias Herlich2, Kien Nguyen3,Yusheng Ji2, Shigeki Yamada2

1Shanghai Jiao Tong University, China2National Institute of Informatics, Japan

3National Institute of Information and Communications Technology, Japan

August 18, 2015

1 / 19

Page 2: Ryuo - Using High Level Northbound API for Control ...

Issues of OpenFlow

Control latencyApplications couple with OpenFlow at some degreeAll control logic centralized

2 / 19

Page 3: Ryuo - Using High Level Northbound API for Control ...

Ryuo: ArchitectureControl Server

Ryuo App

Control Network

Local Services Local Services Local Services

Data Plane Data Plane Data Plane

SDN Switch SDN Switch SDN Switch

Northbound API

Southbound API

Ryuo App: Focus on business logicLocal Service: Provides high level API, ensures compatibilityDomain specific control message

3 / 19

Page 4: Ryuo - Using High Level Northbound API for Control ...

Example: Topology Discovery and Routing

Topology App Routing App

Ryu Controller Ryu Controller Ryu Controller

OF Switch OF Switch OF SwitchOpenFlow

GetTopology()

Topo Service Routing Service

4 / 19

Page 5: Ryuo - Using High Level Northbound API for Control ...

Evaluations

Control TrafficControl LatencyThroughput of handling local events

5 / 19

Page 6: Ryuo - Using High Level Northbound API for Control ...

Evaluation Enviornment

Pica8 P-3295 OpenFlow switch▶ CPU: 825MHz PowerPC▶ Memory: 512MB

PC: For host, Ryu controller, RyuoApplication

▶ CPU: Intel Core i5-3470, 3.2 GHz▶ Memory: 4GB

6 / 19

Page 7: Ryuo - Using High Level Northbound API for Control ...

Control Traffic Evalution

0 10 20 30 40 50Number of Edges

0.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

4.5Control Traffic (MB)

Standard OpenFlow

Non-local

Ryuo

Figure: OpenFlow vs Local Controller Approach (approx.) vs Ryuo

7 / 19

Page 8: Ryuo - Using High Level Northbound API for Control ...

Evaluation: Fast Failover with OpenFlow 1.0

S3

S1 S2

H1 H2

H1: 1K packets/s.H2: Wireshark.S1-S2 → S1-S3-S2Count pakcets lost

8 / 19

Page 9: Ryuo - Using High Level Northbound API for Control ...

Evaluation: Fast Failover with OpenFlow 1.0

Ryuo OF130

100

200

300

400

500

600

700

800

900

Switc

h-ov

er time (m

s) 678.6599.6

Local Service: ~0.1s slower.

9 / 19

Page 10: Ryuo - Using High Level Northbound API for Control ...

Throughput Evaluation: Setup

OpenFlow Switch

Local Service

PC

pktgen wireshark

UDP ICMP OpenFlow Switch

PC1

PC2

Controller

pktgen wireshark

OpenFlow

UDP ICMP

Throughput: Number of events handled in one second.Send UDP packets, record responses.

10 / 19

Page 11: Ryuo - Using High Level Northbound API for Control ...

Throughput Evaluation: Result

20 30 40 50 60 70 80 90 100Packets sent per second

20

30

40

50

60

70

80

90

100

Respo

nse packets received per secon

d RyuoNormal

Switch can only handle about40 packets per seconds.Not a problem on avirtualized server.New switches with morepowerful CPUs.[1]

11 / 19

Page 12: Ryuo - Using High Level Northbound API for Control ...

Ryuo: Implementation

Ryuo Apps and Local Services based on Ryu.Global Local Communication: Pyro4[2]

Available Online: https://github.com/epcc-networking/ryuo

12 / 19

Page 13: Ryuo - Using High Level Northbound API for Control ...

Ryuo: DeploymentControl Server

Control Network

App1 App2 ...

Control Network

SDN Switch Virtualized Server

Local Services

Data Plane

Local Services

Sofware Switch

Two ways to deploy:▶ Directly on OpenFlow switches.▶ On servers with multiple VMs and Open vSwitch.

13 / 19

Page 14: Ryuo - Using High Level Northbound API for Control ...

Related Work

Kandoo[3]: Local and Root ControllerBeehive Netctrl[4]: Distributed Network ControllerOrion[5]: Hierarchical Control Plane

14 / 19

Page 15: Ryuo - Using High Level Northbound API for Control ...

Conclusion

Advantages:▶ Reusable Local Services provide high level API.▶ Easy to extend southbound API.▶ Less control traffic.

Disadvantanges:▶ Limited by resources on the switch.▶ Local Service deployment.

15 / 19

Page 16: Ryuo - Using High Level Northbound API for Control ...

Questions?

16 / 19

Page 17: Ryuo - Using High Level Northbound API for Control ...

Thank you!

17 / 19

Page 18: Ryuo - Using High Level Northbound API for Control ...

References I

[1] AS5712-54X with ONIE / 10GbE Data Center Switch. [Online].Available:http://www.edge-core.com/ProdDtl.asp?sno=457&AS5712-54X

[2] Pyro - Python Remote Objects. [Online]. Available:http://pythonhosted.org/Pyro4/

[3] S. Hassas Yeganeh and Y. Ganjali, “Kandoo: A framework forefficient and scalable offloading of control applications,” inProceedings of the First Workshop on Hot Topics in SoftwareDefined Networks. ACM, 2012, pp. 19–24.

18 / 19

Page 19: Ryuo - Using High Level Northbound API for Control ...

References II

[4] ——, “Beehive: Towards a simple abstraction for scalablesoftware-defined networking,” in Proceedings of the 13thWorkshop on Hot Topics in Networks. ACM, 2014, pp.13:1–13:7.

[5] Y. Fu, J. Bi, K. Gao, Z. Chen, J. Wu, and B. Hao, “Orion: Ahybrid hierarchical control plane of software-defined networking forlarge-scale networks,” in IEEE 22nd International Conference onNetwork Protocols (ICNP), 2014, pp. 569–576.

19 / 19