Representation of the OpenFlow Switch Flow Table
Andrei Aleksandrovich MARKOBORODOV, Julia Alexandrovna Skobtsova, D. Yu. Volkanov · 2020
The paper considers the OpenFlow 1.3 switch based on a programmable network processing unit (NPU). OpenFlow switch performs flow entry lookup in a flow table by the values of packet header fields to determine actions to apply to incoming packet (classification). In the considered NPU, lookup operation is based on the search trees. The trees are implemented in the NPU assembly language. But these trees cannot be directly used for OpenFlow classification because of compared operands width limitation. In this paper, we propose flow table representation designed for easy translation into NPU search trees. Another goal of our research was to create a compact program that fits in the NPU memory. Another NPU limitation requires program update after each flow table data modification. Consequently, the switch must maintain the currently installed flows of the flow tables to provide a fast NPU program update. We developed algorithms for incremental update of flow table representation (flow addition and removal). To evaluate the proposed flow table translation approach, we used patterns of flow tables operated from RUNOS OpenFlow controller. A set of flow tables based on the patterns was translated into NPU assembly language using a simple algorithm (based on related work) and an improved algorithm (our proposal). The evaluation was performed on the NPU simulation model and showed that our approach effectively reduces program size.