Sun Logo


Netra Data Plane Software Suite 2.0 Update 2 User’s Guide

820-5211-11



Contents

Figures

Tables

Preface

1. Netra Data Plane Software Suite Overview

Product Description

Supported Systems

Software Installation

Platform Firmware Prerequisites

Package Dependencies

Package Installation Procedures

Building and Booting Reference Applications

.cshrc File and Required Compiler Path

Building Reference Application Instructions

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

Software Architecture and Late-Binding API Overview

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

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

Sun UltraSPARC T1 Performance Counters

Sun UltraSPARC T2 Performance Counters

User-Defined Statistics

Profiling Metrics

Using the Profiler Script

Profiler Scripts

Raw Profile Data

Summarized Profile Data

Performance Parameters Calculations

4. Debugger

Debugger Introduction

Native Debugger

Debugging Configuration Code

Entering the Debugger

Native Debugger Commands

Resolving Symbols

GNU Project Debugger (GDB)

Configuring LDoms for GDB Support

GDB Showcase Application

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

Virtual Data Plane Channels

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

Debugging Remotely

Coredump Support

System Configuration

Compiling the Remote CLI Application

Build Script

Usage

Build Script Arguments

Argument Descriptions

7. Eclipse Development Environment

ADE Introduction

Starting the Eclipse-Based ADE GUI

Creating a Teja Project

Files and Viewers

Hardware Architecture Viewer

Software Architecture Viewer

Mapping Viewer

Build

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

Examples

9. Auto-Configuration

Auto-Configuration Introduction

Installation

Prerequisites

User Interface

Configuring a Logical Domain Environment for Reference Applications

Custom Configuring a Primary Domain

Custom Configuring a Guest Domain

Configuring LDC and IPC

Saving Current Guest Domains Configuration

Configuring LDoms from a Saved Location

10. Reference Applications

IP Packet Forwarding Application

Source Files

Compiling the ipfwd Application

Default Configurations

Other IPFWD Options

Format

Differentiated Services Application

Classifier

Policing (Meter)

DSCP Marker

Shaping

Building the DiffServ Application

DiffServ Command-Line Interface Implementation

Command-Line Interface for the IPv4-DiffServ Application

DiffServ References

Access Control List Application

Building the ACL Application

Running the ACL Application

Command-Line Interface for the ACL Application

Radio Link Protocol Application

Compiling the RLP Application

Default Configurations

Other RLP Options

IPSec Gateway Application

IPSec Gateway Application Architecture

IPSec Gateway Application Capabilities

High-Level Packet Processing

Security Association (SA) Database and Security Policy Database

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

Packet Encapsulation and De-encapsulation

Memory Pools

Pipelining

Source Code File Description

Build Script

Reference Applications Configurations

Flow Policy for Spreading Traffic to Multiple DMA Channels

Traffic Generator Application

User Interface

Parameters Description

Traffic Generator Output

Template Files

Using the Traffic Generator

Compiling the Traffic Generator

Default Configurations

Interprocess Communication (IPC) Reference Application

IPC Reference Application Content

Building the IPC Reference Application

Using the ipctest Utility

Installing the lwmod STREAMS Module

11. 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

Using the Profiling API

Profiling Data

Metrics

Results

Analysis

Other Uses for Profiling

A. Tutorial

Application Code

Configuration Code

Build Process

Executing the Binary Image

B. Frequently Asked Questions

Summary

General Questions

Configuration Questions

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

Solaris Domain and Netra DPS Domain Question

Traffic Generation

Glossary

Index