On 01/10/2013 05:10 PM, Stephen Hemminger wrote:
The problem with your approach is that it adds a hash lookup in the packet process critical path.
Right now it is a list lookup and only happens if there is VLAN filtering configured. Shmulik argued that hash lookup would be faster, and that would be true for large number of vlans. List works better for smaller number of vlans. Something to keep in mind is that this only happens if a port has a vlan configuration. Out of the box, the cost is that of a if (list_empty()) statement.
Also the concept of different filters for egress vs ingress is feature madness. It doesn't make sense to have half-duplex connectivity.
I am of the same opinion, but it actually simplified the code quite a bit, but at the cost of additional memory footprint. If you find this
very objectionable, I can easily remove it. Thanks -vlad