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



Similar documents
An Oracle Technical White Paper November Oracle Solaris 11 Network Virtualization and Network Resource Management

White Paper Increase Flexibility in Layer 2 Switches by Integrating Ethernet ASSP Functions Into FPGAs

Cisco Integrated Services Routers Performance Overview

Contents. Connection Guide. What is Dante? Connections Network Set Up System Examples Copyright 2015 ROLAND CORPORATION

Putting it on the NIC: A Case Study on application offloading to a Network Interface Card (NIC)

Improving Network Efficiency for SMB Through Intelligent Load Balancing

ODP Application proof point: OpenFastPath. ODP mini-summit

Software Datapath Acceleration for Stateless Packet Processing

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Gigabit Ethernet Design

Bandwidth Management and Optimization System Design (draft)

Programmable Networking with Open vswitch

Going Linux on Massive Multicore

Improving Quality of Service

Switch Fabric Implementation Using Shared Memory

Cisco Bandwidth Quality Manager 3.1

High Performance 10Gigabit Ethernet Switch

Deploying Silver Peak VXOA with EMC Isilon SyncIQ. February

How To Switch In Sonicos Enhanced (Sonicwall) On A 2400Mmi 2400Mm2 (Solarwall Nametra) (Soulwall 2400Mm1) (Network) (

Configuring DHCP Snooping

Introduction. Application Performance in the QLinux Multimedia Operating System. Solution: QLinux. Introduction. Outline. QLinux Design Principles

DCS-3950 Series. L2/L4 Intelligent Access Switches

Increase Simplicity and Improve Reliability with VPLS on the MX Series Routers

Lustre Networking BY PETER J. BRAAM

NetScaler VPX FAQ. Table of Contents

Leased Line + Remote Dial-in connectivity

REAL-TIME STREAMING ANALYTICS DATA IN, ACTION OUT

Technical Brief. DualNet with Teaming Advanced Networking. October 2006 TB _v02

Using TrueSpeed VNF to Test TCP Throughput in a Call Center Environment

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Cisco 7200 Series Router Architecture

DPtech ADX Application Delivery Platform Series

Radware s Multi-homing Solutions

Using a Generic Plug and Play Performance Monitor for SoC Verification

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

Intel DPDK Boosts Server Appliance Performance White Paper

CHAPTER 15: Operating Systems: An Overview

Stateful vs. stateless traffic analysis

SNMP Monitoring: One Critical Component to Network Management

Virtualized Security: The Next Generation of Consolidation

Open Flow Controller and Switch Datasheet

Gigabit Ethernet Packet Capture. User s Guide

NanopowerCommunications: Enabling the Internet of Things OBJECTS TALK

Monitoring Load-Balancing Services

OpenSPARC T1 Processor

Optimizing Data Center Networks for Cloud Computing

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

10/100/1000Mbps Ethernet MAC with Protocol Acceleration MAC-NET Core with Avalon Interface

Solaris For The Modern Data Center. Taking Advantage of Solaris 11 Features

Purpose-Built Load Balancing The Advantages of Coyote Point Equalizer over Software-based Solutions

The Load Balancing System Design of Service Based on IXP2400 Yi Shijun 1, a, Jing Xiaoping 1,b

Radware s AppDirector and AppXcel An Application Delivery solution for applications developed over BEA s Weblogic

Frequently Asked Questions

Elfiq Networks Vital for Hospitality

AppliedMicro Trusted Management Module

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

QRadar Security Intelligence Platform Appliances

Cisco Performance Visibility Manager 1.0.1

KeyStone Training. Multicore Navigator Overview. Overview Agenda

- Introduction to PIX/ASA Firewalls -

A Scalable Large Format Display Based on Zero Client Processor

Layer 3 Network + Dedicated Internet Connectivity

Configuring Denial of Service Protection

Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1

Are Second Generation Firewalls Good for Industrial Control Systems?

BroadCloud PBX Customer Minimum Requirements

基 于 CompactPCI 网 络 开 放 式 平 台 系 统 开 发

Optimizing TCP Forwarding

Saisei and Intel Maximizing WAN Bandwidth

Intel Ethernet Switch Load Balancing System Design Using Advanced Features in Intel Ethernet Switch Family

Campus Network Design Science DMZ

What is a System on a Chip?

50. DFN Betriebstagung

High Availability Solutions & Technology for NetScreen s Security Systems

AppDirector Load balancing IBM Websphere and AppXcel

Multi Stage Filtering

Chapter 6, The Operating System Machine Level

IVCi s IntelliNet SM Network

How To Monitor And Test An Ethernet Network On A Computer Or Network Card

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

16-PORT POWER OVER ETHERNET WEB SMART SWITCH

VIA COLLAGE Deployment Guide

OPTIMIZE DMA CONFIGURATION IN ENCRYPTION USE CASE. Guillène Ribière, CEO, System Architect

IP SAN Best Practices

Telecom - The technology behind

APV9650. Application Delivery Controller

5. DEPLOYMENT ISSUES Having described the fundamentals of VoIP and underlying IP infrastructure, let s address deployment issues.

Introduction to MPIO, MCS, Trunking, and LACP

Definition of a White Box. Benefits of White Boxes

Elfiq Link Load Balancer Frequently Asked Questions (FAQ)

NEW! CLOUD APPS ReadyCLOUD & genie remote access

Leveraging Asterisk to Deliver Large Scale VoIP Services in a Carrier Environment. JR Richardson

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

Cisco Application Networking Manager Version 2.0

Virtualization for Hard Real-Time Applications Partition where you can Virtualize where you have to

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

VIA CONNECT PRO Deployment Guide

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Transcription:

Using Ada95 to Build Software for a Gigabit Layer 7 IP Networking Device: Ada s No Big Deal Anymore Mike Kamrad senior Software Engineer kamrad@toplayer.com +1.508.870.1300x139 FAX +1.508.870.9797 www.toplayer.com

What You ll See A Really Bitchin Data-Comm Product Architecture Ada Software Development Environment Obstacles and Lessons Learned Restricted Usage RTOS 10/3/00 Top Layer - "Layers above the Rest" 2

$SS6ZLWFK 70 )DPLO\ 7KH)LUVW/D\HU'HYLFHZLWKH$SSOLFDWLRQ &RQWURO

Who is Top Layer Networks? Founded January, 1997 155+ Employees Headquarters in Westboro, MA, USA Strong executive management team Chipcom, Fore Systems, DEC, Wellfleet/Bay Networks World-class engineering team DEC, Fore, Chipcom, 3Com, etc. Major experience in ASICs and switches Private Company - Raised over $30M in funding Shipping Products: AppSwitch 2500 - October 99; AppSwitch 3500 - June 00 Over 125 customers and growing! 10/3/00 Top Layer - "Layers above the Rest" 4

What is the Top Layer AppSwitch? The AppSwitch is a high performance L4-L7 L7 device with a powerful set of flexible features, called e- Application Control. It provides flexible solutions to today s IP networking challenges including congestion, accounting, monitoring, high-availability, responsiveness, and security. 10/3/00 Top Layer - "Layers above the Rest" 5

What is e-application Control? A powerful set of flexible high-performance features... Security Augmentation Packet Filter Firewall with Syslog Reporting Filters for DoS attacks Flow Mirroring for IDS Application Accounting/Monitoring TopFlow protocol TopFlow Data Collector TopView Graphs Application Traffic Management Application QoS Application Balancing Application Redirection built on a powerful policy-based management model which includes a unique Application Definition Library 10/3/00 Top Layer - "Layers above the Rest" 6

What do we do with Applications Prioritize - Assign relative priorities to Applications - Weighted Round Robin Queuing FTP......... Priority 1 Priority 2 Priority 3 Priority 4 etc...... 10/3/00 Top Layer - "Layers above the Rest" 7

What do we do with Applications Graduated Priorities - Priorities are altered as size of flow increases Priority 1.. Priority 2 Priority 3 Priority 4 etc...... 10/3/00 Top Layer - "Layers above the Rest" 8

What do we do with Applications 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... H.323 Priority 1 MS Stream Xing Streamworks......... Priority 2 Priority 3 Priority 4 etc.... 2Mbps...... 1 Mbps 384Kbps 1Mbps 10/3/00 Top Layer - "Layers above the Rest" 9

What do we do with Applications Firewall - A firewall policy can be set by application between zones... FastPath Process 10/3/00 Top Layer - "Layers above the Rest" 10

What do we do with Applications TopFlow displays message flow statistics - Output stats on packets sent by application and user + L3/L2 data FTP......... Background Engine FastPath Process - TopFlow output: 10/3/00 Top Layer - "Layers above the Rest" 11

AppSwitch 2500 console - AS2512-12 10/100 TX ports + 2 100FX ports - 32,000 simultaneous flows 10/3/00 Top Layer - "Layers above the Rest" 12

AppSwitch 3500 console - AS3502-12 10/100 TX ports + 2 Gig ports (1 redundant only) - 256,000 simultaneous flows - Additional packet processing capability 10/3/00 Top Layer - "Layers above the Rest" 13

Technical Differentiators Touch every packet switching engine Stateful packet inspection Datalink independent LAN/WAN switching Hierarchical Hybrid Queuing (HHQ) Customizable Application Policy Library Automatic operation Scaleable, extensible architecture 10/3/00 Top Layer - "Layers above the Rest" 14

Architecture

Architecture Matters! Key components TopFire TM Programmable Silicon Switching Engine Architected, designed, and patented Layer 7 at full wire speed at every port Very scaleable and extensible Same architecture/software in entire family TopPath TM Application Flow Switching 10/3/00 Top Layer - "Layers above the Rest" 16

e-application Control Architecture L2/L3 Incoming Data Application Definition Library Forwarding Tables Packet Processing Session Data Stateful Application Control Application Policies L4 Tx Queue Tx Queue Tx Queue Priority Output Queues 10/3/00 Top Layer - "Layers above the Rest" 17

Architecture - A Closer Look AppSwitch 2500 Lookup Tables Memory Forwarding Engine Background Engine RE Chip SRAM RE Chip SDRAM Fast Path Code, System Data, Memory MII Octal MAC MII Octal MAC Queue Manager MOM Chip MOM Chip QM Chip QM SRAM Descriptors, Tables Memory 100 Mbps MII 100 Mbps MII TopFire TM chipset RAMbus DRAM Packet Memory 10/3/00 Top Layer - "Layers above the Rest" 18

Scalable Architecture AppSwitch 3500 Application Engine Background Engine Lookup Tables Memory Forwarding Engine RE Chip RE Chip SRAM RE Chip SDRAM Fast Path Code, System Data, Memory Queue Manager Dual Gig + 16 10/100 MAC GMOM Chip QM Chip QM SRAM Descriptors, Tables Memory 1000 Mbps 100 Mbps MII RAMbus DRAM Packet Memory 10/3/00 Top Layer - "Layers above the Rest" 19

Major Software Components Forwarding Engine - The main switching component to establish and maintain message flows, per network policies Background Engine - The management control component that interfaces with the network administrator Application Engine(s) - Protocol specific accelerator to handle complex protocols 10/3/00 Top Layer - "Layers above the Rest" 20

Forwarding Engine (FE) Architecture Custom RISC Core (ARC) Extensive Proprietary HW Assist Tight Polling Loop - NO INTERRUPTS Application wrapper and Slowpath coded in Ada Fastpath and Application policies handcrafted in assembly Connection rates and throughput are key performance requirements 10/3/00 Top Layer - "Layers above the Rest" 21

Background Engine Architecture Based on same ARC chip as FE Event-driven system where events are: Arrival of message packets Time expiration Multi-tasking tasking application to respond to various events Division of application between Core modules Extension modules Throughput and event processing are key performance requirements 10/3/00 Top Layer - "Layers above the Rest" 22

Background Engine Architecture DMA Input I JobJar packets/events Qs I Packet/ Event Processor H "processed" packets Q I DMA Output I Core Application/Service/Session Modules Worker Task Single Tasked Worker Worker Worker Task Task Task Q Q Q Q Multi-Tasked Worker Task Q procedural I/F PO PO procedural I/F "Continuous" procedural I/F dispatching on Interface object or events Clock I Worker Task "Timed" PO PO procedural I/F procedural I/F procedural I/F Protocol Modules Protocol Modules Session Modules procedural I/F Protocol or Session Modules Strategic Disaster events Disaster Manager H Management Control DataBase Extensions 10/3/00 Top Layer - "Layers above the Rest" 23

Application Engine (FE) Architecture Based on same ARC chip as FE Tight Polling Loop - NO INTERRUPTS Basis infrastructure, written in C Application specific software written in Ada or C Throughput is key performance requirements 10/3/00 Top Layer - "Layers above the Rest" 24

Ada Software Development Environment

Why Ada? Best combination of language features for high reliability and portability Strong typing OOP Multi-tasking tasking Exception handling Founder s familiarity with Ada and frustration with traditional languages Implementation based on GCC,, best chance for ARC target 10/3/00 Top Layer - "Layers above the Rest" 26

Ada Tool Chain GNAT because GCC targeted ARC Hosts: Solaris on SPARC Linux on PC Targets: Motorola MPC860 (PPC based) for WAN ARC Linux (for simulation) 10/3/00 Top Layer - "Layers above the Rest" 27

Argonaut RISC Core (ARC) Argonaut, British producer of computer game technology Provided as a soft macro (in VHDL), configurable to customer needs Basis for Forwarding Engine, Background Engine and Application Engines 10/3/00 Top Layer - "Layers above the Rest" 28

Modes of Ada Execution While a multiprocessor product, no distributed execution mode considered Instead, Forwarding Engine and Application Engines executes as single task,, i.e. no RTOS Background Engine application executes with restricted tasking operations,, per the Ravenscar Profile Control information is passed between Engines as special IPC protocol 10/3/00 Top Layer - "Layers above the Rest" 29

Ravenscar Profile (+) No task hierarchy No dynamic creation of protected objects and tasks Tasks No entries No abortion nor ATCs No select statements No user-defined attributes No dynamic priorities No requeue No formal termination Protected Objects Limited to one entry Limited queues to one caller No requeue Barrier conditions limited to single Boolean variable Interrupt handlers defined through protected procedures Priority-based scheduling with time-slicing within priorities 10/3/00 Top Layer - "Layers above the Rest" 30

Obstacles and Lessons Learned

Limitations on Ada Usage Not used Real types Goto Annexes E-HE Functions returning unconstrained objects Predefined I/O Limited use Child generic units Formal package parameters Dynamic slices and aggregates Length attribute 10/3/00 Top Layer - "Layers above the Rest" 32

Significant Features of Ada OOP - Reinforced relationships among modules, interfaces and state block Root_Storage_Pool type - Supports total memory management Controlled and Limited_Controlled types - Get closure on resource usage Interfacing to C - Because there s lots of legacy and third-party software Various Interfaces to hardware GNAT s pragma Assert 10/3/00 Top Layer - "Layers above the Rest" 33

Obstacles/Solutions Learning Curve Intensive internal training and advocacy Incomplete Tool Chain for ARC GCC consultants to bridge the gap Inadequate RTOS - GNAT RTS and RTEMS too excessive and non-unified for ARC Internal development of lightweight RTOS 10/3/00 Top Layer - "Layers above the Rest" 34

Other Lessons Guidelines to guide user through choices Budget resources for tool support Tool chains reflect their legacy Be supportive to new user through the niggling period Watch out for generic foot print Pay attention to exception handling costs 10/3/00 Top Layer - "Layers above the Rest" 35

Restricted Usage RTOS

Our Restricted Ada RTOS Built to work with GNAT Simplify the functionality of RTOS to only support Ravenscar-like profile Reduce the thickness of layers in GNAT RTOS Simply the kernel for bare machine execution 10/3/00 Top Layer - "Layers above the Rest" 37

Restricted RTOS Organization Ada application Ada-specific runtime routines C application OS binding to Kernel RT-POSIX binding to Kernel RT POSIX compatible Kernel Kernel binding to processor 10/3/00 Top Layer - "Layers above the Rest" 38

Restricted RTOS Organization Ada application Ada-specific runtime routines C application RT POSIX compatible Kernel Kernel binding to processor 10/3/00 Top Layer - "Layers above the Rest" 39