Open Network Linux A Network Operating System (NOS) for OCP



Similar documents
Open Network Linux. A Path to an Open Source Network OS. Rob Sherwood Big Switch Networks CTO

OPEN NETWORK LINUX UPDATES. Rob Sherwood CTO, Big Switch Networks Open Compute Engineering Workshop: May, 2014

PROPOSAL: OCP COMMON LINUX SWITCH DISTRIBUTION. Rob Sherwood and Mansour Karam OCP November 2013

Open Network Install Environment (ONIE) LinuxCon North America 2015

BARE METAL SOFTWARE DEFINED NETWORKS, AND OPEN SOURCE. Rob Sherwood Big Switch Networks, CTO BANV, May 2014

TUTORIAL: WHITE BOX/BARE METAL SWITCHES. Rob Sherwood CTO, Big Switch Networks Open Network User s Group: May, 2014

Open Network Install Environment

Floodlight and the OpenSDN Stack

Switch Chip panel discussion. Moderator: Yoshihiro Nakajima (NTT)

SDN AND BARE METAL SWITCHES ARE LIKE PEANUT BUTTER AND JELLY: TWO GOOD THINGS THAT ARE GREAT TOGETHER!

Overview. Open source toolchains. Buildroot features. Development process

Intel DPDK Boosts Server Appliance Performance White Paper

Example of Standard API

OPENFLOW, SDN, OPEN SOURCE AND BARE METAL SWITCHES. Guido Appenzeller (Not representing Anyone)

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Sistemi ad agenti Principi di programmazione di sistema

THE CHANGING FACE OF SDN. Guido Appenzeller 2014

EXPLORING LINUX KERNEL: THE EASY WAY!

Virtualization for Cloud Computing

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Chapter 3 Operating-System Structures

BROADCOM SDN SOLUTIONS OF-DPA (OPENFLOW DATA PLANE ABSTRACTION) SOFTWARE

Enabling Technologies for Distributed Computing

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Linux Embedded devices with PicoDebian Martin Noha

Embedded Linux Platform Developer

Dell Networking ARGOS 24/03/2016. Nicolas Roughol. Networking Sales Engineer. Tel : nicolas_roughol@dell.com

CORD Fabric, Overlay Virtualization, and Service Composition

Open Source At The Top Of The Rack

Enabling Technologies for Distributed and Cloud Computing

Open: Broader and Deeper

Next Generation Now: Red Hat Enterprise Linux 6 Virtualization A Unique Cloud Approach. Jeff Ruby Channel Manager jruby@redhat.com

LSN 10 Linux Overview

ReactOS is (not) Windows. Windows internals and why ReactOS couldn t just use a Linux kernel

Emerging Software Defined Networking & Open APIs Ecosystem

FAME Operating Systems

Embedded PC The modular Industrial PC for mid-range control. Embedded PC 1

UEFI on Dell BizClient Platforms

SDN IN TOMORROW'S DATA CENTER. Guido Appenzeller October, 2013

Virtualization. Dr. Yingwu Zhu

Trusted computing applied in Open Power Linux

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

UEFI PXE Boot Performance Analysis

Chapter 3: Operating-System Structures. Common System Components

Chapter 2 System Structures

RED HAT ENTERPRISE VIRTUALIZATION & CLOUD COMPUTING

Virtual Computing and VMWare. Module 4

Hybrid Platform Application in Software Debug

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

#311 Engineer. Year of birth 1967 Specialities: Embedded Systems, Linux

Hi and welcome to the Microsoft Virtual Academy and

Lesson 06: Basics of Software Development (W02D2

1U µtca.4 Chassis with 2 AMC Slots, PCIe Gen 3 VT816

Embedded Linux development training 4 days session

9/26/2011. What is Virtualization? What are the different types of virtualization.

Operating Systems (Linux)

SDN software switch Lagopus and NFV enabled software node

Mark Bennett. Search and the Virtual Machine

VoIP support on Qtopia. Vladimir Minenko, Ph.D.

What the student will need:

Networking for Caribbean Development

Open Ethernet. April

Enhancing Hypervisor and Cloud Solutions Using Embedded Linux Iisko Lappalainen MontaVista

Managed Backup Service - Agent for Linux Release Notes

Operating System Structures

Windows NT. Chapter 11 Case Study 2: Windows Windows 2000 (2) Windows 2000 (1) Different versions of Windows 2000

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Eucalyptus: An Open-source Infrastructure for Cloud Computing. Rich Wolski Eucalyptus Systems Inc.

Scaling the S in SDN at Azure. Albert Greenberg Distinguished Engineer & Director of Engineering Microsoft Azure Networking

USB Flash Drive User s Manual

The XenServer Product Family:

QUESTIONS & ANSWERS. ItB tender 72-09: IT Equipment. Elections Project

Enterprise-Class Virtualization with Open Source Technologies

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology

Red Hat Linux Internals

Two drivers soon followed utils, timesource. Initial location in the kernel tree: drivers/staging/hv/ Total number of lines of code: About 21,000

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

USB 2.0 Flash Drive User Manual

An Embedded Wireless Mini-Server with Database Support

Programación de Sistemas Empotrados y Móviles (PSEM)

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Operating System Organization. Purpose of an OS

Basic Trends of Modern Software Development

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com

opensuse.org Build Service

Android: How To. Thanks. Aman Nijhawan

The MeeGo Multimedia Stack. Dr. Stefan Kost Nokia - The MeeGo Multimedia Stack - CELF Embedded Linux Conference Europe

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

APPLICATION VIRTUALIZATION TECHNOLOGIES WHITEPAPER

The Red Hat Enterprise Linux advantages over Oracle Linux

Programmable Networking with Open vswitch

Open Source Project from China. Northeast Asia Open Source SoftwareCompetition Nov. 2012

NV-DIMM: Fastest Tier in Your Storage Strategy

Running Debian on Inexpensive Network Attached Storage Device

SDN and Data Center Networks

Stefan Schmidt. LinuxTag

More Efficient Virtualization Management: Templates

Transcription:

Open Network Linux A Network Operating System (NOS) for OCP Rob Sherwood Big Switch Networks CTO

Outline: Open Network Linux (ONL) What is ONL? Contributors and Community What does ONL provide? ONIE Compatible NOS Installer Second stage more featureful loader Server-like Management Platform Abstraction Layer ONLP Supported Hardware

What is Open Network Linux? A collection of software packages, utilities, drivers, and abstractions to run on OCP Switch hardware i.e., a NOS that ONIE would install Why not use an existing Linux distribution? Does build on existing distribution Debian Wheezy Need to create ONIE installers for many platforms Need to manage switch-specific hardware (e.g.,sfps) Switches are very similar to servers, but not quite

ONL Example Use-Cases 1. DIY packet forwarding platform, e.g., for students Platform driver code too complicated for most hobbyists 2. OCP Certification Reference testing platform Common core in open source for verification, reference 3. Building Block for Commercial Software Pull ONL in to a larger, commercially supported solution

Kernel Linux Patches 3.9.6 Architecture Infrastructure Module (AIM) Linux 3.9.6 Linux 3.8.13 Specific component: `make C $ONL/components/ $arch/$component/ deb` Busybox Buildroot Etc. Open Route Cache FaultD Platform * (installers, etc.) ONLP (Platform API Library) ONLP $vendor ONL Loader Anatomy of `make onl $arch` All components: `make C $ONL/builds/components` ONL Specific.debs $ONL/debian/repo Generic.debs From Emdebian.org and Debian.org Via apt cacher ng SWI: `make C $ONL/builds/swi/$arch/all` Using Multistrap and `onl mkws` ONL Loader Switch Image (.swi) ONIE Installer SHAR wrapper Installer: `make C $ONL/builds/ installer/$arch/all` ONL ONIE Installer New from ONL 3 rd Party OSS Mixed

ONL Relative to ONIE An Installer Needs a NOS ~3MB ONIE One Time Installer ~16MB Normal Full featured Boot Loader (w/busybox) ~160 MB Main Network OS Image (.swi) (w/real binaries) Github.com/ onie/onie Open Network Linux Common kernel and DTS files??

Why Use ONL? Help ecosystem focus on innovation Many annoying software details to run an OCP switch Building platform drivers not high value asset; should be common Enables a reference NOS implementation Hardware without software is not useful Package up details and best practices into one place Help bootstrap the Open ecosystem and OCP adoption Allows commercial companies and DYI-folks to build OCP-based products faster

Outline: Open Network Linux (ONL) What is ONL? Contributors and Community What does ONL provide? ONIE Compatible NOS Installer Second stage more featureful loader Server-like Management Platform Abstraction Layer ONLP Supported Hardware

Background: Generic NOS Architecture Applications Environment Agent(s) Forwarding Agent Platform Platform Abstraction Layer OS Distribution (Linux kernel, etc.) ASIC SDK Hardware CPU Misc Hardware (fans, LEDs, SFP, sensors) ASIC Per Switch Stack

Shipping now: ONL + Open Route Cache Quagga/Xorp/Etc. Applications ONLP APIs SensorD ONLP Dump S N M P Open Route Cache Orc-brcm Driver This API looks a lot like SAI ORC Driver API Platform ONL Platform APIs ONL Distribution (Linux + stuff) BRCM SDK Closed Source (sigh) Hardware CPU (x86,ppc) Misc Hardware (fans, LEDs, SFP, sensors) BRCM Per Switch Stack

Next Target: ONL + OpenFlow Agent OpenFlow Controller OpenFlow Protocol: v1.0-v1.3 Applications SensorD ONLP Dump S N M P Indigo OpenFlow Agent Indigo OF-DPA Driver Indigo API Platform ONL Platform APIs ONL Distribution (Linux + stuff) OF-DPA BRCM SDK Closed Source (sigh) Hardware CPU (x86,ppc) Misc Hardware (fans, LEDs, SFP, sensors) BRCM Per Switch Stack

ONL Contributors/Supporters (So Far) Adds Forwarding Agents Open Network Linux Additional Drivers Provides Platform Drivers OTHERS

Open Network Linux Community Project has been public for 10 months Code http://github.com/opennetworklinux/onl Website http://opennetlinux.org ~50K LOC (without Linux patches); 56K Makefile lines Community Traction Five six platforms added by community; more coming Three companies have commercial projects w/onl ~14 code contributors from four companies

Outline: Open Network Linux (ONL) What is ONL? Contributors and Community What does ONL provide? ONIE Compatible NOS Installer Second stage more featureful loader Server-like Management Platform Abstraction Layer ONLP Supported Hardware

ONL Provides an ONIE-Compatible Installer ONIE is great but needs an installer Installer packages entire NOS into a single image Installer is the glue between Platform and NOS Sets the $nos_bootcmd magic e.g., nos_bootcmd= diskboot 0x10000000 0:1 ; bootm 0x10000000 Formats local storage, e.g., flash or local disk Installs ONL loader onto local storage (see next)

ONL Provides A Second-Stage Loader uboot (PPC) or Grub (x86) is the first stage loader ONIE is a 2 nd -stage loader; only runs at install-time ONL 2 nd Stage Loader Runs every time before NOS boots Built on Linux enables a full shell for rescue mode Load NOS via ssh/scp/http/tftp/nfs/ftp/local flash Net boot allows centralized NOS image management (future) Initialize ASIC/front panel ports inline boot

ONL Provides Server-like Management Switches have flash, not hard drives Problem 1: Maximum flash cycle time limit disk writes Problem 2: Flash and ram more limited than typical servers Fix: Use overlayfs to overlay copy-on-write ram disk over flash ONL uses full-featured binaries For size, most switch OS s use stripped binaries, e.g., busybox Bigger binaries uses additional space, but ok with overlayfs Install/use proper Debian binaries using apt-get Useful for development or operations, e.g., gcc or Chef/Puppet

ONL has a Platform Abstraction Layer BIOS does not provide inventory/drivers for all devices SFP has a life cycle, like USB; F2B vs. B2F power supplies Hot Pluggable devices: PSU, Fan trays, AC/DC power Not all platforms have BIOSs Need for per-platform memory maps of LEDs, Fans, Temp ONL Platform provides an Platform Abstraction Layer Not tied to Linux subsystem (but could be integrated) Goal is for trivial driver impls; leverage existing diag code OID based; single threaded, multi-application https://github.com/opennetworklinux/onlp/tree/master/modules/onlp/module/inc/onlp

ONL Supported Hardware Already supports Accton OCP boxes Working on OCP box with x86 with support from Interface Masters Going to work with other ODMs

Conclusion ONL is a Linux Distribution for bare metal switches Growing support for OCP and non-ocp switches Now supports ORC forwarding agent Indigo-based OpenFlow agent in progress Find out more at http://opennetlinux.org Documentations, videos, pre-compiled binaries