Ben Pfaff [Fri, 12 Feb 2010 20:51:36 +0000 (12:51 -0800)]
Work around bugs in system headers.
On some system, at least, one must include <sys/types.h> before
<netinet/in.h>, and <netinet/in.h> before <arpa/inet.h> or <net/if.h>.
From Jean Tourrilhes <jt@hpl.hp.com>.
Ben Pfaff [Fri, 12 Feb 2010 20:41:56 +0000 (12:41 -0800)]
ofp-print: Properly order #includes.
From Jean Tourrilhes <jt@hpl.hp.com>.
Ben Pfaff [Fri, 12 Feb 2010 20:33:47 +0000 (12:33 -0800)]
Add missing <stdint.h> includes.
Reported-by: Jean Tourrilhes <jt@hpl.hp.com>
Ben Pfaff [Thu, 11 Feb 2010 20:33:29 +0000 (12:33 -0800)]
pktbuf: Assign UINT16_MAX in place of -1, for clarity.
Reported-by: Jean Tourrilhes <jt@hpl.hp.com>
Ben Pfaff [Thu, 11 Feb 2010 19:55:08 +0000 (11:55 -0800)]
util: Remove unused macros NOT_TESTED, NOT_IMPLEMENTED.
Great ideas in theory, but we haven't used them.
Ben Pfaff [Thu, 11 Feb 2010 19:45:29 +0000 (11:45 -0800)]
openflow.h: Remove unused OFP_PACKED macro.
Ben Pfaff [Thu, 11 Feb 2010 19:37:30 +0000 (11:37 -0800)]
compiler: Remove "likely" and "unlikely" macros, since we don't use them.
(The datapath uses these macros, but those come from Linux's kernel.h, not
from this file.)
Ben Pfaff [Fri, 12 Feb 2010 21:56:12 +0000 (13:56 -0800)]
compiler: Remove PACKED macro and its only (unneeded) user.
There is no point in marking a well-aligned structure PACKED. It can only
cause trouble.
Ben Pfaff [Thu, 11 Feb 2010 21:47:30 +0000 (13:47 -0800)]
classifier: New function cls_rule_to_string().
This may be useful for debugging.
From Jean Tourrilhes <jt@hpl.hp.com>.
Ben Pfaff [Thu, 11 Feb 2010 21:45:03 +0000 (13:45 -0800)]
datapath: Add ODPP_NORMAL constant.
Some (out-of-tree) datapaths want to pass OFPP_NORMAL up to the datapath.
For now add ODPP_NORMAL. In the long run we may want to use OFPP_ port
numbers in the datapath interface.
Reported-by: Jean Tourrilhes <jt@hpl.hp.com>
Ben Pfaff [Thu, 11 Feb 2010 22:58:02 +0000 (14:58 -0800)]
vconn: New functions vconn_verify_name(), pvconn_verify_name().
These are useful for checking that the syntax of a name is valid, so that
completely invalid names can be rejected at program startup time.
CC: Jean Tourrilhes <jt@hpl.hp.com>
Ben Pfaff [Thu, 11 Feb 2010 22:39:25 +0000 (14:39 -0800)]
rconn: New function rconn_get_last_error().
This function allows the client to find out why the rconn last
disconnected.
CC: Jean Tourrilhes <jt@hpl.hp.com>
Ben Pfaff [Thu, 11 Feb 2010 22:32:49 +0000 (14:32 -0800)]
rconn: Decentralize and improve disconnection logging.
In some cases the rconn library was logging disconnections twice, and in
other cases it was not logging them at all. This cleans it up, so that
each disconnection or connection failure should cause one log message.
This commit makes disconnect()'s 'error' argument unused, but it will be
used again in the following commit.
Ben Pfaff [Thu, 11 Feb 2010 20:26:45 +0000 (12:26 -0800)]
vconn: When validating OpenFlow actions always check for bad length.
This code was previously unreachable, but it makes sense to check the
action length before looking at the action any further.
This doesn't fix an actual bug--actions were always properly validated.
Also, rephrase a few of the switch cases to make it even more obvious
that they always return.
Reported-by: Jean Tourrilhes <jt@hpl.hp.com>
Ben Pfaff [Thu, 11 Feb 2010 21:56:45 +0000 (13:56 -0800)]
ofpbuf: New function ofpbuf_to_string().
Useful for debugging.
From Jean Tourrilhes <jt@hpl.hp.com>.
Ben Pfaff [Thu, 11 Feb 2010 22:59:01 +0000 (14:59 -0800)]
ofpbuf: Mark ofpbuf_headroom(), ofpbuf_tailroom() parameters const.
Ben Pfaff [Thu, 11 Feb 2010 23:04:00 +0000 (15:04 -0800)]
ofproto: Don't leak struct ofproto's port array.
From Jean Tourrilhes <jt@hpl.hp.com>.
Ben Pfaff [Thu, 11 Feb 2010 21:51:56 +0000 (13:51 -0800)]
dpif-netdev: Fix validation of VLAN PCP value in userspace datapath.
Reported-by: Jean Tourrilhes <jt@hpl.hp.com>
Neil McKee [Thu, 11 Feb 2010 23:06:11 +0000 (15:06 -0800)]
Allow sFlowCpInterval=0 to disable counter samples, and fix bug in sampler removal.
Ben Pfaff [Thu, 11 Feb 2010 18:59:47 +0000 (10:59 -0800)]
Rename UNUSED macro to OVS_UNUSED to avoid naming conflict.
Requested by Jean Tourrilhes <jt@hpl.hp.com>.
Ben Pfaff [Thu, 11 Feb 2010 00:54:30 +0000 (16:54 -0800)]
ovs-wdt: Mark variable static and use NULL for a null pointer.
Neither is really a bug but it's cleaner this way.
Found by sparse (http://sparse.wiki.kernel.org/).
Ben Pfaff [Thu, 11 Feb 2010 00:50:51 +0000 (16:50 -0800)]
datapath: Mark functions "static".
Found by sparse (http://sparse.wiki.kernel.org/).
Ben Pfaff [Thu, 11 Feb 2010 00:53:40 +0000 (16:53 -0800)]
datapath: When adding a port, return the new port number to userspace.
'port' is a kernel-space copy of the odp_port and modifying it is useless.
'portp' is the userspace copy; modifying it is useful.
None of our current userspace users care about the port number and so we
never noticed.
Found by sparse (http://sparse.wiki.kernel.org/).
Ben Pfaff [Tue, 9 Feb 2010 18:19:14 +0000 (10:19 -0800)]
dhcp: Add missing * to use of sizeof.
Found with coccinelle and coccicheck (http://coccinelle.lip6.fr/).
Ben Pfaff [Thu, 4 Feb 2010 17:37:30 +0000 (09:37 -0800)]
Add extern "C" { ... } to some header files to support usage from C++.
From partner.
Ben Pfaff [Mon, 1 Feb 2010 18:09:56 +0000 (10:09 -0800)]
ovs-pki: Avoid using local variables, which are non-POSIX.
Reported-by: Srini Seetharaman <seethara@stanford.edu>
Ian Campbell [Mon, 1 Feb 2010 17:50:14 +0000 (09:50 -0800)]
CA-37154: vswitch: Use MAC address of tagged PIF for VLAN fake-bridge
This is because PIF.MAC for a VLAN is FE:FF:FF:FF:FF:FF. In bridge
mode the VLAN and the bridge naturally pick up the underlying MAC
address from the physical device but under vswitch we must explicitly
specify it and we are currently specifying
FE:FF:FF:FF:FF. interface-reconfigure needs to use the MAC address of
the tagged PIF not the untagged PIF.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
# HG changeset patch
# User Ian Campbell <ian.campbell@citrix.com>
# Date
1265020755 0
# Node ID
d7fc59d6a274334377fdbb09dcaf80a76431bcdb
# Parent
a6f27b5a3096ce627b5003c7be19ca59f7dd9606
Ben Pfaff [Mon, 1 Feb 2010 17:46:31 +0000 (09:46 -0800)]
ofpbuf: Rename ofpbuf "private" member for C++ header compatibility.
From partner.
Jesse Gross [Fri, 29 Jan 2010 00:56:05 +0000 (19:56 -0500)]
netdev: Correctly maintain netdev refcounts even if errors occur.
If an error occured while opening a netdev it would decrement the
refcount, even though it was never incremented. Depending on
the timing this could result in either an error message or an
assertion failure. This workaround simply always increments
the refcount before openning a device. A more complete fix
already exists in the netdev overhaul in the 'next' branch.
NIC-59
Ben Pfaff [Mon, 25 Jan 2010 18:32:39 +0000 (10:32 -0800)]
configure: Silence check for broken strtok_r().
The check for strtok_r() prints a line of text on stdout as part of its
run. This is noticeable when running "configure", especially with -q.
This commit fixes it.
(The apparent alternative of not printing anything at all seems like a bad
idea because this might encourage the compiler to completely optimize
everything out of main().)
Ben Pfaff [Tue, 26 Jan 2010 18:35:11 +0000 (10:35 -0800)]
xenserver: Update to use upstream XenServer location for dbcache.
I thought that this was going to be more difficult (see this email thread:
http://openvswitch.org/pipermail/dev_openvswitch.org/2010-January/001023.html
) but it turned out to be trivial.
Justin Pettit [Tue, 26 Jan 2010 07:09:58 +0000 (23:09 -0800)]
Release Open vSwitch 0.99.1
This is an "unstable" release.
Ben Pfaff [Mon, 25 Jan 2010 18:52:28 +0000 (10:52 -0800)]
Merge "sflow" into "master".
No conflicts, but lib/dpif.c needed a few changes since struct dpif's
member "class" was renamed to "dpif_class" in master since sflow was
branched off.
Ian Campbell [Fri, 22 Jan 2010 20:55:37 +0000 (12:55 -0800)]
xenserver: Update interface-reconfigure and vif integration scripts.
This patch updates the versions of the host integration scripts to
what is present in the recent XCP update and the next release of
XenServer (5.6). I think it probably works on 5.5 as well but I
haven't verified that.
These new versions support runtime selection of the Linux bridging vs
vswitch through the toolstack. The patch includes the necessary
reconfiguration (rewriting /etc/xensource/network.conf) to enable
vswitch in the RPM %post stage.
The RPM spec file integration is only lightly tested, seems to work
for me.
This commit is as provided by Ian Campbell, with a few minor tweaks:
- Updated xenserver/automake.mk to distribute the added files.
- Updated RPM spec file not to complain if the added files do
not already exist (since they do not exist on XenServer 5.5.0).
- Change location of dbcache back to /var/lib/openvswitch/dbcache
so that this can coexist with our other internal builds.
(Undoubtedly we will have to adopt the new location chosen by Ian
eventually, however.)
Ben Pfaff [Wed, 20 Jan 2010 21:07:47 +0000 (13:07 -0800)]
datapath: Clean up vswitch_skb_checksum_setup().
vswitch_skb_checksum_setup() can be defined in datapath.h as a no-op
when defined(CONFIG_XEN) && defined(HAVE_PROTO_DATA_VALID) is false.
Also, skb_checksum_setup(), which was defined similarly, can be dropped
now, since it was unused.
Ben Pfaff [Fri, 22 Jan 2010 23:13:26 +0000 (15:13 -0800)]
netdev: Rename "class" members to "netdev_class" for C++ compatibility.
From partner.
Ben Pfaff [Fri, 22 Jan 2010 23:10:07 +0000 (15:10 -0800)]
hmap: Rename "new" to "new_node" for C++ header compatibility.
From partner.
Ben Pfaff [Fri, 22 Jan 2010 23:14:01 +0000 (15:14 -0800)]
dpif: Rename "class" member to "dpif_class" for C++ compatibility.
From partner.
Ben Pfaff [Wed, 20 Jan 2010 21:52:42 +0000 (13:52 -0800)]
sflow: Fix sFlow sampling structure.
According to Neil McKee, in an email archived at
http://openvswitch.org/pipermail/dev_openvswitch.org/2010-January/000934.html:
The containment rule is that a given sflow-datasource (sampler or
poller) should be scoped within only one sflow-agent (or
sub-agent). So the issue arrises when you have two
switches/datapaths defined on the same host being managed with
the same IP address: each switch is a separate sub-agent, so they
can run independently (e.g. with their own sequence numbers) but
they can't both claim to speak for the same sflow-datasource.
Specifically, they can't both represent the <ifindex>:0
data-source. This containment rule is necessary so that the
sFlow collector can scale and combine the results accurately.
One option would be to stick with the <ifindex>:0 data-source but
elevate it to be global across all bridges, with a global
sample_pool and a global sflow_agent. Not tempting. Better to
go the other way and allow each interface to have it's own
sampler, just as it already has it's own poller. The ifIndex
numbers are globally unique across all switches/datapaths on the
host, so the containment is now clean. Datasource <ifindex>:5
might be on one switch, whille <ifindex>:7 can be on another.
Other benefits are that 1) you can support the option of
overriding the default sampling-rate on an interface-by-interface
basis, and 2) this is how most sFlow implementations are coded,
so there will be no surprises or interoperability issues with any
sFlow collectors out there.
This commit implements the approach suggested by Neil.
This commit uses an atomic_t to represent the sampling pool. This is
because we do want access to it to be atomic, but we expect that it will
"mostly" be accessed from a single CPU at a time. Perhaps this is a bad
assumption; we can always switch to another form of synchronization later.
CC: Neil McKee <neil.mckee@inmon.com>
Ben Pfaff [Tue, 19 Jan 2010 18:12:05 +0000 (10:12 -0800)]
sflow: Fix printf format specifier in log message.
"65536 / sizeof *actions" has type size_t, so use %zu.
Reported-by: Neil McKee <neil.mckee@inmon.com>
Ben Pfaff [Tue, 19 Jan 2010 18:10:52 +0000 (10:10 -0800)]
dpif-linux: Always set *fnp in make_openvswitch_device().
Some versions of GCC warn about this. Always initializing it seems like
the right thing to do, since we "almost always" initialized it before.
Reported-by: Neil McKee <neil.mckee@inmon.com>
Justin Pettit [Fri, 15 Jan 2010 07:24:09 +0000 (23:24 -0800)]
Release Open vSwitch 0.99.0.
This is an "unstable" release.
Ben Pfaff [Wed, 13 Jan 2010 18:43:31 +0000 (10:43 -0800)]
datapath: Disable preemption updating per-CPU data in dp_dev_recv().
dp_dev_recv() is called from do_output(), which can be called from
execute_actions(), which can be called from process context with
preemption enabled, so it needs to disabled preemption before it can
access per-CPU data.
Build tested on a few different kernels.
Bug #2316.
Reported-by: John Galgay <john@galgay.net>
CC: Dan Wendlandt <dan@nicira.com>
Ben Pfaff [Mon, 11 Jan 2010 19:13:49 +0000 (11:13 -0800)]
sflow: Improve documentation phrasing.
Suggested by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:11:03 +0000 (11:11 -0800)]
sflow: Document how the agent address is determined.
Ben Pfaff [Mon, 11 Jan 2010 19:10:24 +0000 (11:10 -0800)]
sflow: Fix byte order problem.
Reported by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:10:01 +0000 (11:10 -0800)]
sflow: Improve user-visible string.
Suggested by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:09:43 +0000 (11:09 -0800)]
sflow: Improve comments.
Pointed out by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:09:14 +0000 (11:09 -0800)]
sflow: Avoid division by zero if sampling rate is 0.
Reported by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:08:29 +0000 (11:08 -0800)]
sflow: Fix ifDirection setting if duplex unknown.
Reported by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:07:59 +0000 (11:07 -0800)]
sflow: Fix handling of struct ofproto_sflow_options members.
Reported by Justin Pettit.
Ben Pfaff [Mon, 11 Jan 2010 19:06:56 +0000 (11:06 -0800)]
datapath: Improve comments.
Ben Pfaff [Mon, 11 Jan 2010 19:06:36 +0000 (11:06 -0800)]
dpif: Remove stray new-line.
Suggested by Justin Pettit.
Ben Pfaff [Sat, 9 Jan 2010 00:46:03 +0000 (16:46 -0800)]
datapath: Renumber ioctls to avoid gaps.
Suggested by Justin Pettit.
Ben Pfaff [Sat, 9 Jan 2010 00:44:43 +0000 (16:44 -0800)]
Improve comments on interpretation of sFlow sampling probabilities.
Suggested by Justin Pettit.
Ben Pfaff [Sat, 9 Jan 2010 00:45:14 +0000 (16:45 -0800)]
datapath: Improve comments on struct dp_stats_percpu.
Suggested by Justin Pettit.
Ben Pfaff [Sat, 9 Jan 2010 00:45:02 +0000 (16:45 -0800)]
sflow: Write "sFlow" as "sFlow(R)" in documentation.
The sFlow license requires sFlow to be written as sFlow(R) for the first
reference in user documentation, so this commit implements that.
Suggested by Justin Pettit.
Ben Pfaff [Sat, 9 Jan 2010 00:10:01 +0000 (16:10 -0800)]
sflow: Set proper output port number for dropped packets.
Based on advice from Neil McKee.
Ben Pfaff [Wed, 6 Jan 2010 18:24:52 +0000 (10:24 -0800)]
sflow: Report port ifIndexes instead of datapath port numbers.
Reported-by: Neil McKee <neil.mckee@inmon.com>
Ben Pfaff [Wed, 6 Jan 2010 18:00:56 +0000 (10:00 -0800)]
Add runtime test that strtok_r() bug fix works.
Our bug fix for glibc's strtok_r() bug was not effective in distribution
tarballs. This new test should catch that problem earlier in case it
recurs.
Ben Pfaff [Wed, 6 Jan 2010 17:53:32 +0000 (09:53 -0800)]
Include lib/string.h in "make dist"-generated tarballs.
This file was missing from distributions. Its lack prevented the
strtok_r() fix from working on systems that need it.
Reported-by: Tetsuo NAKAGAWA <nakagawa@mxc.nes.nec.co.jp>
Justin Pettit [Tue, 5 Jan 2010 08:08:34 +0000 (00:08 -0800)]
vconn: Add comment describing usage of VCONN_SSL_LONG_OPTIONS
Justin Pettit [Tue, 5 Jan 2010 02:55:00 +0000 (18:55 -0800)]
Add extended vlog options to utilities
The ovs-discover, ovs-dpctl, and ovs-ofctl man pages indicated that they
supported extended vlog options (e.g., --log-file), but they actually
did not. This commit adds them.
Reported by Tetsuo NAKAGAWA <nakagawa@mxc.nes.nec.co.jp>
Tetsuo NAKAGAWA [Tue, 5 Jan 2010 02:19:47 +0000 (18:19 -0800)]
ofproto: Fix segfault when changing command execution settings
If the remote command execution settings are changed and a NULL argument
is given for the directory, a crash would occur. With this change, the
default directory is used.
Justin Pettit [Tue, 5 Jan 2010 00:33:49 +0000 (16:33 -0800)]
xenserver: Fix small typo in vswitch-xapi-update
Ben Pfaff [Mon, 4 Jan 2010 23:01:41 +0000 (15:01 -0800)]
Fix documented name of key used to disable MAC learning on a VLAN.
The code uses "disable-learning" but the documentation claimed that it
was "learning-disable".
Ben Pfaff [Mon, 4 Jan 2010 21:08:37 +0000 (13:08 -0800)]
Initial implementation of sFlow.
Tested very slightly with "ping" and "sflowtool -t | tcpdump -r -".
Ben Pfaff [Tue, 22 Dec 2009 00:27:55 +0000 (16:27 -0800)]
netdev: New functions for interpreting "enum ofp_port_features" bitmaps.
Ben Pfaff [Fri, 20 Nov 2009 17:45:26 +0000 (09:45 -0800)]
Add InMon's sFlow Agent library to the build system.
The C source and header files added in this commit is covered under the
InMon sFlow license at http://www.inmon.com/technology/sflowlicense.txt
The library requires -Wno-unused to compile without warnings, so this
commit adds that for building the sFlow code only. Automake can only
change compiler flags on a per-library or per-program basis, so sFlow
is built as a separate library.
The library will be used in upcoming commits.
Ben Pfaff [Thu, 17 Dec 2009 18:00:36 +0000 (10:00 -0800)]
initscript: pass complete path to pidfile to status command
Older versions of RHEL/CentOS used pifof in preference to the pidfile
and hence we got away with passing just the basename instead of
including the full path. Using pidof first doesn't make much sense and
this was fixed in RHEL 5 update 4 (see https://bugzilla.redhat.com/show_bug.cgi?id=440658)
This means that on RHEL 5.4 "service vswitch status" always returned
"ovs-vswitchd is stopped" even if it was running. Fix this issue by
passing in the correct pidfile name.
Cross-port of Ian Campbell's commit
d1c8c9e4 on xs5.7 branch.
Justin Pettit [Fri, 4 Dec 2009 22:11:53 +0000 (14:11 -0800)]
ovs-vsctl: Fix traceback when telling target to reload
The code to tell the target to reload was referencing a non-existent
global variable to determine the target. This change uses the correct
one.
Justin Pettit [Tue, 1 Dec 2009 09:14:33 +0000 (01:14 -0800)]
netdev: Allow explicit creation of netdev objects
This change adds netdev_create() and netdev_destroy() functions to allow
the creation of network devices through the netdev library. Previously,
network devices had to already exist or be created on demand through
netdev_open(). This caused problems such as not being able to specify
TAP devices as ports in ovs-vswitchd, which this patch fixes.
This also lays the groundwork for adding GRE and VDE support.
Justin Pettit [Tue, 1 Dec 2009 07:20:57 +0000 (23:20 -0800)]
dpif: Minor provider comment cleanups.
Ben Pfaff [Tue, 24 Nov 2009 17:59:54 +0000 (09:59 -0800)]
classifier: Improve comments.
Ben Pfaff [Mon, 23 Nov 2009 19:32:08 +0000 (11:32 -0800)]
ovs-openflowd: Add support for userspace-only switching.
Ben Pfaff [Mon, 23 Nov 2009 19:09:38 +0000 (11:09 -0800)]
svec: New function svec_split().
This is useful in an upcoming commit.
Ben Pfaff [Mon, 23 Nov 2009 19:09:19 +0000 (11:09 -0800)]
dpif: New function dpif_create_and_open().
This function combines what dpif_create() and dpif_open() do. It allows
us to factor a tiny amount of code out of the vswitch, but more importantly
this function is also useful in the following commit.
Ben Pfaff [Mon, 23 Nov 2009 21:59:20 +0000 (13:59 -0800)]
netflow: Break out code for sending packets into a new "collectors" module.
sFlow uses a similar UDP structure so this will allow use to reuse the
NetFlow code for it.
Ben Pfaff [Mon, 23 Nov 2009 20:22:03 +0000 (12:22 -0800)]
netflow: Use inet_open_active() to factor out some code.
Ben Pfaff [Mon, 23 Nov 2009 20:18:59 +0000 (12:18 -0800)]
socket-util: Generalize tcp_open_*() to UDP, as inet_open_*().
The tcp_open_active() and tcp_open_passive() functions don't really have
any strong dependencies on TCP. With a couple of simple changes they
can be used for UDP also. Since this is useful for Netflow, this commit
does so.
Ben Pfaff [Thu, 19 Nov 2009 21:44:49 +0000 (13:44 -0800)]
socket-util: Make TCP open function support no default port.
Until now, tcp_open_active() and tcp_open_passive() have only been used
in situations where there is a reasonable default port, e.g. OFP_TCP_PORT.
But for NetFlow there is no universal default, so enhance these functions
so that they can require the user to specify a port explicitly.
Crossported from the 'db' branch, where this is useful for JSON-RPC, which
also has no widely known port.
Ben Pfaff [Mon, 23 Nov 2009 20:25:08 +0000 (12:25 -0800)]
netdev: New function netdev_get_ifindex().
sFlow needs the ifindex of an interface, so this commit adds a function
to retrieve it.
Ben Pfaff [Thu, 19 Nov 2009 21:25:42 +0000 (13:25 -0800)]
Move C compiler warning (-W) flags from CFLAGS to AM_CFLAGS.
C compiler warning options added by the "configure" script have until
now been put into CFLAGS. However that option is supposed to be reserved
for the user under Automake rules, so move them to AM_CFLAGS.
Besides increased adherence to Automake rules, this is useful because
AM_CFLAGS can be overridden on a per-target (e.g. program or library)
basis, whereas CFLAGS cannot. In turn, building the sFlow library (which
will be added in an upcoming commit) requires overriding the compiler
flags to avoid some warning messages. (By modifying the warning flags, we
avoid the need to modify the sFlow library in any way.)
Ben Pfaff [Thu, 19 Nov 2009 00:27:55 +0000 (16:27 -0800)]
acinclude.m4: Fix inconsistency.
Both ; and : are valid shell commands here, but one branch of the "if"
uses one and the other branch uses the other. Use the same one, for
consistency's sake.
Justin Pettit [Thu, 19 Nov 2009 23:45:20 +0000 (15:45 -0800)]
Correct dameon options in INSTALL.bridge
A while back, we retired the short options for daemons. The
INSTALL.bridge file was never updated to reflect this.
CC: Jeongkeun Lee <jklee@hp.com>
Ben Pfaff [Thu, 19 Nov 2009 19:06:14 +0000 (11:06 -0800)]
netdev: Really set output values to 0 on failure in netdev_get_features().
The comment on netdev_get_features() claimed that all of the passed-in
values were set to 0 on failure, but the implementation didn't live up
to the promise.
CC: Paul Ingram <paul@nicira.com>
Jean Tourrilhes [Thu, 19 Nov 2009 20:48:32 +0000 (12:48 -0800)]
ovs-controller: Add --wildcard and --normal features.
This adds two command line switches to ovs-controller to:
1) Use wildcards instead of exact matches.
2) Use "normal" action instead of explicit port.
Ian Campbell [Thu, 19 Nov 2009 18:20:49 +0000 (10:20 -0800)]
datapath: Use HAVE_PROTO_DATA_VALID when defining vswitch_skb_checksum_setup
The purpose of the non-empty variant of vswitch_skb_checksum_setup is to
synchronise the proto_data_valid and proto_csum_blank fields into the
standard skb csum/ip_summed fields, therefore it is more correct to key
off of HAVE_PROTO_DATA_VALID.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Ben Pfaff [Wed, 18 Nov 2009 23:56:57 +0000 (15:56 -0800)]
datapath: Fix warning building datapath on pre-2.6.24 kernels.
The Linux 'min' macro checks that its arguments have the same type, and
if not the compiler reports a message about incompatible pointer types.
On pre-2.6.24 kernels skb_headroom() returns int, so this code was
firing a warning:
unsigned headroom = max(min_headroom, skb_headroom(skb));
This commit makes skb_headroom() return an unsigned int regardless of
kernel version.
Ben Pfaff [Wed, 18 Nov 2009 23:19:50 +0000 (15:19 -0800)]
datapath: Check for proto_data_valid member instead of kernel version.
Commit
5ef800a69 "datapath: Copy Xen's checksumming fields when doing
skb_copy" should copy proto_data_valid between sk_buffs when that field
is present. However the check for CONFIG_XEN plus kernel version 2.6.18
isn't sufficient, because SLES 11 kernels are version 2.6.27 but do have
this field.
This commit adds a configure-time check for the presence of the member
instead of attempting to guess based on the kernel version.
Thanks to Ian Campbell for reporting this problem.
CC: <Ian.Campbell@citrix.com>
Ben Pfaff [Wed, 18 Nov 2009 22:14:29 +0000 (14:14 -0800)]
Merge citrix branch into master.
Jesse Gross [Wed, 18 Nov 2009 03:03:27 +0000 (19:03 -0800)]
datapath: Allow minimum headroom to be set when copying buffers.
If we need to copy an sk_buff in order to make it writable, allow
the minimum headroom to be specified. This ensures that if we
need to add additional data, such as a VLAN tag, we will not have
to make a second copy.
Solves bug #2197 in certain situations.
Jesse Gross [Wed, 18 Nov 2009 01:28:00 +0000 (17:28 -0800)]
datapath: Copy Xen's checksumming fields when doing skb_copy.
Two fields that control checksumming were added to sk_buff in
Xen: proto_data_valid and proto_csum_blank. These fields are copied
when doing a skb_clone but not in other functions such as skb_copy,
which can lead to checksum errors in TCP and UDP when offloading is
enabled in the guest. To fix this we manually copy these fields,
though ideally this should be fixed upstream in Xen.
Bug #2299
Ben Pfaff [Wed, 18 Nov 2009 19:05:00 +0000 (11:05 -0800)]
datapath: Fix build with kernel header layout recently adopted by Debian.
Recent Debian kernel-header packages divide kernel headers into two
directories: the "common" headers that are not architecture-specific,
which go in a directory named like
/usr/src/kernel-headers-2.6.31-1-common,
and architecture-specific headers in a directory named, e.g.
/usr/src/kernel-headers-2.6.31-1-686.
OVS needs to look at the ones in the "common" directory as part of its
configuration process, but the build directory provided on --with-l26 is
the architecture-specific directory. We also need the
architecture-specific directory, since it is the one that we use as part
of the "make", so we can't simply make the user specify the common
directory on --with-l26. Furthermore, there is no easy-to-see link
between the two directories, except as part of the text in a Makefile,
which is not the easiest language to parse.
This commit attempts to kluge around the problem by using the Debian
directory naming. If the build directory does not contain the headers,
then we replace the last component of its name by "-common" and check
for the headers there. This is not ideal, but it does solve the actual
problem at hand.
Tested with Debian's linux-headers-2.6.31-1-686 and with a few older
sets of headers that do not use this scheme.
Ben Pfaff [Wed, 18 Nov 2009 20:57:18 +0000 (12:57 -0800)]
Document userspace switch.
Ben Pfaff [Wed, 18 Nov 2009 18:03:34 +0000 (10:03 -0800)]
Update documentation to mention correct Autoconf version prerequisite.
Justin Pettit [Tue, 17 Nov 2009 17:51:34 +0000 (09:51 -0800)]
datapath: Remove unused print_flow() function
Justin Pettit [Mon, 16 Nov 2009 23:24:35 +0000 (15:24 -0800)]
datapath: Cleanup tab/space issues in datapath
Justin Pettit [Mon, 16 Nov 2009 23:26:31 +0000 (15:26 -0800)]
vconn: Fix endian issue in unknown action type error message
Justin Pettit [Tue, 17 Nov 2009 01:58:26 +0000 (17:58 -0800)]
ovs-ofctl: Add support for transport and network modification actions
Add support to ovs-ofctl for modifying the network source and destination
IP address with the "mod_nw_src" and "mod_nw_dst" actions, respectively.
And support modifying the TCP/UDP source and destination ports with the
"mod_tp_src" and "mod_tp_dst" actions, respectively.