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

47 Commits

Author SHA1 Message Date
Ben Pfaff
15248032ea configure: Add configure-time check for GCC 4.0+ atomic built-ins.
We found out earlier that GCC sometimes produces an error only at link time
for atomic built-ins that are not supported on a platform.  This actually
tries the link at configure time and should thus reliably detect whether
the atomic built-ins are really supported.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
2013-07-31 08:56:36 -07:00
Ben Pfaff
97eba8fc6f async-append: New library to allow asynchronous appending to a log file.
This will be hooked into the vlog library in an upcoming commit.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2013-07-18 14:58:57 -07:00
Ben Pfaff
31a3fc6e3e ovs-atomic: New library for atomic operations.
This library should prove useful for the threading changes coming up.
The following commit introduces one (very simple) user.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
2013-06-28 16:09:36 -07:00
Ben Pfaff
c22095a5fb ovs-thread: Add per-thread data support.
POSIX defines a portable pthread_key_t API for per-thread data.  GCC and
C11 have two different forms of per-thread data that are generally faster
than the POSIX API, where they are available.  This commit adds a
macro-based wrapper, DEFINE_PER_THREAD_DATA, that takes advantage of these
features where they are available and falls back to the POSIX API
otherwise.

The Clang compiler implements C11 thread_local in its <threads.h>.

This commit also adds a convenience wrapper for the POSIX API, via the
DEFINE_PER_THREAD_MALLOCED_DATA macro.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
2013-06-25 14:05:01 -07:00
YAMAMOTO Takashi
3453ed2485 don't forget to define HAVE_BACKTRACE
Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2013-05-21 07:31:07 -07:00
YAMAMOTO Takashi
92f75e6004 deal with platforms where backtrace() is in a different library than libc.
execinfo for NetBSD and ubacktrace for uClibc.
i don't know if the latter is relevant to Open vSwitch, though.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2013-04-23 11:05:19 -07:00
YAMAMOTO Takashi
0f31bef563 use ax_check_openssl.m4 instead of a direct use of pkg-config.
on some platforms, including NetBSD-6, openssl is available but
its pkg-config files (*.pc) are not.  according to Ed Maste,
this is the case for FreeBSD as well.

Signed-off-by: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2013-04-22 08:43:37 -07:00
Pravin B Shelar
5ca1ba484b openvswitch: Remove Linux bridge compatibility.
Currently brcompat does not work on master due to recent
datapath changes. We have decided to remove it as it is
not used very widely.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
2012-12-27 13:48:51 -08:00
Ethan Jackson
3d7cab5fe0 timeval: Optionally enable cached timing at configure time.
Often when developing, it would be convenient to force OVS to
either enable or disable cached timing so that a feature can be
tested under both strategies.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-10-17 13:10:02 -07:00
Ethan Jackson
2e22e1c732 m4: Remove trailing whitespace.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-10-17 13:10:01 -07:00
Ethan Jackson
361906b1e2 config: Add explicit support for building on ESX.
The ESX userspace looks quite a bit like linux, but has some key
differences which need to be specially handled in the build.  To
distinguish between ESX and systems which use the linux datapath
module, this patch adds two new macros "ESX" and "LINUX_DATAPATH".
It uses these macros to disable building code on ESX which only
applies to a true Linux environment.  In addition, it adds a new
route-table-stub implementation which is required for the build to
complete successfully on ESX.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-10-09 15:23:47 -07:00
Ben Pfaff
f973f2af2f Make the location of the database separately configurable.
The default is unchanged, /etc/openvswitch/conf.db.

This makes it possible to transition each Open vSwitch packaging from
/etc/openvswitch/conf.db to /var/lib/openvswitch/conf.db independently.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-08-01 10:55:57 -07:00
Ben Pfaff
8faa5a2173 tests: Remove bit-rotted support for "lcov".
At one point I got the "lcov" utilities to work well with OVS.  Then I
didn't try to use them again for a year or so, and when I did I found that
it didn't work at all.  I wasn't able to fix the problem easily, so it
seems better to remove the feature than to leave around broken code.

Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-07-20 13:10:48 -07:00
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
Chris Wright
d8965755e7 configure: add configure option to disable building brcompat
This adds ability to do:

  ./configure --disable-brcompat

to disable building userspace and kernel module associated with
providing linux bridge compatibility.  Sources should still be
distributed w/ make dist.

While there, update comment referring to long removed veth driver
which is now relevant for brcompat module.

Cc: Jesse Gross <jesse@nicira.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Acked-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
2012-03-13 16:50:42 -07:00
Ben Pfaff
14bd2d514e debian: Move PKI directory to FHS-compliant location.
The PKI directory is mutable state, so it should be in /var, not in /usr.
This commit changes its location and, on systems upgraded from earlier
versions, moves the existing PKI and leaves behind a symlink.

CC: 661090@bugs.debian.org
Reported-by: Andreas Beckmann <debian@abeckmann.de>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-03-01 16:38:27 -08:00
Pravin Shelar
f613a0d72c datapath: Always use generic stats for devices (vports)
Currently ovs is using device stats for Linux devices and count them
itself in other situations. This leads to overlap with hardware stats,
inconsistencies, etc. It's much better to just always count the packets
flowing through the switch and let userspace do any merging that it wants.

Following patch removes vport->get_stats() interface. vport-stat is changed
to use new `struct ovs_vport_stat` rather than rtnl_link_stats64.
Definitions of rtnl_link_stats64 is removed from OVS.  dipf_port->stat is also
removed as aggregate stats are only available at netdev layer.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
2011-09-15 19:36:17 -07:00
Ben Pfaff
0027492dee docs: Add Makefile rule to check syntax of manpages.
This should catch future nroff syntax errors immediately, instead of much
later.
2011-08-24 12:42:52 -07:00
Ben Pfaff
2bc458b3af configure: Improve error message when pkg-config is missing.
Until now, when pkg-config is missing, Autoconf emitted this error:
    error: possibly undefined macro: PKG_CHECK_MODULES
This commit changes the message to:
    error: Please install pkg-config.
This should be easier for users to interpret.

Suggested-by: Ethan Jackson <ethan@nicira.com>
2011-07-13 12:42:54 -07:00
Ben Pfaff
0e6644c388 backtrace: Make backtrace_capture() work on more systems.
The backtrace_capture() implementation only worked properly with GNU C on
systems that have a simple stack frame with a frame pointer.  Notably,
the x86-64 ABI by default has no frame pointer, so this failed on x86-64.

However, glibc has a function named backtrace() that does what we want.
This commit tests for this function and uses it when it is present, fixing
x86-64 backtraces.
2011-05-13 14:37:14 -07:00
Ben Pfaff
1269f7ae5f datapath: Tolerate backporting of rtnl_link_stats64 (as in RHEL 6).
Red Hat Enterprise Linux 6 has a 2.6.32 kernel but it backports the
rtnl_link_stats64 structure that was introduced in 2.6.35, so we need to
check whether it was defined instead of just guessing based on the kernel
version number.

Build-tested only, on 2.6.32-71.14.1.el6 (RHEL 6),
linux-2.6.18-128.1.6.el5.xs5.5.0.496.101 (XenServer 5.5.0),
2.6.18-128.1.6.el5.xs5.5.0.505.1024xen (XenServer 5.5.0 update 1),
and upstream 2.6.18, 2.6.26, 2.6.29, 2.6.33, 2.6.34, 2.6.36, all for i386,
plus 2.6.36 for x86-64.

My machine's userspace headers have <linux/if_link.h> but not
rtnl_link_stats64.  Jesse Gross tested the case where <linux/if_link.h>
has rtnl_link_stats64, on Ubuntu 10.10.

Reported-by: Geoff White <gwhite@nicira.com>
Tested-by: Jesse Gross <jesse@nicira.com>
2011-02-04 12:36:21 -08:00
Ben Pfaff
7c9b00732c docs: Only regenerate vswitch.pic when the schema really changes.
Until now, vswitch.pic has been rebuilt whenever the schema changed.  This
is OK when the E-R diagram would really change, but many changes to the
schema don't change the E-R diagram, and it surprises people when
vswitch.pic changes in such a situation.  This commit fixes the problem.

Requested-by: Justin Pettit <jpettit@nicira.com>
2010-12-06 09:56:38 -08:00
Ben Pfaff
611d30ceb6 vlog: Generate vlog-modules.def automatically. 2010-11-30 10:30:30 -08:00
Ben Pfaff
924c24342c configure: Check for pkg-config "openssl" library instead of "libssl".
Checking for libssl only does not necessarily link against libcrypto, so
the build can gratuitously fail.

Reported-by: Dave Walker <DaveWalker@ubuntu.com>
Ubuntu bug #680439.
2010-11-29 09:54:29 -08:00
Ben Pfaff
a5eef57e2c configure: Fix Graphviz test and input generation.
This check for Graphviz never actually worked properly because Autoconf
swallows up the [] around [gG], so Graphviz was always detected as missing.
This commit fixes the problem by doubling up to [[gG]].

Because Graphviz was never used, I never noticed that ovsdb-dot had not
been revised to use the latest Python interface to OVSDB, so this commit
fixes up those problems too.
2010-11-05 10:20:01 -07:00
Ben Pfaff
f272ec7373 configure: Enable OpenSSL support by default.
Years ago some users had broken OpenSSL libraries that didn't actually
work, so we disabled OpenSSL by default.  By now, I hope that those users
have fixed their systems.
2010-08-26 13:51:38 -07:00
Ben Pfaff
4c1eabc123 Remove ezio-term and ovs-switchui utilities.
These utilities were useful when Nicira was building switches with 16x2 LCD
front panel displays, but they aren't useful for other environments and
even Nicira does not use that kind of switch any longer.  So remove them
and all the build infrastructure on which they depended.
2010-08-23 09:25:14 -07:00
Ben Pfaff
480ce8abca vlog: Make the vlog module catalog program-specific.
Until now, the collection of vlog modules supported by a given OVS program
was not specific to that program.  That means that, for example, even
though ovs-dpctl does not have anything to do with jsonrpc, it still has
a vlog module for it.  This is confusing, at best.

This commit fixes the problem on some systems, in particular on ones that
use GCC and the GNU linker.  It uses the feature of the GNU linker
described in its manual as:

    If an orphaned section's name is representable as a C identifier then
    the linker will automatically see PROVIDE two symbols: __start_SECNAME
    and __end_SECNAME, where SECNAME is the name of the section.  These
    indicate the start address and end address of the orphaned section
    respectively.

Systems that don't support these features retain the earlier behavior.

This commit also fixes the annoyance that modifying lib/vlog-modules.def
causes all sources files that #include "vlog.h" to recompile.
2010-07-21 15:47:09 -07:00
Ben Pfaff
f8d739a9fa vswitchd: Add entity-relationship diagram to ovs-vswitchd.conf.db.5.
I've updated http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf with
example output.
2010-06-24 13:18:43 -07:00
Ben Pfaff
1df624e6a3 configure: Deep-six "5".
Perhaps you've noticed that whenever you run "configure" you end up with
a file named "5" in your current directory.  This commit fixes that
problem.
2010-05-27 14:42:23 -07:00
Andy Southgate
436f27dd88 Add ovsdbmonitor GUI tool by Andy Southgate, contributed by Citrix.
With Makefiles and Autoconfiscation by Ben Pfaff.

Signed-off-by: Thomas Lacroix <thomas.lacroix@citrix.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
2010-05-13 14:53:39 -07:00
Justin Pettit
bc39196036 Cleanup default file locations and XenServer packaging
This commit cleans up the locations of a number of files and directories
used.  These include:

    - Config file lives in /etc/openvswitch/conf.db
    - Logs go into /var/log/openvswitch
    - ovsdb-server socket is /var/run/openvswitch/db.sock
    - Schema goes into /usr/share/openvswitch/vswitch.ovsschema
    - PID files go in /var/run/openvswitch

For XenServer, these additional changes are made:

    - Cores go in /var/xen/openvswitch
    - OVS binaries run in /var/xen/openvswitch

In addition, it attempts to cleanup the XenServer packaging.  This
includes referring to the project as "openvswitch" as opposed to the
somewhat presumptuous "vswitch".

Note: Changes to the Debian packaging will be forthcoming.
2010-03-26 14:40:31 -07:00
Ben Pfaff
a26cc67c16 Remove PCRE dependency. 2010-02-25 14:59:41 -08:00
Ben Pfaff
bfe8e67ad5 ovsdb: Fix support for systems where libpcre is not installed.
This is one of the loose ends that I intended to fix up and test before
pushing off my commits to add use of PCRE, but obviously I forgot.
2010-02-08 15:37:49 -08:00
Ben Pfaff
bd76d25d8b ovsdb: Add simple constraints. 2010-02-08 14:16:19 -08:00
Ben Pfaff
7c126fbb8a Rework and simplify the "lcov" support for the testsuite. 2010-02-02 15:21:09 -08:00
Ben Pfaff
05b3c97be6 Add build checks for portable OpenFlow structure padding and alignment.
This causes the build to fail with an error message if openflow.h contains
a structure whose members are not aligned in a portable way.
2010-01-25 10:49:31 -08:00
Ben Pfaff
48b9616a51 configure: Fix indentation. 2010-01-08 10:02:49 -08:00
Ben Pfaff
869decd4fe tests: Make test-vconn build and pass tests without OpenSSL. 2010-01-08 10:01:27 -08:00
Ben Pfaff
d27ce5292c tests: Improve vconn tests. 2010-01-08 09:41:29 -08:00
Ben Pfaff
250382a8fc Remove "fault" module.
This module, which catches segmentation faults and prints a backtrace
before exiting, was useful for a while, but I believe that it has now
outlived its purpose.  It is altogether better to have a core dump from
which one can extract much more information than a usually-poor backtrace,
and core dumps are much better integrated into a typical Unix system.
In addition, the "fault" module was of course not all that portable.
2010-01-06 17:01:56 -08:00
Ben Pfaff
195b5c3563 Distribute ovsdb-idlc built sources, so Python is not required for build.
The Xen DDK VM does not include Python, so it's best if we don't have to
require it for the build.

The built sources are still regenerated if necessary.
2009-12-03 17:06:46 -08:00
Ben Pfaff
3b135da329 New utility ovs-vsctl. 2009-09-14 10:05:13 -07:00
Ben Pfaff
081f138172 switch UI: Only build ovs-switchui if PCRE 7.2 or later is available.
The PCRE_INFO_OKPARTIAL feature used by ovs-switchui was only introduced
in PCRE 7.2, so we need to check for that version or later, instead of
just for PCRE.

Thanks to Ian Campbell <Ian.Campbell@citrix.com> for reporting the problem.
2009-08-18 16:09:32 -07:00
Ben Pfaff
c2b0702140 Add support for code coverage analysis with gcov and lcov. 2009-07-29 12:33:32 -07:00
Ben Pfaff
a14bc59fb8 Update primary code license to Apache 2.0. 2009-06-15 15:11:30 -07:00
Ben Pfaff
064af42167 Import from old repository commit 61ef2b42a9c4ba8e1600f15bb0236765edc2ad45. 2009-07-08 13:19:16 -07:00