Next:
Preface
Up:
html_pg
Previous:
html_pg
Contents
Preface
Getting Started
Hardware and Software Requirements
Setup
Hardware Requirements
Improving Efficiency of Your Development Process
The OpenRG Distribution
Installation
Quick Installation
Full Installation Procedure
RGLoader
Using RGLoader
Compiling RGLoader
Licensing OpenRG Distributions
Toolchain
Start Developing with OpenRG
Development Tutorial
Getting Started
The Programming Example
Wag the Watchdog
Watchdog Components
Installation and Build
Stage 1 - Adding a New Package
New Package Directory Structure
Working with MakeFiles
Initializing a New Package
Lesson Summary
Stage 2 - The Configuration Database
Stage 3 - Creating a Management Page
Creating the Watchdog WBM Component
Creating a Print Function
Creating a Scan Function
Tying the Watchdog WBM Page with WBM
Compilation
Lesson Summary
Stage 4 - Integrating the Application
Stage 5 - Integrating the Kernel Module
Stage 6 - Integrating Main Task
Creating a New Directory and Modifying the Makefile
Implementing the Watchdog Entity
Register the Entity in Main Task
Implementing the Watchdog Task
Writing the Makefile
Lesson Summary
Tutorial Appendix
Board Tailoring
Overview
Flash Sections
Boot
Bootstrap
Boot Loader
Factory Settings
Image #1 ... #N
rg_conf #1, #2 ... #N
Creating a Section for Permanent File Storage
Initial Flash Image Builder
Designing a Correct Flash Layout
Flash Layout Example
Dynamic Flash Layout
Hardware Button Customization
Overview
VxWorks Considerations
Restore Default Settings Design
LED Control
LED Module
UserSpace
Porting OpenRG to a Different Architecture
General
Distribution
Platform
Boot Sequence
Memory
Low-Level I/O
Intel's IXP425-based Platforms
Distribution
Platform
Boot Sequence
Memory
Low-level I/O
Preparing for Production
Building a Complete Flash Image
The flash.img File
The build_flash Utility
Creating the Factory Settings
How OpenRG Uses Factory Settings
Changing the Factory Settings
Changing the Factory Settings Values
Software Configuration
Feature Flags
Adding Features
Removing Features
Tailoring the Web-based Management
Links
On-change Events
Watermarks
Passing Parameters Between Scan and Print Functions
Editable Tables
Alternative Themes
Integrating Applications
Adding an Application to the Development Tree
Adding an Application to the Image
Testing Your Application
Integrating Kernel Modules
Loading Modules During Boot Sequence
Integrating Device Drivers
Adding Device Drivers
Adding Device Drivers to the Development Tree
Adding Device Drivers to the Image
Defining Network Devices and Network Bridges
Defining a Hardware Network Interface
Defining a Network Bridge
Allowing Absent Devices
Adding Network Device Types
When Would You Add a New Network Device Type?
The dev_if_ops_t Structure
Code Compilation for Localhost
Adding New IOCTLs
Defining the IOCTL
Implementing The IOCTL
Porting Drivers From Kernel 2.4 to Kernel 2.2
Advanced Development Concepts
System Architecture
Architectural Design Guidelines
Concepts
Component Partitioning
Logical Layering
Coordination Logic
The Main Task
The Asynchronous Nature of Main Task
Entities
Tasks
Packet Flow Through OpenRG
RX Flow
TX Flow
OpenRG Hooks Scheme
Configuration Database
Architecture
The Agent's Execution Flow
Management Information Base Data
General Configuration of the SNMP Agent
Implementing New MIBs
The MIB Definition Document
Module Definition and Initialization
The Variable Handling Routine (FindVarMethod)
The Write Routine (WriteMethod)
Generating SNMP Traps
Trap Receiver Configuration
Generating Standard Traps
The Build Mechanism
Transparent Bridging
Flow Description
Virtual LAN (VLAN)
VLAN Advantages
Demonstrating VLANs
Configuration File Entries & Examples
Example 1: A Typical Ethernet-USB Bridge
Example 2: Ethernet-USB Bridge with VLAN
Example 3: Detailed VLAN Example
Operating System Implications
Security Implications
Command Line Interface Bridge Commands
Relationship with other Modules
Performance Implications
Frame RX Sequence
Bridge Forwarding Mechanism
VLAN Tagging/Untagging
Troubleshooting Bridge Connectivity Problems
Bridge STP Learning
Bridge MAC Changes
VLAN Definitions
Terminology
Extending the SNMP Agent
Architecture
The Agent's Execution Flow
Management Information Base Data
General Configuration of the SNMP Agent
Implementing New MIBs
The MIB Definition Document
Module Definition and Initialization
The Variable Handling Routine (FindVarMethod)
The Write Routine (WriteMethod)
Generating SNMP Traps
Trap Receiver Configuration
Generating Standard Traps
Command Line Interface
Accessing the CLI
CLI Commands
Configuration Database
Connections
Debugging
Device Configuration
DNS Dynamic Routing
Firewall
Flash
Internet Connection
Main Task
Remote Upgrade
System Log
Tasks
Terminal
Adding a New Command Line Function
Writing Functions
Defining a Command Array
Defining a Category
Registering the Commands
Example - Adding Commands
Notes
Web-based Management
Overview
High Usability
Customization
Flexibility
Directory Structure
General Structure and Flow
The HTTP Connection Life Cycle
Main Function
Print Page Function
Scan Page Function
Initialization
The Configuration File
Debugging Techniques
Common Problem 1
Common Problem 2
Multilanguage Support
Overview
Terminology
Flow Description
Network Address Translation
Stateful Packet Inspection
Services
Directory Structure
Mechanism
Firewall Rule
Firewall Chain
Rules and Chains Examples
Rule and Chain Precedence
Network Address Translation
Application Layer Gateways
Firewall Active Devices
Features
Security Level Definitions
Firewall Internal Rules
Security Log
Firewall Protected Attacks
SYN Flood Protection
A Firewall rg_conf Example
Rules Compilation
From rg_conf to Rules
Firewall Languages
Firewall Opcodes
Compiling a Rule to an Opcode Structure
Special Chains
Putting it All Together
Kernel Module Overview
Main Data Structures
Debugging Techniques
Reading rg_conf
Examining the Ruleset in the Kernel - fw_dump
Examining the Firewall Connections Table
Follow Command Execution for Each Packet - fw_trace
Firewall Variable - Examining Rules Hits
Firewall Log
Customization
Compilation flags
Predefined Global Services
Definition of Common Firewall Parameters
Virtual Private Network (VPN)
Public Key Infrastructure
Digital Certificates
X.509 Certificate Format
Relevant rg_conf Entries
Adding a Proxy
Voice over IP (VoIP)
VoIP Features
The Signaling and Voice Stages
Reference Hardware Platforms
VoIP Architecture
oSIP VoIP Architecture
RADVISION VoIP Architecture
Digital Signal Processor
RTP/RTCP
Quality of Service
VoIP Distribution
Modifying the Voice Module
Integrating Additional DSPs
Call Control Feature Enhancements (oSIP)
Call Control Feature Enhancements (RADVISION)
Web-based Interface Tailoring
Configuration File Entries
TR-069
Overview
Architecture Implementation
File Structure
Parameters
How to Add a New Parameter
JACS Implementation
Overview
Architecture Implementation
Engine Structure
Implementation
How to Add New Objects
Parameter List
Appendix
Upgrading OpenRG from 3.X to 4.X
A New Concept
Components
Main Task
Web-based Management
Multilanguage Support
WBM Registration Mechanisms
Command Line Interface
Management Libraries
OpenRG Libraries
Configuration File
Working with the Concurrent Versions System
Subsections
Preface
What is OpenRG?
Objective
Who Should Read This Book
What You Will Learn
How This Book is Organized
Part I: Getting Started
Part II: Start Developing with OpenRG
Part III: Advanced Development Concepts
Part IV: Features Knowledge
Conventions Used in This Book
Tell Us What You Think
Jungo Software Technologies