Software-defined Networking is an approach that decouples the software-based control plane from the hardware-based data plane proposed for enterprise networks; OpenFlow is the most famous flexible protocol that can manage network traffic between the control and the data plane. Software-Defined Networking (SDN) requires up to 18 fields of the packets header to be checked against a big many-fields ruleset to categorize packets into flows, the process of categorizing packets into flows is called packet classification. Network switches process all packets belonging to the same flow in a similar manner by applying the same actions defined in the corresponding rule. Packet classification facilitates supporting new services such as filtering, blocking unsafe sites traffic, routing packets based on the packet's header information, and giving priority to specific flows. High-performance algorithms for many-field packet classification had been gained much interest in the research communities. This paper presents a new method to implement the many-fields packet classification of SDN flow table using Rectangle Tree (R-Tree). In this method, source and destination IP addresses from each flow table entry have been converted to a two-dimensional point. The remainders of the rule's fields have been concatenated into a single field by taking the most important bits with rules' ID in order to be inserted into the R-tree, for each rule an effective small binary flag is used to indicate the field's size, type, and ranges. Subsequently, searching is performed on the rectangle tree to find the matched rules according to the highest priority. In the simulation using the class-bench databases, the results show that this method achieves very good performance, classification speed and reduces the number of memory accesses significantly.
翻译:暂无翻译