datapath: Generalize flow creation and modification.
authorBen Pfaff <blp@nicira.com>
Mon, 4 May 2009 23:10:28 +0000 (16:10 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 4 May 2009 23:10:28 +0000 (16:10 -0700)
commit29a1100c365ebfa4c66d51063fe5bcf83dd048ec
tree4903cdc035f426a1460625163dfd37b9f171618c
parent7cdbaf58a7a947d2b0adfe6462ecd345ef03b95f
datapath: Generalize flow creation and modification.

The ODP_FLOW_ADD and ODP_FLOW_SET_ACTS datapath commands can be usefully
generalized based on whether they should be allowed to create or modify
flows, or both, and whether they reset flow statistics when they modify
an existing flow.  This commit does so by merging them into a single
ODP_FLOW_PUT command and adding a set of flags.

In particular this is needed to allow flows to be reinstalled if it is
uncertain whether they have been externally deleted (e.g. with "dpctl
dp-del-flows") without requiring first reading the flow table (as
handle_odp_msg() wants to do), and to replace a flow's actions and reset
its statistics without first deleting it (as rule_update_actions() wants
to do).

Also renames some other datapath commands, for naming consistency.

Also adapts userspace to these changes.
datapath/datapath.c
datapath/datapath.h
datapath/flow.c
datapath/flow.h
datapath/table.c
include/openflow/datapath-protocol.h
lib/dpif.c
lib/dpif.h
secchan/ofproto.c
utilities/dpctl.c