openvswitch
12 years agoofproto-dpif-governor: Fix bug in log message.
Ben Pfaff [Tue, 22 May 2012 18:39:25 +0000 (11:39 -0700)]
ofproto-dpif-governor: Fix bug in log message.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoAdd support for tracking and logging daemon memory usage.
Ben Pfaff [Tue, 8 May 2012 22:44:21 +0000 (15:44 -0700)]
Add support for tracking and logging daemon memory usage.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agosimap: New data structure for string-to-integer maps.
Ben Pfaff [Tue, 22 May 2012 17:32:02 +0000 (10:32 -0700)]
simap: New data structure for string-to-integer maps.

This commit adapts a couple of existing pieces of code to use the
new data structure.  The following commit will add another user
(which is also the first use of the simap_increas() function).

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoProperly reopen python daemon log files after rotation.
Ben Pfaff [Tue, 1 May 2012 21:27:06 +0000 (14:27 -0700)]
Properly reopen python daemon log files after rotation.

The OVS Python daemons weren't reopening their log files after rotation, so
all the log information after the second rotation was lost.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agovlog: Take advantage of relaxed "-v" syntax through the tree.
Ben Pfaff [Tue, 1 May 2012 21:03:52 +0000 (14:03 -0700)]
vlog: Take advantage of relaxed "-v" syntax through the tree.

The vlog manpage implies that writing ANY explicitly is obsolete, but
examples elsewhere in the documentation and code still tend to add it.
This removes them.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agopython: Implement "vlog/set", "vlog/list" unixctl commands in Python vlog.
Ben Pfaff [Mon, 14 May 2012 21:00:33 +0000 (14:00 -0700)]
python: Implement "vlog/set", "vlog/list" unixctl commands in Python vlog.

This doesn't implement control over log patterns, though.

The change to vlog.man in this commit doesn't have any practical effect
because OVS doesn't come with any Python daemons that have their own
manpages.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agopython: Implement "vlog/reopen" unixctl command in Python vlog.
Ben Pfaff [Tue, 1 May 2012 21:13:00 +0000 (14:13 -0700)]
python: Implement "vlog/reopen" unixctl command in Python vlog.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agopython: Break unixctl implementation into registry, client, and server.
Ben Pfaff [Mon, 14 May 2012 18:26:36 +0000 (11:26 -0700)]
python: Break unixctl implementation into registry, client, and server.

I wish to add some unixctl commands to the Python vlog module.  However,
importing ovs.unixctl in ovs.vlog creates a circular dependency, because
ovs.unixctl imports ovs.vlog already.  The solution, in this commit, is to
break the unixctl module into three parts: a register (ovs.unixctl) that
does not depend on ovs.vlog, and client (ovs.unixctl.client) and server
(ovs.unixctl.server) modules that do.  This breaks the circular dependency.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agotests: Fix Emacs syntax highlighting in vlog.at.
Ben Pfaff [Mon, 30 Apr 2012 23:49:59 +0000 (16:49 -0700)]
tests: Fix Emacs syntax highlighting in vlog.at.

[^"] confuses the Emacs syntax highlighter for Autotest mode.  It thinks
that it terminates a quoted string and therefore everything following the
next " in the file is highlighted as if it was part of a quoted string.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoUse PYTHONDONTWRITEBYTECODE=yes for invoking Python for build or test.
Ben Pfaff [Tue, 22 May 2012 17:17:00 +0000 (10:17 -0700)]
Use PYTHONDONTWRITEBYTECODE=yes for invoking Python for build or test.

An upcoming commit will break the ovs.vlog module into an ovs.vlog package
with submodules.  This commit makes switching between trees with the old
structure and those with the new structure much easier.

This commit works by setting PYTHONDONTWRITEBYTECODE=yes in Python
invocations from the build system and testing.  This keeps Python 2.6+ from
creating .pyc and .pyo files.  Creating .py[co] works OK for any given
version of Open vSwitch, but it causes trouble if you switch from a version
with foo/__init__.py into an (older) version with plain foo.py, since
foo/__init__.pyc will cause Python to ignore foo.py.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoFix typo in "PYTHONPATH".
Ben Pfaff [Tue, 22 May 2012 17:12:49 +0000 (10:12 -0700)]
Fix typo in "PYTHONPATH".

Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agobridge: Ignore "null" interfaces as required.
Ethan Jackson [Mon, 21 May 2012 20:20:18 +0000 (13:20 -0700)]
bridge: Ignore "null" interfaces as required.

Commit bae7208e91a0 (bridge: Refactor bridge_reconfigure().)
introduced a regression in which the switch would attempt to
instantiate "null" interfaces in the datapath. This would, of
course, fail and trigger a warning.  Though harmless, these
warnings confused users.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
12 years agodatapath: Fix Tunnel options TOS
Pravin B Shelar [Mon, 21 May 2012 19:18:50 +0000 (12:18 -0700)]
datapath: Fix Tunnel options TOS

Use DSCP bits from ToS set on tunnel.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
Bug #8822

12 years agotunnel: Accept 'set options:tos' as hex value.
Pravin B Shelar [Mon, 21 May 2012 19:18:19 +0000 (12:18 -0700)]
tunnel: Accept 'set options:tos' as hex value.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Bug #8822

12 years agoofp-util: Fix stale comment.
Ethan Jackson [Wed, 16 May 2012 15:22:17 +0000 (08:22 -0700)]
ofp-util: Fix stale comment.

'flow_mod_table_id' is no longer an argument to
ofputil_encode_flow_mod(), its information is now encoded in the
'protocol' argument.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
12 years agogitignore: Add ovs-check-dead-ifs.
Ethan Jackson [Wed, 16 May 2012 15:24:26 +0000 (08:24 -0700)]
gitignore: Add ovs-check-dead-ifs.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
12 years agodatapath: Reset upper layer protocol info on internal devices.
Jesse Gross [Thu, 17 May 2012 18:43:15 +0000 (11:43 -0700)]
datapath: Reset upper layer protocol info on internal devices.

It's possible that packets that are sent on internal devices (from
the OVS perspective) have already traversed the local IP stack.
After they go through the internal device, they will again travel
through the IP stack which may get confused by the presence of
existing information in the skb. The problem can be observed
when switching between namespaces. This clears out that information
to avoid problems but deliberately leaves other metadata alone.
This is to provide maximum flexibility in chaining together OVS
and other Linux components.

Bug #10995

Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
12 years agoPORTING: Add hint to adjust the default fail-mode, for hardware ports.
Ben Pfaff [Wed, 16 May 2012 19:43:21 +0000 (12:43 -0700)]
PORTING: Add hint to adjust the default fail-mode, for hardware ports.

Suggested-by: Rob Sherwood <rob.sherwood@bigswitch.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agovswitch.xml: Describe current default fail_mode.
Ben Pfaff [Thu, 10 May 2012 22:53:19 +0000 (15:53 -0700)]
vswitch.xml: Describe current default fail_mode.

We are thinking about changing the default, so this leaves that open
for the future.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-vsctl: Add "--all" option for "destroy" command in ovs-vsctl.
Arun Sharma [Wed, 16 May 2012 18:39:55 +0000 (11:39 -0700)]
ovs-vsctl: Add "--all" option for "destroy" command in ovs-vsctl.

Adds the ability to delete all records from table. This will help
users to destroy all records from Qos or Queue table using single
command rather then current method.

Feature #11306
Suggested-by: Kevin Mancuso <kevin.mancuso@rackspace.com>
Signed-off-by: Arun Sharma <arun.sharma@calsoftinc.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodpif-netdev: allow for proper destruction of netdev datapaths
Giuseppe Lettieri [Wed, 9 May 2012 10:17:15 +0000 (12:17 +0200)]
dpif-netdev: allow for proper destruction of netdev datapaths

Until now, bridges with datapath_type=netdev did not destroy the datapath
when deleted. In particular, the tap device implementing the internal
interface was not close()d, and therefore the tap persists until
ovs-vswitchd exit()s.

This behaviour was caused by the missing callback for 'enumerate' in the
dpif-netdev class. Without this callback 'bridge_reconfigure' failed to
realize that there are datapaths with no bridge, and thus cannot destroy
them. Providing an 'enumerate' callback fixes this.

Signed-off-by: Giuseppe Lettieri <g.lettieri@iet.unipi.it>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodaemon: Add comment.
Ben Pfaff [Mon, 14 May 2012 21:21:18 +0000 (14:21 -0700)]
daemon: Add comment.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agovswitch.xml: Suggest secure fail-mode to avoid loops with multiple uplinks.
Ben Pfaff [Thu, 10 May 2012 17:11:08 +0000 (10:11 -0700)]
vswitch.xml: Suggest secure fail-mode to avoid loops with multiple uplinks.

EXT-186.
Reported-by: Rob Sherwood <rob.sherwood@bigswitch.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoMakefile.am: Remove -export-dynamic.
Ben Pfaff [Mon, 14 May 2012 20:31:07 +0000 (13:31 -0700)]
Makefile.am: Remove -export-dynamic.

This got added as part of the "initial import" commit from March 2008.  I
don't see any value in it.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agofatal-signal: Log when terminating due to a fatal signal.
Ben Pfaff [Tue, 8 May 2012 23:54:21 +0000 (16:54 -0700)]
fatal-signal: Log when terminating due to a fatal signal.

This makes it easier to diagnose why and when a daemon exited.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofp-util: Match on NXAST_CONTROLLER as an output to OFPP_CONTROLLER.
Ben Pfaff [Wed, 2 May 2012 21:51:51 +0000 (14:51 -0700)]
ofp-util: Match on NXAST_CONTROLLER as an output to OFPP_CONTROLLER.

Found by inspection.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodocs: Fix bad troff markup.
Ben Pfaff [Mon, 14 May 2012 18:15:34 +0000 (11:15 -0700)]
docs: Fix bad troff markup.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-vswitchd: Document some limits.
Ben Pfaff [Mon, 14 May 2012 18:13:39 +0000 (11:13 -0700)]
ovs-vswitchd: Document some limits.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-dpctl: Remove obsolete documentation of limit on number of datapaths.
Ben Pfaff [Mon, 14 May 2012 18:13:27 +0000 (11:13 -0700)]
ovs-dpctl: Remove obsolete documentation of limit on number of datapaths.

Reported-by: Vjekoslav Brajkovic <balkan@cs.washington.edu>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofp-parse: Mark ofp_fatal() as never returning.
Ben Pfaff [Sun, 13 May 2012 23:33:01 +0000 (16:33 -0700)]
ofp-parse: Mark ofp_fatal() as never returning.

This makes clang less confused.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-ofctl: Avoid impossible check for !osm in fetch_port_by_stats().
Ben Pfaff [Sun, 13 May 2012 23:41:05 +0000 (16:41 -0700)]
ovs-ofctl: Avoid impossible check for !osm in fetch_port_by_stats().

At the time of the call to ofpbuf_at(), we know that the ofp_stats_msg is
present because ofputil_decode_msg_type() reported that it was.  Therefore,
we can use ofpbuf_at_assert() and don't have to check for a null pointer.

Found by clang.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoAvoid writes to variables that are never read back.
Ben Pfaff [Sun, 13 May 2012 23:34:49 +0000 (16:34 -0700)]
Avoid writes to variables that are never read back.

Found by clang.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoAvoid assigning the same value to a variable back-to-back.
Ben Pfaff [Sun, 13 May 2012 23:33:49 +0000 (16:33 -0700)]
Avoid assigning the same value to a variable back-to-back.

Found by clang.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto: Remove write-only variable.
Ben Pfaff [Sun, 13 May 2012 23:56:01 +0000 (16:56 -0700)]
ofproto: Remove write-only variable.

Found by clang.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agocfm: Avoid null pointer dereference in cfm_process_heartbeat().
Ben Pfaff [Sun, 13 May 2012 23:31:15 +0000 (16:31 -0700)]
cfm: Avoid null pointer dereference in cfm_process_heartbeat().

Found by clang.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoRemove forward declaration of vsp_vlandev_to_realdev()
Simon Horman [Mon, 14 May 2012 04:59:58 +0000 (13:59 +0900)]
Remove forward declaration of vsp_vlandev_to_realdev()

There is no need to for a forward declaration of vsp_vlandev_to_realdev()

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-bugtool: Close file descriptors after use.
Gurucharan Shetty [Fri, 11 May 2012 21:49:02 +0000 (14:49 -0700)]
ovs-bugtool: Close file descriptors after use.

In ovs-bugtool, we do a bunch of Popen calls to
get the results of some shell commands with stdout
set to PIPE. Once we are done, we need to
close the file descriptors.

Bug #11083.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
12 years agoodp-util: Add tests for parsing and formatting ODP actions.
Ben Pfaff [Wed, 9 May 2012 19:22:18 +0000 (12:22 -0700)]
odp-util: Add tests for parsing and formatting ODP actions.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodynamic-string: New function ds_get_test_line().
Ben Pfaff [Wed, 9 May 2012 19:15:11 +0000 (12:15 -0700)]
dynamic-string: New function ds_get_test_line().

This eliminates some code duplication.   An upcoming commit will add
another user.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoodp-util: Fix parsing of actions encapsulated within "sample" actions.
Ben Pfaff [Wed, 9 May 2012 19:21:54 +0000 (12:21 -0700)]
odp-util: Fix parsing of actions encapsulated within "sample" actions.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofputil: Accept OFPP_NONE as a valid output port.
Ethan Jackson [Thu, 10 May 2012 18:24:36 +0000 (11:24 -0700)]
ofputil: Accept OFPP_NONE as a valid output port.

Ofproto-dpif treats an output to OFPP_NONE as a NOOP, but ofputil
treated it as an error.  The former behavior seems more natural.

Reported-by: Teemu Koponen <koponen@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
12 years agoofproto-dpif: Make parameters const.
Simon Horman [Thu, 10 May 2012 00:12:02 +0000 (09:12 +0900)]
ofproto-dpif: Make parameters const.

The ofproto parameters to lookup_input_bundle(), get_ofp_port() and
get_odp_port() may be const.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoFix "make distcheck" failure since we weren't cleaning up a generated file.
Ben Pfaff [Thu, 10 May 2012 16:37:11 +0000 (09:37 -0700)]
Fix "make distcheck" failure since we weren't cleaning up a generated file.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agobugtool: rename label names in plugins related to ovs-appctl
Arun Sharma [Wed, 9 May 2012 23:34:21 +0000 (16:34 -0700)]
bugtool: rename label names in plugins related to ovs-appctl

It improves to have proper out file name in bugtool archive with respect
to ovs-appctl commands. E.g. if command is 'ovs-appctl lacp/show' then
the related out file will be 'ovs-appctl-lacp-show.out'

Feature #11283.
Signed-off-by: Arun Sharma <arun.sharma@calsoftinc.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agobugtool: Collect bond state information from ovs.
Arun Sharma [Wed, 9 May 2012 06:47:30 +0000 (23:47 -0700)]
bugtool: Collect bond state information from ovs.

This is an enhancement in bugtool archive output to determine the bond
state information. It is implemented as a plugin which internally calls
"ovs-appctl bond/show" command to get bond state.

Feature #11283.
Signed-off-by: Arun Sharma <arun.sharma@calsoftinc.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Segregate CFM, LACP, and STP traffic into separate queues.
Ben Pfaff [Sat, 5 May 2012 18:07:42 +0000 (11:07 -0700)]
ofproto-dpif: Segregate CFM, LACP, and STP traffic into separate queues.

Until now, packets for these special protocols have been mixed with general
traffic in the kernel-to-userspace queues.  This means that a big-enough
storm of new flows in these queues can cause packets for these special
protocols to be dropped at this interface, fooling userspace into believing
that, say, no CFM packets have been received even though they are arriving
at the expected rate.

This commit moves special protocols to a dedicated kernel-to-userspace
queue to avoid the problem.

Bug #7550.
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Introduce "slow path" datapath flows.
Ben Pfaff [Fri, 4 May 2012 21:52:36 +0000 (14:52 -0700)]
ofproto-dpif: Introduce "slow path" datapath flows.

Most exact-match flows can be handled directly in the datapath, but
for various reasons, some cannot: every packet in these flows must
be sent separately to userspace.  Until now, flows that cannot be
handled entirely in the kernel have been allowed to miss each time
in the datapath.  This is generally OK, but it has a few
disadvantages:

    * It can make troubleshooting at the level where one must look
      at datapath flows a bit confusing in some cases, because
      datapath misses due to genuinely new flows are mixed in with
      datapath misses for known flows that cannot be set up.

    * It means that the kernel-to-userspace packets for a given
      input port always go to a single kernel-to-userspace queue,
      even if we'd like to segregate out some of the packets for
      known flows.  (An upcoming commit has examples.)

This commit therefore introduces the concept of a "slow path" flow,
one that is installed in the datapath with a single action that
sends the flow's packets to userspace.  To make troubleshooting
easier, the action includes a reason code (displayed by "ovs-dpctl
dump-flows") that explains why the flow has been slow-pathed.

Bug #7550.
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Introduce "internal flows" for handling flow table misses.
Ben Pfaff [Sat, 5 May 2012 17:55:30 +0000 (10:55 -0700)]
ofproto-dpif: Introduce "internal flows" for handling flow table misses.

The ofproto-dpif implementation of "facet"s requires a facet to be
associated with an OpenFlow rule.  Until now, this meant that packets
that miss in the OpenFlow table (and thus didn't have OpenFlow rules)
couldn't be set up as facets and thus couldn't be installed in the
kernel.  This commit changes that, by introducing "internal" OpenFlow
rules to associate with such packets.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Move code closer to left margin in facet_check_consistency().
Ben Pfaff [Sat, 5 May 2012 00:05:08 +0000 (17:05 -0700)]
ofproto-dpif: Move code closer to left margin in facet_check_consistency().

This makes an upcoming commit break up fewer lines.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Factor parts of update_stats() out into separate functions.
Ben Pfaff [Fri, 4 May 2012 23:56:03 +0000 (16:56 -0700)]
ofproto-dpif: Factor parts of update_stats() out into separate functions.

This makes the code more readable in an upcoming commit.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoodp-util: Change user_action_cookie from struct to union.
Ben Pfaff [Fri, 4 May 2012 21:56:40 +0000 (14:56 -0700)]
odp-util: Change user_action_cookie from struct to union.

An upcoming commit will introduce a new type and a new use for the
additional members.  It seems cleanest to use a union, rather that using
the existing members multiple ways.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Clean up and centralize sFlow logic.
Ben Pfaff [Wed, 9 May 2012 16:36:08 +0000 (09:36 -0700)]
ofproto-dpif: Clean up and centralize sFlow logic.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoodp-util: Use switch for checking values of an enum.
Ben Pfaff [Wed, 2 May 2012 21:23:28 +0000 (14:23 -0700)]
odp-util: Use switch for checking values of an enum.

The compiler warns when we forget to handle some value of an enum, whereas
it won't for a sequence of 'if' statements.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoodp-util: Fix typo in comment.
Ben Pfaff [Wed, 2 May 2012 21:22:17 +0000 (14:22 -0700)]
odp-util: Fix typo in comment.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Minor style fix.
Ben Pfaff [Thu, 3 May 2012 22:32:52 +0000 (15:32 -0700)]
ofproto-dpif: Minor style fix.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto: Don't limit flows in OpenFlow tables by default.
Ben Pfaff [Fri, 4 May 2012 21:52:17 +0000 (14:52 -0700)]
ofproto: Don't limit flows in OpenFlow tables by default.

This bug is ordinarily not exposed because bridge_configure_tables() in
bridge.c configures the max number of flows soon after an ofproto is
created.  But an upcoming commit will make construct() in ofproto-dpif.c
try to create some built-in flows before bridge gets control, so we need
to allow creating flows immediately upon initialization.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agorhel: Add timeouts to network scripts.
Brian Kruger [Wed, 9 May 2012 16:13:42 +0000 (09:13 -0700)]
rhel: Add timeouts to network scripts.

If the daemon(s) aren't running for whatever reason, the RHEL ovs
ifup/ifdown scripts don't take that into account and an attempt to reboot a
system could take forever. (literally. endless loop!)  Here are a couple of
patches (one of ifup, one for ifdown) to add timeouts (10 seconds), because
it runs per interface you have configured and that could take awhile to
reboot a system if needed.

Signed-off-by: Brian Kruger <bkruger+ovsdev@gmail.com>
[blp@nicira.com fixed up a conflict against master]
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodebian: Remove --no-wait option from the ifupdown script.
Gurucharan Shetty [Wed, 9 May 2012 16:55:53 +0000 (09:55 -0700)]
debian: Remove --no-wait option from the ifupdown script.

Using the --no-wait option in the ifupdown script creates a
race condition where-in the network devices may not yet be created
after ovs-vsctl returns successfully.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
12 years agoPrepare for post-1.7.0 (1.7.90).
Justin Pettit [Tue, 8 May 2012 18:11:33 +0000 (11:11 -0700)]
Prepare for post-1.7.0 (1.7.90).

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoPrepare for 1.7.
Justin Pettit [Mon, 7 May 2012 19:09:02 +0000 (12:09 -0700)]
Prepare for 1.7.

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoovs-ofctl: Use port description stat to look up ports when necessary.
Justin Pettit [Mon, 7 May 2012 17:33:34 +0000 (10:33 -0700)]
ovs-ofctl: Use port description stat to look up ports when necessary.

Not all ports may fit in a Features Reply, so if that's the case, then
use the new port description stat message for looking up ports.

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoovs-ofctl: Support large number of ports with "show" command.
Justin Pettit [Sat, 5 May 2012 00:27:16 +0000 (17:27 -0700)]
ovs-ofctl: Support large number of ports with "show" command.

OpenFlow Features Reply messages prior to 1.3 can give users the wrong
impression about how many ports are on the system.  With this commit,
the command will check if the number of ports may be truncated.  If so,
it will send a Port Description stats request to get the complete list
and ignore the Features Reply port list.

Bug #11087

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoofp-util: Factor out determining physical port size.
Justin Pettit [Tue, 8 May 2012 07:01:11 +0000 (00:01 -0700)]
ofp-util: Factor out determining physical port size.

There are a few places where we determine the size of a physical port
structure based on the OpenFlow version.  Use a helper function to do
that.

Suggested-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoofp-util: Add ofputil_switch_features_ports_trunc function.
Justin Pettit [Sat, 5 May 2012 00:19:26 +0000 (17:19 -0700)]
ofp-util: Add ofputil_switch_features_ports_trunc function.

Add function to determine whether the max number of ports are contains
in a Features Reply.  If so, it removes the port list, since it may be
incomplete.  This function will be used in a later commit.

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoofproto: Add support for OF1.3 port description multipart message.
Justin Pettit [Fri, 4 May 2012 21:42:04 +0000 (14:42 -0700)]
ofproto: Add support for OF1.3 port description multipart message.

OpenFlow 1.0 is limited to displaying 1364 ports in the Features Reply
message, and there is no other way to get consolidated port information.
OpenFlow 1.3 adds a new port description multipart message
(OFPMP_PORT_DESC) that is not limited by size.  This commit adds support
through the OpenFlow 1.0 stats mechanism, since they have complimentary
enum values.

Bug #11040

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoOpenFlow: Move stats message enums into "common".
Justin Pettit [Wed, 2 May 2012 23:35:49 +0000 (16:35 -0700)]
OpenFlow: Move stats message enums into "common".

We will be adding some OpenFlow 1.3 stats (aka multipart request)
messages to our OpenFlow 1.0 implementation.  As such, move the
definition of those message numbers to the common location.

Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agodatapath: Validation of IPv6 set port action uses IPv4 header
Pravin B Shelar [Tue, 8 May 2012 00:04:57 +0000 (17:04 -0700)]
datapath: Validation of IPv6 set port action uses IPv4 header

When the kernel validates set TCP/UDP port actions, it looks at
the ports in the existing flow to make sure that the L4 header exists.
However, these actions always use the IPv4 version of the struct.
Following patch fixes this by checking for flow ip protocol first.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
Bug #11205

12 years agoofp-util: Treat a packet-out in_port of OFPP_CONTROLLER as OFPP_NONE.
Ben Pfaff [Mon, 7 May 2012 19:30:54 +0000 (12:30 -0700)]
ofp-util: Treat a packet-out in_port of OFPP_CONTROLLER as OFPP_NONE.

Some OpenFlow 1.0 controllers incorrectly use OPFP_CONTROLLER as the
in_port in packet-out messages, when OFPP_NONE is their intent.  Until now,
Open vSwitch has rejected such requests with an error message.  This commit
makes Open vSwitch instead treat OFPP_CONTROLLER the same as OFPP_NONE for
compatibility with those controllers.

(Also, as of this writing, OpenFlow 1.0.1 appears to be changing the port
to use from OFPP_NONE to OFPP_CONTROLLER.)

Suggested-by: Rob Sherwood <rob.sherwood@bigswitch.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Accept OpenFlow-like flows in "ofproto/trace".
Ben Pfaff [Fri, 4 May 2012 17:05:44 +0000 (10:05 -0700)]
ofproto-dpif: Accept OpenFlow-like flows in "ofproto/trace".

Until now it has not been possible to directly trace flows that include
register values and other concepts that are not in datapath flows, because
"ofproto/trace" requires a flow in the format output by "ovs-dpctl
dump-flows", which doesn't know anything about registers.  This commit
makes it possible to instead specify an OpenFlow-like flow.

Feature #10084.
Requested-by: Igor Ganichev <iganichev@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofp-parse: New function parse_ofp_exact_flow().
Ben Pfaff [Fri, 4 May 2012 16:52:37 +0000 (09:52 -0700)]
ofp-parse: New function parse_ofp_exact_flow().

This function parses a flow rather than a cls_rule.  It will be useful
for "ofproto/trace", which currently requires an odp_flow and thus can't
accept values for registers and other concepts that don't exist in the
kernel.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofp-util: Avoid ovs_fatal() in ofputil_parse_key_value().
Ben Pfaff [Fri, 27 Apr 2012 16:41:02 +0000 (09:41 -0700)]
ofp-util: Avoid ovs_fatal() in ofputil_parse_key_value().

ofputil_parse_key_value() is safe to use from a process that must not abort
except in one case: where the argument contains unbalanced parentheses.
This commit eliminates that call to ovs_fatal(), instead just treating the
end of the string as closing all nested parentheses.

It would be better to propagate the error condition upward, but I'm not
sure that it's worth it just for this one corner case.

The purpose of this commit is to make it possible to use this function
indirectly within the "ofproto/trace" implementation, which must never
abort ovs-vswitchd.  (All the current callers are within ovs-ofctl and
other utilities.)

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto-dpif: Factor out VLAN splinter flow adjustment into new function.
Ben Pfaff [Fri, 27 Apr 2012 15:47:59 +0000 (08:47 -0700)]
ofproto-dpif: Factor out VLAN splinter flow adjustment into new function.

An upcoming commit will add a new user.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodebian: Synchronize debian/changelog with downstream Debian changelog.
Ben Pfaff [Mon, 7 May 2012 16:34:12 +0000 (09:34 -0700)]
debian: Synchronize debian/changelog with downstream Debian changelog.

Reported-by: Greg Dahlman <gdahlman@hotmail.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodebian: Add network integration scripts.
Gurucharan Shetty [Fri, 4 May 2012 02:23:16 +0000 (19:23 -0700)]
debian: Add network integration scripts.

Add scripts that will allow Open vSwitch bridges and ports to be
configured through /etc/network/interfaces.  This patch follows a
very similar style as OVS network integration for rhel.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
12 years agodatapath: Release rtnl_lock if ovs_vport_cmd_build_info() failed
Ansis Atteka [Thu, 3 May 2012 20:48:40 +0000 (13:48 -0700)]
datapath: Release rtnl_lock if ovs_vport_cmd_build_info() failed

This patch fixes a possible lock-up bug where rtnl_lock might not
get released.

Acked-by: Jesse Gross <jesse@nicira.com>
Signed-off-by: Ansis Atteka <aatteka@nicira.com>
12 years agoGlobal replace of Nicira Networks.
Raju Subramanian [Wed, 2 May 2012 22:21:36 +0000 (15:21 -0700)]
Global replace of Nicira Networks.

Replaced all instances of Nicira Networks(, Inc) to Nicira, Inc.

Feature #10593
Signed-off-by: Raju Subramanian <rsubramanian@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofproto: Rate-limit STP status errors on non-existent ports.
Justin Pettit [Wed, 2 May 2012 17:20:07 +0000 (10:20 -0700)]
ofproto: Rate-limit STP status errors on non-existent ports.

As part of the bridge's main loop, it queries the STP status of all
ports.  If the port doesn't exist, log files can become filled with
warning messages.  This situation is very unusual, since system devices
do not normally disappear, but it's easy enough to rate-limit these
messages.

Bug #10936

Reported-by: Reid Price <reid@nicira.com>
Signed-off-by: Justin Pettit <jpettit@nicira.com>
12 years agoDESIGN: Document uses for flow cookies.
Ben Pfaff [Tue, 1 May 2012 23:24:09 +0000 (16:24 -0700)]
DESIGN: Document uses for flow cookies.

The paragraph near the end that starts out "However, unlike OpenFlow 1.1,
..." seems to correctly document OVS behavior, but it also seems like
pretty lousy behavior.  Justin says that he's going to fix it before we
put out an OVS release version with this behavior.

CC: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-ctl: Make "force-reload-kmod" warn when DHCP clients must be restarted.
Ben Pfaff [Tue, 1 May 2012 22:36:44 +0000 (15:36 -0700)]
ovs-ctl: Make "force-reload-kmod" warn when DHCP clients must be restarted.

This should make it more obvious when the admin needs to restart a DHCP
client (or other daemon).  Without this, unless the admin carefully reads
the documentation, the first notice he gets about a need to restart the
DHCP client can easily be when the lease expires and the machine drops off
the network.

Bug #5391.
Tested-by: Gurucharan Shetty <gshetty@nicira.com>
Suggested-by: Duffie Cooley <dcooley@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agotests: Fix typo in comment.
Ben Pfaff [Fri, 27 Apr 2012 20:32:33 +0000 (13:32 -0700)]
tests: Fix typo in comment.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-ofctl: Document padding in "note" actions.
Ben Pfaff [Tue, 1 May 2012 22:28:08 +0000 (15:28 -0700)]
ovs-ofctl: Document padding in "note" actions.

Reported-by: Paul Ingram <paul@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoofp-print: Add some more white space to flow dumps.
Ben Pfaff [Thu, 26 Apr 2012 22:54:54 +0000 (15:54 -0700)]
ofp-print: Add some more white space to flow dumps.

Before idle_age and hard_age were added, in the absence of timeouts there
was a space between the statistics for a flow and the start of the flow
match.  This restores that space.

Requested-by: Paul Ingram <paul@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-ofctl: Document importance of priorities.
Ben Pfaff [Mon, 30 Apr 2012 18:32:13 +0000 (11:32 -0700)]
ovs-ofctl: Document importance of priorities.

Multiple users have asked me about this.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agovswitch.xml: Document more details of CFM intervals.
Ben Pfaff [Mon, 30 Apr 2012 18:24:59 +0000 (11:24 -0700)]
vswitch.xml: Document more details of CFM intervals.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-appctl: Point to individual daemon manpages in docs.
Ben Pfaff [Mon, 30 Apr 2012 18:24:31 +0000 (11:24 -0700)]
ovs-appctl: Point to individual daemon manpages in docs.

Sometimes users seem surprised that appctl commands are documented.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agonetdev: Document use for get_etheraddr member of struct netdev_class.
Ben Pfaff [Mon, 30 Apr 2012 18:23:38 +0000 (11:23 -0700)]
netdev: Document use for get_etheraddr member of struct netdev_class.

This has confused developers adding hardware support, e.g.:
http://openvswitch.org/pipermail/dev/2012-April/016350.html

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoconnmgr: Log when controllers are added and removed.
Ben Pfaff [Mon, 30 Apr 2012 20:56:49 +0000 (13:56 -0700)]
connmgr: Log when controllers are added and removed.

Otherwise occasionally during debugging it can hard to figure out why a
controller connection seemed to drop for a while (when in fact it happened
because the configuration changed).

Suggested-by: Natasha Gude <natasha@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoINSTALL.Linux: Document use of "sparse" with Open vSwitch.
Ben Pfaff [Mon, 30 Apr 2012 19:59:11 +0000 (12:59 -0700)]
INSTALL.Linux: Document use of "sparse" with Open vSwitch.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agocfm: Avoid constructing log message that will be dropped by rate-limiting.
Ben Pfaff [Mon, 30 Apr 2012 20:01:43 +0000 (13:01 -0700)]
cfm: Avoid constructing log message that will be dropped by rate-limiting.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-bugtool: Add "ovs-vsctl show" output to bugtool.
Ben Pfaff [Mon, 30 Apr 2012 17:47:51 +0000 (10:47 -0700)]
ovs-bugtool: Add "ovs-vsctl show" output to bugtool.

The information output by "ovs-vsctl show" is a subset of that available
elsewhere in bugtool output, but it is human-readable instead of needing
to be processed through ovsdb-server or ovsdb-tool, so it is much more
convenient for basic diagnosis.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoovs-bugtool: Add "ovs-appctl coverage/show" output to bugtool.
Ben Pfaff [Fri, 27 Apr 2012 21:07:51 +0000 (14:07 -0700)]
ovs-bugtool: Add "ovs-appctl coverage/show" output to bugtool.

This can be useful for diagnosis.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agodebian: Install ovs-bugtool scripts by wildcard to openvswitch-common.
Ben Pfaff [Mon, 30 Apr 2012 17:29:45 +0000 (10:29 -0700)]
debian: Install ovs-bugtool scripts by wildcard to openvswitch-common.

Same for debian/copyright.

This reduces the number of files to update when we add bugtool plugins.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agoxenserver: Update Open vSwitch post upgrade instructions.
Gurucharan Shetty [Thu, 26 Apr 2012 17:57:47 +0000 (10:57 -0700)]
xenserver: Update Open vSwitch post upgrade instructions.

Currently, when we upgrade the userspace rpm for XenServer,
we print a message asking users to reboot the hypervisor.
This is not needed. The reboot of hypervisor is needed when
we upgrade the rpm containing the kernel module.  This
reboot can sometimes be avoided by running a
"service openvswitch force-reload-kmod".

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
12 years agometa-flow: Correctly set destination MAC in mf_set_flow_value().
Ben Pfaff [Fri, 27 Apr 2012 15:45:10 +0000 (08:45 -0700)]
meta-flow: Correctly set destination MAC in mf_set_flow_value().

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agorconn: Simplify rconn_send() semantics.
Ethan Jackson [Thu, 26 Apr 2012 04:12:18 +0000 (21:12 -0700)]
rconn: Simplify rconn_send() semantics.

Before this patch, rconn_send() would delete 'b' on success, and
not on error.  This is confusing and error-prone.  This patch
causes rconn_send() to always delete 'b'.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
12 years agonicira-ext: Support masking of nd_target field
Ansis Atteka [Wed, 25 Apr 2012 22:48:40 +0000 (15:48 -0700)]
nicira-ext: Support masking of nd_target field

This commit adds support to specify a mask in CIDR format for
the nd_target field.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
12 years agocoverage: Make ovs-appctl command more useful and less alarming.
Ben Pfaff [Fri, 20 Apr 2012 21:09:30 +0000 (14:09 -0700)]
coverage: Make ovs-appctl command more useful and less alarming.

I've had a few complaints that ovs-vswitchd logs its coverage counters
at WARN level, but this is mainly wrong: ovs-vswitchd only logs coverage
counters at WARN level when the "coverage/log" command is used through
ovs-appctl.  This was even documented.

The reason to log at such a high level was to make it fairly certain that
these messages specifically requested by the admin would not be filtered
out before making it to the log.  But it's even better if the admin just
gets the coverage counters as a reply to the ovs-appctl command.  So that
is what this commit does.

This commit also improves the documentation of the ovs-appctl command.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agocoverage: Rate-limit logging coverage information.
Ben Pfaff [Fri, 20 Apr 2012 20:51:13 +0000 (13:51 -0700)]
coverage: Rate-limit logging coverage information.

I'd always assumed that the exponentially weighted moving average code in
timeval was enough rate-limiting, but I actually encountered a pathological
case some time ago that forced this coverage information to print once a
second or so, which seems too often.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agotimeval: Rate-limit logging rusage information.
Ben Pfaff [Fri, 20 Apr 2012 20:43:54 +0000 (13:43 -0700)]
timeval: Rate-limit logging rusage information.

I'd always assumed that the exponentially weighted moving average code
here was sufficient rate-limiting, but I actually encountered a
pathological case some time ago that forced this rusage information to
print once a second or so, which seems too often.

Signed-off-by: Ben Pfaff <blp@nicira.com>
12 years agocfm: Log fault status changes more informatively.
Ben Pfaff [Fri, 20 Apr 2012 21:52:16 +0000 (14:52 -0700)]
cfm: Log fault status changes more informatively.

Until now, fault status changes just log the new status.  This means that
the administrator has to find two consecutive status change messages to
see what actually changed.

This commit changes the log message format to prefix new faults with '+'
and faults that disappeared with '-'.  Existing faults that are still
present are not prefixed.

This also simplifies the code a little by making ds_put_cfm_fault()
put spaces before fault names instead of after.

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