1 Introduction
1.1 What is IPAF?
1.2 Why IPAF, and not libpcap, libdnet, etc?
2 Overview
2.1 Transmitting UDP Packets
2.2 Packet Type Monitor
2.3 Transmitting UDP Packets Revisited in Python
2.4 Packet Type Monitor Revisited in Python
3 Memory Management in IPAF
3.1 Cells, References, and Segment Pointers
3.2 Maintaining Reference Counts
3.3 Defining New Cell Types
4 Messages, Queues and Readers in IPAF
4.1 Why Does IPAF Use Messages and Queues?
4.2 Working With Simple Queues
4.3 Queue Readers
4.4 Implementing Specialized Queues
5 Collecting Packets
5.1 Creating a Collector
5.2 Locating Packet Segments
5.3 Retrieving Segment Fields
6 Generating Packets
6.1 Creating a Generator
6.2 Creating a Packet
6.3 Setting Packet Fields
6.4 Transmitting the Packet