[ovs-discuss] Problems understanding ovs with of support

Justin Pettit jpettit at nicira.com
Fri Feb 24 10:21:29 PST 2012


On Feb 24, 2012, at 5:11 AM, Luiz Ozaki wrote:

>> Does anyone of you know what's the classifier table? What's the difference between that particular table and the others?
>> 
> 
> If I remember correctly OVS uses only the classifier table, making a hash of the openflow fields for lookup.

Yes, this is correct.  You can think of the classifier as the piece that holds the OpenFlow flows that are pushed down from the controller or set up using ovs-ofctl.  The kernel datapath has a hash table it uses to lookup exact match flows, which are constructed based on a consultation with the classifier.

> You might use the other tables to do "jumps", like in iptables. But on these tables it should be linear lookup (Not sure).

Open vSwitch 1.3.0 introduced up to 255 classifier tables.  Table 0 is the first table to be consulted, and other tables can be consulted by using the NXAST_RESUBMIT_TABLE action.

> Don't know any case that you need to use the other tables, if anyone have a use case for them, please tell us. Im curious as well now.


Typically they're used to prevent an explosion of rules by having to produce the Cartesian product.  For example, you may have a set of IP address you want to filter and a set of ports for those IP addresses.  By using multiple tables, you only need (number of IPs) + (number of ports).  If you only have a single table consultation, you have to multiply those two sets, which can become quite a large number.

--Justin




More information about the discuss mailing list