Tutorial: Elixir
Weaving OpenFlow Together with LOOM

Marc Sugiyama
Senior Architect @ Erlang Solutions

If you think functional languages are a big pain in the rear but you still need the tools for building concurrent applications and multi-core programs, then Elixir is your thing! Combining the best features of Ruby and Erlang with brilliant ideas of its own, Elixir might just change the way you write software forever. This tutorial introduces you to Elixir, the best of both worlds, Ruby’s unrivalled syntactic beauty with the power of Erlang’s semantics.

Elixir is a dynamic language with flexible syntax based on Ruby and macro support. It is built on top of the Erlang VM, an unrivalled environment for massive scalability, concurrency, distribution, and fault tolerance. It comes with built-in support for metaprogramming, provides first-class support for pattern matching, polymorphism via protocols (similar to Clojure’s), aliases and associative data structures (called dicts or hashes in other programming languages).

In this tutorial, we cover:

- Basic and Sequential Elixir

- Concurrent Programming

- Meta-Programming


LINC and LOOM are an open source OpenFlow software switch and controller. This talk focuses on LOOM, the controller. We'll start with where LOOM fits into the network architecture, the goals of the project, and its design direction. Then we'll dive into the details of how to use the LOOM libraries to write your own OpenFlow controllers.

Talk objectives:

- Introduce LOOM and the LOOM libraries.

Target audience:

- Anyone interested in experimenting with the OpenFlow protocol to control OpenFlow switches.


Marc is a Senior Architect at Erlang Solutions, Inc. A Bay Area native, he has more than 30 years of software development experience and has worked on everything from testing frameworks in Tcl at Sybase and Cisco, to SMP relational database engines in C at Sybase, to a MMO engine in Twisted Python for Pixverse (a company he co-founded), to a large scale real time chat system in Erlang for hi5 Networks. Prior to joining Erlang Solutions, he built a phone call handling service in Erlang for Ribbit/British Telecom leading a team of developers in Brazil, Sweden, the US, and the UK. While at Erlang Solutions his projects have included developing an OpenFlow controller and sample applications for the IvanOS project, design and code reviews, and providing training at conferences and for clients. A published author, he wrote his first magazine articles and books while in high school. He has presented at Sybase User Group Meetings, the Colorado Software Summit, Erlang Factory San Francisco, and the Erlang User Conference Stockholm. He holds a Bachelors of Science in Engineering and Masters of Engineering from Harvey Mudd College (Claremont, CA), previously served on the Board of Trustees of The College Preparatory School in Oakland, CA, and currently serves on The College Preparatory School Advisory Council and the Board of Directors of the Heart Mountain Wyoming Foundation.

GitHub: marcsugiyama

Twitter: @marcsugiyama

Back to conference page