Hi Jarno, On 7 October 2014 14:43, Jarno Rajahalme <jrajaha...@nicira.com> wrote:
> flow inserts and removals are simplified: > > - No need for classifier internal mutex, as dpif-netdev already has a > 'flow_mutex'. > - Number of memory allocations/frees can be halved. > > Lookup code path is a bit more effcient as well, as we can rely on > netdev_flow_key always having inline data. > > This will also be easier to simplify further when moving to per-thread > megaflow classifiers in the future. > > Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com> > --- > v2: Reverted using netdev_flow_key as the flow_table key, since that will > become obsolete as soon as flow ID patches are merged in. > We still need a netdev_flow_key for the lookup in flow put, but now we > use the slower method of composing a packet from a flow, and extracting > the miniflow from this 'packet'. This does not matter, since the flow > put interface is no longer used for upcalls (but probes may still use > it). > > lib/classifier.c | 109 ---------- > lib/classifier.h | 5 - > lib/dpif-netdev.c | 619 > ++++++++++++++++++++++++++++++++++++++++++----------- > lib/flow.c | 61 ++++++ > lib/flow.h | 3 +- > 5 files changed, 555 insertions(+), 242 deletions(-) > > <snip> > > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c > index a1db620..36fd238 100644 > --- a/lib/dpif-netdev.c > +++ b/lib/dpif-netdev.c > <snip> > > @@ -1628,18 +1774,22 @@ dpif_netdev_flow_put(struct dpif *dpif, const > struct dpif_flow_put *put) > if (put->stats) { > memset(put->stats, 0, sizeof *put->stats); > } > - error = dp_netdev_flow_add(dp, &match, put->actions, > - put->actions_len); > + dp_netdev_flow_add(dp, &match, put->actions, > put->actions_len); > + error = 0; > } else { > error = EFBIG; > } Was there a particular reason for modifying this to ignore errors in dp_netdev_flow_add()? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev