2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00
Commit Graph

616 Commits

Author SHA1 Message Date
Raju Subramanian
e0edde6fee 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>
2012-05-02 17:08:02 -07:00
Ben Pfaff
2dc7590de5 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>
2012-05-01 15:36:44 -07:00
Ben Pfaff
e063192769 ovs-ofctl: Document padding in "note" actions.
Reported-by: Paul Ingram <paul@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-05-01 15:28:08 -07:00
Ben Pfaff
4530afbaf4 ovs-ofctl: Document importance of priorities.
Multiple users have asked me about this.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-05-01 14:29:39 -07:00
Ben Pfaff
300d3e95f9 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>
2012-05-01 14:29:37 -07:00
Ben Pfaff
e09616c6c9 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>
2012-04-30 11:38:59 -07:00
Ben Pfaff
e2dfe6d3a8 ovs-bugtool: Add "ovs-appctl coverage/show" output to bugtool.
This can be useful for diagnosis.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-30 11:38:59 -07:00
Ansis Atteka
47284b1fc6 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>
2012-04-26 15:22:48 -07:00
Ben Pfaff
a341ee57ee ovs-vsctl: Speed up port management operations with many ports.
This makes a sequence of 10,000 "add-port" operations on a single ovs-vsctl
command line about 4X faster.  It makes a sequence of 10,000 "del-port"
operations on a single command line over 2X faster.

It works by not repopulating the cache of relationships between bridges,
ports, and interfaces after most operations, instead updating them
incrementally in-place.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-19 14:27:44 -07:00
Ben Pfaff
286a2e825b ovs-vsctl: Remove 'ctrl', 'n_ctrl' from struct vsctl_bridge.
Only the controller commands used these members and they didn't even help
those commands very much.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-19 14:27:43 -07:00
Ben Pfaff
753cb20f03 ovs-vsctl: Remove 'fail_mode' member from struct vsctl_bridge.
It's only used in cmd_get_fail_mode(), which can easily look it up for
itself, so there's no benefit to storing it in every vsctl_bridge record.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-19 14:27:40 -07:00
Ben Pfaff
5ce5a6b57c ovs-vsctl: Merge struct vsctl_info into struct vsctl_context.
To speed up management operations with many ports, we need to preserve the
cache of bridges, ports, and interfaces from one operation to the next.
One necessary step is to push the "struct vsctl_info" that did the caching
up from the individual functions that need it into a more global structure.
This commit does that, merging it into struct vsctl_context.

This commit also modifies do_vsctl(), the top-level control code in
ovs-vsctl, to keep this part of the vsctl_context unchanged from running
one command to the next.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-19 14:27:23 -07:00
Ben Pfaff
7da6c3a690 ovs-vsctl: Verify VLAN bridge controllers in cmd_get_controller().
A VLAN bridge uses its parent's controllers, so checking the controller
should verify the parent's set of controllers.

The change to verify_controllers() isn't necessary; it just deletes
the check for a null 'bridge' because verify_controllers() can no
longer be called with a null 'bridge'.

This fixes a bug, but it is unlikely to ever have caused a real problem for
users.

Found by inspection.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-19 12:55:01 -07:00
Ben Pfaff
d655c728e3 ovs-vsctl: Verify correct record in cmd_get_fail_mode() for VLAN bridges.
A VLAN bridge uses its parent's fail-mode, so checking the fail-mode should
verify the parent's bridge record.

This fixes a bug, but it is unlikely to ever have caused a real problem for
users.

Found by inspection.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-19 12:53:47 -07:00
Ben Pfaff
72d32ac0b3 netlink-socket: Make caller provide message receive buffers.
Typically an nl_sock client can stack-allocate the buffer for receiving
a Netlink message, which provides a performance boost.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-04-18 20:28:48 -07:00
Ansis Atteka
8d25d9a254 ovs-test: Enhancements to the ovs-test tool
-Implemented support for ovs-test client, so that it could automatically
spawn an ovs-test server process from itself. This reduces the number of
commands the user have to type to get tests running.
-Automated creation of OVS bridges and ports (for VLAN and GRE tests), so that
user would not need to invoke ovs-vsctl manually to switch from direct, 802.1Q
and GRE tests.
-Fixed some pylint reported warnings.
-Fixed ethtool invocation so that we always try to query the physical interface
to get the driver name and version.
-and some others enhancements.

The new usage:
Node1:ovs-test -s 15531
Node2:ovs-test -c 127.0.0.1,1.1.1.1 192.168.122.151,1.1.1.2 -d -l 125 -t gre

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
2012-04-18 14:56:01 -07:00
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