[ovs-git] Open vSwitch: learning-switch: Ignore "packet_in"s caused by OFPP_CONTROLLER actions. (master)

dev at openvswitch.org dev at openvswitch.org
Fri Aug 27 17:14:00 UTC 2010

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  6699af68e60e0d03671d1424a5f53258928b16d4 (commit)
       via  750638bbefd179b91f8fb3c9c1bde855af05cf45 (commit)
       via  9dbb9d5e94d1db5a0fb5cb3867c26d7c3d07d0c4 (commit)
      from  3a46ca6e46d32a2bc898ff7238f8276db952c050 (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 6699af68e60e0d03671d1424a5f53258928b16d4
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6699af68e60e0d03671d1424a5f53258928b16d4
Author: Ben Pfaff <blp at nicira.com>
learning-switch: Ignore "packet_in"s caused by OFPP_CONTROLLER actions.
It seems best to ignore "packet_in"s caused by OFPP_CONTROLLER actions in
learning-switch, since someone might be experimenting and it's best not
to interfere with that.

commit 750638bbefd179b91f8fb3c9c1bde855af05cf45
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=750638bbefd179b91f8fb3c9c1bde855af05cf45
Author: Ben Pfaff <blp at nicira.com>
ofproto: Avoid ofpbuf_clone() for OFPAT_CONTROLLER common case.
This additionally optimizes the common case of the first packet of a flow
that consists only of an OFPAT_CONTROLLER action, by avoiding an
ofpbuf_clone() call along that path.

commit 9dbb9d5e94d1db5a0fb5cb3867c26d7c3d07d0c4
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=9dbb9d5e94d1db5a0fb5cb3867c26d7c3d07d0c4
Author: Ben Pfaff <blp at nicira.com>
ofproto: Avoid user->kernel->user round-trip for many controller actions.
When an OpenFlow flow says to send packets to the controller, until now
ofproto has executed that using dpif_execute(), which passes the packet up
to the kernel.  The kernel queues the packet into its "action" queue, and
then later ofproto pulls the packet back down from the kernel and sends it
to the controller.

However, this is unnecessary.  Open vSwitch can just recognize in advance
that it will get the packet back and handle it directly, skipping the round
trip.  This commit implements this optimization.

This generally affects only the first packet in a flow, since generally the
rest come directly down from the kernel.  It only optimizes the "easy" case
where the first action in a flow is to send the packet to the controller,
since this seems to be the common case in the flows that I'm looking at


Summary of changes:
 lib/dpif-provider.h   |    8 -----
 lib/dpif.h            |   12 +++++++-
 lib/learning-switch.c |    7 +++++
 ofproto/ofproto.c     |   72 +++++++++++++++++++++++++++++++++++++++---------
 ofproto/pktbuf.c      |    7 ++++-
 5 files changed, 82 insertions(+), 24 deletions(-)

Open vSwitch

More information about the git mailing list