diff options
author | Joe Stringer <joestringer@nicira.com> | 2015-01-22 01:42:49 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-27 00:45:49 +0100 |
commit | d29ab6f8a92eceb00d6085f028b6e05213faa72d (patch) | |
tree | 825803b67a77c7405eb1c4ce6d258fdd4d356201 /net/openvswitch/flow_table.c | |
parent | openvswitch: Refactor ovs_nla_fill_match(). (diff) | |
download | linux-d29ab6f8a92eceb00d6085f028b6e05213faa72d.tar.xz linux-d29ab6f8a92eceb00d6085f028b6e05213faa72d.zip |
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.c | 21 |
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, } /* Must be called with OVS mutex held. */ -int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow, - const struct sw_flow_mask *mask) +static void flow_key_insert(struct flow_table *table, struct sw_flow *flow) { struct table_instance *new_ti = NULL; struct table_instance *ti; - int err; - - err = flow_mask_insert(table, flow, mask); - if (err) - return err; flow->hash = flow_hash(&flow->key, flow->mask->range.start, flow->mask->range.end); @@ -613,6 +607,19 @@ int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow, table_instance_destroy(ti, true); table->last_rehash = jiffies; } +} + +/* Must be called with OVS mutex held. */ +int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow, + const struct sw_flow_mask *mask) +{ + int err; + + err = flow_mask_insert(table, flow, mask); + if (err) + return err; + flow_key_insert(table, flow); + return 0; } |