aboutsummaryrefslogtreecommitdiffstats
path: root/net/openvswitch/flow_table.c
diff options
context:
space:
mode:
authorJoe Stringer <joestringer@nicira.com>2015-01-21 19:42:49 -0500
committerDavid S. Miller <davem@davemloft.net>2015-01-26 18:45:49 -0500
commitd29ab6f8a92eceb00d6085f028b6e05213faa72d (patch)
tree825803b67a77c7405eb1c4ce6d258fdd4d356201 /net/openvswitch/flow_table.c
parent5b4237bbc93b1b54d35b037cfc0ece71cd8e358d (diff)
openvswitch: Refactor ovs_flow_tbl_insert().
Rework so that ovs_flow_tbl_insert() calls flow_{key,mask}_insert(). This tidies up a future patch. Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/openvswitch/flow_table.c')
-rw-r--r--net/openvswitch/flow_table.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c
index 5899bf161c61..81b977d839df 100644
--- a/net/openvswitch/flow_table.c
+++ b/net/openvswitch/flow_table.c
@@ -585,16 +585,10 @@ static int flow_mask_insert(struct flow_table *tbl, struct sw_flow *flow,
585} 585}
586 586
587/* Must be called with OVS mutex held. */ 587/* Must be called with OVS mutex held. */
588int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow, 588static void flow_key_insert(struct flow_table *table, struct sw_flow *flow)
589 const struct sw_flow_mask *mask)
590{ 589{
591 struct table_instance *new_ti = NULL; 590 struct table_instance *new_ti = NULL;
592 struct table_instance *ti; 591 struct table_instance *ti;
593 int err;
594
595 err = flow_mask_insert(table, flow, mask);
596 if (err)
597 return err;
598 592
599 flow->hash = flow_hash(&flow->key, flow->mask->range.start, 593 flow->hash = flow_hash(&flow->key, flow->mask->range.start,
600 flow->mask->range.end); 594 flow->mask->range.end);
@@ -613,6 +607,19 @@ int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
613 table_instance_destroy(ti, true); 607 table_instance_destroy(ti, true);
614 table->last_rehash = jiffies; 608 table->last_rehash = jiffies;
615 } 609 }
610}
611
612/* Must be called with OVS mutex held. */
613int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
614 const struct sw_flow_mask *mask)
615{
616 int err;
617
618 err = flow_mask_insert(table, flow, mask);
619 if (err)
620 return err;
621 flow_key_insert(table, flow);
622
616 return 0; 623 return 0;
617} 624}
618 625