User:Xiaozhong Wang/sandbox

Protocol Oblivious Forwarding (POF) is an exciting idea and a groundbreaking technology to shape the future SDN’s forwarding plane infrastructure. POF enhances the current SDN forwarding plane with the following virtues: [1] 
 * Enable full programmability from the controller side. By implementing POF, the forwarding device can support any existing or new protocols automatically. Operators can program the forwarding device online to do anything as they want.
 * Enable customers to run business on any user-defined private protocols easily and rapidly. Customers can implement private protocols easily to meet new requirements such as maintenance or security. Private protocols can help customers improve the security of their business very much.
 * Enable customers to save OPEX a lot. POF provides a stable forwarding plane and a standard southbound interface that can sustain the SDN evolvement. Customers do not need to upgrade their devices for supporting any new business by implementing POF.
 * Enable standardization ASIC as forwarding plane. As POF provides a stable instruction set that can sustain the SDN evolvement, standard forwarding ASIC can be used to offers the best performance. It will help customers reduce CAPEX a lot.

Background
In the SDN architecture, the control and data planes are decoupled, network intelligence and state are logically centralized, and the underlying network infrastructure is abstracted from the applications. As a result, enterprises and carriers gain unprecedented programmability, automation, and network control, enabling them to build highly scalable, flexible networks that readily adapt to changing business needs. [2] While the current OpenFlow-based SDN [3][4] enables the programmability of network devices by downloading flows into devices from the controller; automatic support of new protocols is an area that can be further enhanced. The programmability of current SDN can only apply to the existing protocols. If one service based on a new protocol needs to be implemented, the operator has to ask the device vendor to modify the code of the devices to support the new service. This will lead to a long deployment cycle for new services based on new protocols. Even now OpenFlow’s latest specification cannot cover several well-known protocols. As new protocols keep emerging (e.g. VXLAN, NVGRE) and some applications gain their momentum (e.g. many variations of L2/L3 VPNs), major revisions to the interface standard are expected, which make the OpenFlow standard unwieldy eventually.

Principle
A POF forwarding device does no need to understand the packet format. In POF, table search keys are defined as {offset, length} tuples, and instructions/actions access data using {offset, length} tuples. The figure below is a basic IPv4 process flow used for demonstrating how POF works. The ‘Type’ is denoted with {12B, 2B}, and the ‘Destination IP Address’ is denoted with {30B, 4B}, and so on.[1]

For the detail of POF principle, please refer to POF website: http://www.poforwarding.org

Implementation and Deployment
Flow tables in a POF device are configured by a POF controller. The flow entries in any flow table are configured automatically by applications or manually through GUI on the controller.

The controller provides the user interface for configuring protocols and metadata. The controller stores all protocols in one database in the format {offset, length}. During configuring flow entries, applications on the controller may reference any protocol field in the protocol database for building the flow entries’ match fields and instructions.

Figure below is a sketch map of POF architecture. Operator can configure protocol/metadata through an UI. Applications create flow tables as services required. During the procedure, the protocol database may be referenced. Applications download all flow tables’ entries into the designated device through the OpenFlow channel. [1]

A prototype of POF controller and POF software switch is introduced and downloadable in POF website: http://www.poforwarding.org

Reference
1.	http://www.poforwarding.org/

2.	https://www.opennetworking.org/images/stories/downloads/white-papers/wp-sdn-newnorm.pdf

3.	N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner, “OpenFlow: Enabling Innovation in Campus Networks,” ACM SIGCOMM Computer Communication Review, vol. 38, no. 2, April 2008.

4.	openflow-spec-v1.3.0.pdf: https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.3.0.pdf