Age | Commit message (Collapse) | Author |
|
An upcoming commit will need to expose the concept of a database session
to the execution engine, to allow the execution engine to query the locks
held by the session. This commit prepares for that by making sessions a
publicly visible data structure.
|
|
Inbound managers (e.g. "ptcp:") can have multiple active connections, but
the database schema doesn't allow us to report the status of more than one
at a time. This commit adds a status key-value pair that, when there is
more than one active connection, reports the number that are active. This
at least helps to clarify the issue.
|
|
ovsdb_jsonrpc_server keeps track of its remotes in a shash indexed on the
remote name specified in the database Manager record, but
ovsdb_jsonrpc_server_get_remote_status() added the name returned by
jsonrpc_session_get_name() to the shash returned to the ovsdb-server code.
If that name happened to be different (which is entirely possible because
the latter returns a "canonicalized" name in some cases) then the
ovsdb-server code couldn't find it. Furthermore, if an inbound (e.g.
"ptcp:") Manager got a connection and then lost it, the status info in
that Manager never got updated to reflect that, because the code considered
that that "couldn't happen" and didn't bother to do any updates.
This commit simplifies the logic. Now ovsdb-server just asks for a single
status record at a time, using the name that is indexed in the
ovsdb_jsonrpc_server shash, avoiding that whole issue.
|
|
In practice these arguments are almost always the defaults, so this change
makes ovsdb-client much more usable interactively.
|
|
In practice the default location is the only one used, so we might as well
make it easy.
|
|
In practice the default location is the only one used, so we might as well
make it easier.
|
|
This will be used in upcoming patches.
|
|
.TP's argument is an optional indentation width, not a string. The string
goes on the next line.
vswitch.xml didn't actually cause .TQ to be used before, so this wasn't a
problem, but an upcoming commit does add a use, so this commit fixes the
problem in advance.
|
|
Until now, pstream_get_name() would just return "punix" for passive Unix
streams. This is uninformative and probably just a mistake, so this
commit switches to using the full name passed in, e.g.
"punix:/path/to/socket".
|
|
When development for a new long-term release is started, we haven't
typically updated the version string. This means that version numbers
used in binaries generated on this branch tend to lag behind "current"
stable releases. We considered using a "pre" string in the version
(eg, "1.2.0-pre1") but this causes some pain for RPMs. Instead, we
will now use "90" as the version's bug-fix number to indicate that this
will form a new release.
For example, the current stable series is "1.1.x" in the "branch-1.1"
branch, so the master branch will be labeled "1.1.90" in anticipation
that it will be the basis for the "1.2.x" series. Code in "branch-1.1"
will have the expected version numbers (ie, 1.1.0, 1.1.1, 1.1.2, etc)
and versions in-branch will lag slightly before an official release.
Suggested-by: Ben Pfaff <blp@nicira.com>
|
|
Commit 211b05b5 "debian: Modernize use of dh_install" caused build failures
in clean environments because debian/ovsdbmonitor.install now installed
files that were never created in such an environment. It didn't cause a
build failure in my own testing because I still had old files around.
This fixes the problem.
It seems to be necessary to run "make install" once for each of binary-arch
and binary-indep, because dh_prep always deletes debian/tmp. It is
logically not necessary but I don't see a clean and robust way to avoid it.
|
|
Until now, fields writable by actions defined in terms of NXM field
numbers were special cases, but commit b3e9b2eda9a "ofproto: Optimize
datapath actions" had the side effect of making it easy to modify
additional fields. This commit takes advantage of that to make
modifiable all the fields that the kernel datapath supports modifying.
We could make other fields modifiable by adding more support to the kernel
datapath.
|
|
This adds support for bridge compatibility to the generic Open vSwitch
init scripts and to the Debian packaging.
See https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/808224.
|
|
The database prevents multiple ports or interfaces with a single name, but
duplicates can still occur if, for example, two bridges' "ports" columns
both point to a single Port record. The existing warning just says in this
case that the database contains a duplicate port name. This prompts users
to dump the Port table to look for the duplicate. Of course there isn't
one, so then they ask me to point out the problem.
This commit improves the log message to point out the actual problem.
|
|
Originally I intended this as just a cleanup, but as a side effect it also
installs some files from the install tree in debian/tmp instead of from
_debian. This should avoid a reported problem in which ovs-bugtool was
being created in the source directory instead of the build directory (I
still don't see why this happened).
Reported-by: Sébastien RICCIO <sr@swisscenter.com>
Tested-by: Sébastien RICCIO <sr@swisscenter.com>
Acked-by: Simon Horman <horms@verge.net.au>
CC: Simon Horman <horms@verge.net.au>
|
|
We install this in the Debian packaging and I don't see a reason not to
install it everywhere.
(Oddly, we were already installing the manpage everywhere.)
Signed-off-by: Ben Pfaff <blp@nicira.com>
|
|
If the "ovsdb-tool convert" call fails, it is likely because the database
has bad contents that this version of OVSDB does not understand. In that
case, we're better off using a fresh, empty database rather than failing
to come up at all.
Bug #6280.
|
|
This should make problems easier to debug.
Bug #6280.
|
|
POSIX only allows $< in inference rules, so avoid it for these target
rules.
Also, add a header to the generated spec files to remind developers that
they are generated.
|
|
|
|
The mac-learning implementation used a free list to keep track of
statically allocated table entries. This made the code slightly
more difficult to understand than the more straightforward heap
based strategy implemented by this patch.
|
|
The mac-learning 'secret' parameter is intended to prevent an
attacker from turning the mac learning table into a linked list by
using a known hash function to choose perfectly bad mac entries.
However, this parameter was not taken into account in most cases.
Found by inspection.
|
|
The bundle_load action behaves the same as the bundle action,
except instead of outputting, it writes its result to a register.
|
|
I don't expect this bundling algorithm to be particularly useful in
software switches. However, hardware switches will probably only
support this bundling algorithm, so it's implemented here as an
example and a reference.
|
|
This patch creates two new helper functions, nxm_reg_load() and
nxm_dst_check(). The new nxm_dst_check() function may be used to
check the validity of destination fields used by actions. The new
nxm_reg_load() function may be used by actions which need to write
to NXM fields.
This patch also allows multipath and autopath to write their result
to non-register NXM fields.
|
|
Calculates the position of the most significant bit in a 32 bit
word.
|
|
This has been helpful finding bugs in my development environment.
It's good to exercise this code.
|
|
|
|
|
|
|
|
Silences a valgrind warning:
==640== Conditional jump or move depends on uninitialised value(s)
==640== at 0x808E623: run (ofproto-dpif.c:1444)
==640== by 0x8086593: ofproto_run (ofproto.c:755)
==640== by 0x806EB80: bridge_run (bridge.c:1397)
==640== by 0x806F66C: main (ovs-vswitchd.c:90)
|
|
The mac-learning code predates the hmap data structure in OVS. For
this reason, it rolled it's own hmap-like bucket concept. This
patch converts it to use an hmap which makes the code slightly
simpler and easier to understand.
|
|
Due to a typo, the mac-learning hash table had dissolved into a
linked list. This caused a significant reduction in performance.
|
|
It's the right tool for the job. Potentially faster, too.
|
|
Suggested-by: Peter Balland <peter@nicira.com>
|
|
Queue 0 is documented as the "default queue" used when a packet is not
directed to any specific queue. Many qdiscs drop packets not directed to a
queue if the default queue is not configured. This is therefore likely to
be a misconfiguration, so warn about it.
Bug #5583.
|
|
This value is not actually uninitialized but GCC 4.5 cannot tell.
|
|
Found by sparse.
|
|
This field was overlooked in commit b3e9b2eda9a "ofproto: Optimize datapath
actions."
Found by inspection.
|
|
OpenFlow 1.0 doesn't say that the ECN bits in OFPAT_SET_NW_TOS actions must
be zero, but Open vSwitch ODP implementations do require that, so mask off
those bits before storing the nw_tos into the flow.
|
|
This patch creates a new action called "bundle". Bundles are a way
to implement a simple form of multipath in OpenFlow by grouping
several ports in a single output-like action.
|
|
Future patches will use this function outside of the ofputil
module.
|
|
This simplifies the implementation of future patches.
|
|
Future patches will use nx_hash_fields for non-multipath related
actions. This patch renames nx_mp_fields and creates a new
flow_hash_fields() function.
|
|
This provides a minor optimization.
|
|
Mirroring certain protocols interpreted by switches to a VLAN can deceive
the switch that receives it. Drop such packets instead of mirroring them.
CC: David Tsai <dtsai@nicira.com>
NIC-401.
|
|
The comment is obsolete because the switch now starts by default, without
prior configuration.
|
|
|
|
|
|
Recently I helped debug a scenario where ovsdb-server connected to a remote
manager, then ovs-vsctl deleted the remote manager and soon after re-added
it. The log was difficult to interpret because it showed two successful
connection attempts to the same remote without showing a reason why the
connection was dropped in the first place. Adding this log message would
make it clear that the configuration changed to remove that remote
connection in the meantime.
|