Netra Data Plane Software Suite 2.1 Update 1 User’s Guide
User’s Guide
E20948-01
Contents |
1. Sun Netra Data Plane Software Suite Overview
Platform Firmware Prerequisites
To Check Your OpenBoot PROM Firmware Version
Package Installation Procedures
To Install the Software Into the Default Directory
To Install the Software in a Directory Other Than the Default
Building and Booting Reference Applications
.cshrc File and Required Compiler Path
Building Reference Application Instructions
tejacc Compiler Basic Operation
tejacc Compiler and Sun Netra DPS Interaction
Hardware Architecture API Overview
Hardware Architecture Elements
Advanced Hardware Architecture Elements
Software Architecture and Late-Binding API Overview
Sun Netra DPS Runtime API Overview
Finite State Machine API Overview
Late-Binding Object Identifiers
Profiler API Usage for the Sun UltraSPARC T1 Processor
Profiler API Usage for the Sun UltraSPARC T2 Processor
Profiling Application Performance
Sun UltraSPARC T1 Performance Counters
Sun UltraSPARC T2 Performance Counters
Sun UltraSPARC T1 Processor Profiler Output
Sun UltraSPARC T2 Processor Profiler Output
Performance Parameters Calculations
SB_full per thousand instructions:
FP_instr_cnt per thousand instructions:
IC_miss per thousand instructions:
DC_miss per thousand instructions:
ITLB_miss per thousand instructions:
DTLB_miss per thousand instructions:
L2_imiss per thousand instructions:
L2_dmiss_LD per thousand instructions:
Store Instructions per Packet:
Icache misses per 1000 Packets:
To Use a Spreadsheet for Performance Analysis
delete breakpoint ID or d breakpoint ID
Resolving Symbols Using Options
Configuring Oracle VM Server for SPARC Software for GDB Support
To Configure the Oracle VM Server for SPARC Software Required to Run the Sun Netra DPS Application With GDB Support
To Configure the Oracle Solaris Domain for GDB
To Load the GDB Showcase Binary in the Sun Netra DPS Domain
To Run Sun Netra DPS Application With GDB Support
5. Interprocess Communication Software
Programming Interfaces Overview
Configuring the Environment for IPC
IPC in the Logical Domains Environment
Example Environment for UltraSPARC T1 Based Servers
ldg2 - Control Plane Application
Example Environment for UltraSPARC T2 Based Servers
6. Remote Command-Line Interface
Remote Command-Line Interface Introduction
To Configure the Oracle Solaris Domain for Remote CLI
To Access the Sun Netra DPS Debugger
To Go to the sys Mode From the Remote CLI
Compiling the Remote CLI Application
7. Eclipse Development Environment
Starting the Eclipse-Based ADE GUI
To Start the Eclipse-Based ADE GUI
To Create a Project in the Same Directory as an Existing Teja Application
To Add the Graphic Files to a Project
To 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 Layer 2, Layer 3, and Layer 4 Header Classification
Flow Match Based on Layer 2, Layer 3, and Layer 4 Header Classification
Layer 3 and Layer 4 (L3/L4) Classification
Classification Programming Interface
Auto-Configuration Introduction
Configuring a Logical Domain Environment for Reference Applications
Custom Configuring a Primary Domain
Custom Configuring a Guest Domain
Saving Current Guest Domains Configuration
Configuring the Oracle VM Server for SPARC Software from a Saved Location
10. Transparent Interprocess Communication
Transparent Interprocess Communication Introduction
Programming Interfaces Overview
Configuring Environment for TIPC
SUNWndpsd and SUNWndps-tipc Binaries
Configuring Sun Netra DPS TIPC Stack from an Oracle Solaris Guest Logical Domain
Configuring Sun Netra DPS TIPC Stack from a Linux Guest Logical Domain
Enabling TIPC vnet Bearer for a NDPS TIPC Node
IP Packet Forwarding Reference Applications
To Compile the ipfwd Application
To Build the ipfwd Application
Default ipfwd Application Configuration
IP Forward Static Cross Configuration
Flow Policy for Spreading Traffic to Multiple DMA Channels
ipfwd Configuration File Format
Control Plane Components and Utilities
IPv4 Packet Forwarding Application with Exception Handling
ARP in the Oracle Solaris OS or Linux OS Using vnet
IPv4 Protocol Exception Handling
Reassembly and Local Delivery Using vnet
FIB Management When Using vnet
Exception Path Framework Components
The IPv4 STREAMS Module (lwmodip4)
Exceptions Path Framework Tools
To Compile the ipfwd Application for IPv4 Exception Handling
To Compile the IPv4 Forwarding Application With Exception Handling By Using Sun Netra DPS
Compiling the excpd Application
To Build the excpd Application When lwIP ARP Is Used With IPC
To Build the excpd Application When lwIP ARP Is Used With TIPC
To Build the excpd Application When the Oracle Solaris OS ARP Is Used With IPC
To Build the excpd Application When the Oracle Solaris OS ARP Is Used With TIPC
Compiling the lwmodip4 STREAMS Module
To Build the lwmodip4 STREAMS Module for IPv4 Exception Handling Using IPC
To Build the lwmodip4 Module for IPv4 Exception Handling Using TIPC
Compiling the lwmodarp STREAMS Module
To Build the lwmodarp Module for Oracle Solaris ARP Handling Using IPC
To Build the lwmodarp Module for Oracle Solaris ARP Handling Using TIPC
To Run the ipfwd Application with IPv4 Exception Handling in lwIP
To Run the ipfwd Application with IPv4 Exception Handling and ARP Handling in the Oracle Solaris Host
To Compile the ipfwd Application with IPv4 Exception Handling using vnet in Sun Netra DPS
To Run the ipfwd Application with IPv4 Exception Handling and ARP Handling in an Oracle Solaris OS Host Using vnet
To Compile the IPv4 Forwarding Application With Exception Handling Using vnet in Sun Netra DPS
To Run the ipfwd Application with IPv4 Exception Handling and ARP Handling in the Linux Host Using vnet
IPv6 Packet Forwarding Application with Exception Handling
IPv6 Protocol Exception Handling
IPv6 Protocol Exception Handling Using vnet
FIB Management Using vnet Exception Handling
Data-Plane and Control-Plane Synchronization
IPv6 STREAMS Module (lwmodip6)
To Compile the Reference Application
To Compile the IPv6 Forwarding Application With Exception Handling Using Sun Netra DPS
Compiling the lwmodip6 STREAMS module
To Build the lwmodip6 Module for IPv6 Exception Handling Using IPC
To Build the lwmodip6 Module for IPv6 Exception Handling Using TIPC
To Run the ipfwd Application With IPv6 Exception Handling
To Compile the IPv6 Forwarding Application With Exceptional Handling Using vnet
To Run the ipfwd Application With IPv6 Exception Handling
Run the ipfwd Application That Is Compiled With Exception Handling
To Compile the IPv6 Forwarding Application Using vnet Exceptional Handling in a Linux Guest Logical Domain
To Run the ipfwd Application Using IPv6 Exception Handling in a Linux Guest Logical Domain
Run the ipfwd Application That Is Compiled With Exception Handling
Differentiated Services Reference Application
Differentiated Services Code Point Classifier
Single-Rate Three-Color Marker
Building the DiffServ Application
DiffServ Command-Line Interface Implementation
To Build the Extended Control Utility
Command-Line Interface for the IPv4-DiffServ Application
Generic Routing Encapsulation Reference Application
Generic Routing Encapsulation Introduction
GRE Over IPv4 Data Plane Internal Block Diagram
Key and Sequence Number Extensions to GRE
GRE Command-Line Interface Implementation
To Compile the IPv4 and GRE Application Using Sun Netra DPS
To Compile the Command-Line Interface Application
To Run the IPv4 and GRE Application
CLI for the IPv4-GRE Application
GRE Reference Application Example
To Build the GRE Reference Application
Traffic Generator Configuration
Access Control List Reference Application
To Configure the ACL Application Environment Using LDC
To Configure the ACL Application Environment Using TIPC
Command-Line Interface for the ACL Application
To Use acltool in a Linux OS Control Domain
Radio Link Protocol Reference Application
To Compile the RLP Application
Default RLP Application Configuration
Flow Policy for Spreading Traffic to Multiple DMA Channels
IPSec Gateway Reference Application
IPSec Gateway Application Architecture
IPSec Gateway Application Capabilities
Security Association Database and Security Policy Database
Outbound Packets and Inbound Packets
Static Security Policy Database and Security Association Database
Packet Encapsulation and De-encapsulation
Reference Application Configurations
IP with Encryption and Decryption
IPSec Gateway on NIU 10-Gbps Interface (One Instance)
IPSec Gateway on NIU 10-Gbps Interface (Up to Four Instances)
Multiple Instances (Up to Eight Instances) Back-to-Back Tunneling Configuration
Flow Policy for Spreading Traffic to Multiple DMA Channels
Traffic Generator Reference Application
To Start the ntgen User Interface
Configuring Logical Domains for the Traffic Generator
To Prepare Building the ntgen Utility
To Set Up and Use Logical Domains for the Traffic Generator
To Start the Traffic Generation
To Compile the Traffic Generator
Interprocess Communication Reference Application
IPC Reference Application Content
Building the IPC Reference Application
To Install the lwmod STREAMS Module
To Remove the lwmod STREAMS Module
Transparent Interprocess Communication Reference Application
To Compile the TIPC Application
IP Forward Reference Application Using TIPC
To Build the IP Packet Forward (ipfwd) Application
To Configure the Environment for TIPC
To Configure Oracle Solaris OS TIPC Stack in Oracle Solaris Domain (ldg2)
Command-Line Interface Application using TIPC
To Build the Extended Control Utility
FIB Table Configuration Command Line Interface (fibctl)
Interface Configuration Command Line Interface (ifctl)
IPv4 Exception Process (excpd)
vnet Reference Application Content
Building the Sun Netra DPS vnet Reference Application
To Build the vnet Reference Application
To Run the vnet Sun Netra DPS Application, vnettest
To Build the vnet Guest Logical Domain Application for the Oracle Solaris OS
Building the vnet Guest Logical Domain Application for the Linux OS
To Run the vnet Guest Logical Domain Application on a Oracle Solaris OS Guest Logical Domain
To Run the vnet Guest Logical Domain Application on a Linux OS Guest Logical Domain
Performance Tuning Introduction
UltraSPARC T1 Processor Overview
UltraSPARC T2 Processor Overview
Identifying Performance Issues
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?
What Is Teja 4.x and How Does It Differ From an Ordinary C Compiler?
What Purpose Are the Hardware Architecture, Software Architecture, and Mapping Dynamic Libraries?
How Can I Debug the Dynamic Libraries?
To Debug the Dynamic Libraries
What Should I Do When the tejacc Compiler Crashes?
What if the Hardware Architecture, Software Architecture, or Mapping Dynamic Libraries Crash?
Can I Build Hardware Architecture, Software Architecture, and Mapping in the Same Dynamic Library?
Can I Map Multiple Variables With One Function Call?
Where Is the Executable Image?
How Can I Compile Multiple Modules on the Same Command Line?
How Can I Pass Different CLI Options to Different Modules on the tejacc Command Line?
How Can I Change the Behavior of the Generated makefile Without Modifying it?
How Do I Compile the Reference Applications?
What Is the Difference Between OS Based and Non-OS Based Memory Pools and Channels?
How Do I Access a Late-Binding Object From Application Code?
Can I Define a Symbol in the Software Architecture and Use it in My Application Code?
How Can I Change the Build Command?
How Can I Change the Compiler Invocation Command?
How Do I Synchronize a Critical Region?
How Do I Send Data From a Thread to Another Thread?
When Should I Use Queues Instead of Channels?
Why Is it Not Necessary to Block Interface or Queue Reads?
Can Multiple Strands on the Same Queue Take Advantage of the Extra CPU Cycles if the Strands Are Not Being Used?
Why Does the Application Choose the Role for the Strand From the Code Instead of the Software Architecture API?
Is It Possible to Park a Strand Under Logical Domains as Done in a Non-Logical Domains Environment?
Can You Assign Partial Cores to a Sun Netra DPS domain?
What Is the Significance of bss_mem Placement in the Code Listing?
How Are app.cmt2board.heap_mem0 and Similar Heaps Affected?
Can You Clarify BSS, Code, Heap, and DRAM Memory Allocation?
Does the eth_* API Support Virtual Ethernet (VNET) Devices?
How Do I Calculate the Base PA Address for NIU or Logical Domains to Use with the tnsmctl Command?
How Do I Modify the IP Forwarding Application to Use a New Classifier Type Instead of the Default UDP Type?
How Do I Add a New Packet Type to ntgen?
What Is Context-Sensitive Generation?
Legacy Code Integration Questions
How Can I Reuse Legacy C Code in a Sun Netra DPS Application?
Linking Legacy Code to Sun Netra DPS Code
How Can I Reuse Legacy C++ Code in a Sun Netra DPS Application?
Translating C++ Code to C Code
Is There a Maximum Allowed Size for Text and BSS in My Program?
How Is Memory Organized in the Sun CMT Hardware Architecture?
How Do I Increase the Size of the DRAM membank?
Address Resolution Protocol Questions
How Do I Enable ARP in the RLP Application?
How Do I Enable ARP Without Relying on a Control Domain?
How Do I Enable ARP Using a Control Domain?
Oracle Solaris Domain and Sun Netra DPS Domain Question
How Do I Access kstat Information From the Oracle Solaris Domain for Network Interfaces That Are in Use by the Sun Netra DPS domain?
How Do I Stop Traffic Generation?
Oracle Solaris TIPC Application
What Should I Do When the Oracle Solaris TIPC Application Is Not Able to Create a Socket and Does a Core Dump?
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.