+ All Categories
Home > Documents > LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully...

LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully...

Date post: 30-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
24
LOOM An Open Flow Controller Marc Sugiyama, Erlang Solutions
Transcript
Page 1: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

LOOM!An Open Flow Controller

Marc Sugiyama, Erlang Solutions

Page 2: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Problem

Build an extensible, robust OpenFlow Controller for thousands of switches

Page 3: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Why?

• Explosion in the number of IP devices

• Virtual Hosts, Mobile

• Internet of things: Sensors, Body Monitors, Cars, Lightbulbs

• “The network is the computer” - John Gage

Page 4: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

OpenFlowSeparates the Controller…

… from the Switching hardware

Together they do what traditional ethernet switches can do.

Page 5: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

What is LOOM?

• Large scale OpenFlow controller

• Global view, deliberate, network aware applications

• Not a traditional IP switch controller

• Open Source https://github.com/FlowForwarding/loom

Page 6: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

LOOM Architecture

Switch

Network Executive

Application, Controller

Application, Controller

Data Plane

Control Plane

Switch Switch

. . .

Page 7: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Where’s the code?

• http://github.com/FlowForwarding

• Libraries: of_protocol, of_msg_lib, of_driver, ofs_handler, enetconf, of_config, ofs_config

• Examples: icontrol, tapestry, stats_poller

Page 8: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Getting StartedCustom Controller

ofs_handler

of_driver

of_msg_lib

of_protocol

Custom Config Point

ofs_config

enetconf

of_config

Page 9: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Connection Protocol Flow

Page 10: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Asynchronous Send Protocol Flow

Page 11: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Synchronizing Send Protocol Flow

Page 12: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Asynchronous Messages Protocol Flow

Page 13: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Callbacks

Page 14: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Sending Request

• Create message record with of_msg_lib

• ofs_handler:sync_send

• Process replies, if any

Page 15: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Subscriptions

• Handling async messages

• ofs_handler:subscribe(DPID, Module, What)

• atom, {atom, fun/1}

Page 16: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Example: adding flowMatches = [{in_port, <<1:32>>}], Instructions = [{apply_actions,

[{output, 2, no_buffer}]}], Opts = [{table_id, 0},{priority,100},

{idle_timeout,0},{cookie,<<0,0,0,0,0,0,0,0,10>>},{cookie_mask,<<0,0,0,0,0,0,0,0>>}],

Request = of_msg_lib:flow_add(4, Matches, Instructions, Opts),

Page 17: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Example: adding flowReply = ofs_handler:sync_send(DPID,

Request). !Success: {ok, noreply} !

Example error: {ok, {ofp_message, 4, error, 0,

ofp_error_msg, bad_action, bad_out_port, <<>>}}}

Page 18: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

packet_in

• ofs_handler:subscribe(DPID, Module, packet_in)

• Module:handle_message({packet_in, Xid, Body}, State)

Page 19: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Danger!

• Calls from callbacks can cause deadlocks

Page 20: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Current Status• PlugFest Indianapolis May 2014

• Successfully tested with switches from five vendors, Ixia, and Spirent

• Managed 2000 simulated switches on Ixia - flows between 1000 switches

• Demonstrated stats_poller in large topology test

Page 21: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Future• Fault tolerance

• Switch level data store

• Graph store

• Network Executive

• Flow compiler

Page 22: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Learn More

• http://www.opennetworking.org

• http://www.flowforwarding.org

• http://github.com/FlowForwarding

Page 23: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Contribute!• Learning switch

• Topology discovery (LLDP)

• Expand icontrol, more stats poller integration

• OpenFlow Config

• Documentation

Page 24: LOOM Erlang User Conference...Current Status • PlugFest Indianapolis May 2014 • Successfully tested with switches from five vendors, Ixia, and Spirent • Managed 2000 simulated

Questions?

• http://github.com/FlowForwarding

• Marc Sugiyama [email protected]


Recommended