Open Flow Controller and Switch Datasheet



Similar documents
基 於 SDN 與 可 程 式 化 硬 體 架 構 之 雲 端 網 路 系 統 交 換 器

7a. System-on-chip design and prototyping platforms

HANIC 100G: Hardware accelerator for 100 Gbps network traffic monitoring

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

Tyrant: A High Performance Storage over IP Switch Engine

The new frontier of the DATA acquisition using 1 and 10 Gb/s Ethernet links. Filippo Costa on behalf of the ALICE DAQ group

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

DE4 NetFPGA Packet Generator Design User Guide

A low-cost, connection aware, load-balancing solution for distributing Gigabit Ethernet traffic between two intrusion detection systems

Understanding OpenFlow

USB - FPGA MODULE (PRELIMINARY)

OpenFlow: Enabling Innovation in Campus Networks

NetFlow probe on NetFPGA

Chapter 5 Cubix XP4 Blade Server

Autonomous NetFlow Probe

Networking Virtualization Using FPGAs

Implementing Open flow switch using FPGA based platform

USB 3.0 Connectivity using the Cypress EZ-USB FX3 Controller

How Router Technology Shapes Inter-Cloud Computing Service Architecture for The Future Internet

Network connectivity controllers

Fondamenti su strumenti di sviluppo per microcontrollori PIC

Exploiting Stateful Inspection of Network Security in Reconfigurable Hardware

Pre-tested System-on-Chip Design. Accelerates PLD Development

AMC13 T1 Rev 2 Preliminary Design Review. E. Hazen Boston University E. Hazen - AMC13 T1 V2 1

The modular concept of the MPA-3 system is designed to enable easy accommodation to a huge variety of experimental requirements.

Interfacing Credit Card-sized PCs to Board Level Electronics

OpenFlow with Intel Voravit Tanyingyong, Markus Hidell, Peter Sjödin

1. Memory technology & Hierarchy

Computer Architecture

White Paper Increase Flexibility in Layer 2 Switches by Integrating Ethernet ASSP Functions Into FPGAs

Design and Verification of Nine port Network Router

Architectural Level Power Consumption of Network on Chip. Presenter: YUAN Zheng

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

AGIPD Interface Electronic Prototyping

Network Virtualization Based on Flows

SBC6245 Single Board Computer

Software Defined Networking and the design of OpenFlow switches

Project Community Network Planning

December 2002, ver. 1.0 Application Note 285. This document describes the Excalibur web server demonstration design and includes the following topics:

Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen. Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik

10-/100-Mbps Ethernet Media Access Controller (MAC) Core

PCI Express* Ethernet Networking

Communicating with devices

Switch Fabric Implementation Using Shared Memory

40G MACsec Encryption in an FPGA

SABRE Lite Development Kit

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

LogiCORE IP AXI Performance Monitor v2.00.a

10/100/1000Mbps Ethernet MAC with Protocol Acceleration MAC-NET Core with Avalon Interface

Gigabit Ethernet Design

The Motherboard Chapter #5

Semiconductor Device Technology for Implementing System Solutions: Memory Modules

Network Traffic Monitoring an architecture using associative processing.

DL TC72 Communication Protocols: HDLC, SDLC, X.25, Frame Relay, ATM

Lesson 7: SYSTEM-ON. SoC) AND USE OF VLSI CIRCUIT DESIGN TECHNOLOGY. Chapter-1L07: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Hardware and Software

CAPTAN: A Hardware Architecture for Integrated Data Acquisition, Control, and Analysis for Detector Development

PE10G2T Dual Port Fiber 10 Gigabit Ethernet TOE PCI Express Server Adapter Broadcom based

Data Communication Networks and Converged Networks

A Low Latency Library in FPGA Hardware for High Frequency Trading (HFT)

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654

System on Chip Platform Based on OpenCores for Telecommunication Applications

VPX Implementation Serves Shipboard Search and Track Needs

ALL-USB-RS422/485. User Manual. USB to Serial Converter RS422/485. ALLNET GmbH Computersysteme Alle Rechte vorbehalten

DRAFT Gigabit network intrusion detection systems

Why 25GE is the Best Choice for Data Centers

SDN. WHITE PAPER Intel Ethernet Switch FM6000 Series - Software Defined Networking. Recep Ozdag Intel Corporation

The Bus (PCI and PCI-Express)

USB readout board for PEBS Performance test

The following is a summary of the key features of the ARM Injector:

Horst Görtz Institute for IT-Security

VTR-1000 Evaluation and Product Development Platform. User Guide SOC Technologies Inc.

C-GEP 100 Monitoring application user manual

SBC8600B Single Board Computer

How PCI Express Works (by Tracy V. Wilson)

SOLVING HIGH-SPEED MEMORY INTERFACE CHALLENGES WITH LOW-COST FPGAS

Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

Sam440ep-flex User Guide

ALL-ZC-2140P-DVI PCoIP Zero Client Overview

OpenFlow Switching: Data Plane Performance

OpenSPARC T1 Processor

SpW-10X Network Performance Testing. Peter Mendham, Jon Bowyer, Stuart Mills, Steve Parkes. Space Technology Centre University of Dundee

MPC603/MPC604 Evaluation System

Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University

Information- Centric Networks. Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics

High-Performance IP Service Node with Layer 4 to 7 Packet Processing Features

Arquitectura Virtex. Delay-Locked Loop (DLL)

Implementation of Web-Server Using Altera DE2-70 FPGA Development Kit

ALL-AIO-2321P ZERO CLIENT

Transcription:

Open Flow Controller and Switch Datasheet California State University Chico Alan Braithwaite Spring 2013

Block Diagram Figure 1. High Level Block Diagram The project will consist of a network development board which has an FPGA and multiple network interfaces. It will be a PCI E board for ease of programming and use. The board I will use in particular is the NetFPGA board developed by a team of researchers from Stanford, MIT, Google, and other major schools and corporations. The primary objective is to write a functional network switch in VHDL that fully supports the OpenFlow protocol. Once that s functional and tested, I plan on writing a custom controller and extending the capabilities of the switch. Figure 1 shows the high level block diagram of the system I will design and build. System Schematic An OpenFlow switch is a type of ethernet switch that contains flow tables which match packet headers to actions and apply them. I will be implementing the switch on a NetFPGA development board in VHDL. The NetFPGA development board provides all the necessary hardware for experimental development of network hardware. The switch logic will be implemented in VHDL on the

FPGA and has a minimum set of requirements defined by the OpenFlow protocol to be considered an OpenFlow compatible switch. Below is the high level schematic of the development board. Figure 2. NetFPGA Schematic The board communicates entirely via parallel synchronous address and data busses with all the interfaces to the Xilinx FPGA. The PCI interface makes interaction with the host computer easy and incredibly versatile compared to serial interfaces like USB. The ethernet buffers are managed by a Broadcom BCM5464SR Transceiver chip. All devices are memory mapped from the perspective of the FPGA which makes writing the VHDL easy as all the programmer has to worry about is reading and writing to the right buffer in memory. The board has linux drivers written for it that make programming the FPGA and communicating with the software running on the computer clean and simple. A. Hardware The hardware used in this project will be the NetFPGA board to build the switch. It has all the necessary components to allow versatile experimentation and development of network switch processors. The hardware requirements of the project dictate that I have an FPGA fully capable of handling all the logic required by an OpenFlow switch and should be fast enough to process packets at line rate. This board is uniquely designed to fit that bill. The following is a list of the hardware on the board taken from the NetFPGA website describing the hardware. [4]

Field Programmable Gate Array (FPGA) Logic Xilinx Virtex II Pro 50 4,176 Kbit block RAM 53,136 logic cells 2 PowerPC Cores Fully programmable Gigabit Ethernet networking ports Broadcom: BCM5464SR Connector block on left of PCB interfaces to 4 external RJ45 plugs Interfaces with standard Cat5E and Cat6 network cables Wire speed (Line rate) processing on all ports at all time using FPGA logic. Static Random Access Memory (SRAM) Cypress: CY7C1370D 167AXC Zero bus turnaround (ZBT), synchronous with the logic Two parallel banks of 18 MBit (2.25 MByte) ZBT memories Total capacity: 4.5 MBytes Suitable for storing forwarding table data Double Data Rate 2 RAM (DDR2 RAM) Micron: MT47H16M16BG 5E 400 MHz Asynchronous clock 25.6 Gbps peak memory throughput Total capacity: 64 MBytes Suitable for packet buffer storage Standard PCI Bus Interface Enables fast reprogramming/reconfiguration without use of JTAG Provides CPU access to memory mapped registers and memory on the NetFPGA hardware JTAG Debugging Port Allows for standard debugging through Xilinx Software B. Software The primary focus of my project will be implementing the OpenFlow switch in VHDL. OpenFlow is a protocol that was devised by scholars at institutions across the country as a way of creating a network infrastructure more open to experimentation of new protocols. They have already defined minimum requirements for an OpenFlow switch but leave the implementation details up to the

switch designers. At the highest level, the switch must be able to process OpenFlow packets and update the flow tables internally according to those packets. Figure 3 shows what must be implemented in VHDL for the switch. An OpenFlow switch consists of the forwarding element and the secure channel (used to communicate with a controller). The forwarding element of the switch consists of the pipeline and the flow tables which are used to map packet headers to actions. The secure channel will be managed by the host system but will operate through the switch via OpenFlow packets. Figure 3. OpenFlow Switch Pipeline The VHDL code will require a number of different modules that each represent a piece of the switch pipeline. I have defined the modules below without any consideration for how much time each takes for the time being. Each module has a specific task that it s responsible for before passing on the packet. Input Arbiter Determine which packet buffer to read next packet from Header Parser Parse the headers off the packet Determine which flow tables to look at

Table Lookup Loop through tables looking for matching table Queue in Action controller to be processed Action Controller Apply actions defined in flow table for currently processed packet Queue in Output Arbiter Output Arbiter Queue packet to port defined by Action Controller i. Flow Tables A flow table row must contain at least the following three fields: Packet Header to match the flow The rules/actions to apply to that flow A counter to track the statistics of that flow Match Fields Counters Instructions Table 1. An Example of a Flow Table There are three basic actions a switch must implement before it can be considered an OpenFlow switch: Packet Forwarding at Line Rate Encapsulate and forward un/matched packets to the Controller. Drop un/matched packets Whether or not a unmatched packet gets dropped or forwarded to the controller is a configuration option that can be set on the switch. Openflow does not define what headers are necessary to be able to read and match, but in order to have any kind of useful switch the ability to read the following headers should be implemented: Ethernet IP TCP VLAN Without support for these four basic headers, it would be extremely difficult to make a useful switch or router given the current model of networking. Implementing more headers is optional and encouraged, but for the scope of my senior project, I will stick to getting these four working and operational first, then expand upon it.

ii. Secure Channel The method for communication between the controller and the switch is defined by the OpenFlow protocol which is a special type of packet that gets sent via the secure channel to manage the switch or process packets. These packets contain the control signals necessary to update/modify flow tables, establish a connection, forward packets to process and gather statistics data. Figure 4 is an example of how the switch communicates with the controller via the secure channel. Figure 4. Switch Communication with Controller. [2] The secure channel is a TLS encrypted channel that goes between the OS/Firmware on the switch and the controller. In my NetFPGA implementation, the a packet that needs forwarding to the controller will be passed to the host system through PCI/DMA, prepared for transport by linux, then requeued into the switch pipeline. The switch will then recognize that it is an OpenFlow packet and must forward that packet to the external controller.