Using Ada95 to Build Software for a Gigabit Layer 7 IP Using Ada95 - - PowerPoint PPT Presentation

using ada95 to build software for a gigabit layer 7 ip
SMART_READER_LITE
LIVE PREVIEW

Using Ada95 to Build Software for a Gigabit Layer 7 IP Using Ada95 - - PowerPoint PPT Presentation

Using Ada95 to Build Software for a Gigabit Layer 7 IP Using Ada95 to Build Software for a Gigabit Layer 7 IP Networking Device: Adas No Big Deal Anymore Networking Device: Adas No Big Deal Anymore Mike Kamrad Mike Kamrad senior


slide-1
SLIDE 1

Using Ada95 to Build Software for a Gigabit Layer 7 IP Using Ada95 to Build Software for a Gigabit Layer 7 IP Networking Device: Ada’s No Big Deal Anymore Networking Device: Ada’s No Big Deal Anymore

Mike Kamrad Mike Kamrad “senior” Software Engineer “senior” Software Engineer kamrad@TopLayer.com kamrad@TopLayer.com +1.508.870.1300x139 +1.508.870.1300x139 FAX +1.508.870.9797 FAX +1.508.870.9797 www.TopLayer.com www.TopLayer.com

slide-2
SLIDE 2

10/3/00 Top Layer - "Layers above the Rest" 2

What You’ll See

♦ ♦ A Really Bitchin’ Data

A Really Bitchin’ Data-

  • Comm Product

Comm Product

♦ ♦ Architecture

Architecture

♦ ♦ Ada Software Development Environment

Ada Software Development Environment

♦ ♦ Obstacles and Lessons Learned

Obstacles and Lessons Learned

♦ ♦ Restricted Usage RTOS

Restricted Usage RTOS

slide-3
SLIDE 3
slide-4
SLIDE 4

10/3/00 Top Layer - "Layers above the Rest" 4

Who is Top Layer Networks?

♦ ♦ Founded January, 1997

Founded January, 1997

♦ ♦ 155+ Employees

155+ Employees

♦ ♦ Headquarters in Westboro, MA, USA

Headquarters in Westboro, MA, USA

♦ ♦ Strong executive management team

Strong executive management team

♦ ♦

Chipcom, Fore Systems, DEC, Wellfleet/Bay Networks Chipcom, Fore Systems, DEC, Wellfleet/Bay Networks

♦ ♦ World

World-

  • class engineering team

class engineering team

♦ ♦

DEC, Fore, Chipcom, 3Com, etc. DEC, Fore, Chipcom, 3Com, etc.

♦ ♦

Major experience in ASICs Major experience in ASICs and and switches switches

♦ ♦ Private Company

Private Company -

  • Raised over $30M in funding

Raised over $30M in funding

♦ ♦ Shipping Products: AppSwitch 2500

Shipping Products: AppSwitch 2500 -

  • October ‘99;

October ‘99; AppSwitch 3500 AppSwitch 3500 -

  • June ‘00

June ‘00

♦ ♦ Over 125 customers… and growing!

Over 125 customers… and growing!

slide-5
SLIDE 5

10/3/00 Top Layer - "Layers above the Rest" 5

What is the Top Layer AppSwitch?

♦ ♦ The AppSwitch is a high performance L4

The AppSwitch is a high performance L4-

  • L7 device

L7 device with a powerful set of flexible features, called with a powerful set of flexible features, called e e-

  • Application Control

Application Control. .

♦ ♦ It provides flexible solutions to today’s IP

It provides flexible solutions to today’s IP networking challenges including congestion, networking challenges including congestion, accounting, monitoring, high accounting, monitoring, high-

  • availability,

availability, responsiveness, and responsiveness, and security security. .

slide-6
SLIDE 6

10/3/00 Top Layer - "Layers above the Rest" 6

What is e-Application Control?

♦ ♦ A powerful set of flexible high

A powerful set of flexible high-

  • performance features...

performance features...

♦ ♦

Security Augmentation Security Augmentation

– – Packet Filter Firewall with Packet Filter Firewall with Syslog Syslog Reporting Reporting – – Filters for Filters for DoS DoS attacks attacks – – Flow Mirroring for IDS Flow Mirroring for IDS

♦ ♦

Application Accounting/Monitoring Application Accounting/Monitoring

– – TopFlow TopFlow protocol protocol – – TopFlow TopFlow Data Collector Data Collector – – TopView Graphs TopView Graphs

♦ ♦

Application Traffic Management Application Traffic Management

– – Application QoS Application QoS – – Application Balancing Application Balancing – – Application Redirection Application Redirection

…built on a powerful policy …built on a powerful policy-

  • based management model

based management model which includes a unique Application Definition Library which includes a unique Application Definition Library

slide-7
SLIDE 7

10/3/00 Top Layer - "Layers above the Rest" 7

What do we do with Applications

♦ ♦ Prioritize

Prioritize

FTP..…

..... .…. …..

  • Assign relative priorities to Applications
  • Weighted Round Robin Queuing

...………..

Priority 1 Priority 2 Priority 3 Priority 4 etc.

.

slide-8
SLIDE 8

10/3/00 Top Layer - "Layers above the Rest" 8

What do we do with Applications

♦ ♦ Graduated Priorities

Graduated Priorities

.….

  • Priorities are altered as size of flow increases

. . . .…….

Priority 1 Priority 2 Priority 3 Priority 4 etc.

slide-9
SLIDE 9

10/3/00 Top Layer - "Layers above the Rest" 9

What do we do with Applications

♦ ♦ Bandwidth Guarantees

Bandwidth Guarantees

..… ..... .…. …..

  • Assign guaranteed bandwidth to Applications
  • Uses the static queues
  • Will guarantee per flow bandwidth up to

8 Mbps per flow

  • Up to 128 flows can be set

Xing Streamworks MS Stream

H.323

……...

Priority 1 Priority 2 Priority 3 Priority 4 etc.

…..…. ……... ……...

2Mbps 1 Mbps 384Kbps 1Mbps

slide-10
SLIDE 10

10/3/00 Top Layer - "Layers above the Rest" 10

What do we do with Applications

♦ ♦ Firewall

Firewall

.....

  • A firewall policy can be

set by application between zones

FastPath FastPath Process Process

slide-11
SLIDE 11

10/3/00 Top Layer - "Layers above the Rest" 11

What do we do with Applications

♦ ♦ TopFlow

TopFlow displays message flow displays message flow statistics statistics

  • Output stats on packets

sent by application and user + L3/L2 data

FastPath FastPath Process Process Background Engine

FTP..…

.…. ….. .....

  • TopFlow output:
slide-12
SLIDE 12

10/3/00 Top Layer - "Layers above the Rest" 12

  • AS2512 - 12 10/100 TX ports + 2 100FX ports
  • 32,000 simultaneous flows

AppSwitch 2500

console console

slide-13
SLIDE 13

10/3/00 Top Layer - "Layers above the Rest" 13

  • AS3502 - 12 10/100 TX ports + 2 Gig ports (1 redundant only)
  • 256,000 simultaneous flows
  • Additional packet processing capability

AppSwitch 3500

console console

slide-14
SLIDE 14

10/3/00 Top Layer - "Layers above the Rest" 14

Technical Differentiators

♦ ♦ “

“Touch Touch every every packet packet” ” switching engine switching engine

♦ ♦ Stateful packet inspection

Stateful packet inspection

♦ ♦ Datalink independent LAN/WAN switching

Datalink independent LAN/WAN switching

♦ ♦ Hierarchical Hybrid Queuing (HHQ)

Hierarchical Hybrid Queuing (HHQ)

♦ ♦ Customizable Application Policy Library

Customizable Application Policy Library

♦ ♦ “Automatic” operation

“Automatic” operation

♦ ♦ Scaleable, extensible architecture

Scaleable, extensible architecture

slide-15
SLIDE 15

Architecture

slide-16
SLIDE 16

10/3/00 Top Layer - "Layers above the Rest" 16

Architecture Matters!

♦ ♦ Key components

Key components

♦ ♦ TopFire

TopFireTM

TM Programmable

Programmable Silicon Switching Engine Silicon Switching Engine

– – Architected, designed, and patented Architected, designed, and patented – – Layer 7 at full wire speed at every port Layer 7 at full wire speed at every port – – Very scaleable and extensible Very scaleable and extensible – – Same architecture/software Same architecture/software in entire family in entire family

♦ ♦ TopPath

TopPathTM

TM Application Flow Switching

Application Flow Switching

slide-17
SLIDE 17

10/3/00 Top Layer - "Layers above the Rest" 17

e-Application Control Architecture

Packet Processing

Incoming Data Tx Queue Forwarding Tables

L2/L3

Priority Output Queues

Tx Queue Tx Queue

L4

Application Definition Library Application Policies

Application Control

Session Data

Stateful

slide-18
SLIDE 18

10/3/00 Top Layer - "Layers above the Rest" 18

Architecture - A Closer Look

RE Chip QM Chip

TopFireTM chipset

MOM Chip MOM Chip

100 Mbps MII RAMbus DRAM QM SRAM SDRAM SRAM Lookup Tables Memory Fast Path Code, System Data, Memory Descriptors, Tables Memory Packet Memory Forwarding Engine Queue Manager MII Octal MAC 100 Mbps MII MII Octal MAC

AppSwitch 2500

RE Chip

Background Engine

slide-19
SLIDE 19

10/3/00 Top Layer - "Layers above the Rest" 19

Scalable Architecture

RE Chip QM Chip GMOM Chip

1000 Mbps RAMbus DRAM QM SRAM SDRAM SRAM Lookup Tables Memory Fast Path Code, System Data, Memory Descriptors, Tables Memory Packet Memory Forwarding Engine Queue Manager Dual Gig + 16 10/100 MAC

AppSwitch 3500

100 Mbps MII

RE Chip RE Chip

Background Engine Application Engine

slide-20
SLIDE 20

10/3/00 Top Layer - "Layers above the Rest" 20

Major Software Components

♦ ♦ Forwarding Engine

Forwarding Engine -

  • The main switching

The main switching component to establish and maintain component to establish and maintain message flows, per network policies message flows, per network policies

♦ ♦ Background Engine

Background Engine -

  • The management

The management control component that interfaces with the control component that interfaces with the network administrator network administrator

♦ ♦ Application Engine(s)

Application Engine(s) -

  • Protocol specific

Protocol specific accelerator to handle complex protocols accelerator to handle complex protocols

slide-21
SLIDE 21

10/3/00 Top Layer - "Layers above the Rest" 21

Forwarding Engine (FE) Architecture

♦ ♦ Custom

Custom RISC Core (ARC) RISC Core (ARC)

♦ ♦ Extensive Proprietary

Extensive Proprietary HW Assist HW Assist

♦ ♦ Tight Polling Loop

Tight Polling Loop -

  • NO INTERRUPTS

NO INTERRUPTS

♦ ♦ Application “wrapper” and Slowpath coded

Application “wrapper” and Slowpath coded in in Ada Ada

♦ ♦ Fastpath and Application “policies”

Fastpath and Application “policies” handcrafted in handcrafted in assembly assembly

♦ ♦ Connection rates and throughput are

Connection rates and throughput are key key performance requirements performance requirements

slide-22
SLIDE 22

10/3/00 Top Layer - "Layers above the Rest" 22

Background Engine Architecture

♦ ♦ Based on same ARC chip as FE

Based on same ARC chip as FE

♦ ♦ Event

Event-

  • driven system where events are:

driven system where events are:

♦ ♦ Arrival of message packets

Arrival of message packets

♦ ♦ Time expiration

Time expiration

♦ ♦ Multi

Multi-

  • tasking application to respond to various

tasking application to respond to various events events

♦ ♦ Division of application between

Division of application between

♦ ♦ Core modules

Core modules

♦ ♦ Extension modules

Extension modules

♦ ♦ Throughput and event processing are

Throughput and event processing are key key performance requirements performance requirements

slide-23
SLIDE 23

10/3/00 Top Layer - "Layers above the Rest" 23

Background Engine Architecture

I procedural I/F procedural I/F procedural I/F procedural I/F

Protocol Modules

procedural I/F

Session Modules

procedural I/F

Protocol Modules

dispatching on Interface

  • bject or events

Core Extensions

Clock

DMA Input DMA Output

Packet/ Event Processor

Application/Service/Session Modules

Multi-Tasked "Continuous" "Timed" JobJar

Protocol or Session Modules

packets/events Qs "processed" packets Q

Strategic Disaster events

Disaster Manager

procedural I/F

Single Tasked

Worker Task Q Worker Task Worker Task Q Worker Task Q Worker Task Q Worker Task Q PO PO PO PO I H I I H I

Management Control DataBase

slide-24
SLIDE 24

10/3/00 Top Layer - "Layers above the Rest" 24

Application Engine (FE) Architecture

♦ ♦ Based on same ARC chip as FE

Based on same ARC chip as FE

♦ ♦ Tight Polling Loop

Tight Polling Loop -

  • NO INTERRUPTS

NO INTERRUPTS

♦ ♦ Basis infrastructure, written in C

Basis infrastructure, written in C

♦ ♦ Application specific software written in Ada

Application specific software written in Ada

  • r C
  • r C

♦ ♦ Throughput is

Throughput is key key performance performance requirements requirements

slide-25
SLIDE 25

Ada Software Development Environment

slide-26
SLIDE 26

10/3/00 Top Layer - "Layers above the Rest" 26

Why Ada?

♦ ♦ Best combination

Best combination of language features for high

  • f language features for high

reliability and portability reliability and portability

♦ ♦ Strong typing

Strong typing

♦ ♦ OOP

OOP

♦ ♦ Multi

Multi-

  • tasking

tasking

♦ ♦ Exception handling

Exception handling

♦ ♦ Founder’s familiarity

Founder’s familiarity with Ada and frustration with with Ada and frustration with traditional languages traditional languages

♦ ♦ Implementation

Implementation based on GCC based on GCC, best chance for , best chance for ARC target ARC target

slide-27
SLIDE 27

10/3/00 Top Layer - "Layers above the Rest" 27

Ada Tool Chain

♦ ♦ GNAT because GCC targeted ARC

GNAT because GCC targeted ARC

♦ ♦ Hosts:

Hosts:

♦ ♦ Solaris on SPARC

Solaris on SPARC

♦ ♦ Linux on PC

Linux on PC

♦ ♦ Targets:

Targets:

♦ ♦ Motorola MPC860 (PPC based) for WAN

Motorola MPC860 (PPC based) for WAN

♦ ♦ ARC

ARC

♦ ♦ Linux (for simulation)

Linux (for simulation)

slide-28
SLIDE 28

10/3/00 Top Layer - "Layers above the Rest" 28

Argonaut RISC Core (ARC)

♦ ♦ Argonaut, British producer of computer

Argonaut, British producer of computer game technology game technology

♦ ♦ Provided as a

Provided as a “soft macro “soft macro” (in VHDL), ” (in VHDL), configurable to customer needs configurable to customer needs

♦ ♦ Basis for Forwarding Engine, Background

Basis for Forwarding Engine, Background Engine and Application Engines Engine and Application Engines

slide-29
SLIDE 29

10/3/00 Top Layer - "Layers above the Rest" 29

Modes of Ada Execution

♦ ♦ While a multiprocessor product, no

While a multiprocessor product, no distributed execution mode considered distributed execution mode considered

♦ ♦ Instead,

Instead,

♦ ♦ Forwarding Engine and Application Engines executes as

Forwarding Engine and Application Engines executes as single task single task, i.e. no RTOS , i.e. no RTOS

♦ ♦ Background Engine application executes with

Background Engine application executes with restricted restricted tasking operations tasking operations, per the , per the Ravenscar Profile Ravenscar Profile

♦ ♦ Control information is passed between Engines as special

Control information is passed between Engines as special IPC protocol IPC protocol

slide-30
SLIDE 30

10/3/00 Top Layer - "Layers above the Rest" 30

Ravenscar Profile (+)

♦ ♦

No task hierarchy No task hierarchy

♦ ♦

No dynamic creation of No dynamic creation of protected objects protected objects and tasks and tasks

♦ ♦

Tasks Tasks

♦ ♦

No entries No entries

♦ ♦

No abortion nor ATCs No abortion nor ATCs

♦ ♦

No select statements No select statements

♦ ♦

No user No user-

  • defined attributes

defined attributes

♦ ♦

No dynamic priorities No dynamic priorities

♦ ♦

No requeue No requeue

♦ ♦

No formal termination No formal termination ♦ ♦

Protected Objects Protected Objects

♦ ♦

Limited to one entry Limited to one entry

♦ ♦

Limited queues to one caller Limited queues to one caller

♦ ♦

No requeue No requeue

♦ ♦

Barrier conditions limited to single Boolean variable Barrier conditions limited to single Boolean variable ♦ ♦

Interrupt handlers defined through protected procedures Interrupt handlers defined through protected procedures

♦ ♦

Priority Priority-

  • based scheduling

based scheduling with time with time-

  • slicing within priorities

slicing within priorities

slide-31
SLIDE 31

Obstacles and Lessons Learned

slide-32
SLIDE 32

10/3/00 Top Layer - "Layers above the Rest" 32

Limitations on Ada Usage

♦ ♦ Not used

Not used

♦ ♦

Real types Real types

♦ ♦

Goto Goto

♦ ♦

Annexes E Annexes E-

  • H

H

♦ ♦

Functions returning unconstrained objects Functions returning unconstrained objects

♦ ♦

Predefined I/O Predefined I/O ♦ ♦ Limited use

Limited use

♦ ♦

Child generic units Child generic units

♦ ♦

Formal package parameters Formal package parameters

♦ ♦

Dynamic slices and aggregates Dynamic slices and aggregates

♦ ♦

Length attribute Length attribute

slide-33
SLIDE 33

10/3/00 Top Layer - "Layers above the Rest" 33

Significant Features of Ada

♦ ♦ OOP

OOP -

  • Reinforced

Reinforced relationships relationships among “modules”, among “modules”, “interfaces” and “state block” “interfaces” and “state block”

♦ ♦ Root_Storage_Pool type

Root_Storage_Pool type -

  • Supports

Supports total total memory management memory management

♦ ♦ Controlled and Limited_Controlled types

Controlled and Limited_Controlled types -

  • Get

Get “closure” “closure” on

  • n

resource usage resource usage

♦ ♦ Interfacing to C

Interfacing to C -

  • Because there’s

Because there’s lots lots of legacy and third

  • f legacy and third-
  • party

party software software

♦ ♦ Various Interfaces to hardware

Various Interfaces to hardware

♦ ♦ GNAT’s pragma

GNAT’s pragma Assert Assert

slide-34
SLIDE 34

10/3/00 Top Layer - "Layers above the Rest" 34

Obstacles/Solutions

♦ ♦ Learning Curve

Learning Curve

♦ ♦ Intensive internal training and advocacy

Intensive internal training and advocacy

♦ ♦ Incomplete Tool Chain for ARC

Incomplete Tool Chain for ARC

♦ ♦ GCC consultants to bridge the gap

GCC consultants to bridge the gap

♦ ♦ Inadequate RTOS

Inadequate RTOS -

  • GNAT RTS and RTEMS

GNAT RTS and RTEMS too excessive and non too excessive and non-

  • unified for ARC

unified for ARC

♦ ♦ Internal development of lightweight RTOS

Internal development of lightweight RTOS

slide-35
SLIDE 35

10/3/00 Top Layer - "Layers above the Rest" 35

Other Lessons

♦ ♦ Guidelines to guide user through “choices”

Guidelines to guide user through “choices”

♦ ♦ Budget resources for tool support

Budget resources for tool support

♦ ♦ Tool chains reflect their legacy

Tool chains reflect their legacy

♦ ♦ Be supportive to new user through the “niggling”

Be supportive to new user through the “niggling” period period

♦ ♦ Watch out for generic foot print

Watch out for generic foot print

♦ ♦ Pay attention to exception handling costs

Pay attention to exception handling costs

slide-36
SLIDE 36

Restricted Usage RTOS

slide-37
SLIDE 37

10/3/00 Top Layer - "Layers above the Rest" 37

Our Restricted Ada RTOS

♦ ♦ Built to work with

Built to work with GNAT GNAT

♦ ♦ Simplify the functionality of RTOS to only

Simplify the functionality of RTOS to only support support Ravenscar Ravenscar-

  • like profile

like profile

♦ ♦ Reduce the

Reduce the “thickness” “thickness” of layers in GNAT

  • f layers in GNAT

RTOS RTOS

♦ ♦ Simply the “kernel” for

Simply the “kernel” for bare machine bare machine execution execution

slide-38
SLIDE 38

10/3/00 Top Layer - "Layers above the Rest" 38

Restricted RTOS Organization

Ada application Ada-specific runtime routines RT POSIX compatible Kernel

C application

OS binding to Kernel

RT-POSIX binding to Kernel

Kernel binding to processor

slide-39
SLIDE 39

10/3/00 Top Layer - "Layers above the Rest" 39

Restricted RTOS Organization

Ada application Ada-specific runtime routines

C application

RT POSIX compatible Kernel Kernel binding to processor