[ovs-discuss] Unnecessary flow eviction from data data when VLAN is not used
david.gong at stackpath.com
Tue Jul 2 21:54:25 UTC 2019
We have been investigating a performance issue in terms of PPS when unrelated flows are added/deleted. It turns out flows already installed in data path are evicted unnecessarily during revalidation, if these installed flows do NOT use VLAN, and use the default group selection method.
In particular, inside revalidate_ukey__, flow_wildcards_has_extra would suggest to delete the flow because of inconsistent masks on the vlans field. In the masks from the ukey, vlans will be set to 0xffffffff, and vlans will be 0x0, because there is no VLAN in the flow (odp_flow_key_to_mask -> odp_flow_key_to_flow__). But in the masks from the ofproto classifier, both vlans and vlans will be set to 0x1fff (xlate_ukey -> xlate_key -> xlate_actions -> do_xlate_actions -> xlate_group_action -> xlate_group_actions__ -> pick_select_group -> pick_default_select_group -> pick_default_select_group -> flow_mask_hash_fields).
Overall, we have observed that it’s inconsistent how the vlans field in the mask is populated. At some places, a for loop is used to populate both entries; while at other places only the first entry is populated. Has anyone else run into similar issues before? Insights and comments will be greatly appreciated!
Team Lead, Hardware Offload Development
david.gong at stackpath.com<mailto:david.gong at stackpath.com>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the discuss