Presentation is loading. Please wait.

Presentation is loading. Please wait.

Router Construction II Outline Network Processors Adding Extensions Scheduling Cycles.

Similar presentations


Presentation on theme: "Router Construction II Outline Network Processors Adding Extensions Scheduling Cycles."— Presentation transcript:

1 Router Construction II Outline Network Processors Adding Extensions Scheduling Cycles

2 Spring 2003CS 4612 Observations Emerging commodity components can be used to build IP routers –switching fabrics, network processors, … Routers are being asked to support a growing array of services –firewalls, proxies, p2p nets, overlays,...

3 Spring 2003CS 4613 Data Plane (IP) Control Plane (BGP, RSVP…) Router Architecture

4 Spring 2003CS 4614 Software-Based Router + Cost + Programmability – Performance (~300 Kpps) – Robustness Data Plane (IP) Control Plane (BGP, RSVP…) PC

5 Spring 2003CS 4615 Hardware-Based Router – Cost – Programmability + Performance (25+ Mpps) + Robustness Data Plane (IP) Control Plane (BGP, RSVP…) ASIC PC

6 Spring 2003CS 4616 NP-Based Router Architecture + Cost ($1500) + Programmability ? Performance ? Robustness Data Plane ( packet flows) Control Plane ( packet flows) IXP1200 PC

7 Spring 2003CS 4617 In General... IXP Pentium IXP Pentium... Pentium

8 Spring 2003CS 4618 Architectural Overview... Network Services... Virtual Router... Hardware Configurations... Packet Flows Forwarding Paths Switching Paths

9 Spring 2003CS 4619 Virtual Router Classifiers Schedulers Forwarders

10 Spring 2003CS 46110 Simple Example IP Proxy Active Protocol

11 Spring 2003CS 46111 Intel IXP ScratchDRAMSRAM 6 Micro- Engines StrongARM FIFOs IX Bus MAC Ports IXP1200 Chip PCI Bus

12 Spring 2003CS 46112 Processor Hierarchy MicroEngines Pentium StrongArm

13 Spring 2003CS 46113 Data Plane Pipeline DRAM (buffers) SRAM (queues, state) Input FIFO Slots Output FIFO Slots Input Contexts Output Contexts 64B

14 Spring 2003CS 46114 Data Plane Processing INPUT context loop wait_for_data copy in_fifo  regs Basic_IP_processing copy regs  DRAM if (last_fragment) enqueue  SRAM OUTPUT context loop if (need_data) select_queue dequeue  SRAM copy DRAM  out_fifo

15 Spring 2003CS 46115 Pipeline Evaluation 100Mbps Ether  0.142Mpps Measured independently

16 Spring 2003CS 46116 What We Measured Static context assignment –16 input / 8 output Infinite offered load 64-byte (minimum-sized) IP packets Three different queuing disciplines

17 Spring 2003CS 46117 Single Protected Queue Lock synchronization Max 3.47 Mpps Contention lower bound 1.67 Mpps O I I I Output FIFO

18 Spring 2003CS 46118 Multiple Private Queues Output must select queue Max 3.29 Mpps O I I I Output FIFO

19 Spring 2003CS 46119 Multiple Protected Queues Output must select queue Some QoS scheduling (16 priority levels) Max 3.29 Mpps O I I I Output FIFO

20 Spring 2003CS 46120 Data Plane Processing INPUT context loop wait_for_data copy in_fifo  regs Basic_IP_processing copy regs  DRAM if (last_fragment) enqueue  SRAM OUTPUT context loop if (need_data) select_queue dequeue  SRAM copy DRAM  out_fifo

21 Spring 2003CS 46121 Cycles to Waste INPUT context loop wait_for_data copy in_fifo  regs Basic_IP_processing nop … nop copy regs  DRAM if (last_fragment) enqueue  SRAM OUTPUT context loop if (need_data) select_queue dequeue  SRAM copy DRAM  out_fifo

22 Spring 2003CS 46122 How Many “NOPs” Possible? IXP1200 Evalualtion Board 1.2 Mpps = 8x100Mbps

23 Spring 2003CS 46123 Data Plane Extensions

24 Spring 2003CS 46124 Control and Data Plane Smart Dropper Layered Video Analysis (control plane) (data plane) Shared State

25 Spring 2003CS 46125 What About the StrongARM? Shares memory bus with MicroEngines –must respect resource budget What we do –control IXP1200  Pentium DMA –control MicroEngines What might be possible –anything within budget –exploit instruction and data caches We recommend against –running Linux

26 Spring 2003CS 46126 Performance MicroEngines Pentium StrongArm 310Kpps with 1510 cycles/packet 3.47Mpps w/ no VRP or 1.13Mpps w/ VRP buget

27 Spring 2003CS 46127 Pentium Runs protocols in the control plane –e.g., BGP, OSPF, RSVP Run other router extensions –e.g., proxies, active protocols, overlays Implementation –runs Scout OS + Linux IXP driver –CPU scheduler is key

28 Spring 2003CS 46128 Processes........................ Input Port Pentium Output Port P P PP P

29 Spring 2003CS 46129 Performance

30 Spring 2003CS 46130 Performance (cont) Kpps

31 Spring 2003CS 46131 Scheduling Mechanism Proportional share forms the base –each process reserves a cycle rate –provides isolation between processes –unused capacity fairly distributed Eligibility –a process receives its share only when its source queue is not empty and sink queue is not full Batching –to minimize context switch overhead

32 Spring 2003CS 46132 Share Assignment QoS Flows –assume link rate is given, derive cycle rate –conservative rate to input process –keep batching level low Best Effort Flows –may be influenced by admin policy –use shares to balance system (avoid livelock) –keep batching level high

33 Spring 2003CS 46133 Experiment A (BE) B (QoS) C (QoS) A + C B

34 Spring 2003CS 46134 Mixing Best Effort and QoS Increase offered load from A

35 Spring 2003CS 46135 CPU vs Link Fix A at 50Kpps, increase its processing cost

36 Spring 2003CS 46136 Turn Batching Off CPU efficiency: 66.2%

37 Spring 2003CS 46137 Enforce Time Slice CPU efficiency: 81.6% (30us quantum)

38 Spring 2003CS 46138 Batching Throttle Scheduler Granularity: G –flow processes as many packets as possible w/in G Efficiency Index: E, Overhead Threshold: T –keep the overhead under T%, then 1 / (1+T) < E Batch Threshold: B i –don’t consider Flow i active until it has accumulated at least B i packets, where C sw / (B i x C i ) < T Delay Threshold: D i –consider a flow that has waited D i active

39 Spring 2003CS 46139 Dynamic Control Flow specifies delay requirement D Measure context switch overhead offline Record average flow runtime Set E based on workload Calculate batch-level B for flow

40 Spring 2003CS 46140 Packet Trace


Download ppt "Router Construction II Outline Network Processors Adding Extensions Scheduling Cycles."

Similar presentations


Ads by Google