> +/* Optimized flow revalidation.
> + *
> + * It's a difficult problem, in general, to tell which facets need to have
> + * their actions recalculated whenever the OpenFlow flow table changes.  We
> + * don't try to solve that general problem: for most kinds of OpenFlow flow
> + * table changes, we recalculate the actions for every facet.  This is
> + * relatively expensive, but it's good enough if the OpenFlow flow table
> + * doesn't change very often.
> + *
> + * However, we can expect one particular kind of OpenFlow flow table change 
> to
> + * happen frequently: changes caused by MAC learning.  To avoid wasting a lot
> + * of CPU on revalidating every facet whenever MAC learning modifies the flow
> + * table, we add a special case that applies to flow tables in which every 
> rule
> + * has the same form (that is, the same wildcards), except that the table is
> + * also allowed to have a single "catch-all" flow that matches all packets.  
> We
> + * optimize this case by tagging all of the facets that resubmit into the 
> table
> + * and invalidating the same tag whenever a flow changes in that table.
> + */

I think this comment needs to more explicitly point out that these special
tables cause revalidation on a per rule basis not on a per table basis.  When
I first read it, I thought the optimization was to revalidate all flows which
hit the table whenever any rule in the table changed.

Looks good,
Ethan
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to