[ovs-git] Open vSwitch: ofproto-dpif: Batch interacting with the dpif on flow miss operations. (master)

dev at openvswitch.org dev at openvswitch.org
Fri Oct 14 21:11:11 UTC 2011

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  501f8d1fd75b316ee7fa7c039cb37110750bf5a1 (commit)
       via  f38278973e94d19a6de2a3b8a24b03c7befbbb57 (commit)
       via  3d9e05f8c2b888c2254d229b23cf14f8eb5c6ed5 (commit)
       via  62cd70721ac27719a1d41225563e2496f49f0312 (commit)
       via  6bc6002490ae127a6d0c1dc6f6b8843cac8e0c22 (commit)
       via  cc75061af782bb7e99d40e3e00a8eb90b2cbbc51 (commit)
       via  c1c19657f457a908d207a5f8313ea0ea33a4f3f5 (commit)
       via  30b44744a1d806acf79f9feb8b848e851afda3e2 (commit)
       via  b6848f1333e3905268366e7a9b6d454a41b7b694 (commit)
       via  3a706b33aab1d5b79394ee74bd3a34d2bf00093c (commit)
       via  46d34fefc1bd8e0f5329d4c22d59a286e3bbb260 (commit)
       via  0e4b37710443ba0856daf5eefffcd582ff29f326 (commit)
       via  eea109bb5e164e3d01c1d41000cdf93166509e77 (commit)
      from  320232ec7f37218a6fce0704f9b0ba7696e5ad21 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 501f8d1fd75b316ee7fa7c039cb37110750bf5a1
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=501f8d1fd75b316ee7fa7c039cb37110750bf5a1
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Batch interacting with the dpif on flow miss operations.
This improves "ovs-benchmark rate" performance in my testing by about 24%.

A quick experiment shows that there may still be some headroom for batching
flow deletions on facet expiration, up to perhaps 10% additional

commit f38278973e94d19a6de2a3b8a24b03c7befbbb57
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f38278973e94d19a6de2a3b8a24b03c7befbbb57
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Separate facet creation and action translation.
This will allow for some optimization in an upcoming commit.

commit 3d9e05f8c2b888c2254d229b23cf14f8eb5c6ed5
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=3d9e05f8c2b888c2254d229b23cf14f8eb5c6ed5
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Factor controller optimization out of execute_odp_actions().
An upcoming commit will use this code separately from
execute_odp_actions(), so this prepares for that.

commit 62cd70721ac27719a1d41225563e2496f49f0312
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=62cd70721ac27719a1d41225563e2496f49f0312
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Break send_packet_in() into two separate functions.
It's been more or less convenient to pass a dpif_upcall to send_packet_in()
in the past, because most callers had one handy.  But an upcoming commit
won't have such easy access, so this commit breaks send_packet_in() into
two functions for the different types of packets to send to the controller,
each of which takes appropriate parameters instead of dpif_upcall.

commit 6bc6002490ae127a6d0c1dc6f6b8843cac8e0c22
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6bc6002490ae127a6d0c1dc6f6b8843cac8e0c22
Author: Ben Pfaff <blp at nicira.com>
dpif: New function dpif_operate() and dpif-linux implementation.
This will be used in an upcoming commit.

commit cc75061af782bb7e99d40e3e00a8eb90b2cbbc51
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=cc75061af782bb7e99d40e3e00a8eb90b2cbbc51
Author: Ben Pfaff <blp at nicira.com>
netlink-socket: New function nl_sock_transact_multiple().
This will be used in an upcoming commit.

commit c1c19657f457a908d207a5f8313ea0ea33a4f3f5
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c1c19657f457a908d207a5f8313ea0ea33a4f3f5
Author: Ben Pfaff <blp at nicira.com>
socket-util: New function get_socket_rcvbuf().
This will be used in an upcoming commit.

commit 30b44744a1d806acf79f9feb8b848e851afda3e2
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=30b44744a1d806acf79f9feb8b848e851afda3e2
Author: Ben Pfaff <blp at nicira.com>
dpif-linux: Only ask datapath to echo back results when they will be used.
A fair number of datapath flow operations optionally report back results
to the requester based on whether NLM_F_ECHO is set in the request.  When
userspace isn't going to use those results anyway, it wastes memory to
store them and a system call to retrieve them.

This commit omits the NLM_F_ECHO bit in cases where the caller isn't going
to use the results.

(NLM_F_ECHO has no effect on operations whose entire purpose is to retrieve
data, e.g. "get" and "dump" operations, so we need not bother to set it
for those.)

This improves "ovs-benchmark rate" results in my testing by about 4%.

commit b6848f1333e3905268366e7a9b6d454a41b7b694
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b6848f1333e3905268366e7a9b6d454a41b7b694
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Move DHCP in-band control special case into xlate_actions().
This eliminates an extra round trip to the kernel for this special case
and keeps all the flow translation logic in one place.

commit 3a706b33aab1d5b79394ee74bd3a34d2bf00093c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=3a706b33aab1d5b79394ee74bd3a34d2bf00093c
Author: Ben Pfaff <blp at nicira.com>
netlink: New macros for the sizes of Netlink attributes.
I was feeling tempted in some code to just guess "hey, 32 bytes ought to
be big enough" and so on, but really it seems better to just have a
convenient way to measure.

commit 46d34fefc1bd8e0f5329d4c22d59a286e3bbb260
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=46d34fefc1bd8e0f5329d4c22d59a286e3bbb260
Author: Ben Pfaff <blp at nicira.com>
netlink: New functions for putting attributes at the beginning of a buffer.
These are really just copies of the corresponding "put" functions.  An
upcoming commit will introduce a user of nl_msg_push_u32().  I thought I
might as well create all of these while I was at it.

commit 0e4b37710443ba0856daf5eefffcd582ff29f326
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=0e4b37710443ba0856daf5eefffcd582ff29f326
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Revalidate tagged packets, too, in facet_lookup_valid().
I don't see a reason that we should only revalidate facets if we're
revalidating every facet.

commit eea109bb5e164e3d01c1d41000cdf93166509e77
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=eea109bb5e164e3d01c1d41000cdf93166509e77
Author: Ben Pfaff <blp at nicira.com>
ofproto-dpif: Properly re-translate uninstallable facets in rule_execute().
If the facet is not installable then every packet requires separate
translation, but the existing code didn't do that.


Summary of changes:
 lib/dpif-linux.c       |  158 +++++++++++++++---
 lib/dpif-netdev.c      |    1 +
 lib/dpif-provider.h    |    8 +
 lib/dpif.c             |   45 +++++
 lib/dpif.h             |   58 +++++++
 lib/netlink-socket.c   |  300 +++++++++++++++++++++++++++-------
 lib/netlink-socket.h   |   14 ++
 lib/netlink.c          |  122 ++++++++++++++
 lib/netlink.h          |   29 +++-
 lib/socket-util.c      |   60 +++++--
 lib/socket-util.h      |    1 +
 ofproto/ofproto-dpif.c |  427 +++++++++++++++++++++++++++++++++++-------------
 12 files changed, 1012 insertions(+), 211 deletions(-)

Open vSwitch

More information about the git mailing list