MAPI, or Monitoring API, is a multi-user
programming interface designed to simplify the
development of network monitoring software and
allow users to express their monitoring needs in a
device-independent way. The main abstraction
provided is the network flow. Although flows have
been used before in network monitoring systems,
MAPI gives flows a first-class status.
Applications that use MAPI can specify what flows
or flow statistics they are interested in by
applying functions to flows. A MAPI function can
be a BPF filter, string search, or packet counter,
or more advanced like a NetFlow generator. These
functions will automatically run in hardware if
there is support for it on the hardware being used.