baseboxd and its OpenStack integration · baseboxd and its OpenStack integration Tobias Jungel –...

23
baseboxd and its OpenStack integration Tobias Jungel – NFV Workshop, 27 October 2015

Transcript of baseboxd and its OpenStack integration · baseboxd and its OpenStack integration Tobias Jungel –...

baseboxd and its OpenStack integrationTobias Jungel – NFV Workshop, 27 October 2015

Agenda

● A glimpse of Hardware acceleration● OpenStack Network 101● Yet another OpenFlow controller

Using OpenStack you get*

● Software router● Software tunneling● Software NAT

● Configure actual network hardware on your own and out of band

*) you can get more...

What you want

● Hardware Accelerated Routing● Hardware Accelerated Tunneling● Hardware Accelerated NAT● Fast Packet IO between VMs

Hardware acceleration

● Generic Purpose Processors (~DPDK)● (Net)FPGA● Network Processors● ASICs

General ASIC pipeline

Decap: GRE, NVGRE,VxLAN, MAC-in-MAC, ...

Port PortTunnelTermination

L2/L3/MPLS

ACL QoS ModificationsVLAN

Decap VLAN, Q-in-QFilter VLAN

BridgingRouting

Content AwareProcessing

Rate Limiting, Scheduling

Encap VLAN, Tunnels

Vendors Overview

● Manufacturer: Broadcom, Quanta, Accton, Delta Networks, Juniper, Cisco

● Reseller: DELL, IW Networks, Edge-Core, Agema Systems

● Switching Chip Designer: Broadcom*

*) yes, there some other

Control a BCM ASIC

Broadcom SDK

OpenNSL OF-DPAFastpath & ICOS, Ipinfusion,

BSN, pica8, cumulus, ...

Open SourceOpen API

ASIC

OpenNSL

● Kernel Network (KNET) Configuration● Layer 2 Address Management● Layer 3 Management● Link Monitoring and Notification● Port Configuration● Statistics● Spanning Tree Groups● Switch Control APIs● Trunking● Packet Transmit and Receive● VLAN Configuration● Warm Boot● Buffer Statistics Tracking (BST)● Packet Trace

OF-DPA

● Layer 2 Address Management● Layer 3 Management● Port and Flow Events● Port Configuration● Flow Statistics● Packet Transmit and Receive● VLAN Configuration● Tunnel Configuration (VxLAN)● MPLS Configuration (VPN, LER, LSR, TP)● QoS (classification, metering, marking,

shaping)● OAM (ITU G.8113.1 and Ethernet OAM

over MPLS-TP)

OF-DPA

Abstract Switch forBridging and Routing

OF-DPA

Abstract Switch forOverlay Tunnels

baseboxd

● Map physical switch interfaces to Linux as tap interfaces

● Send/receive packets via tap interfaces to/from switch

● Control switching tables via netlink● OF 1.3 is used as control protocol (with BCM

extensions)

Why?

baseboxd

Netlink

Quagga

BIRDIP

Ansible/Chef/Puppet/Salt/...

OpenFlowOF-Config

SNMP

collectd

User Space

Kernel Space

InterfacesRouting Bridging VLANnftables

Simple integration of existing tools:

baseboxd and CAR

baseboxd

CAR

OF-Switch 1 OF-Switch n

OpenFlow (and OF-Config)

OpenFlow (and OF-Config)CAR (Capability Aware Routing)● Capability detection● Topology detection● Detailed Network Statistics

What baseboxd sees

baseboxd

(huge) OF-Switch Only external Ports!

What about OpenStack now?

OpenStack breakout

Focus here

Focus h

ere

Focus here

Focus h

ere

OpenStack Neutron

Neutron Server

Core Plugins Services

ML2

Ven

dor

Plu

gins

Fire

wal

l

L3 R

oute

r

Load

Bal

ance

r

L3 R

oute

r

Type Drivers Mechanism Drivers

...

flat

gene

ve

gre

gre

flat

gene

ve

gre

Linu

x br

idge

OD

L

OV

S

Ven

dor

Plu

gin

OpenStack Neutron cont.

Neutron-Server MessageQueue

L2 Agent

DHCP Agent

L3 Agent

Adv. ServicesDB

OF-Switch

OpenStack Integration

OF-Switch

NeutronML2 Plugin

ServersServers

ServersServers

baseboxd

CAR

Netlink or using iproute2

OF-Switch

OpenStack Integration cont.

OF-Switch

Neutron Plugin

Servers vswitchServers vswitch

ServersServers

baseboxd

CAR

vswitchvswitch

Novascheduler

Embedding based onnetwork and computecapacity

What's up next?

● basebox– Finalize ML2 Plugin

– Finalize L3

– Support NAT

– OF-Config for switch configuration

– TTP to select the right driver

● OS integration– Involve nova scheduler for embedding