aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-07-26ovsdb: Refactor jsonrpc-server to make the concept of a session public.Ben Pfaff
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.
2011-07-26ovsdb: Report the number of connections for inbound Managers.Ben Pfaff
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.
2011-07-26ovsdb-server: Reliably report status of inbound connections.Ben Pfaff
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.
2011-07-26ovsdb-client: Make "server" and "database" arguments optional.Ben Pfaff
In practice these arguments are almost always the defaults, so this change makes ovsdb-client much more usable interactively.
2011-07-26ovs-vswitchd: Make database socket command-line argument optional.Ben Pfaff
In practice the default location is the only one used, so we might as well make it easy.
2011-07-26ovsdb-server: Make database command-line argument optional.Ben Pfaff
In practice the default location is the only one used, so we might as well make it easier.
2011-07-26dirs: Make sysconfdir available via ovs_sysconfdir().Ben Pfaff
This will be used in upcoming patches.
2011-07-26ovsdb-doc: Fix definition of .TQ macro.Ben Pfaff
.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.
2011-07-26stream-unix: Fix naming of passive Unix streams.Ben Pfaff
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".
2011-07-26Update version to reflect this branch is for post-1.1.x development.Justin Pettit
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>
2011-07-26debian: Fix bug from commit 211b05b5 "debian: Modernize use of dh_install."Ben Pfaff
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.
2011-07-26nx-match: Make more fields writable with NXAST_REG_MOVE and other actions.Ben Pfaff
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.
2011-07-26debian: Add support for bridge compatibility.Ben Pfaff
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.
2011-07-26ovs-vsctl: Log better warnings for duplicate ports and interfaces.Ben Pfaff
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.
2011-07-26debian: Modernize use of dh_install.Ben Pfaff
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>
2011-07-26utilities: Install ovs-parse-leaks utility by default.Ben Pfaff
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>
2011-07-26ovs-ctl: Drop back to an empty database if schema conversion fails.Ben Pfaff
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.
2011-07-26ovs-ctl: Log messages about database upgrade process.Ben Pfaff
This should make problems easier to debug. Bug #6280.
2011-07-25rhel: Fix use of $< in ordinary Make rules.Ben Pfaff
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.
2011-07-25ovs-parse-leaks: Fix typos in manpage.Ben Pfaff
2011-07-22mac-learning: Simplify memory management.Ethan Jackson
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.
2011-07-22mac-learning: Use random secret in hash function.Ethan Jackson
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.
2011-07-22bundle: New action "bundle_load".Ethan Jackson
The bundle_load action behaves the same as the bundle action, except instead of outputting, it writes its result to a register.
2011-07-22bundle: Implement NX_BD_ALG_ACTIVE_BACKUP.Ethan Jackson
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.
2011-07-22nx-match: New helpers.Ethan Jackson
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.
2011-07-22util: New function log_2_floor().Ben Pfaff
Calculates the position of the most significant bit in a 32 bit word.
2011-07-22bundle: Run bundle_check() in unit tests.Ethan Jackson
This has been helpful finding bugs in my development environment. It's good to exercise this code.
2011-07-22utilities: Add ovs-bugtool to gitignore.Ethan Jackson
2011-07-22nx-match: Whitespace cleanup.Ethan Jackson
2011-07-22INTERNALS: Describe SLB bonding.Ben Pfaff
2011-07-22ofproto-dpif: Initialize 'may_enable' at port construction time.Ben Pfaff
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)
2011-07-22mac-learning: Convert to hmap.Ethan Jackson
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.
2011-07-21mac-learning: Fix serious performance bug in the learning table.Ethan Jackson
Due to a typo, the mac-learning hash table had dissolved into a linked list. This caused a significant reduction in performance.
2011-07-21ovs-ofctl: Use strchr() instead of strstr().Ben Pfaff
It's the right tool for the job. Potentially faster, too.
2011-07-20ovs-ofctl: Improve error message for "ovs-ofctl show nonexistent".Ben Pfaff
Suggested-by: Peter Balland <peter@nicira.com>
2011-07-20bridge: Log a warning when QoS misconfiguration is likely.Ben Pfaff
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.
2011-07-20bundle: Avoid GCC 4.5 warning about possibly uninitialized value.Ben Pfaff
This value is not actually uninitialized but GCC 4.5 cannot tell.
2011-07-20bundle: Treat slave_type properly as 32-bit value.Ben Pfaff
Found by sparse.
2011-07-20ofproto-dpif: Implement OFPAT_SET_NW_TOS.Ben Pfaff
This field was overlooked in commit b3e9b2eda9a "ofproto: Optimize datapath actions." Found by inspection.
2011-07-20ofproto-dpif: Ignore ECN bits in OFPAT_SET_NW_TOS actions.Ben Pfaff
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.
2011-07-19vswitch: Implement bundle action.Ethan Jackson
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.
2011-07-19ofputil: Export ofputil_check_output_port().Ethan Jackson
Future patches will use this function outside of the ofputil module.
2011-07-19ofproto-dpif: Store bonding enabled flag on ofport.Ethan Jackson
This simplifies the implementation of future patches.
2011-07-19nicira-ext: Generalize nx_mp_fields into nx_hash_fields.Ethan Jackson
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.
2011-07-19ofproto: Don't commit modifiers on OFPP_NONE outputs.Ethan Jackson
This provides a minor optimization.
2011-07-18ofproto-dpif: Do not mirror L2 multicast switch protocols to VLANs.Ben Pfaff
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.
2011-07-18debian: Remove obsolete comment.Ben Pfaff
The comment is obsolete because the switch now starts by default, without prior configuration.
2011-07-18ovs-lib: Allow "status" command to work as non-root.Ben Pfaff
2011-07-18ovs-ctl: Start ovs-vswitchd with correct niceness.Ben Pfaff
2011-07-18ovsdb: Log when remote connections are deconfigured.Ben Pfaff
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.