IPAF is a framework for network applications that must generate, collect and analyze network packets on an individual basis. IPAF abstracts functionality provided by the libpcap packet capture library and the libdnet low-level network library, simplifying their usage by high level languages, like Python.
In addition to abstracting libpcap and libdnet, IPAF provides a sophisticated library for classifying packets, and manipulating packet fields without forcing the developer to resort to complicated structures and pointer arithmetic.
IPAF also provides an extensible cooperative process model, asynchronous message queueing, and a flexible memory management system designed for ease of integration with reference counted and garbage collected memory models.