This documentation describes the implementation of the Fast Forwarding module of Siena. This implementation consists of a fowarding table and a driver for it.
A forwarding table is an association of predicates to interfaces, one predicate is associated with one interface. A predicate is a disjunction of conjunctions of elementary constraints. The forwarding table provides essentially one match function that takes a message M and outputs the set of interfaces associated with predicates matched by M.
The driver is a function that reads commands from a file. The commands understood by the driver include essentially all the operations of the forwarding table. In particular, the driver can add associations of predicates to interfaces, and can request the processing of messages. Examples of commands accepted by the driver are available from the Example Section.