ovn: Add initial design documentation.
This commit adds preliminary design documentation for Open Virtual Network,
or OVN, a new OVS-based project to add support for virtual networking to
OVS, initially with OpenStack integration.
This initial design has been influenced by many people, including (in
alphabetical order) Aaron Rosen, Chris Wright, Gurucharan Shetty, Jeremy
Stribling, Justin Pettit, Ken Duda, Kevin Benton, Kyle Mestery, Madhu
Venugopal, Martin Casado, Natasha Gude, Pankaj Thakkar, Russell Bryant,
Teemu Koponen, and Thomas Graf. All blunders, however, are due to my own
hubris.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
2015-02-26 14:49:26 -08:00
|
|
|
# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
|
2009-07-08 13:19:16 -07:00
|
|
|
#
|
2009-06-15 15:11:30 -07:00
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at:
|
2009-07-08 13:19:16 -07:00
|
|
|
#
|
2009-06-15 15:11:30 -07:00
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2014-06-27 09:31:57 +02:00
|
|
|
AC_PREREQ(2.63)
|
2015-06-17 16:12:46 -07:00
|
|
|
AC_INIT(openvswitch, 2.4.90, bugs@openvswitch.org)
|
2009-07-08 13:19:16 -07:00
|
|
|
AC_CONFIG_SRCDIR([datapath/datapath.c])
|
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
|
|
AC_CONFIG_HEADERS([config.h])
|
2009-07-27 16:40:11 -07:00
|
|
|
AC_CONFIG_TESTDIR([tests])
|
2015-01-15 09:20:22 +00:00
|
|
|
AM_INIT_AUTOMAKE([tar-pax])
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2014-05-29 16:12:24 +00:00
|
|
|
AC_PROG_CC_C99
|
2009-07-08 13:19:16 -07:00
|
|
|
AM_PROG_CC_C_O
|
|
|
|
AC_PROG_CPP
|
|
|
|
AC_PROG_MKDIR_P
|
2010-07-21 15:38:23 -07:00
|
|
|
AC_PROG_FGREP
|
2012-11-07 10:16:27 -08:00
|
|
|
AC_PROG_EGREP
|
2009-07-08 13:19:16 -07:00
|
|
|
|
|
|
|
AC_ARG_VAR([PERL], [path to Perl interpreter])
|
|
|
|
AC_PATH_PROG([PERL], perl, no)
|
|
|
|
if test "$PERL" = no; then
|
|
|
|
AC_MSG_ERROR([Perl interpreter not found in $PATH or $PERL.])
|
|
|
|
fi
|
|
|
|
|
2012-10-04 15:55:43 -07:00
|
|
|
AM_MISSING_PROG([AUTOM4TE], [autom4te])
|
2012-10-03 15:58:54 -07:00
|
|
|
|
2009-07-08 13:19:16 -07:00
|
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
|
|
AC_C_BIGENDIAN
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
2013-12-13 18:54:28 +01:00
|
|
|
LT_INIT([disable-shared])
|
2013-12-31 14:20:01 -08:00
|
|
|
m4_pattern_forbid([LT_INIT]) dnl Make autoconf fail if libtool is missing.
|
|
|
|
|
2014-11-07 19:02:09 -08:00
|
|
|
# The following explanation may help to understand the use of the
|
|
|
|
# version number fields: current, revision, and age.
|
|
|
|
#
|
|
|
|
# Consider that there are three possible kinds of reactions from
|
|
|
|
# users of your library to changes in a shared library:
|
|
|
|
#
|
|
|
|
# 1. Programs using the previous version may use the new version as drop-in
|
|
|
|
# replacement, and programs using the new version can also work with the
|
|
|
|
# previous one. In other words, no recompiling nor relinking is needed.
|
|
|
|
# In short, there are no changes to any symbols, no symbols removed,
|
|
|
|
# and no symbols added. In this case, bump revision only, don't touch
|
|
|
|
# current nor age.
|
|
|
|
#
|
|
|
|
# 2. Programs using the previous version may use the new version as drop-in
|
|
|
|
# replacement, but programs using the new version may use APIs not
|
|
|
|
# present in the previous one. In other words, new symbols have been
|
|
|
|
# added and a program linking against the new version may fail with
|
2015-04-17 16:03:14 +09:00
|
|
|
# "unresolved symbols." If linking against the old version at runtime:
|
2014-11-07 19:02:09 -08:00
|
|
|
# set revision to 0, bump current and age.
|
|
|
|
#
|
|
|
|
# 3. Programs may need to be changed, recompiled, relinked in order to use
|
|
|
|
# the new version. This is the case when symbols have been modified or
|
|
|
|
# deleted. Bump current, set revision and age to 0.
|
|
|
|
|
|
|
|
m4_define([libopenvswitch_lt_current], [1])
|
|
|
|
m4_define([libopenvswitch_lt_revision], [0])
|
|
|
|
m4_define([libopenvswitch_lt_age], [0])
|
|
|
|
|
|
|
|
LT_CURRENT=libopenvswitch_lt_current
|
|
|
|
AC_SUBST([LT_CURRENT])
|
|
|
|
LT_REVISION=libopenvswitch_lt_revision
|
|
|
|
AC_SUBST([LT_REVISION])
|
|
|
|
LT_AGE=libopenvswitch_lt_age
|
|
|
|
AC_SUBST([LT_AGE])
|
|
|
|
|
2009-11-04 14:55:53 -08:00
|
|
|
AC_SEARCH_LIBS([pow], [m])
|
2010-06-08 17:18:48 -07:00
|
|
|
AC_SEARCH_LIBS([clock_gettime], [rt])
|
2011-11-01 13:25:49 +01:00
|
|
|
AC_SEARCH_LIBS([timer_create], [rt])
|
2015-04-19 01:48:06 +08:00
|
|
|
AC_SEARCH_LIBS([pthread_create], [pthread])
|
2013-06-19 15:44:54 -07:00
|
|
|
AC_FUNC_STRERROR_R
|
2009-11-04 14:55:53 -08:00
|
|
|
|
2012-10-05 13:24:21 -07:00
|
|
|
OVS_CHECK_ESX
|
2013-11-16 11:42:46 -08:00
|
|
|
OVS_CHECK_WIN32
|
2014-08-28 13:49:24 +00:00
|
|
|
OVS_CHECK_VISUAL_STUDIO_DDK
|
2009-07-27 16:42:51 -07:00
|
|
|
OVS_CHECK_COVERAGE
|
2009-07-08 13:19:16 -07:00
|
|
|
OVS_CHECK_NDEBUG
|
|
|
|
OVS_CHECK_NETLINK
|
|
|
|
OVS_CHECK_OPENSSL
|
|
|
|
OVS_CHECK_LOGDIR
|
2009-09-14 10:05:13 -07:00
|
|
|
OVS_CHECK_PYTHON
|
2010-12-06 09:56:38 -08:00
|
|
|
OVS_CHECK_DOT
|
2009-07-08 13:19:16 -07:00
|
|
|
OVS_CHECK_IF_PACKET
|
2012-06-29 21:11:24 +00:00
|
|
|
OVS_CHECK_IF_DL
|
2009-06-10 14:16:40 -07:00
|
|
|
OVS_CHECK_STRTOK_R
|
2013-04-04 23:29:59 -05:00
|
|
|
AC_CHECK_DECLS([sys_siglist], [], [], [[#include <signal.h>]])
|
2010-03-24 13:15:41 -07:00
|
|
|
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec, struct stat.st_mtimensec],
|
|
|
|
[], [], [[#include <sys/stat.h>]])
|
2013-05-21 17:49:54 +09:00
|
|
|
AC_CHECK_MEMBERS([struct ifreq.ifr_flagshigh], [], [], [[#include <net/if.h>]])
|
2013-08-01 09:35:56 -07:00
|
|
|
AC_CHECK_FUNCS([mlockall strnlen getloadavg statvfs getmntent_r])
|
2013-06-28 15:54:40 -07:00
|
|
|
AC_CHECK_HEADERS([mntent.h sys/statvfs.h linux/types.h linux/if_ether.h stdatomic.h])
|
2013-05-23 10:00:57 -04:00
|
|
|
AC_CHECK_HEADERS([net/if_mib.h], [], [], [[#include <sys/types.h>
|
|
|
|
#include <net/if.h>]])
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2009-07-29 16:48:45 -07:00
|
|
|
OVS_CHECK_PKIDIR
|
|
|
|
OVS_CHECK_RUNDIR
|
2012-07-27 15:52:21 -07:00
|
|
|
OVS_CHECK_DBDIR
|
2011-05-13 11:55:22 -07:00
|
|
|
OVS_CHECK_BACKTRACE
|
2015-04-16 12:52:09 -07:00
|
|
|
OVS_CHECK_PERF_EVENT
|
2009-07-29 16:48:45 -07:00
|
|
|
OVS_CHECK_VALGRIND
|
|
|
|
OVS_CHECK_SOCKET_LIBS
|
2011-02-22 14:47:19 -08:00
|
|
|
OVS_CHECK_XENSERVER_VERSION
|
2011-08-24 10:45:32 -07:00
|
|
|
OVS_CHECK_GROFF
|
2012-07-25 10:25:55 -07:00
|
|
|
OVS_CHECK_GNU_MAKE
|
2013-06-25 13:50:26 -07:00
|
|
|
OVS_CHECK_TLS
|
2013-12-05 17:29:05 +00:00
|
|
|
OVS_CHECK_ATOMIC_LIBS
|
2013-07-15 14:13:53 -07:00
|
|
|
OVS_CHECK_GCC4_ATOMICS
|
2013-06-28 15:54:40 -07:00
|
|
|
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(1)
|
|
|
|
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(2)
|
|
|
|
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(4)
|
|
|
|
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(8)
|
2013-07-10 11:40:28 -07:00
|
|
|
OVS_CHECK_POSIX_AIO
|
2013-08-01 09:35:56 -07:00
|
|
|
OVS_CHECK_PTHREAD_SET_NAME
|
2014-01-23 15:35:22 -08:00
|
|
|
OVS_CHECK_LINUX_HOST
|
2014-05-02 17:07:29 +09:00
|
|
|
AX_FUNC_POSIX_MEMALIGN
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2013-12-24 09:18:42 -08:00
|
|
|
OVS_CHECK_INCLUDE_NEXT([stdio.h string.h])
|
2014-11-07 19:02:09 -08:00
|
|
|
AC_CONFIG_FILES([
|
|
|
|
lib/stdio.h
|
|
|
|
lib/string.h
|
|
|
|
ovsdb/libovsdb.sym
|
|
|
|
ofproto/libofproto.sym
|
|
|
|
lib/libsflow.sym
|
2015-03-09 13:52:08 +00:00
|
|
|
lib/libopenvswitch.sym
|
2015-04-21 17:35:44 -07:00
|
|
|
ovn/lib/libovn.sym
|
2015-03-09 13:52:08 +00:00
|
|
|
vtep/libvtep.sym])
|
2013-12-13 09:54:55 -08:00
|
|
|
|
2009-07-29 16:48:45 -07:00
|
|
|
OVS_ENABLE_OPTION([-Wall])
|
2013-07-22 13:38:25 -07:00
|
|
|
OVS_ENABLE_OPTION([-Wextra])
|
2009-07-29 16:48:45 -07:00
|
|
|
OVS_ENABLE_OPTION([-Wno-sign-compare])
|
|
|
|
OVS_ENABLE_OPTION([-Wpointer-arith])
|
|
|
|
OVS_ENABLE_OPTION([-Wformat-security])
|
|
|
|
OVS_ENABLE_OPTION([-Wswitch-enum])
|
|
|
|
OVS_ENABLE_OPTION([-Wunused-parameter])
|
|
|
|
OVS_ENABLE_OPTION([-Wbad-function-cast])
|
|
|
|
OVS_ENABLE_OPTION([-Wcast-align])
|
|
|
|
OVS_ENABLE_OPTION([-Wstrict-prototypes])
|
|
|
|
OVS_ENABLE_OPTION([-Wold-style-definition])
|
|
|
|
OVS_ENABLE_OPTION([-Wmissing-prototypes])
|
|
|
|
OVS_ENABLE_OPTION([-Wmissing-field-initializers])
|
2013-07-30 15:31:48 -07:00
|
|
|
OVS_ENABLE_OPTION([-Wthread-safety])
|
2014-09-30 17:03:07 -07:00
|
|
|
OVS_ENABLE_OPTION([-fno-strict-aliasing])
|
2015-04-17 17:14:38 +09:00
|
|
|
OVS_ENABLE_OPTION([-Qunused-arguments])
|
2009-11-20 09:45:26 -08:00
|
|
|
OVS_CONDITIONAL_CC_OPTION([-Wno-unused], [HAVE_WNO_UNUSED])
|
2010-07-30 14:47:29 -07:00
|
|
|
OVS_CONDITIONAL_CC_OPTION([-Wno-unused-parameter], [HAVE_WNO_UNUSED_PARAMETER])
|
2011-04-12 11:43:11 -07:00
|
|
|
OVS_ENABLE_WERROR
|
2011-05-06 13:00:49 -07:00
|
|
|
OVS_ENABLE_SPARSE
|
2009-07-08 13:19:16 -07:00
|
|
|
|
|
|
|
AC_ARG_VAR(KARCH, [Kernel Architecture String])
|
|
|
|
AC_SUBST(KARCH)
|
2011-06-22 09:26:31 -07:00
|
|
|
OVS_CHECK_LINUX
|
2014-03-24 19:23:08 -07:00
|
|
|
OVS_CHECK_DPDK
|
2014-08-29 16:08:11 -07:00
|
|
|
OVS_CHECK_PRAGMA_MESSAGE
|
2014-09-11 21:34:21 +02:00
|
|
|
AC_SUBST([OVS_CFLAGS])
|
|
|
|
AC_SUBST([OVS_LDFLAGS])
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2013-11-15 15:32:09 -08:00
|
|
|
AC_CONFIG_FILES(Makefile)
|
|
|
|
AC_CONFIG_FILES(datapath/Makefile)
|
|
|
|
AC_CONFIG_FILES(datapath/linux/Kbuild)
|
|
|
|
AC_CONFIG_FILES(datapath/linux/Makefile)
|
|
|
|
AC_CONFIG_FILES(datapath/linux/Makefile.main)
|
|
|
|
AC_CONFIG_FILES(tests/atlocal)
|
2014-11-13 12:28:41 +01:00
|
|
|
AC_CONFIG_FILES(lib/libopenvswitch.pc)
|
2014-11-13 12:28:44 +01:00
|
|
|
AC_CONFIG_FILES(lib/libsflow.pc)
|
2014-11-13 12:28:42 +01:00
|
|
|
AC_CONFIG_FILES(ofproto/libofproto.pc)
|
2014-11-13 12:28:43 +01:00
|
|
|
AC_CONFIG_FILES(ovsdb/libovsdb.pc)
|
2014-11-24 12:49:00 +01:00
|
|
|
AC_CONFIG_FILES(include/openvswitch/version.h)
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2010-01-25 10:49:31 -08:00
|
|
|
dnl This makes sure that include/openflow gets created in the build directory.
|
|
|
|
AC_CONFIG_COMMANDS([include/openflow/openflow.h.stamp])
|
|
|
|
|
2011-07-06 10:43:03 -07:00
|
|
|
AC_CONFIG_COMMANDS([utilities/bugtool/dummy], [:])
|
ovn: Add initial design documentation.
This commit adds preliminary design documentation for Open Virtual Network,
or OVN, a new OVS-based project to add support for virtual networking to
OVS, initially with OpenStack integration.
This initial design has been influenced by many people, including (in
alphabetical order) Aaron Rosen, Chris Wright, Gurucharan Shetty, Jeremy
Stribling, Justin Pettit, Ken Duda, Kevin Benton, Kyle Mestery, Madhu
Venugopal, Martin Casado, Natasha Gude, Pankaj Thakkar, Russell Bryant,
Teemu Koponen, and Thomas Graf. All blunders, however, are due to my own
hubris.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
2015-02-26 14:49:26 -08:00
|
|
|
AC_CONFIG_COMMANDS([ovn/dummy], [:])
|
2015-06-12 12:51:23 -04:00
|
|
|
AC_CONFIG_COMMANDS([ovn/utilities/dummy], [:])
|
2010-05-11 11:46:52 -07:00
|
|
|
|
2014-01-21 16:22:08 -08:00
|
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
|
|
|
|
|
2009-07-08 13:19:16 -07:00
|
|
|
AC_OUTPUT
|