Ben Pfaff [Thu, 3 Dec 2009 22:20:33 +0000 (14:20 -0800)]
ovsdb-server: Open --listen sockets before detaching.
This prevents a race condition in a command sequence that starts
ovsdb-server and then immediately connects to it with ovsdb-client.
Ben Pfaff [Thu, 3 Dec 2009 22:46:57 +0000 (14:46 -0800)]
xenserver: Remove now-missing files from RPM spec file.
Making XenServer work with ovsdb will take additional changes, but this
should at least make it possible to build the RPM again.
Ben Pfaff [Thu, 3 Dec 2009 19:28:40 +0000 (11:28 -0800)]
vswitchd: Initial conversion to database-based configuration.
This has seen very little testing, so some features are almost certainly
busted. Port mirroring is not yet converted, so it will definitely not
work.
Ben Pfaff [Thu, 3 Dec 2009 18:59:09 +0000 (10:59 -0800)]
vswitchd: Remove vestigial spanning tree protocol (STP) support.
ovs-vswitchd has never supported spanning tree protocol, but there was
nevertheless a considerable amount of code that provided a framework for
supporting it.
This commit deletes this code, since we have no plans to introduce STP
support soon.
Ben Pfaff [Thu, 3 Dec 2009 18:35:45 +0000 (10:35 -0800)]
ovsdb-idl: Fix resolution of references from one table to another.
Our tests only checked references from a table to itself, so of course
there were bugs in references from one table to another. This fixes the
obvious one and adds a test.
Ben Pfaff [Thu, 3 Dec 2009 18:53:58 +0000 (10:53 -0800)]
ovsdb-idl: Make IDL-generated files depend on ovsdb-idlc.
This ensures that IDL-generated files get rebuilt whenever the IDL
compiler itself is updated.
Ben Pfaff [Thu, 3 Dec 2009 18:34:26 +0000 (10:34 -0800)]
ovsdb-idlc: C code generation improvements.
This eliminates many casts from the IDL's generated C code and reduces the
number of levels of indirection for simple cases of optional string or
pointer columns.
Ben Pfaff [Wed, 2 Dec 2009 19:49:53 +0000 (11:49 -0800)]
Merge "master" branch into "db".
Ben Pfaff [Wed, 2 Dec 2009 19:26:15 +0000 (11:26 -0800)]
ovsdb: Implement C bindings for IDL.
Ben Pfaff [Wed, 2 Dec 2009 00:32:03 +0000 (16:32 -0800)]
jsonrpc: Make it easy to get a new JSON-RPC request's id.
Ben Pfaff [Wed, 2 Dec 2009 18:50:18 +0000 (10:50 -0800)]
jsonrpc: New type "jsonrpc_session", which automatically reconnects.
Ben Pfaff [Wed, 2 Dec 2009 00:35:33 +0000 (16:35 -0800)]
ovsdb: Allow a named-uuid to be used within the operation that creates it.
This allows a transaction like this:
[{"op": "insert",
"table": "mytable",
"row": {"i": 0, "k": ["named-uuid", "self"]},
"uuid-name": "self"}]
It was already possible to do this by following up on the "insert" with an
"update", but since this was easy to implement I did it.
Ben Pfaff [Wed, 2 Dec 2009 19:18:40 +0000 (11:18 -0800)]
vswitchd: Fix build when source and build directory differ.
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:45:54 +0000 (09:45 -0800)]
vswitch.ovsidl: Fix comments.
Ben Pfaff [Tue, 24 Nov 2009 17:59:54 +0000 (09:59 -0800)]
classifier: Improve comments.
Justin Pettit [Tue, 24 Nov 2009 03:00:27 +0000 (19:00 -0800)]
ovsdb: Minor cleanups to the SPECS file
Justin Pettit [Tue, 24 Nov 2009 01:28:00 +0000 (17:28 -0800)]
vswitch.ovsidl: Various cleanups
Fix a few minor errors and provide some cleanups in the vswitch IDL
schema.
Justin Pettit [Tue, 24 Nov 2009 01:24:58 +0000 (17:24 -0800)]
ovsdb-idlc: Remove "sha" deprecation warning
The "sha" module was deprecated in Python 2.5 and calling ovsd-idlc prints
a warning in Python 2.6. The module is not actually being used, so this
just removes the offending import.
Ben Pfaff [Tue, 24 Nov 2009 00:07:36 +0000 (16:07 -0800)]
ovsdb: Add ovsdb IDL compiler to build system.
This first stab at any interface definition language and compiler for OVSDB
will give other developers a chance to look at it and try to integrate it.
The IDL is not actually implemented yet; I am working on that.
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.
Ben Pfaff [Fri, 20 Nov 2009 23:40:11 +0000 (15:40 -0800)]
ovsdb: Rename variable to better describe its purpose.
Apparently a cut-and-paste error gave this variable a deceptive name.
Ben Pfaff [Fri, 20 Nov 2009 23:39:07 +0000 (15:39 -0800)]
shash: Make it more convenient to store "const" objects in an shash.
Ben Pfaff [Fri, 20 Nov 2009 00:48:12 +0000 (16:48 -0800)]
ovsdb: Require database, table, column names to be valid identifiers.
Database, table, and column names have always been required by the OVSDB
specification to be identifiers (e.g. valid C identifiers), but this has
never been enforced.
This commit adds enforcement and fixes one instance of an invalid column
name in the vswitch schema.
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 20:43:50 +0000 (12:43 -0800)]
ovsdb: Make ovsdb-server tests pass even when @RUNDIR@ is not writable.
Ben Pfaff [Wed, 18 Nov 2009 20:43:30 +0000 (12:43 -0800)]
ovsdb: Add more tests for "monitor" feature.
Ben Pfaff [Wed, 18 Nov 2009 19:32:16 +0000 (11:32 -0800)]
ovsdb-server: Fix crash for invalid parameters to "monitor" request.
Thanks to Jeremy Stribling <strib@nicira.com> for reporting the problem.
Ben Pfaff [Wed, 18 Nov 2009 18:03:34 +0000 (10:03 -0800)]
Update documentation to mention correct Autoconf version prerequisite.
Ben Pfaff [Mon, 16 Nov 2009 18:38:14 +0000 (10:38 -0800)]
ovsdb: Monitor support.
Ben Pfaff [Tue, 17 Nov 2009 00:55:35 +0000 (16:55 -0800)]
jsonrpc: Add logging for messages sent and received, at DBG level.
This made it much easier to see problems while developing some
ovsdb-server features.
Ben Pfaff [Wed, 18 Nov 2009 00:02:38 +0000 (16:02 -0800)]
ovsdb-server: Add "exit" unixctl command and --unixctl option.
This makes writing predictable test scripts easier.
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.
Justin Pettit [Tue, 17 Nov 2009 02:08:12 +0000 (18:08 -0800)]
ofproto: Support missing set_nw_dst and set_tp_dst translations
The function that translates OpenFlow actions into datapath actions was
missing definitions for OFPAT_SET_NW_DST and OFPAT_SET_TP_DST. This
meant those actions would not occur in the datapath.
Justin Pettit [Tue, 17 Nov 2009 01:51:31 +0000 (17:51 -0800)]
datapath: Calculate proper checksum for set_tp_src/dst action
When the set_tp_src or set_tp_dst action is used, the calculation for
where the checksum is located was wrong. This caused the checksum to
not be updated and packet corruption in the bad offset.
Justin Pettit [Tue, 17 Nov 2009 00:36:21 +0000 (16:36 -0800)]
ovs-appctl: Fix shadow variable that could cause segfault
The variable "socket_name" contains the name of the unix domain socket
to be used for communicating with the OVS process. If the target does
not begin with a "/", the socket name is determined based on a pidfile.
A shadow copy of "socket_name" was kept in the block that looks at the
pidfile, which would cause the function-level one to not be set. This
removes that shadow copy.
Ben Pfaff [Tue, 17 Nov 2009 00:54:13 +0000 (16:54 -0800)]
ovsdb-parser: Fix logic in ovsdb_parser_member().
I don't know why this test was written as it was. The new test makes more
sense, and may be more correct as well.
Ben Pfaff [Tue, 17 Nov 2009 00:18:02 +0000 (16:18 -0800)]
ovsdb-server: Ignore replies to echo requests.
Until this commit, ovsdb-server would send off echo requests when the
connection became idle, but then it would terminate the connection when
the reply arrived, because it didn't recognize that it was a reply to its
own request (!).
Ben Pfaff [Mon, 16 Nov 2009 23:13:00 +0000 (15:13 -0800)]
ovsdb: Add tests for file storage and for ovsdb-server.
Ben Pfaff [Mon, 16 Nov 2009 23:12:04 +0000 (15:12 -0800)]
ovsdb-client: New command "transact".
Ben Pfaff [Mon, 16 Nov 2009 23:09:50 +0000 (15:09 -0800)]
ovsdb-server: Maintain the database lock with --detach.
Before this commit, "ovsdb-server --detach" would detach after it opened
the database file, which meant that the child process did not hold the
file lock on the database file (because a forked child process does not
inherit its parents' locks). This commit fixes the problem by making
ovsdb-server open the database only after it has detached. This fix, in
turn, required that daemonize() not chdir to /, because this would break
databases whose names are given relative to the current directory, and so
this commit also changes ovsdb-server to do so later.
Ben Pfaff [Fri, 13 Nov 2009 22:47:25 +0000 (14:47 -0800)]
ovsdb: Refactor JSON-RPC database server implementation.
This refactoring breaks up jsonrpc-server.c in a more modular fashion, in
preparation for adding code for table monitors.
Ben Pfaff [Fri, 13 Nov 2009 21:37:55 +0000 (13:37 -0800)]
ovsdb: Add replication support and refactor files in terms of replication.
An upcoming commit will add support for replicating tables across JSON-RPC
connection. As a prerequisite ovsdb itself must support basic replication.
This commit adds that support and then reimplements the ovsdb file storage
in terms of that replication.
Ben Pfaff [Fri, 13 Nov 2009 21:23:35 +0000 (13:23 -0800)]
ovsdb: Rename ovsdb_file to ovsdb_log.
This prepares for introducing a new, higher-level ovsdb_file that
encapsulates ovsdb storage in a file.
Ben Pfaff [Fri, 13 Nov 2009 23:05:19 +0000 (15:05 -0800)]
ovsdb: Fix use of non-array for JSON-RPC parameters.
JSON-RPC requires that "params" be an array, but we weren't observing this
properly in the ovsdb specifications or code.
Thanks to Jeremy Stribling for pointing out the problem.
Ben Pfaff [Mon, 16 Nov 2009 17:19:36 +0000 (09:19 -0800)]
ovsdb-parser: Fix indentation.
Justin Pettit [Sat, 14 Nov 2009 02:53:28 +0000 (18:53 -0800)]
ofproto: Update time of super-rule to match sub-rule
Rules keep track of their creation and last used time. When a sub-rule
is updated, it wasn't updating the time of its super-rule. This commit
fixes that behavior.
Thanks to Jesse Gross for the help tracking this down.
Justin Pettit [Fri, 13 Nov 2009 23:51:44 +0000 (15:51 -0800)]
ovs-openflowd: Setup default listener
By default, ovs-openflowd was not listening for any management
connections. Tools such as ovs-ofctl attempt to use a default location
based on the datapath name. This change creates that default listener.
Jesse Gross [Fri, 13 Nov 2009 01:41:58 +0000 (17:41 -0800)]
ofproto: Don't send OpenFlow flow expirations hidden rules.
We were reporting flow expirations for the hidden exact match flows
with the stats set to zero. These are an implementation detail and
can confuse controllers, so don't report them.
CC: David Erickson <derickso@stanford.edu>
Jesse Gross [Thu, 12 Nov 2009 23:58:18 +0000 (15:58 -0800)]
ofproto: Distinguish stats from before and after action changes.
When a rule is revalidated and the actions change don't lump all
the stats together. This will clear the stats in the datapath
and send a NetFlow expiration message. This could already happen
before in certain circumstances so this change makes it more
consistent.
Justin Pettit [Fri, 13 Nov 2009 19:15:35 +0000 (11:15 -0800)]
ofproto: Correct structure length assertion for ofp_action_vlan_pcp
Ian Campbell [Tue, 10 Nov 2009 09:23:51 +0000 (09:23 +0000)]
xenserver: interface-reconfigure and vif hotplug relicensing.
As part of the Open Sourcing of xapi (the XenServer toolstack) via the
XenCloud project (announcement in [0]). The upstream versions of
interface-reconfigure and the vif hotplug script have been re-licensed
under an LGPL v2.1 + exception license. The exception applies to other
files in the upstream repository and doesn't particularly make sense for
these scripts but it is included to maintain the uniformity of the
license for the upstream repository.
This patch synchronises the licenses headers on those scripts with the
upstream version. Since those headers refer to a file called LICENSE in
the upstream repository I have included a copy here, slightly modified
to indicate precisely which files it applies to.
Git shows[1] that only myself and Nicira employees have made
modifications to these scripts in the openvswitch repository. The
licensing change has been okayed by Keith Amidon on behalf of Nicira.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
[0]
http://lists.xensource.com/archives/html/xen-devel/2009-11/msg00117.html
Justin Pettit [Thu, 12 Nov 2009 23:46:35 +0000 (15:46 -0800)]
ofp-print: Add missing error types
Jesse Gross [Thu, 12 Nov 2009 20:44:44 +0000 (12:44 -0800)]
ofproto: Correctly credit stats for displaced rules.
When a rule displaces another, we are supposed to credit the stats
for packets that have already been processed to the displaced rule
before we eject it from the datapath. However, we were instead
crediting the new rule.
Ben Pfaff [Thu, 12 Nov 2009 20:53:05 +0000 (12:53 -0800)]
ovsdb-client: Support listening for incoming connections too.
This makes it easier to test ovsdb-server's support for active connections.
It might also be useful occasionally, too.
Ben Pfaff [Thu, 12 Nov 2009 20:58:53 +0000 (12:58 -0800)]
ovsdb-server: Reconnect to clients specified on --connect.
Ben Pfaff [Thu, 12 Nov 2009 20:52:12 +0000 (12:52 -0800)]
stream: New function pstream_accept_block().
Ben Pfaff [Tue, 10 Nov 2009 23:30:49 +0000 (15:30 -0800)]
New "reconnect" library for managing network connection attempts.
This library implements the reconnection FSM used by the "rconn" library.
Therefore, it makes sense to change rconn to use this, and I have a patch
to do that, but I am not applying it at the moment to avoid changing unrelated
code on the "db" branch.
Ben Pfaff [Tue, 10 Nov 2009 23:31:03 +0000 (15:31 -0800)]
svec: New function svec_is_empty().
Ben Pfaff [Thu, 12 Nov 2009 20:55:40 +0000 (12:55 -0800)]
vswitch: Only one Open vSwitch daemon is supported per database.
Jesse Gross [Thu, 12 Nov 2009 01:05:22 +0000 (17:05 -0800)]
bridge: Fix segfault when updating learning table for deleted port.
A function call using in_port was accidentally moved before the check
to see if it is null. in_port can be null if a port was deleted but
an update is still pending. This moves the call after the check.
Bug #2313
Jesse Gross [Wed, 11 Nov 2009 22:48:48 +0000 (14:48 -0800)]
mirroring: Preserve key for disabling learning.
Don't delete the key for disabling MAC learning on a given VLAN
after a reboot. Also logs when learning is disabled.
Jesse Gross [Wed, 11 Nov 2009 21:06:16 +0000 (13:06 -0800)]
bridge: Feed flow stats into learning table.
Update the learning table to keep it current with flows actually
going through the datapath. This ensures that entries do not age
out when they are actively being used.
Feature #2209
Jesse Gross [Wed, 11 Nov 2009 19:13:37 +0000 (11:13 -0800)]
ofproto: Update stats for exact match flows before expiration.
When a wildcarded flow is expired we remove all of the subrules to
collect their stats before sending a flow expiration message. However,
we were only removing exact match flows after the expiration message
is composed. This uninstalls it first.
CC: David Erickson <derickso@stanford.edu>
Jesse Gross [Tue, 10 Nov 2009 23:12:01 +0000 (15:12 -0800)]
Merge citrix branch into master.
Jesse Gross [Sat, 7 Nov 2009 01:13:51 +0000 (17:13 -0800)]
mirroring: Allow learning to be disabled on a VLAN.
RSPAN does not work properly unless MAC learning for the VLAN is
disabled on all switches between the origin and monitoring point.
This allows learning to be disabled on a given VLAN so vSwitch can
acts as an intermediate switch.
Feature #2136
Jesse Gross [Mon, 9 Nov 2009 23:26:51 +0000 (15:26 -0800)]
bridge: Require learning table at all times.
The bridge nominally allowed the MAC learning module to not be enabled
though in reality it was always used. Tracking active MAC addresses
in the bridge is useful for other reasons besides deciding the output
port - primarily for bonding. In addition there were several bugs
that would have been triggered had learning actually been disabled since
that code path is never tested. This makes it explicit that the learning
table should be maintained at all times.
Justin Pettit [Tue, 10 Nov 2009 00:06:52 +0000 (16:06 -0800)]
vconn: Clean-up "match" typo in comments
A few comments referenced "m", when "match" was clearly meant. This was
likely due to a quick search and replace that scooped up these comments
along with the intended code. This cleans that up.
Ben Pfaff [Mon, 9 Nov 2009 23:02:05 +0000 (15:02 -0800)]
ovs-vsctl: Capitalize names of global constants but not variables.
Conforms to the Google style guide for Python.
Reported by Justin.
Ben Pfaff [Mon, 9 Nov 2009 22:46:38 +0000 (14:46 -0800)]
Make ovs-appctl easier to use and synchronize its interface with ovs-vsctl.
It is inconvenient to type the whole path to the Unix daemon socket when
using ovs-appctl. Allow the name of the daemon to be used instead when
a pidfile exists in the default location, and contact ovs-vswitchd by
default.
Also, the various options for manipulating vlog were invented before the
general-purpose command mechanism existed. Get rid of all of the action
options in favor of just specifying the command to be executed as
non-option arguments.
Finally, there simply wasn't much value in allowing multiple targets or
options to be specified; these variations were never used in practice. So
simplify the interface by making it one target, one action per invocation.
Also, make ovs-vsctl use the same syntax for its --target option.
Based on work by Justin Pettit.
Jesse Gross [Wed, 4 Nov 2009 21:48:41 +0000 (13:48 -0800)]
bonding: Ignore updelay if there is no active slave.
If all slaves on a bond are down but some are waiting for an updelay,
enable the slave with the shortest amount of delay remaining. This
would already occur if all other slaves were disabled at the time the
delay was to begin but not if a delay was already in progress. This
also immediately sends learning packets out in both situations, which
prevents incoming packets to disabled slaves from being blackholed.
CC: Danny Wannagat <Danny.Wannagat@eu.citrix.com>
Ben Pfaff [Fri, 6 Nov 2009 18:43:50 +0000 (10:43 -0800)]
Fix incorrect printf format specifiers.
GCC reported these during a 64-bit build.
Ben Pfaff [Fri, 6 Nov 2009 18:25:50 +0000 (10:25 -0800)]
backtrace: Avoid GCC warning on x86-64.
The portable implementation of stack_low(), which before this commit is
used on x86-64, provokes a warning from GCC that cannot be disabled. We
already have an i386-specific implementation that does not warn; this
commit adds a corresponding implementation for x86-64 to avoid the warning
there too.
Ben Pfaff [Fri, 6 Nov 2009 18:22:55 +0000 (10:22 -0800)]
backtrace: Suppress dumb GCC warning on x86-64.
Without this change GCC warns "use of assignment suppression and length
modifier together in scanf format", which doesn't actually point out any
real problem (and why would it? Google turns up nothing interesting).
Ben Pfaff [Fri, 6 Nov 2009 23:35:34 +0000 (15:35 -0800)]
ovsdb: Add new ovsdb-client program.
Ben Pfaff [Fri, 6 Nov 2009 23:35:10 +0000 (15:35 -0800)]
ovsdb: Add documentation for ovsdb-server and ovsdb-tool programs.
Ben Pfaff [Fri, 6 Nov 2009 23:33:25 +0000 (15:33 -0800)]
ovsdb: Improve error message for transaction that uses unknown operation.
Without this commit, misspelling an operation name provokes a mysterious
error message.