Sun Logo


Netra Data Plane Software Suite 2.0 User’s Guide

820-3362-10



Contents

Figures

Tables

Preface

1. Netra Data Plane Software Suite Overview

Product Description

Supported Systems

Software Installation

Platform Firmware Prerequisites

procedure iconsmall spaceTo Check Your OpenBoot PROM Firmware Version

Package Dependencies

Package Installation Procedures

procedure iconsmall spaceTo Install the Software Into the Default Directory

procedure iconsmall spaceTo Install the Software in a Directory Other Than the Default

procedure iconsmall spaceTo Remove the Software

Building and Booting Reference Applications

.cshrc File and Required Compiler Path

Building Reference Application Instructions

procedure iconsmall spaceTo Boot an Application Image

Programming Methodology

Reusing Existing C Code

tejacc Compiler Basic Operation

tejacc Compiler Mechanics

tejacc Compiler Options

tejacc Compiler Configuration

tejacc Compiler and Netra DPS Interaction

Architecture Elements

Hardware Architecture API Overview

Hardware Architecture Elements

Architecture Relationships

Utility Functions

Advanced Hardware Architecture Elements

Software Architecture and Late-Binding API Overview

Late-Binding Elements

Other Elements

Utility Functions

User API Overview

Late-Binding API Overview

Netra DPS Runtime API Overview

Finite State Machine API Overview

Map API Overview

2. tejacc Basics

Command-Line Options

tejacc Command-Line Options

Optimization

Optimization Options

Context-Sensitive Generation

procedure iconsmall spaceTo Enable Optimization

Language

Language Characteristics

Include Files

Late-Binding Object Identifiers

3. Profiler

Profiler Introduction

How the Profiler Works

Groups and Events

Profiler Output

Profiler Examples

Profiler API

Profiler Configuration

Profiler Output Example

Profiling Application Performance

Profiling Metrics

Using the Profiler Script

Profiler Scripts

Usage

Raw Profile Data

Summarized Profile Data

Sun UltraSPARC T1 Processor Profiler Output

Sun UltraSPARC T2 Processor Profiler Output

Performance Parameters Calculations

Sun UltraSPARC T1 Processor

Sun UltraSPARC T2 Processor

procedure iconsmall spaceTo Use a Spreadsheet For Performance Analysis

4. Debugger

Debugger Introduction

Native Debugger

Debugging Configuration Code

Entering the Debugger

Native Debugger Commands

Displaying Help

Managing Breakpoints

Managing Program Execution

Displaying and Setting Memory

Managing Threads

Displaying Registers

Displaying Stack Trace

Resolving Symbols

GNU Project Debugger (GDB) Showcase Application

Configuring LDoms for GDB Showcase

procedure iconsmall spaceTo Configure LDoms Required to Run the GDB Demo

procedure iconsmall spaceTo Compile the GDB Showcase

procedure iconsmall spaceTo Configure the Solaris Domain for GDB

procedure iconsmall spaceTo Load the GDB Showcase Binary in the Netra DPS Domain

procedure iconsmall spaceTo Run the GDB Command

procedure iconsmall spaceTo Get GDB

procedure iconsmall spaceTo Create a GDB Showcase

5. Interprocess Communication Software

IPC Introduction

Programming Interfaces Overview

Configuring the Environment for IPC

Memory Management

IPC in the LDoms Environment

LDoms Channel Setup

IPC Channel Setup

Example Environment for UltraSPARC T1 Based Servers

Domains

primary

ldg1 - LWRTE

ldg2 - Control Plane Application

ldg3 - Solaris Control Domain

Virtual Data Plane Channels

Global Control Channel

Client Control Channel

Data Channel

IPC Channels

Example Environment for UltraSPARC T2 Based Servers

Reference Applications

Common Header

Solaris Utility Code

Forwarding Application

6. Remote Command-Line Interface

Remote Command-Line Interface Introduction

IPC Setup for Remote CLI

Accessing the Remote CLI

procedure iconsmall spaceTo access the CLI Console

Debugging Remotely

procedure iconsmall spaceTo Access the Netra DPS Debugger

Coredump Support

System Configuration

procedure iconsmall spaceTo Go to the sys Mode From the Remote CLI

7. Eclipse Development Environment

ADE Introduction

Starting the Eclipse-Based ADE GUI

procedure iconsmall spaceTo Start the Eclipse-Based ADE GUI

Creating a Teja Project

procedure iconsmall spaceTo Create a Project in the Same Directory as an Existing Teja Application

procedure iconsmall spaceTo Add the Graphic Files to a Project

Files and Viewers

Hardware Architecture Viewer

Software Architecture Viewer

Mapping Viewer

Build

procedure iconsmall spaceTo Compile the Teja Application in the Eclipse-Based ADE

8. Receive Packet Classification

Receive Packet Classification Introduction

Supported Networking Interfaces

Sun Multithreaded 10GbE and NIU Receive Packet Classifier

Hashing Based on Level 2, Level 3, and Level 4 Header Classification

Hash Key generation

Application

Classification Policy

Flow Match Based on Level 2, Level 3, and Level 4 Header Classification

Level 2 (L2) Classification

Level 3 and Level 4 (L3/L4) Classification

Applications

Classification Programming Interface

opcode

action

flow_spec

channel

ue or um

hd

flow_spec_ipv4_t

flow_spec_ipv6_t

flow_spec_l2_t

Examples

procedure iconsmall spaceTo Use Hash Flow

procedure iconsmall spaceTo Use TCAM Classification

9. Reference Applications

IP Packet Forwarding Application

Source Files

Compiling the ipfwd Application

Build Scripts

Build Script Arguments

Argument Descriptions

Build Example

procedure iconsmall spaceTo Run the ipfwd Application

Default Configurations

Default System Configuration

Default ipfwd Application Configuration

Other Options

Profiling

Radix Forwarding Algorithm

Bypassing the ipfwd Operation

Multiple Forward Port Destinations

Hash Policy for Spreading Traffic to Multiple DMA Channels

ipfwd Flow Configurations

Format

Radio Link Protocol Application

Compiling the RLP Application

Build Scripts

Build Script Arguments

Arguments Descriptions

Build Example

procedure iconsmall spaceTo Run the Application

Default Configurations

Default System Configuration

Default rlp Application Configuration

Other RLP Options

procedure iconsmall spaceTo Enable Profiling

procedure iconsmall spaceTo Bypass the rlp Operation

procedure iconsmall spaceTo Use One Global Memory Pool

procedure iconsmall spaceTo Run RLP on Four Ports for ipge

RLP Policy for Spreading Traffic to Multiple DMA Channels

procedure iconsmall spaceTo Enable an RLP Policy

IPSec Gateway Reference Application

IPSec Gateway Reference Application Architecture

IPSec Gateway Reference Application Capabilities

High-Level Packet Processing

Outbound Packets

Inbound Packets

Security Association (SA) Database and Security Policy Database

Outbound Packets and Inbound Packets

Static Security Policy Database (SPD) and Security Association Database (SAD)

SPD

SAD

Packet Encapsulation and De-encapsulation

Packet Encapsulation

Memory Pools

Pipelining

Source Code File Description

Reference Applications Configurations

IP with Encrypto and Decrypto

IPSec Gateway on Quad GE

IPSec Gateway on NIU 10G Interface (One Instance)

IPSec Gateway on NIU 10G Interface (Multiple Instances)

Flow Policy for Spreading Traffic to Multiple DMA Channels

procedure iconsmall spaceTo Enable a Flow Policy

10. Performance Tuning

Performance Tuning Introduction

UltraSPARC T1 Processor Overview

UltraSPARC T2 Processor Overview

Identifying Performance Issues

UltraSPARC T1 Performance

UltraSPARC T2 Performance

Optimization Techniques

Code Optimization

Pipelining

Parallelization

Mapping

Parking Idle Strands

Slowing Down Polling

Tuning Troubleshooting

What Is a Compute-Bound Versus a Memory-Bound Thread?

Cannot Reach Line Rate for Packets Smaller Than 300 Bytes

Cannot Scale Throughput to Multiple Ports

How Do I Achieve Line Rate for 64-byte Packets?

When Should I Consider Thread Placement?

Example RLP Exercise

Application Configuration

Configuration 1

Configuration 2

Using the Profiling API

Profiling Data

Metrics

Results

Configuration 1

Configuration 2

Analysis

Other Uses for Profiling

A. Tutorial

Application Code

Configuration Code

Build Process

procedure iconsmall spaceTo Create the Binary Image

Executing the Binary Image

procedure iconsmall spaceTo Execute the Binary Image

B. Frequently Asked Questions

Summary

General Questions

Configuration Questions

procedure iconsmall spaceTo Debug the Dynamic Libraries

Building Questions

Late-Binding Questions

Eclipse Questions

API and Application Questions

Optimization Questions

Legacy Code Integration Questions

Sun CMT Specific Questions

Address Resolution Protocol Questions

procedure iconsmall spaceTo Enable ARP in RLP

Glossary

Index