Hi. Doing some test with rte_lpm (adding/deleting bgp full table rules) I noticed that rule subsystem is very slow even considering that probably it was never designed for using in a data forwarding plane. So I want to propose some changes to the "rule" subsystem.
I reimplemented rule part ot the lib using rte_hash, and perfomance of adding/deleted routes have increased dramatically. If increasing speed of adding deleting routes makes sence for anybody else I would like to discuss my patch. The patch also include changes that make next_hop 64 bit, so please just ignore them. The rule changes are in the following functions only: rte_lpm2_create rule_find rule_add rule_delete find_previous_rule delete_depth_small delete_depth_big rte_lpm2_add rte_lpm2_delete rte_lpm2_is_rule_present rte_lpm2_delete_all P.S. the patch was made for 2.2.0 version. P.P.S. Would it be more convinient to include full source file instead of patch?