One or more functions are applied to network data packets in a virtual
router. A packet comprising part of a packet flow is received, and the
packet is evaluated to determine which of the one or more functions are
to be applied to the flow. The results of the evaluation are stored in a
record, and the functions indicated in the stored record are applied to
subsequent packets in the packet flow.