In the upcoming software switch implementation of multiple tables, there is
no reason to prefer one table over another, so we always put rules into
table 0 by default. This commit allows this to be done simply by
specifying NULL as ->rule_choose_table().
* If multiple tables are candidates for inserting the flow, the function
* should choose one arbitrarily (but deterministically).
*
- * This function will never be called for an ofproto that has only one
- * table, so it may be NULL in that case. */
+ * If this function is NULL then table 0 is always chosen. */
int (*rule_choose_table)(const struct ofproto *ofproto,
const struct cls_rule *cls_rule,
uint8_t *table_idp);
/* Pick table. */
if (fm->table_id == 0xff) {
uint8_t table_id;
- if (ofproto->n_tables > 1) {
+ if (ofproto->ofproto_class->rule_choose_table) {
error = ofproto->ofproto_class->rule_choose_table(ofproto, &fm->cr,
&table_id);
if (error) {