2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 14:25:26 +00:00
Commit Graph

1150 Commits

Author SHA1 Message Date
Ansis Atteka
200940deb7 ovs-save: Add "dev" keyword before interface names in the ip commands
The "service force-reload-kmod" command did not work properly, if there
was a bridge, which name was a prefix of string "broadcast" (e.g. "br").

To reproduce:
ovs-vsctl add-br br
service openvswitch-switch force-reload-kmod

This patch will make sure that the generated ip commands are clearly
interpretable by the ip utility.

Issue #9841
Signed-off-by: Ansis Atteka <aatteka@nicira.com>
2012-04-16 10:08:20 -07:00
Ben Pfaff
94fbe1aae2 ovsdb-idl: Improve ovsdb_idl_txn_increment() interface.
The previous interface was just bizarre.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-12 08:28:13 -07:00
Ben Pfaff
854a94d9d2 ovsdb-idl: Simplify transaction retry.
Originally the IDL transaction state machine had a return value
TXN_TRY_AGAIN to signal the client to wait for a change in the database and
then retry its transaction.  However, this logic was incomplete, because
it was possible for the database to change before the reply to the
transaction RPC was received, in which case the client would wait for a
further change.  Commit 4fdfe5ccf8 (ovsdb-idl: Prevent occasional hang
when multiple database clients race.) fixed the problem by breaking
TXN_TRY_AGAIN into two status codes, TXN_AGAIN_WAIT that meant to wait for
a further change and TXN_AGAIN_NOW that meant that a change had already
occurred so try again immediately.

This is correct enough, but it is more complicated than necessary.  It is
simpler and just as correct to use a single "try again" status that
requires the client to wait for a change relative to the database contents
*before* the transaction was committed.  This commit makes that change.
It also changes ovsdb_idl_run()'s return type from bool to void because
its return type is hardly useful anymore.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-12 08:19:01 -07:00
Arun Sharma
a2af1e9dd9 bugtool - Collect version information for all running Open vSwitch daemons.
This is an improvement in {ovs|xen}-bugtool archive output to determine the
version which was running for all the OVS daemons. It is implemented as a
plugin which internally calls "ovs-appctl -t <daemon> version" command for
daemons whose pid file is present in /var/run/openvswitch directory.

Feature #10383
Signed-off-by: Arun Sharma <arun.sharma@calsoftinc.com>
[blp@nicira.com updated debian/copyright.in]
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-05 13:01:51 -07:00
Ben Pfaff
e49190c493 Fix minor memory leaks found by valgrind.
All of these leaks are in normally short-lived programs, so none of them
is very important.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-28 14:54:48 -07:00
Ben Pfaff
eaa67ba8d5 Avoid possibly including an old vswitch-idl.h.
Codes that uses #include "vswitch-idl.h" can get an older version of this
header, because this header file moved from vswitchd/ to lib/ and the
older generated file might still be present.

This helps out two ways:

     * "make clean" will delete the generated files from their old
       locations.

     * Use #include "lib/vswitch-idl.h" to explicitly avoid including the
       files from their old locations.

Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-27 15:57:52 -07:00
Simon Horman
2e0525bcf5 Add error codes for Open Flow v1.2
* Where Open Flow 1.2 breaks apart error codes defined
  in previous versions, provide all new definitions to
  previous versions and map the numeric error code to
  the first first definition supplied in ofp-errors.h.
  The case handled so far is:
  OFPERR_OFPBIC_BAD_EXP_TYPE -> { OFPERR_OFPBIC_BAD_EXPERIMENTER,
                                  OFPERR_OFPBIC_BAD_EXP_TYPE }

* Where Open Flow 1.2 adds error codes that were previously
  defined as Nicira extension errors define the later in terms
  of the new codes.

Signed-off-by: Simon Horman <horms@verge.net.au>
[blp@nicira.com added better error checking in extract-ofp-errors, added
 unit tests, miscellaneous cleanup]
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Simon Horman <horms@verge.net.au>
2012-03-27 09:17:40 -07:00
Raju Subramanian
42d89d2a61 ovs-bugtool: Add ability to prioritize files by date.
When size limit is reached in the middle of processing a dir,
the report ends up containing oldest files. This change adds
an optional param in the plugin to prioritize newer files.

Feature #9937
Requested-by: Ronald Lee <rlee@nicira.com>
Signed-off-by: Raju Subramanian <rsubramanian@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-26 15:41:14 -07:00
Mehak Mahajan
f125905cdd Allow configuring DSCP on controller and manager connections.
The changes allow the user to specify a separate dscp value for the
controller connection and the manager connection. The value will take
effect on resetting the connections. If no value is specified a default
value of 192 is chosen for each of the connections.

Feature #10074
Requested-by: Rajiv Ramanathan <rramanathan@nicira.com>
Signed-off-by: Mehak Mahajan <mmahajan@nicira.com>
2012-03-23 18:13:08 -07:00
Ben Pfaff
5341d04613 ovs-vsctl: Allow "fake bridges" to be created for VLAN 0.
A fake bridge for VLAN 0 is useful, because it provides a way to create
access ports for VLAN 0.  There is no good reason to prevent it.

NIC-464.
Reported-by: Rob Hoes <Rob.Hoes@citrix.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-20 15:47:36 -07:00
Ethan Jackson
6e037e3ca6 idl: Move vswitch-idl to libopenvswitch.
This is cleaner then having multiple programs build the idl
independently.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-03-19 10:52:53 -07:00
Ben Pfaff
8a07709cb8 configure: Remove --with-build-number.
From early days, Nicira used the --with-build-number option to configure to
stamp our internal builds.  We've since switched to another scheme, so
this option is obsolete.

Good riddance.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-19 10:07:09 -07:00
Ethan Jackson
b5fcae5027 ovs-vsctl: Clarify br-exists usage.
Requested-by: Niklas Andersson <nandersson@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-03-15 11:48:22 -07:00
Ben Pfaff
37d034580a Use pwd in place of $PWD, treewide.
The Autoconf manual says:

     Posix 1003.1-2001 requires that `cd' and `pwd' must update the
     `PWD' environment variable to point to the logical name of the
     current directory, but traditional shells do not support this.
     This can cause confusion if one shell instance maintains `PWD' but
     a subsidiary and different shell does not know about `PWD' and
     executes `cd'; in this case `PWD' points to the wrong directory.
     Use ``pwd`' rather than `$PWD'.

so this commit replaces all uses of $PWD by `pwd`.

Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-13 09:34:55 -07:00
Ben Pfaff
d3e565cee9 ovs-pki: Implement --version option.
Reported-by: Gurucharan Shetty <gshetty@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-12 09:28:48 -07:00
Chris Wright
9b80f761be datapath: omit _mod from module names
This renames the datapath modules:

  openvswitch_mod -> openvswitch
  brcompat_mod -> brcompat

The first makes the module name consistent with upstream, and the latter
is just for internal consistency.  This makes tools, and documentation
refer to a common module name regardless if it's coming from upstream
linux or built from datapath/ as part of a local build.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Jesse Gross <jesse@nicira.com>
2012-03-09 11:20:54 -08:00
Ben Pfaff
fd0aa9ead1 ovs-ofctl: Make "barrier" output reproducible for testing.
The "ofproto - asynchronous message control" test had a race in which
the "send: OFPT_BARRIER_REQUEST" message could get printed in different
places because there was nothing to ensure that messages from the switch
were printed before messages sent to the switch, even though the actual
ordering of the messages was predictable.  This fixes the problem by not
printing a message at all when the barrier request is sent.

Bug #10049.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-07 14:47:00 -08:00
Ben Pfaff
9e1fd49b0c Abstract everything that uses ofp_phy_port, add OF1.1 support.
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-07 14:05:11 -08:00
Ben Pfaff
5293a2e145 Break OFPT_* constants into common value and 1.0- and 1.1-specific values.
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-07 14:05:08 -08:00
Ben Pfaff
87ea5e5e26 Begin breaking openflow-1.0.h into common and version-specific definitions.
The intention is that, as each OpenFlow 1.1 and 1.2 feature is added to Open
vSwitch, the corresponding protocol definitions will be broken up this way:

  - Definitions that are the same in OF1.0 and OF1.1 will retain the "OFP"
    or "ofp" prefix and move to openflow-common.h.

  - Definitions that are specific to OF1.0 will be renamed with an "OFP10"
    or "ofp10" prefix and stay in openflow-1.0.h.

  - Definitions that are specific to OF1.1 or to OF1.1 and OF1.2 will be
    renamed with an "OFP11" or "ofp11" prefix and move to openflow-1.1.h.

  - Definitions that are specific to OF1.2 will be renamed with an "OFP12"
    or "ofp12" prefix and move to openflow-1.2.h.

This commit starts this process with some basic OpenFlow definitions.

Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-07 14:05:04 -08:00
Ben Pfaff
27527aa09c Introduce ofputil_protocol, to abstract the protocol in use on a connection.
Open vSwitch already handles a few different protocol variations, but it
does so in a nonuniform manner:

  - OpenFlow 1.0 and NXM flow formats are distinguished using the NXFF_*
    constant values from nicira-ext.h.

  - The "flow_mod_table_id" feature setting is maintained in ofproto as
    part of an OpenFlow connection's (ofconn's) state.

There's no way to easily communicate this state among components.  It's
not much of a problem yet, but as more protocol support is added it seems
better to have an abstract, uniform way to represent protocol versions and
variants.  This commit implements that by introducing a new type
"enum ofputil_protocol".  Each ofputil_protocol value represents a variant
of a protocol version.  Each value is a separate bit, so a single enum
can also represent a set of protocols, which is often useful as well.

Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-07 13:59:02 -08:00
Ben Pfaff
31c6fcd7d9 ovs-ofctl: Avoid segfault upon receive error for "monitor", "snoop".
Bug #10062.
Reported-by: James Schmidt <jschmidt@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-07 13:59:01 -08:00
Ethan Jackson
f4ec6ff479 unixctl: Timeout unit tests instead of hanging.
We've seen some unixctl tests hang indefinitely which makes them
difficult to debug.  ovs-appctl and appctl.py calls to timeout
instead.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-03-07 12:50:15 -08:00
Ethan Jackson
bde9f75de1 unixctl: New JSON RPC back-end.
The unixctl library had used the vde2 management protocol since the
early days of Open vSwitch.  As Open vSwitch has matured, several
Python daemons have been added to the code base which would benefit
from a unixctl implementations.  Instead of implementing the old
unixctl protocol in Python, this patch changes unixctl to use JSON
RPC for which we already have an implementation in both Python and
C.  Future patches will need to implement a unixctl library in
Python on top of JSON RPC.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-02-21 00:02:20 -08:00
Ben Pfaff
a7349929fb Add ability to direct "packet-in"s to particular controllers.
Nicira's controllers are somewhat heterogeneous, so that particular
"packet-in" messages should be directed to particular controllers.  This
new Nicira extension action allows designating a controller or controllers
to receive the "packet-in" using a 16-bit integer ID.

The new NXAST_CONTROLLER action also specifies the "reason" code to include
in the "packet-in" message.  This is particularly useful for simulating a
"no-match" "packet-in" using a rule.

Feature #8946.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-27 13:21:44 -08:00
Ben Pfaff
d8256121c4 nlmon: Also print ifinfomsg flags.
This was useful for observing IFF_RUNNING change as I removed and inserted
cables.

(nlmon is a test utility that doesn't get installed.)

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-27 09:33:51 -08:00
Ben Pfaff
0c9560b7de ovs-ofctl: Add --timestamp option to print time for each received packet.
Suggestion #9347.
Suggested-by: Alan Shieh <ashieh@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-27 09:30:28 -08:00
Ben Pfaff
2a3e30b27d vlog: Be more liberal in syntax for -v and vlog/set.
Until now, the argument to -v and vlog/set has had to take the form
"module:facility:level".  I can never remember the required order, so this
commit switches to allowing any order.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-27 09:25:04 -08:00
Ben Pfaff
91005f0313 docs: Consistently format each form of an option on a separate line.
Most options were formatted like this in the manpage:

    -o ARGUMENT
    --option ARGUMENT

but a few were formatted like this:

    -o ARGUMENT | --option ARGUMENT

or even as:

    -o, --option ARGUMENT

The former seems least confusing to me, so switch all of the documentation
to this format.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-27 09:24:15 -08:00
Ben Pfaff
0e553d9c10 Implement new "fin_timeout" action and "learn" feature.
The "learn" action can create matching return flows.  If those have a long
timeout then it's a good idea to have a way to notice when in fact the
flows have terminated.  This new action and matching "learn" feature
provides that way.

Feature #8603.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-15 10:37:03 -08:00
Simon Horman
bcb9094323 ovs-ofctl: Clarify that tun_id will not be nonzero unless the key is nonzero
The Open vSwtich datapath's GRE implementation does not appear to make a
distinction between no key present and a zero key present, which appears to
be consistent with the (other) Linux implementation of GRE. Make this a
little clearer in the documentation.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Jesse Gross <jesse@nicira.com>
2012-02-13 10:41:08 -08:00
Simon Horman
c8afb03961 ovs-ofctl: Remove documentation that ovs-ofctl uses TUN_ID_FROM_COOKIE
My reading of commit b78f6b77 ("Remove support for obsolete
"tun_id_from_cookie" extension.") is that no part of Open vSwitch,
including ovs-ofctl, uses the TUN_ID_FROM_COOKIE extension any more.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-13 10:16:45 -08:00
Ben Pfaff
bb638b9a18 ovs-ofctl: New "ofctl/barrier" unixctl command.
This will be useful in upcoming unit tests for ensuring that all
asynchronous messages due to previous actions have arrived.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-09 13:31:32 -08:00
Ben Pfaff
1e1d00a503 ovs-ofctl: New "ofctl/set-output-file" unixctl command.
This will be useful in unit tests, to allow switching output to a new file
during "ovs-ofctl monitor" runtime.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-09 13:31:32 -08:00
Ben Pfaff
96761f583f ovs-ofctl: New "ofctl/send" unixctl command.
I intend to use this in upcoming unit tests.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-09 13:30:53 -08:00
Ben Pfaff
0c3d5fc89a ovs-ofctl: Add "packet-out" command.
I don't expect this to be widely useful.  An upcoming commit will add a
use in unit tests.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-09 13:23:37 -08:00
Ben Pfaff
a993007bee Add support for parsing and printing OFPFF_* flags.
I intend to use OFPFF_SEND_FLOW_REM in upcoming unit tests.  I threw in
OFPFF_CHECK_OVERLAP also because it didn't cost me anything.  I omitted
parsing support for OFPFF_EMERG because we opposed its inclusion from the
start and it was removed from OpenFlow 1.2.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-09 13:23:36 -08:00
Ben Pfaff
fdb3539e01 ovs-ofctl: Allow priority and timeout to be specified on mod-flows.
These options do have an effect if the mod-flows command creates a new
flow.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-09 13:23:36 -08:00
Ben Pfaff
f27f21341a Add information about time left before timeouts to flow dumps.
The "learn" action is useful for MAC learning, but until now there has been
no way to find out through OpenFlow how much time remains before a MAC
learning entry (a learned flow) expires.  This commit adds that ability.

Feature #7193.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-07 15:48:53 -08:00
Ben Pfaff
828c72d0fc ovs-ofctl: Fix minor memory leaks.
Found by valgrind.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-03 12:44:45 -08:00
Ben Pfaff
edcbeb4d42 ovs-ofctl: Fix typos in manpage.
Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-03 09:23:44 -08:00
Ben Pfaff
73f3356323 Add support for bitwise matching on TCP and UDP ports.
Bug #8827.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-02 16:46:22 -08:00
Ben Pfaff
7d0c5973d5 daemon: New function daemon_save_fd() to preserve fds across detach.
This eliminates a kluge that was duplicated in three different daemons.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-02 16:26:53 -08:00
Ben Pfaff
1dac118cdf ovs-ofctl: Update usage message.
Some commands weren't mentioned.  The "invalid_ttl" option to "monitor"
was missing.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-02 12:54:41 -08:00
Ben Pfaff
a554628c45 ovs-ofctl: Fix typo in manpage.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-01 14:59:45 -08:00
Ben Pfaff
254750ceb2 Add support for limiting the number of flows in an OpenFlow flow table.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-02-01 14:15:17 -08:00
Gurucharan Shetty
b5d29991cc vlog: Change the default timestamp structure.
Change the default timestamp for console and file logs to
UTC in a format that satisfies timestamp requirements in RFC 5424.

Also, add the ability for ovs-appctl to log timestamps in UTC.

Bug #9052.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2012-01-27 16:56:12 -08:00
Gurucharan Shetty
6b8558f867 ovs-appctl: Document the facility "file" option.
The ovs-appctl man page has missing information about the
facility - "file". This patch adds that information.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
2012-01-27 16:55:52 -08:00
Ben Pfaff
ca8526e015 ovs-ofctl: Fix "snoop" command.
The vconn that "snoop" opens does not process and reply to requests, so
sending a request to set the packet-in format will hang forever, which
means that "snoop" never actually prints any of the traffic that it
receives.

Bug #9346.
Reported-by: Alan Shieh <ashieh@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-01-27 09:22:41 -08:00
Ben Pfaff
96989efc87 ovs-ofctl: Fix typo in comment.
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-01-26 16:06:13 -08:00