sliver-openvswitch.git
11 years agodatapath: Account for RHEL6.4 backports in compat layer
Thomas Graf [Thu, 25 Apr 2013 12:28:16 +0000 (14:28 +0200)]
datapath: Account for RHEL6.4 backports in compat layer

Explicitly check the availability of several kernel API functions
instead of relying on the kernel version to account for Red Hat
Enterprise Linux backports.

Signed-off-by: Thomas Graf <tgraf@redhat.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Use openvswitch_handle_frame hook in >=RHEL6.4 to live side by side with...
Thomas Graf [Thu, 25 Apr 2013 12:28:15 +0000 (14:28 +0200)]
datapath: Use openvswitch_handle_frame hook in >=RHEL6.4 to live side by side with bridging

Due to the missing register rx_handler API in the kernel RHEL6 is
based on, the datapath currently falls back to using the bridging
hook with the consequence that bridging and OVS cannot be used in
parallel on any RHEL6 release.

For this purpose, >=RHEL6.4 releases provide a special rx frame hook
to be used by OVS. It captures frames at the same location in the
stack as the rx_handler would do in more recent kernel releases. In
order to store the vport pointer, the net_device's ax25_ptr field is
utilized under the assumption that an AX25 device will never be
attached to an OVS bridge.

Signed-off-by: Thomas Graf <tgraf@redhat.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agoFAQ: Explain why VMs on a VLAN can't access the Internet.
Ben Pfaff [Wed, 24 Apr 2013 18:47:36 +0000 (11:47 -0700)]
FAQ: Explain why VMs on a VLAN can't access the Internet.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agomatch: Correct formatting of MPLS
Simon Horman [Wed, 24 Apr 2013 09:02:35 +0000 (18:02 +0900)]
match: Correct formatting of MPLS

1. mpls or mplsm should be included in the formatted match  instead of
   dl_type=0xXXXX if the dl_type of the match is ETH_TYPE_MPLS or
   ETH_TYPE_MPLS_MCAST respectively. This is consistent with the treatment
   of other dl_types in match_format().

2. Add formatting of MPLS TTL to match_format().
   The format is mpls_ttl=YY.

3. Set the mpls_lse mask of a match to all 1's if
   the dl_type of the flow is ETH_TYPE_MPLS or ETH_TYPE_MPLS_MCAST.
   This will cause mpls_label=LLLL,mpls_tc=W,mpls_ttl=YY,mpls_bos=Z to
   be included with the match is formatted.

4. mpls(label:LLLL,tc:W,ttl:TT,bos:Z) and
   mplsm(label:LLLL,tc:W,ttl:TT,bos:Z) should not be included
   in a formatted match as this is not consistent with the
   formatting of other match elements.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoFAQ: Describe how to connect bridges with patch ports.
Ben Pfaff [Tue, 23 Apr 2013 16:30:14 +0000 (09:30 -0700)]
FAQ: Describe how to connect bridges with patch ports.

I keep seeing this question.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agotimeval: Check for HAVE_BACKTRACE instead of HAVE_EXECINFO_H.
Ben Pfaff [Tue, 23 Apr 2013 18:07:25 +0000 (11:07 -0700)]
timeval: Check for HAVE_BACKTRACE instead of HAVE_EXECINFO_H.

Other code in the tree uses HAVE_BACKTRACE and then blindly includes
<execinfo.h> if it is present, so this doesn't make anything worse.

Once we do that, HAVE_EXECINFO_H has no further users, so this commit also
removes the check for <execinfo.h>

Reported-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodeal with platforms where backtrace() is in a different library than libc.
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:00 +0000 (22:20 +0900)]
deal with platforms where backtrace() is in a different library than libc.

execinfo for NetBSD and ubacktrace for uClibc.
i don't know if the latter is relevant to Open vSwitch, though.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodebian: force-reload-kmod while package upgrading.
Gurucharan Shetty [Wed, 10 Apr 2013 22:09:00 +0000 (15:09 -0700)]
debian: force-reload-kmod while package upgrading.

Currently, when we upgrade openvswitch packages, we do a restart
of userspace daemons automatically. This does not replace the
kernel module.

But almost everytime, we want to use the new kernel module
that comes with the new version. This means that we need to
manually do a "force-reload-kmod". This step, reloads the
kernel module and also restarts the userspace daemons. This gives
us a total of two restarts of userspace daemons. This is quite
expensive in a hypervisor with hundreds of VMs sending real traffic.
This also hurts the controller as it gets two reconnections in a short
amount of time.

With this patch, during a package upgrade, if the kernel module
on disk is different than the one that is loaded, we will
automatically do a force-reload-kmod while openvswitch-switch
is installed. If not, we will just do a "restart" like before.

One can install the kernel package first and then install the userspace
packages in 2 separate steps to enforce a single 'force-reload-kmod'.

If anyone wants to just restart the userspace package instead of
force-reload-kmod, they can set the value of OVS_FORCE_RELOAD_KMOD=no
while installing the package.
Ex: OVS_FORCE_RELOAD_KMOD=no dpkg -i openvswitch-switch*

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoINSTALL.Debian: Update instructions related to package ordering.
Gurucharan Shetty [Wed, 10 Apr 2013 22:08:39 +0000 (15:08 -0700)]
INSTALL.Debian: Update instructions related to package ordering.

If we install the userspace packages first, without a kernel module
present in the correct path, we get an error because package install
automatically tries to start the userspace daemons and we look for
a kernel module to load.

Installing a kernel module package first and then following it by
userspace package sounds like the correct way to do it. This change
in ordering helps my next commit.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoFAQ: Explain how to drop packets.
Ben Pfaff [Tue, 23 Apr 2013 04:15:25 +0000 (21:15 -0700)]
FAQ: Explain how to drop packets.

This question keeps coming up.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agotutorial: Correct typos.
Ben Pfaff [Tue, 23 Apr 2013 04:17:50 +0000 (21:17 -0700)]
tutorial: Correct typos.

Reported-by: Yeming Zhao <zhaoyeming@gmail.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoImplement IPFIX export
Romain Lenglet [Mon, 22 Apr 2013 17:01:14 +0000 (10:01 -0700)]
Implement IPFIX export

Define a new NXAST_SAMPLE OpenFlow vendor action and the corresponding
OFPACT_SAMPLE OVS action, to do per-flow packet sampling, translated
into a new SAMPLE "flow_sample" dp action.

Make the userspace action's userdata size vary depending on the union
member used.  Add a new "flow_sample" upcall to do per-flow packet
sampling.  Add a new "ipfix" upcall to do per-bridge packet sampling
to IPFIX collectors.

Extend the OVSDB schema to support configuring IPFIX collector sets.
Add support for configuring multiple IPFIX collectors for per-flow
packet sampling.  Add support for configuring per-bridge IPFIX
sampling.

Automatically generate standard IPFIX entity definitions from the IANA
specs.  Send one IPFIX data record message for every packet sampled by
an OpenFlow sample action or received by a bridge configured with
IPFIX sampling, and periodically send IPFIX template set messages.

Signed-off-by: Romain Lenglet <rlenglet@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoRestore all flow changes by compose_output_action__().
Jarno Rajahalme [Thu, 18 Apr 2013 15:07:41 +0000 (18:07 +0300)]
Restore all flow changes by compose_output_action__().

This makes sure that output actions leave no changes to any flow fields,
while all explicit set_field actions are retained across output actions.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofproto-dpif: Restore flow nw_tos in all cases.
Jarno Rajahalme [Thu, 18 Apr 2013 15:07:40 +0000 (18:07 +0300)]
ofproto-dpif: Restore flow nw_tos in all cases.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoodp-util: Keep base flow in sync with the kernel view.
Jarno Rajahalme [Thu, 18 Apr 2013 15:07:39 +0000 (18:07 +0300)]
odp-util: Keep base flow in sync with the kernel view.

Change the base flow only if a corresponding kernel action is generated
in commit_odp_tunnel_action().

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agouse RT_ROUNDUP on NetBSD
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:12 +0000 (22:20 +0900)]
use RT_ROUNDUP on NetBSD

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoinclude some headers to satisfy header file dependencies on NetBSD-6
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:11 +0000 (22:20 +0900)]
include some headers to satisfy header file dependencies on NetBSD-6

while this change don't seem to be necessary on NetBSD-current,
NetBSD-6 is the latest release at this point.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agosome ctype related casts to suppress gcc warnings on NetBSD
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:10 +0000 (22:20 +0900)]
some ctype related casts to suppress gcc warnings on NetBSD

where it can't be EOF, cast a value to unsigned char before passing it
to ctype functions to avoid unintended sign extension.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agobe compilable even when _SC_PHYS_PAGES is not available
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:09 +0000 (22:20 +0900)]
be compilable even when _SC_PHYS_PAGES is not available

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agochange the type of popcount unsigned
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:08 +0000 (22:20 +0900)]
change the type of popcount unsigned

it's a natural choice and compatible with a version found in NetBSD libc.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoinvoke perl as ${PERL}
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:07 +0000 (22:20 +0900)]
invoke perl as ${PERL}

as suggested by Ben Pfaff.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoexplicitly invoke perl for uuidfilt.pl (rather than via shebang)
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:06 +0000 (22:20 +0900)]
explicitly invoke perl for uuidfilt.pl (rather than via shebang)

depending on a platform, perl might not be /usr/bin/perl.
eg. on NetBSD it's usually /usr/pkg/bin/perl.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoovs-pki: Add NetBSD case for test
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:05 +0000 (22:20 +0900)]
ovs-pki: Add NetBSD case for test

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoinclude strings.h for strcasecmp
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:04 +0000 (22:20 +0900)]
include strings.h for strcasecmp

while this is not the only place strcasecmp is used without an
explicit inclusion of the header, it's the only place gcc complains
on my environment.  for other places, probably the header is included
indirectly via other headers, i guess.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoremove remaining pkg-config references
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:03 +0000 (22:20 +0900)]
remove remaining pkg-config references

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agouse ax_check_openssl.m4 instead of a direct use of pkg-config.
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:02 +0000 (22:20 +0900)]
use ax_check_openssl.m4 instead of a direct use of pkg-config.

on some platforms, including NetBSD-6, openssl is available but
its pkg-config files (*.pc) are not.  according to Ed Maste,
this is the case for FreeBSD as well.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoadd ax_check_openssl.m4
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:20:01 +0000 (22:20 +0900)]
add ax_check_openssl.m4

this file is obtained from:
http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_check_openssl.m4;hb=5a7260331c7d13263126e35c5743fdc35cbc2894

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agofix an obvious mistake in a test of IFM_ETHER
YAMAMOTO Takashi [Mon, 22 Apr 2013 13:19:59 +0000 (22:19 +0900)]
fix an obvious mistake in a test of IFM_ETHER

fix a bug in FreeBSD code.  the fix is suggested by Ed Maste.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoAdd a tutorial for advanced Open vSwitch features.
Ben Pfaff [Fri, 19 Apr 2013 23:25:56 +0000 (16:25 -0700)]
Add a tutorial for advanced Open vSwitch features.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Fix struct vport comment.
Pravin B Shelar [Thu, 18 Apr 2013 23:06:33 +0000 (16:06 -0700)]
datapath: Fix struct vport comment.

Removes remaining part of comment about `linkname` vport member.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Fix inconsistency in upstream and out of tree ovs module.
Pravin B Shelar [Thu, 18 Apr 2013 23:00:48 +0000 (16:00 -0700)]
datapath: Fix inconsistency in upstream and out of tree ovs module.

There is a inconsistent ordering in function ovs_vport_cmd_set()
between upstream and out of tree ovs module. Following patch
fixes it by releasing lock before calling ovs_notify.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agoovsdb-server: Announce bound listening ports as status:bound_port.
Ben Pfaff [Thu, 18 Apr 2013 23:37:05 +0000 (16:37 -0700)]
ovsdb-server: Announce bound listening ports as status:bound_port.

The administrator can request that OVSDB bind any available TCP port, but
in that case there is no easy way to find out what port it has bound.  This
commit adds that information as the "bound_port" key in the "status"
column.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agotests: Avoid race conditions, by letting the kernel choose ports to bind.
Ben Pfaff [Wed, 3 Apr 2013 18:30:18 +0000 (13:30 -0500)]
tests: Avoid race conditions, by letting the kernel choose ports to bind.

An occasionally occurring problem with "make check", especially when
parallel tests are enabled, is that multiple tests try to bind the same
TCP port and, of course, fail.  This happens because the code to select
a TCP port to bind just generates random numbers until it finds a port that
is not currently in use and uses the first one, which is of course prone
to races.

This commit changes the tests to let the kernel directly choose an
available port, which should avoid this type of failure.

Also, some of the tests that generated a random free TCP port actually
used the port number to bind a UDP socket, which of course doesn't work
well.  This commit fixes that problem too as a side effect.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agosocket-util: Log kernel-chosen bound ports in inet_open_passive().
Ben Pfaff [Wed, 3 Apr 2013 18:24:27 +0000 (13:24 -0500)]
socket-util: Log kernel-chosen bound ports in inet_open_passive().

Usually, for passive sockets, one wishes to bind a particular well-known
port, so that clients can easily connect.  But automated tests cannot
necessarily bind a well-known port, because that would cause multiple
concurrent tests to interfere with each other or with a real instance of
the service running on the system.  They could bind to a randomly selected
port chosen by the user (the Open vSwitch automated tests currently do this)
but this leads to occasional "false negative" test failures when the port
selected happens to be in use.

The best alternative for automated tests is to let the kernel choose a
port that is not otherwise in use, which can be accomplished by specifying
port 0.  But in that case there is no easy way for other software to know
what port the kernel chose.  This commit fixes that problem one way by
logging the bound port when it is chosen by the kernel.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agotests: Make test-netflow, test-sflow accept all logging options.
Ben Pfaff [Wed, 3 Apr 2013 16:36:53 +0000 (11:36 -0500)]
tests: Make test-netflow, test-sflow accept all logging options.

An upcoming patch will start using the --log-file option with these test
programs, so they need to support it.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Fix stale comment in flow.c.
Pravin B Shelar [Thu, 18 Apr 2013 21:35:26 +0000 (14:35 -0700)]
datapath: Fix stale comment in flow.c.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agosparse: Support recent distributions
Andy Zhou [Fri, 5 Apr 2013 23:56:52 +0000 (16:56 -0700)]
sparse: Support recent distributions

sparse support seems to be broken on some recent Linux distributions.
For example, ubuntu 12.04 with Linux 3.5 kernel, and Debian latest test
distribution, running Linux 3.2 kernel.

On both systems that sparse was broken, It was not able find the header files
in the  default system include directories.  GCC finds them by default.

This patch adds the required GCC default search path when running sparse.

Tested on:

Ubuntu 12.04 - w/ linux 3.5 kernel
Debian-6 March test distribution - w/ linux 3.2 kernel

Signed-off-by: Andy Zhou <azhou@nicira.com>
[blp@nicira.com also tested on Debian squeeze and wheezy (testing)]
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agopython: fix a typo error in python/ovs/socket_util.py.
Alex Wang [Thu, 18 Apr 2013 00:35:04 +0000 (17:35 -0700)]
python: fix a typo error in python/ovs/socket_util.py.

The commit 89d7ffa9 (python: Workaround UNIX socket path
length limits), fixes most failed tests. But it has a
typo and the typo causes the failure of test <unixctl
server errors - Python> when the path length is very
long (e.g. more than 90 characters).

This patch fixes the above issue.

Signed-off-by: Alex Wang <alexw@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoCorrectly implement the OpenFlow 1.2+ OXM_OF_IP_DSCP field.
Ben Pfaff [Thu, 18 Apr 2013 16:40:48 +0000 (09:40 -0700)]
Correctly implement the OpenFlow 1.2+ OXM_OF_IP_DSCP field.

NXM puts the DSCP value in bits 2-7 of NXM_OF_IP_TOS.
OXM puts the DSCP value in bits 0-6 of OXM_OF_IP_DSCP.

Before this commit, Open vSwitch incorrectly implemented OXM_OF_IP_DSCP
with the same format as NXM_OF_IP_TOS.  This commit fixes the problem and
adds a test (previously missing but I don't know why).

Reported-by: Hiroshi Miyata <miyahiro.dazu@gmail.com>
Tested-by: Hiroshi Miyata <miyahiro.dazu@gmail.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoINSTALL.XenServer: Add a note for tunnel firewall rules.
Gurucharan Shetty [Mon, 15 Apr 2013 18:09:01 +0000 (11:09 -0700)]
INSTALL.XenServer: Add a note for tunnel firewall rules.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agorhel: Remove the firewall hole that we create for GRE.
Gurucharan Shetty [Fri, 12 Apr 2013 19:58:27 +0000 (12:58 -0700)]
rhel: Remove the firewall hole that we create for GRE.

Till now, by default, we add firewall holes for
gre traffic. There may be users that do not use GRE tunnels
and they may be surprised with this behavior. So, don't add
the firewall rules by default and update the documentation
to mention the same.

This patch does not remove the default GRE firewall rule for
xenserver because xenserver has a feature called "Cross-Host
Internal Networks" (CHIN) that uses GRE.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoRevert "rhel, xenserver: Punch holes through firewall for VXLAN."
Gurucharan Shetty [Fri, 12 Apr 2013 19:53:59 +0000 (12:53 -0700)]
Revert "rhel, xenserver: Punch holes through firewall for VXLAN."

This reverts commit 5902b4ed6.

For end users that do not plan to use tunnels or use only selected
tunnels, it probably is a bad idea to punch firewall holes by default.
Opening holes like this may surprise the user.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agolist: Style fixes.
Ben Pfaff [Mon, 15 Apr 2013 21:45:17 +0000 (14:45 -0700)]
list: Style fixes.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agopython/ovs/poller.py: workaround an eventlet bug
YAMAMOTO Takashi [Tue, 16 Apr 2013 06:56:31 +0000 (15:56 +0900)]
python/ovs/poller.py: workaround an eventlet bug

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodebian: build with debugging symbol
Ben Pfaff [Mon, 15 Apr 2013 17:19:36 +0000 (10:19 -0700)]
debian: build with debugging symbol

Signed-off-by: Zang MingJie <zealot0630@gmail.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoINSTALL: Admit that only GNU make works.
Ben Pfaff [Thu, 7 Mar 2013 20:50:57 +0000 (12:50 -0800)]
INSTALL: Admit that only GNU make works.

I promised some time ago to take a look at fixing the behavior of the
Makefiles with non-GNU make, but it doesn't realistically seem that I will.

CC: Ed Maste <emaste@freebsd.org>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Remove vport->linkname
Pravin B Shelar [Fri, 12 Apr 2013 23:13:32 +0000 (16:13 -0700)]
datapath: Remove vport->linkname

This field is no longer used in datapath.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Simplify datapath locking.
Pravin B Shelar [Fri, 12 Apr 2013 22:57:09 +0000 (15:57 -0700)]
datapath: Simplify datapath locking.

Currently OVS uses combination of genl and rtnl lock to protect
datapath state.  This was done due to networking stack locking.
But this has complicated locking and there are few lock ordering
issues with new tunneling protocols.
Following patch simplifies locking by introducing new ovs mutex
and now this lock is used to protect entire ovs state.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Add workqueue API to ovs compat workqueue.
Pravin B Shelar [Fri, 12 Apr 2013 22:56:14 +0000 (15:56 -0700)]
datapath: Add workqueue API to ovs compat workqueue.

Add work-queue api which are required for next commit.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agoovs-vsctl: Fix a segfault.
Gurucharan Shetty [Wed, 10 Apr 2013 18:55:06 +0000 (11:55 -0700)]
ovs-vsctl: Fix a segfault.

The following two commands results in a ovs-vsctl segfault.
ovs-vsctl -vfatal_signal:off --timeout=0 wait-until \
Open_vswitch . external_ids:blah="1"
/etc/init.d/openvswitch-switch restart

This patch fixes the segfault by properly setting the global
varibale, the_idl_txn to NULL when the underlying memory is
freed.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoovs-ctl.in: Merge a single line function.
Gurucharan Shetty [Wed, 10 Apr 2013 18:53:40 +0000 (11:53 -0700)]
ovs-ctl.in: Merge a single line function.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agotests: Add test for ovs-vswitchd regression with empty db.
Ben Pfaff [Thu, 11 Apr 2013 21:08:01 +0000 (14:08 -0700)]
tests: Add test for ovs-vswitchd regression with empty db.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoAUTHORS: Add Ansis Atteka.
Ben Pfaff [Thu, 11 Apr 2013 23:28:47 +0000 (16:28 -0700)]
AUTHORS: Add Ansis Atteka.

I do not understand how this omission has gone on so long.

CC: Ansis Atteka <aatteka@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agobridge: Complete initial configuration even with empty database.
Ben Pfaff [Thu, 11 Apr 2013 22:47:08 +0000 (15:47 -0700)]
bridge: Complete initial configuration even with empty database.

If the database was empty, that is, it did not even contain an Open_vSwitch
top-level configuration record, at ovs-vswitchd startup time, then
OVS failed to detach and used 100% CPU.  This commit fixes the problem.

This problem was introduced by commit 63ff04e82623e765 (bridge: Only
complete daemonization after db commits initial config.).

This problem did not manifest if the initscripts supplied with Open vSwitch
were used, because those initscripts always initialize the database before
starting ovs-vswitchd, so this problem affects only users with hand-rolled
local OVS startup scripts.

Bug #16090.
Reported-by: Pravin Shelar <pshelar@nicira.com>
Tested-by: Pravin Shelar <pshelar@nicira.com>
Reported-by: Paul Ingram <paul@nicira.com>
Reported-by: Amre Shakimov <ashakimov@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
11 years agomemory: Avoid 100% CPU when there is nothing to report.
Ben Pfaff [Thu, 11 Apr 2013 22:05:32 +0000 (15:05 -0700)]
memory: Avoid 100% CPU when there is nothing to report.

Commit b9de4087685 (memory: Avoid an empty log message if there's nothing
to log.) introduced a 100% CPU usage condition when there is nothing to
log.  This fixes the problem.

Reported-by: Ansis Atteka <aatteka@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agonetlink-socket: Don't bother logging SO_RCVBUFFORCE failure
Ansis Atteka [Thu, 11 Apr 2013 18:33:24 +0000 (11:33 -0700)]
netlink-socket: Don't bother logging SO_RCVBUFFORCE failure

This patch fixes tests when they are run with "fakeroot debian/rules binary"
command.

The problem was that under fakeroot setsockopt() call could still return
EPERM and lead to a warning message being logged.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
11 years agobridge: Only complete daemonization after db commits initial config.
Ben Pfaff [Wed, 10 Apr 2013 17:33:39 +0000 (10:33 -0700)]
bridge: Only complete daemonization after db commits initial config.

An earlier commit changed the Open vSwitch startup scripts so that they
connect to remote managers only after ovs-vswitchd does its initial
configuration, as signaled by ovs-vswitchd detaching from its parent
process.  However, a race window remains, because ovs-vswitchd detaching
does not mean that the database server has received and committed the
transaction, only that ovs-vswitchd has sent it.  This commit fixes that
race window, by changing ovs-vswitchd to complete detaching only after
the database server acknowledges the transaction.

It is still possible for unusual events to cause ovs-vswitchd to detach
before ephemeral columns are filled in.  There is always a slim possibility
that the transaction will fail or that some other client has added new
bridges, ports, etc. while ovs-vswitchd was configuring using an old
configuration.  The latter race is inherent to the design of the system
and cannot be avoided without radical changes.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
Bug #15983.

11 years agoovs-ctl: Connect to remote OVSDB managers only after ovs-vswitchd starts.
Ben Pfaff [Wed, 10 Apr 2013 16:53:54 +0000 (09:53 -0700)]
ovs-ctl: Connect to remote OVSDB managers only after ovs-vswitchd starts.

Until now, ovs-ctl has started ovsdb-server with the full set of remote
managers configured.  This means that ovsdb-server immediately connects to
these managers, before ovs-vswitchd even starts.  Because the Open vSwitch
schema has several ephemeral columns, there will be considerable startup
churn in the database.   For example, ovs-vswitchd will initially fill in
the datapath-id and ofport columns as it starts and sets up the initial
configuration.  This churn wastes bandwidth to the remote managers and has
potential for confusing them.

This commit reduces the churn by changing ovs-ctl so that ovsdb-server
connects to the remote managers only after ovs-vswitchd has finished its
initial configuration.  This means that remote managers will initially
see a filled-in database, not one that has its ephemeral columns empty.

This commit does not mean that managers can ignore the possibility that
some columns have not yet been filled in.  For example, some columns will
still be briefly blank after a new bridge or a new port is added at
runtime, because adding a bridge or port occurs in one transaction (made by
the client adding the port, e.g. ovs-vsctl) and filling in those columns
happens in a different transaction (made by ovs-vswitchd).  But this commit
does reduce the quantity of empty columns that I would expect a database
client to observe in practice.

Reported-by: Jeff Merrick <jmerrick@vmware.com>
CC: Amar Padmanabhan <amar@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
Bug #15983.

11 years agoovsdb-server: Add commands for adding and removing remotes at runtime.
Ben Pfaff [Wed, 10 Apr 2013 16:34:49 +0000 (09:34 -0700)]
ovsdb-server: Add commands for adding and removing remotes at runtime.

This will make it possible, in later commits, to make ovsdb-server connect
to OVS managers only after ovs-vswitchd has completed its initial
configuration.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
11 years agoovsdb-server: Refactor parsing of remote names to avoid ovs_fatal().
Ben Pfaff [Wed, 10 Apr 2013 23:22:00 +0000 (16:22 -0700)]
ovsdb-server: Refactor parsing of remote names to avoid ovs_fatal().

The current users of parse_db_column() are content to terminate with a
fatal error if parsing fails.  An upcoming commit requires more flexibility,
so this commit refactors parse_db_column() to make this possible.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
11 years agosset: New function sset_sort().
Ben Pfaff [Wed, 10 Apr 2013 16:27:49 +0000 (09:27 -0700)]
sset: New function sset_sort().

This will have its first caller in an upcoming commit.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ansis Atteka <aatteka@nicira.com>
11 years agodatapath.h Fix a stale comment.
Andy Zhou [Wed, 10 Apr 2013 20:34:22 +0000 (13:34 -0700)]
datapath.h Fix a stale comment.

Signed-off-by: Andy Zhou <azhou@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodpif-linux: Reset epoll() on channel deletion.
Ethan Jackson [Wed, 10 Apr 2013 20:05:04 +0000 (13:05 -0700)]
dpif-linux: Reset epoll() on channel deletion.

The list of epoll events contains references to channels which may
be stale when one of those channels is deleted.  The safest thing
to do is simply refresh epoll() whenever a channel is deleted.

Bug #16057.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agotests: Add test-sflow to .gitignore.
Ethan Jackson [Tue, 9 Apr 2013 22:22:31 +0000 (15:22 -0700)]
tests: Add test-sflow to .gitignore.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoRemove unused struct xlate_reg_state definition.
Jarno Rajahalme [Tue, 9 Apr 2013 17:36:01 +0000 (20:36 +0300)]
Remove unused struct xlate_reg_state definition.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agorhel, xenserver: Punch holes through firewall for VXLAN.
Gurucharan Shetty [Mon, 8 Apr 2013 17:40:05 +0000 (10:40 -0700)]
rhel, xenserver: Punch holes through firewall for VXLAN.

Bug #15518.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agopython.ovs.db.idl: Fix Row.delete() of a row already committed to the db.
Ben Pfaff [Mon, 8 Apr 2013 17:44:40 +0000 (10:44 -0700)]
python.ovs.db.idl: Fix Row.delete() of a row already committed to the db.

Row.delete() handled the case of deleting a row that was added within the
current transaction, but not yet committed, but it did not correctly handle
the case of deleting a row that belonged to the database before the
transaction started.  This fixes the problem.

Reported-by: Yeming Zhao <zhaoyeming@gmail.com>
Tested-by: Yeming Zhao <zhaoyeming@gmail.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoovs-lib: Do not tee the ovs-ctl o/p in case of strace.
Gurucharan Shetty [Sat, 6 Apr 2013 23:56:06 +0000 (16:56 -0700)]
ovs-lib: Do not tee the ovs-ctl o/p in case of strace.

Running the OVS daemons with strace option enabled
will block if we pipe the output. We use tee
to log the output of ovs-ctl to ovs-ctl.log

This patch disables the startup script logging when we run the
OVS daemons with the strace option.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoofproto-dpif: Disable miss handling in rule_get_stats().
Ethan Jackson [Sat, 6 Apr 2013 22:22:14 +0000 (15:22 -0700)]
ofproto-dpif: Disable miss handling in rule_get_stats().

rule_get_stats() is often called when iterating over every rule in
the flow table.  To ensure up-to-date statistics, rule_get_stats()
calls push_all_stats() which can cause flow misses to be handled.
When using the learn action, this can cause rules to be added (and
potentially removed) from the OpenFlow table.  This could corrupt
the caller's data structures, leading to a segmentation fault.
This patch fixes the issue by disabling flow miss handling from
within rule_get_stats().

Bug #15999.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agovlog: extend syslog format to make OVS logs easier to filter
Romain Lenglet [Thu, 4 Apr 2013 17:42:47 +0000 (10:42 -0700)]
vlog: extend syslog format to make OVS logs easier to filter

Prepend "ovs|" to syslog logs to make them easier to filter out of all
LOG_DAEMON logs.

Signed-off-by: Romain Lenglet <rlenglet@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoovs-appctl: dpif/show display bug fix
Andy Zhou [Thu, 4 Apr 2013 23:35:27 +0000 (16:35 -0700)]
ovs-appctl: dpif/show display bug fix

Fixes a bug where per ofproto moving average stats did not update
when there is no active dp flows.

Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Andy Zhou <azhou@nicira.com>
Signed-off-by: Justin Pettit <jpettit@nicira.com>
11 years agotests/lacp.at: Fix comment.
Jarno Rajahalme [Tue, 2 Apr 2013 13:52:43 +0000 (16:52 +0300)]
tests/lacp.at: Fix comment.

Fix residue from an earlier patch.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agomemory: Avoid an empty log message if there's nothing to log.
Ben Pfaff [Wed, 3 Apr 2013 12:52:12 +0000 (05:52 -0700)]
memory: Avoid an empty log message if there's nothing to log.

I spotted this in a case where I ran ovsdb-server, by hand, on an empty
database.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Don't insert empty OVS_VPORT_ATTR_OPTIONS attribute
Thomas Graf [Tue, 2 Apr 2013 23:34:28 +0000 (16:34 -0700)]
datapath: Don't insert empty OVS_VPORT_ATTR_OPTIONS attribute

The port specific options are currently unused resulting in an
empty OVS_VPORT_ATTR_OPTIONS nested attribute being inserted
into every OVS_VPORT_CMD_GET message.

Don't insert OVS_VPORT_ATTR_OPTIONS if no options are present.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
[jesse: Options are used by tunnels but the concept still applies.]
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agoofproto-dpif: Don't rate limit facet_learn() with fin_timeouts.
Ethan Jackson [Tue, 2 Apr 2013 19:32:22 +0000 (12:32 -0700)]
ofproto-dpif: Don't rate limit facet_learn() with fin_timeouts.

In the standard case, rate limiting facet_learn() to once ever
500ms, makes sense.  The worst that can happen is a learning entry
is expired half a second to early.  However, when using
fin_timeouts, we really need react quickly to delete the newly
stale flow.

Bug #15915.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoofproto: Increase default flow-eviction-threshold.
Ethan Jackson [Fri, 29 Mar 2013 21:19:04 +0000 (14:19 -0700)]
ofproto: Increase default flow-eviction-threshold.

The flow-eviction-threshold presents a trade off between the
expense of maintaining large numbers of datapath flows, and the
benefit of avoid unnecessary flow misses.  In some large Open
vSwitch deployments, we've seen the previous default flow eviction
threshold negatively impact performance with reasonably typical
traffic patterns.  This patch increases the default to a level
which should represent a better trade off: still relatively safe,
but much more amenable to large numbers of long lived flows.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoofproto-dpif: Push statistics less frequently.
Ethan Jackson [Fri, 22 Mar 2013 02:04:52 +0000 (19:04 -0700)]
ofproto-dpif: Push statistics less frequently.

The most natural place to push facet statistics is in
update_stats() where they're pulled from the datapath.  However,
under load, update_stats() can be called as many as 10 times per
second causing us to push statistics so frequently it hurts
performance.  By pushing statistics much less frequently, this
patch generates a roughly 8% improvement in TCP_CRR performance.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoofproto-dpif: Run fast internally.
Ethan Jackson [Wed, 27 Mar 2013 18:33:22 +0000 (11:33 -0700)]
ofproto-dpif: Run fast internally.

ofproto-dpif is responsible for quite a few book keeping tasks in
addition to handling flow misses.  Many of these tasks (flow
expiration, flow revalidation, etc) can take many hundreds of
milliseconds, during which no misses can be handled.  The ideal
long term solution to this problem, is to isolate flow miss
handling into it's own thread.  However, for now this patch
provides a 5% increase in TCP_CRR performance, and smooths out
results during revalidations.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoofproto-dpif: Systematically push stats upon request.
Ethan Jackson [Sat, 30 Mar 2013 22:13:00 +0000 (15:13 -0700)]
ofproto-dpif: Systematically push stats upon request.

Commit bf1e8ff (ofproto-dpif: Push statistics in rule_get_stats()),
started down the road towards pushing stats on demand, but it
didn't go quite far enough.  First, it neglected to push stats in
port_get_stats() and mirror_get_stats().  Second, it only pushes
stats for a single ofproto, making it incomplete when patch ports
are used.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agonetdev: Remove netdev_is_open(), which has no users.
Ben Pfaff [Wed, 13 Mar 2013 22:35:33 +0000 (15:35 -0700)]
netdev: Remove netdev_is_open(), which has no users.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
11 years agonetdev: Remove netdev_exists(), which has no users.
Ben Pfaff [Wed, 13 Mar 2013 22:23:07 +0000 (15:23 -0700)]
netdev: Remove netdev_exists(), which has no users.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
11 years agorhel: Add depmod.d conf file for rhel6 kmod package.
Gurucharan Shetty [Sun, 31 Mar 2013 01:32:25 +0000 (18:32 -0700)]
rhel: Add depmod.d conf file for rhel6 kmod package.

It looks like for Centos6.4, there is an upstream openvswitch
kernel module already installed. When we try to install kmod-openvswitch
package from this tree's pre-1.10 branches, we get the following warning:
"brcompat.ko needs unknown symbol ovs_dp_ioctl_hook".

Also, after installing the kmod-openvswitch package, if we run
"modprobe openvswitch", the upstream kernel module gets loaded.
We should instead load the kernel module compiled from this tree.

This patch fixes both the above issues.

Bug #15829.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agojsonrpc-server: Disconnect connections that queue too much data.
Ben Pfaff [Wed, 27 Mar 2013 21:38:11 +0000 (14:38 -0700)]
jsonrpc-server: Disconnect connections that queue too much data.

Consider this situation:

    * OVSDB client A executes transactions very quickly for a long time.

    * OVSDB client B monitors the tables that A modifies, but (either
      because B is connected over a slow network, or because B is slow to
      process updates) cannot keep up.

In this situation, the data that ovsdb-server has queued to send B grows
without bound and eventually ovsdb-server runs out of memory.  This commit
avoids the problem by noticing that more data is queued to B than necessary
to express the whole contents of the database and dropping the connection
to B.  When B reconnects later, it can then fetch the contents of the
database using less data than was previously queued to it.

(This is not entirely hypothetical.  We have seen this behavior in
intentional stress tests.)

Bug #15637.
Reported-by: Jeff Merrick <jmerrick@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoovsdb-data: New functions for predicting serialized length of data.
Ben Pfaff [Wed, 27 Mar 2013 16:32:56 +0000 (09:32 -0700)]
ovsdb-data: New functions for predicting serialized length of data.

These will be used for the first time in an upcoming commit.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agojson: New function json_serialized_length().
Ben Pfaff [Mon, 1 Apr 2013 20:16:59 +0000 (13:16 -0700)]
json: New function json_serialized_length().

This will be used for the first time in an upcoming commit.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agotests: Add sFlow test.
Neil Mckee [Thu, 28 Mar 2013 06:02:21 +0000 (23:02 -0700)]
tests: Add sFlow test.

This patch adds an sFlow test to the test suite.

I have only tested this on a Fedora 17 OS.

Signed-off-by: Neil Mckee <neil.mckee@inmon.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Use ETH_ALEN to define ethernet addresses
Thomas Graf [Sat, 30 Mar 2013 01:30:34 +0000 (18:30 -0700)]
datapath: Use ETH_ALEN to define ethernet addresses

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Provide simple version of if_ether.h on non-Linux systems.
Jesse Gross [Sat, 30 Mar 2013 01:41:13 +0000 (18:41 -0700)]
datapath: Provide simple version of if_ether.h on non-Linux systems.

Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Move common genl notify code into ovs_notify()
Thomas Graf [Sat, 30 Mar 2013 01:24:06 +0000 (18:24 -0700)]
datapath: Move common genl notify code into ovs_notify()

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Refine Netlink message size calculation and kill FLOW_BUFSIZE
Thomas Graf [Sat, 30 Mar 2013 01:18:58 +0000 (18:18 -0700)]
datapath: Refine Netlink message size calculation and kill FLOW_BUFSIZE

Kills the FLOW_BUFSIZE constant which needs to be calculated manually
and replaces it with key_attr_size() based on nla_total_size().
Calculates the size of datapath messages instead of relying on
NLMSG_DEFAULT_SIZE and moves the existing message size calculations
into own functions for clarity.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Use nla_memcpy() to memcpy() data from attributes
Thomas Graf [Sat, 30 Mar 2013 01:10:31 +0000 (18:10 -0700)]
datapath: Use nla_memcpy() to memcpy() data from attributes

Less error prone as it takes into account the length of both the
destination buffer and the source attribute and documents when
data is copied from an attribute.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Specify the minimal length of OVS_PACKET_ATTR_PACKET in the policy
Thomas Graf [Sat, 30 Mar 2013 01:03:05 +0000 (18:03 -0700)]
datapath: Specify the minimal length of OVS_PACKET_ATTR_PACKET in the policy

Specifying the minimal length in the policy makes it reuseable
and documents the interface.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agolacp: Stop time to avoid dependency on real time in negotiation test.
Ben Pfaff [Thu, 28 Mar 2013 18:45:47 +0000 (11:45 -0700)]
lacp: Stop time to avoid dependency on real time in negotiation test.

Commit f3103dfa00d (lacp.at: Change timing of lacp - negotiation test)
fixed test failures for the lacp negotiation test on some systems, but
made it crop up on others where it hadn't appeared before.

My guess is that this commit is the real fix.  If it isn't, then we
will probably just have to remove the test or disable it, much as I
hate doing that.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: net: add ETH_P_802_3_MIN
Simon Horman [Thu, 28 Mar 2013 19:01:17 +0000 (12:01 -0700)]
datapath: net: add ETH_P_802_3_MIN

Add a new constant ETH_P_802_3_MIN, the minimum ethernet type for
an 802.3 frame. Frames with a lower value in the ethernet type field
are Ethernet II.

Also update all the users of this value that David Miller and
I could find to use the new constant.

Also correct a bug in util.c. The comparison with ETH_P_802_3_MIN
should be >= not >.

As suggested by Jesse Gross.

Compile tested only.

Cc: David Miller <davem@davemloft.net>
Cc: Jesse Gross <jesse@nicira.com>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Bart De Schuymer <bart.de.schuymer@pandora.be>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Marcel Holtmann <marcel@holtmann.org>
Cc: Gustavo Padovan <gustavo@padovan.org>
Cc: Johan Hedberg <johan.hedberg@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Cc: netfilter-devel@vger.kernel.org
Cc: bridge@lists.linux-foundation.org
Cc: linux-wireless@vger.kernel.org
Cc: linux1394-devel@lists.sourceforge.net
Cc: linux-media@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: dev@openvswitch.org
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Jesse Gross <jesse@nicira.com>
11 years agolacp.at: Change timing of lacp - negotiation test
Jarno Rajahalme [Thu, 28 Mar 2013 13:47:46 +0000 (15:47 +0200)]
lacp.at: Change timing of lacp - negotiation test

The "lacp - negotiation" test (# 3) used to always fail when running
multiple tests in parallel (-j2).  The reduced simulated wait time
(from 4 seconds to 2.5 seconds) seems to still give the expected result,
and works also when running multiple tests in parallel.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoopenflow-1.3.h: Fix spelling error
Jarno Rajahalme [Thu, 28 Mar 2013 13:53:41 +0000 (15:53 +0200)]
openflow-1.3.h: Fix spelling error

Fix spelling error in enum ofp13_action_type.

Reported-by: Markus Linnakangas <markus.linnakangas@tieto.com>
Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoFAQ: Fix spelling of OpenFlow versions in example.
Jarno Rajahalme [Thu, 28 Mar 2013 13:53:40 +0000 (15:53 +0200)]
FAQ: Fix spelling of OpenFlow versions in example.

OpenFlow version strings in the database are case sensitive.

Reported-by: Markus Linnakangas <markus.linnakangas@tieto.com>
Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofproto-dpif.at: Fix timing issue in show rates test.
Jarno Rajahalme [Thu, 28 Mar 2013 13:01:18 +0000 (15:01 +0200)]
ofproto-dpif.at: Fix timing issue in show rates test.

Fix a test failure due to timing differences in different test runs.

Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoovs-lib: Wait for a longer time after SIGKILL.
Gurucharan Shetty [Wed, 27 Mar 2013 21:15:05 +0000 (14:15 -0700)]
ovs-lib: Wait for a longer time after SIGKILL.

Currently, when we stop a daemon, we first send it SIGTERM.
If SIGTERM did not work within ~5 seconds, we send a SIGKILL.
After sending SIGKILL, we wait only for 4 seconds, before giving
up.

If the system is extremely busy, there is a chance that a
process is not killed by the kernel within 4 seconds. In such
a case, when we try to start the daemon immediately, we see that
the pid inside the pid-file is valid and assume that the daemon
is still running. This leaves us in a state, where the daemon is
actually not running.

This patch increases the time waiting for the kernel to kill the
process to 60 seconds.

Bug #15404.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoofproto-dpif: Keep track of exact-match flow info
Andy Zhou [Tue, 26 Mar 2013 02:49:13 +0000 (19:49 -0700)]
ofproto-dpif: Keep track of exact-match flow info

This patch adds more flow related stats to the output of
"ovs-appctl dpif/show".  Specifically, the follow information
are added per ofproto:

- Max flow table size
- Average flow table size
- Average flow table add rate
- Average flow table delete rate
- Average flow entry life in milliseconds

Feature #15366

Signed-off-by: Andy Zhou <azhou@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>