EUROPA: Efficient User-Mode Packet Forwarding in Network - - PowerPoint PPT Presentation

europa efficient user mode packet forwarding in network
SMART_READER_LITE
LIVE PREVIEW

EUROPA: Efficient User-Mode Packet Forwarding in Network - - PowerPoint PPT Presentation

EUROPA: Efficient User-Mode Packet Forwarding in Network Virtualization Virtualization Yong Liao Dong Yin Lixin Gao Yong Liao, Dong Yin, Lixin Gao Univ. of Massachusetts, Amherst Network Virtualization Platform Network Virtualization


slide-1
SLIDE 1

EUROPA: Efficient User-Mode Packet Forwarding in Network Virtualization Virtualization

Yong Liao Dong Yin Lixin Gao Yong Liao, Dong Yin, Lixin Gao

  • Univ. of Massachusetts, Amherst
slide-2
SLIDE 2

Network Virtualization Platform Network Virtualization Platform

  • Concurrent virtual networks running in the

b t t same substrate

– VINI, Trellis, VRouter – NP, NetFPGA

R i t f h

  • Requirements for such

a platform

– Flexibility & isolation – Performance Performance

slide-3
SLIDE 3

Achieving the Design Goal Achieving the Design Goal

  • Flexibility and isolation

– User mode virtual router

  • High-performance is challenging

Sl f di i VM – Slow forwarding in VM – Overhead of running in user mode

  • Solution

Efficient forwarding in user mode VM – Efficient forwarding in user mode VM

slide-4
SLIDE 4

Causes of Slow User Mode Forwarding

OS OS user space OS user space

pass pointer of pkt

RcvPkt SndPkt ProcessPkt Packet Buffer OS user space Packet Buffer OS kernel space Packet Buffer RcvPkt SndPkt ProcessPkt OS kernel space RcvPkt ProcessPkt SndPkt

pass pointer of pkt

RcvPkt SndPkt from NIC to NIC from NIC to NIC

  • Overhead

Overhead

– Copying packets between kernel and user space – Invoking system calls – Invoking system calls

slide-5
SLIDE 5

Quantify the Overhead Quantify the Overhead

2 66G CPU

  • 2.66G CPU

System call Send packet Receive packet CPU cycles 3,000 3,400

  • Copying 64-byte packet

Copying 64 byte packet

Memory copy Copy to user Copy from user CPU cycles 160 140 CPU cycles 160 140

  • Overall overhead

– 6,700 cycles per packet – No more than 400kpps in a 2 66G CPU No more than 400kpps in a 2.66G CPU

slide-6
SLIDE 6

Avoiding the Overhead Avoiding the Overhead

  • Packet copying

– Sharing buffer between kernel and user space g p virtual routers

  • System calls
  • System calls

– Kernel and user space virtual routers h l k t b ff asynchronously access packet buffer – A “state” flag for each packet as mutex

slide-7
SLIDE 7

Related Work in Improving I/O Performance

  • Zero-copying schemes

Wid l t di d i OS it – Widely studied in OS community – Have not applied to virtual routers

  • Polling for packets
  • Polling for packets

– Waiting for packets is expensive – Example: Click polling mode

slide-8
SLIDE 8

Europa Architecture Europa Architecture

Sli i i t VM (O VZ)

  • Slicing server into VMs (OpenVZ)

– VR data plane running in VM

  • Shared packet pools (mmap mechanism)

One for each VR – One for each VR

  • Europa kernel

p

– One module serving for all serving for all VRs

slide-9
SLIDE 9

Europa Kernel Module Europa Kernel Module

R i i k t

  • Receiving packet

– Classifying – Moving to VR’s pool – Writing index in rx ring – Changing packet state

  • Sending packet

g p

– Reading index in VR’s tx ring – Polling packet state – Sending out via NIC g

slide-10
SLIDE 10

Europa Virtual Router Europa Virtual Router

  • Receiving packet

vNIC vNIC

  • Receiving packet

– Reading index from VR’s rx ring, polling packet state

  • Processing packet

Processing packet

– “In-place” processing

  • Sending packet

g p

– Writing an index into VR’s tx ring, changing packet state

slide-11
SLIDE 11

Prototyping Implementation Prototyping Implementation

H d

  • Hardware

– Workstation PC with: 2.66G Core2 Duo CPU, 4G memory, Intel E1000 Gbit NIC memory, Intel E1000 Gbit NIC

  • Virtualization: OpenVZ
  • Kernel module

– Kernel Click: interact with NIC, classify packets, copy packets to VM’s shared buffer M lti th d d Cli k – Multi-threaded Click

  • User module

User Click: process packet in an in place manner – User Click: process packet in an in-place manner

slide-12
SLIDE 12

Evaluation: UDP Experiments Evaluation: UDP Experiments

  • Forwarding 64-byte UDP packets
  • Europa matches kernel Click
  • Europa matches kernel Click
slide-13
SLIDE 13

Evaluation: TCP Experiments Evaluation: TCP Experiments

  • TCP throughput
slide-14
SLIDE 14

Scalability of Europa Scalability of Europa

M lti l VR t f di

  • Multiple VRs concurrent forwarding
  • More VRs, slower aggregate speed

– Multi-core CPU u t co e C U

slide-15
SLIDE 15

Pool Size vs. Forwarding Performance

  • Two concurrent VRs

Speed is not sensiti e to b ffer si e

  • Speed is not sensitive to buffer size
slide-16
SLIDE 16

Conclusion and Future Work Conclusion and Future Work

  • Poor performance of conventional user

mode packet processing p p g

  • Flexibility benefits of processing packet in

user mode user mode

  • Europa achieves both flexibility and

performance goal in virtual network

  • Adaptive polling packets as future work
  • Adaptive polling packets as future work
slide-17
SLIDE 17

Packet Forwarding in Europa Packet Forwarding in Europa

memory mapping between user space and kernel space