The following are the goals of OF-PI:
- Reconfigurable: OF-PI was designed so that the flexible switches can be programmed to reconfigure packet parsing and processing.
- Protocol independent: The packet format should not conform to OpenFlow, but the network programmer should have the ability to specify a packet parser for extracting header fields with particular names and types. A collection of type-match and action tables that process these headers can be specified.
- Target-independent: A network programmer should not require prior knowledge of the switch architecture, but the compiler should have the capability to turn a target-independent description of how packets are to be processed into a target-dependent program (used to configure the switch).