> +/* 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