extensible routers using network processors

22
Extensible Routers Using Network Processors •Larry Peterson •Scott Karlin •Tammo Spalink •Yitzchak Gottlieb

Upload: norman-bradford

Post on 31-Dec-2015

37 views

Category:

Documents


0 download

DESCRIPTION

Extensible Routers Using Network Processors. Larry Peterson Scott Karlin Tammo Spalink Yitzchak Gottlieb. Running Code On Routers. Edge Routers NAT, Firewalls, DiffServ, etc. Home Routers Media gateway Scaleable servers Level n switch. Technology Forces. Commodity switching fabrics - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Extensible Routers Using Network Processors

Extensible Routers Using Network Processors

•Larry Peterson

•Scott Karlin

•Tammo Spalink

•Yitzchak Gottlieb

Page 2: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Running Code On Routers

• Edge Routers– NAT, Firewalls, DiffServ, etc.

• Home Routers– Media gateway

• Scaleable servers– Level n switch

Page 3: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Technology Forces

• Commodity switching fabrics– e.g., ATM switches, Infiniband SAN

• Programmable network processors– e.g., Intel IXP1200, Sitera PRISM

• Commodity processors– e.g., Intel IA32, IA64

Page 4: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Research Problems

• Scheduling– SIGMETRICS 2001

• Programming– JSAC, March 2001

• Implementation– SOSP 2001

• Architecture– OpenARCH 2001

Page 5: Extensible Routers Using Network Processors

Princeton University April 19, 2023

VERA Architecture

. . . Network Services . . .

VirtualRouter

. . . Hardware Configurations . . .

Packet Flows

Forwarding Paths

Switching Paths

Page 6: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Virtual Router

• Classifiers

• Schedulers

• Forwarders

Virtual Router

F

S

C

Page 7: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Simple Example

F

Active Protocol

F

Proxy

F

IPSEC

F

IP

F

IP--

C S

Page 8: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Smart Dropper

Layered Video Analysis(control plane)

(data plane)

Shared State

Control and Data Plane

Page 9: Extensible Routers Using Network Processors

Princeton University April 19, 2023

MicroEngines

Pentium

StrongArm

Processor Hierarchy

Page 10: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Lab Setup

• IXP 1200– On Pentium III

Motherboard• Linux with driver

• PCI Bus

• Serial I/O

• 4 Pentium IIIs– Packet Sources/Sinks

– 2Kingston DEC 21143 ethernet cards

Page 11: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Development Environment

• Linux– GCC/Binutil

• SA programs in C

– Commands and Libraries

• sgo, pcirestore

• Embedded C, LibCII, Runtime

• Windows– EEPROM Burner

– Assembler

VxWorks

Page 12: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Scratch

DRAM

SRAM

6 Micro-Engines

StrongARM

FIFOs

IX B

us

MA

C P

orts

IXP1200 Chip

PC

I B

us

Intel IXP

Page 13: Extensible Routers Using Network Processors

Princeton University April 19, 2023

DRAM(buffers)

SRAM(queues,

state)

16 InputFIFO Slots

16 OutputFIFO Slots

16 InputContexts

8 OutputContexts

MicroEngines

Page 14: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Evaluation

• Maximum forwarding rate– 3.47 Mpps (64-byte packets)

– Independent of ports and IXBus

RegisterOnly

DRAM32B

SRAM4B

Scratch4B

Input 171 2 3 6

Output 109 2 1 4

Total 280 4 4 10

Instruction Counts

Page 15: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Main Loops

16 contextsinput loop:

until_rcvmove FIFO-to-DRAMlookup routeenqueue

8 contexts

output loop:dequeuemove DRAM-to-FIFOinit_xmit

Page 16: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Main Loops

16 contextsinput loop:

until_rcvmove FIFO-to-DRAMlookup routenopnop...nopnopenqueue

8 contexts

output loop:dequeuemove DRAM-to-FIFOinit_xmit

Page 17: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Virtual Router Processor

• Fixed Infrastructure (green code)– Can forward 1.13Mpps for 8 x 100Mbps ports

• Programmable VRP (red code) – Per 64-byte chunk

• All in registers

• 24 x 32-bit SRAM transfers (flow state)

• 240 register operations

• 3 hashes with hardware support

– Total of 650 instructions per MicroEngine

Page 18: Extensible Routers Using Network Processors

Princeton University April 19, 2023

StrongArm

• Handle exceptional packets

• Problems– Shares DRAM capacity with MicroEngines– On the critical path to Pentium

• Solution– Limit the role the SA can play

• Programmable bridge to Pentium

• µEngine manager

Page 19: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Pentium

• Runs protocols in the control plane– e.g., BGP, OSPF, RSVP

• Run other router extensions– e.g., proxies, active protocols, overlays

• Scheduling is important– Packets can arrive too fast

Page 20: Extensible Routers Using Network Processors

Princeton University April 19, 2023

MicroEngines

Pentium

StrongArm

310 Kpps with1510 cycles/packet

3.47 Mpps w/ no VRP or1.13 Mpps w/ VRP budget

Performance

Linux

VERA

VRP

Page 21: Extensible Routers Using Network Processors

Princeton University April 19, 2023

Summary

• Extensible Routers are feasible– 240 Operations per 64-byte packet fragment– 24 SRAM Operations

• The processor hierarchy works– Use Line Cards (µEngines) for small tasks

• IP Forwarding

• Extensions

– Use Main Processor (Pentium) for large tasks

Page 22: Extensible Routers Using Network Processors

http://www.cs.princeton.edu/nsg

Implementation paper available July 2001