Add openvswitch-nsh-dpdk_2.5.90 debian spec
1. download ovs 2.4.0 debian spec wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0.orig.tar.gz wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.debian.tar.xz dpkg-source -x openvswitch-dpdk_2.4.0-0ubuntu1.dsc 2. update patches and changelog Change-Id: I31f6efc5a20a3845dc898ab20c5a72fa499f7b33 Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
This commit is contained in:
parent
bc4e8ca6a4
commit
af3fbac756
|
@ -0,0 +1,19 @@
|
||||||
|
check-debian-changelog-version:
|
||||||
|
@DEB_VERSION=`echo '$(VERSION)' | sed 's/pre/~pre/'`; \
|
||||||
|
if $(FGREP) '($(DEB_VERSION)' $(srcdir)/debian/changelog >/dev/null; \
|
||||||
|
then \
|
||||||
|
:; \
|
||||||
|
else \
|
||||||
|
echo "Update debian/changelog to mention version $(VERSION)"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
ALL_LOCAL += check-debian-changelog-version
|
||||||
|
DIST_HOOKS += check-debian-changelog-version
|
||||||
|
|
||||||
|
$(srcdir)/debian/copyright: AUTHORS debian/copyright.in
|
||||||
|
$(AM_V_GEN) \
|
||||||
|
{ sed -n -e '/%AUTHORS%/q' -e p < $(srcdir)/debian/copyright.in; \
|
||||||
|
sed '1,/^$$/d' $(srcdir)/AUTHORS | \
|
||||||
|
sed -n -e '/^$$/q' -e 's/^/ /p'; \
|
||||||
|
sed -e '1,/%AUTHORS%/d' $(srcdir)/debian/copyright.in; \
|
||||||
|
} > $@
|
|
@ -0,0 +1,3 @@
|
||||||
|
openvswitch-dpdk (2.5.90-1.nsh) unstable; urgency=low
|
||||||
|
* Support NSH
|
||||||
|
-- Open vSwitch team <dev@openvswitch.org>
|
|
@ -0,0 +1 @@
|
||||||
|
9
|
|
@ -0,0 +1,54 @@
|
||||||
|
Source: openvswitch-dpdk
|
||||||
|
Section: net
|
||||||
|
Priority: extra
|
||||||
|
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||||
|
XSBC-Original-Maintainer: Open vSwitch developers <dev@openvswitch.org>
|
||||||
|
Uploaders: Ben Pfaff <pfaffben@debian.org>,
|
||||||
|
Simon Horman <horms@debian.org>,
|
||||||
|
Build-Depends: autoconf (>= 2.64),
|
||||||
|
automake (>= 1.10) | automake1.10,
|
||||||
|
bzip2,
|
||||||
|
debhelper (>= 9~),
|
||||||
|
dh-autoreconf,
|
||||||
|
dh-systemd (>= 1.5),
|
||||||
|
graphviz,
|
||||||
|
libdpdk-dev,
|
||||||
|
libfuse-dev,
|
||||||
|
libssl-dev,
|
||||||
|
libtool,
|
||||||
|
openssl,
|
||||||
|
procps,
|
||||||
|
python-all (>= 2.6.6-3~),
|
||||||
|
python-qt4,
|
||||||
|
python-twisted-conch,
|
||||||
|
python-zopeinterface,
|
||||||
|
Standards-Version: 3.9.6
|
||||||
|
Homepage: http://openvswitch.org/
|
||||||
|
XS-Testsuite: autopkgtest
|
||||||
|
|
||||||
|
Package: openvswitch-switch-dpdk
|
||||||
|
Architecture: i386 amd64
|
||||||
|
Depends: dpdk,
|
||||||
|
openvswitch-switch (>= 2.4.0),
|
||||||
|
${misc:Depends},
|
||||||
|
${python:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
|
Enhances: openvswitch-switch,
|
||||||
|
Description: DPDK enabled Open vSwitch switch implementation
|
||||||
|
Open vSwitch is a production quality, multilayer, software-based,
|
||||||
|
Ethernet virtual switch. It is designed to enable massive network
|
||||||
|
automation through programmatic extension, while still supporting
|
||||||
|
standard management interfaces and protocols (e.g. NetFlow, IPFIX,
|
||||||
|
sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In addition, it is designed
|
||||||
|
to support distribution across multiple physical servers similar to
|
||||||
|
VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
|
||||||
|
.
|
||||||
|
openvswitch-switch provides the userspace components and utilities for
|
||||||
|
the Open vSwitch kernel-based switch.
|
||||||
|
.
|
||||||
|
DPDK is a set of libraries for fast packet processing. Applications run
|
||||||
|
in user-space and communicate directly with dedicated network interfaces.
|
||||||
|
This package contains the runtime environment to run DPDK applications.
|
||||||
|
.
|
||||||
|
This package provides a DPDK enabled implementation of the ovs-vswitchd
|
||||||
|
binary.
|
|
@ -0,0 +1,716 @@
|
||||||
|
The original sources for this package can be found at:
|
||||||
|
|
||||||
|
http://openvswitch.org/
|
||||||
|
|
||||||
|
Upstream Authors (from AUTHORS):
|
||||||
|
|
||||||
|
%AUTHORS%
|
||||||
|
|
||||||
|
Upstream Copyright Holders:
|
||||||
|
|
||||||
|
Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
|
||||||
|
Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
|
||||||
|
Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
|
||||||
|
and authors listed above.
|
||||||
|
Copyright (c) 2011 Gaetano Catalli
|
||||||
|
Copyright (C) 2000-2003 Geoffrey Wossum (gwossum@acm.org)
|
||||||
|
Copyright (C) 2000 The NetBSD Foundation, Inc.
|
||||||
|
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||||
|
Copyright (c) 1982, 1986, 1990, 1993 The Regents of the University of California.
|
||||||
|
Copyright (c) 2008, 2012 Vincent Bernat <bernat@luffy.cx>
|
||||||
|
Copyright (c) 2014 Michael Chapman
|
||||||
|
Copyright (c) 2014 WindRiver, Inc.
|
||||||
|
Copyright (c) 2014 Avaya, Inc.
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
* The following components are licensed under the
|
||||||
|
GNU Lesser General Public License version 2.1 only
|
||||||
|
with the exception clause below as a pre-amble.
|
||||||
|
|
||||||
|
xenserver/etc_xensource_scripts_vif
|
||||||
|
xenserver/opt_xensource_libexec_InterfaceReconfigure.py
|
||||||
|
xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
|
||||||
|
xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
|
||||||
|
xenserver/opt_xensource_libexec_interface-reconfigure
|
||||||
|
xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
|
||||||
|
|
||||||
|
* These components are only distributed in the source package.
|
||||||
|
They do not appear in any binary packages.
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the
|
||||||
|
GNU Lesser General Public License version 2.1 can be found in
|
||||||
|
`/usr/share/common-licenses/LGPL-2.1'
|
||||||
|
|
||||||
|
The exception clause pre-amble reads:
|
||||||
|
|
||||||
|
As a special exception to the GNU Lesser General Public License, you
|
||||||
|
may link, statically or dynamically, a "work that uses the Library"
|
||||||
|
with a publicly distributed version of the Library to produce an
|
||||||
|
executable file containing portions of the Library, and distribute
|
||||||
|
that executable file under terms of your choice, without any of the
|
||||||
|
additional requirements listed in clause 6 of the GNU Lesser General
|
||||||
|
Public License. By "a publicly distributed version of the Library",
|
||||||
|
we mean either the unmodified Library as distributed, or a
|
||||||
|
modified version of the Library that is distributed under the
|
||||||
|
conditions defined in clause 3 of the GNU Library General Public
|
||||||
|
License. This exception does not however invalidate any other reasons
|
||||||
|
why the executable file might be covered by the GNU Lesser General
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
* The following components are licensed under the
|
||||||
|
GNU Lesser General Public License version 2.1.
|
||||||
|
|
||||||
|
utilities/bugtool/ovs-bugtool
|
||||||
|
utilities/bugtool/ovs-bugtool-*
|
||||||
|
utilities/bugtool/plugins/kernel-info/openvswitch.xml
|
||||||
|
utilities/bugtool/plugins/network-status/openvswitch.xml
|
||||||
|
utilities/bugtool/plugins/system-configuration.xml
|
||||||
|
utilities/bugtool/plugins/system-configuration/openvswitch.xml
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the
|
||||||
|
GNU Lesser General Public License version 2.1 can be found in
|
||||||
|
`/usr/share/common-licenses/LGPL-2.1'
|
||||||
|
|
||||||
|
* The following component is licensed under the GNU General Public License
|
||||||
|
version 2.
|
||||||
|
|
||||||
|
datapath/
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General Public License
|
||||||
|
version 2 can be found in `/usr/share/common-licenses/GPL-2'
|
||||||
|
|
||||||
|
* The following file is licensed under the GNU General Public License
|
||||||
|
version 2.
|
||||||
|
|
||||||
|
build-aux/cccl
|
||||||
|
|
||||||
|
* The following files are licensed under the 2-clause BSD license.
|
||||||
|
|
||||||
|
lib/getopt_long.c
|
||||||
|
include/windows/getopt.h
|
||||||
|
|
||||||
|
* The following files are licensed under the 3-clause BSD-license
|
||||||
|
|
||||||
|
include/windows/netinet/icmp6.h
|
||||||
|
include/windows/netinet/ip6.h
|
||||||
|
lib/strsep.c
|
||||||
|
|
||||||
|
* The following components are dual-licensed under the
|
||||||
|
GNU General Public License version 2 and the Apache License Version 2.0.
|
||||||
|
|
||||||
|
datapath/linux/compat/include/linux/openvswitch.h
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General Public License
|
||||||
|
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||||
|
On Debian systems, the complete text of the Apache License version 2.0
|
||||||
|
can be found in '/usr/share/common-licenses/Apache-2.0'.
|
||||||
|
|
||||||
|
* The following components are licensed under the terms of either the
|
||||||
|
Sun Industry Standard Source License 1.1 or the InMon sFlow License:
|
||||||
|
|
||||||
|
lib/sflow.h
|
||||||
|
lib/sflow_agent.c
|
||||||
|
lib/sflow_api.h
|
||||||
|
lib/sflow_poller.c
|
||||||
|
lib/sflow_receiver.c
|
||||||
|
lib/sflow_sampler.c
|
||||||
|
|
||||||
|
These licenses are available, respectively, the following URLs:
|
||||||
|
|
||||||
|
http://host-sflow.sourceforge.net/sissl.html
|
||||||
|
http://www.inmon.com/technology/sflowlicense.txt
|
||||||
|
|
||||||
|
The full text of each license is also appended to the end of this
|
||||||
|
file.
|
||||||
|
|
||||||
|
* The following components are licensed for use as desired without restriction:
|
||||||
|
|
||||||
|
lib/crc32c.c
|
||||||
|
|
||||||
|
* The following components are licensed under the
|
||||||
|
Python Software Foundation License Version 2.
|
||||||
|
|
||||||
|
python/compat/uuid.py
|
||||||
|
python/compat/argparse.py
|
||||||
|
|
||||||
|
* These components are only distributed in the source package.
|
||||||
|
They do not appear in any binary packages.
|
||||||
|
|
||||||
|
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
1. This LICENSE AGREEMENT is between the Python Software Foundation
|
||||||
|
("PSF"), and the Individual or Organization ("Licensee") accessing and
|
||||||
|
otherwise using this software ("Python") in source or binary form and
|
||||||
|
its associated documentation.
|
||||||
|
|
||||||
|
2. Subject to the terms and conditions of this License Agreement, PSF
|
||||||
|
hereby grants Licensee a nonexclusive, royalty-free, world-wide
|
||||||
|
license to reproduce, analyze, test, perform and/or display publicly,
|
||||||
|
prepare derivative works, distribute, and otherwise use Python
|
||||||
|
alone or in any derivative version, provided, however, that PSF's
|
||||||
|
License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
|
||||||
|
2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
|
||||||
|
All Rights Reserved" are retained in Python alone or in any derivative
|
||||||
|
version prepared by Licensee.
|
||||||
|
|
||||||
|
3. In the event Licensee prepares a derivative work that is based on
|
||||||
|
or incorporates Python or any part thereof, and wants to make
|
||||||
|
the derivative work available to others as provided herein, then
|
||||||
|
Licensee hereby agrees to include in any such work a brief summary of
|
||||||
|
the changes made to Python.
|
||||||
|
|
||||||
|
4. PSF is making Python available to Licensee on an "AS IS"
|
||||||
|
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||||
|
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
|
||||||
|
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||||
|
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
|
||||||
|
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||||
|
|
||||||
|
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
||||||
|
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
||||||
|
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
|
||||||
|
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||||
|
|
||||||
|
6. This License Agreement will automatically terminate upon a material
|
||||||
|
breach of its terms and conditions.
|
||||||
|
|
||||||
|
7. Nothing in this License Agreement shall be deemed to create any
|
||||||
|
relationship of agency, partnership, or joint venture between PSF and
|
||||||
|
Licensee. This License Agreement does not grant permission to use PSF
|
||||||
|
trademarks or trade name in a trademark sense to endorse or promote
|
||||||
|
products or services of Licensee, or any third party.
|
||||||
|
|
||||||
|
8. By copying, installing or otherwise using Python, Licensee
|
||||||
|
agrees to be bound by the terms and conditions of this License
|
||||||
|
Agreement.
|
||||||
|
|
||||||
|
* lib/ovs.tmac in the source distribution, and manpages in the
|
||||||
|
binaries, includes troff macros from groff 1.21 that contain the
|
||||||
|
following notice:
|
||||||
|
|
||||||
|
.\" an-ext.tmac
|
||||||
|
.\"
|
||||||
|
.\" Written by Eric S. Raymond <esr@thyrsus.com>
|
||||||
|
.\" Werner Lemberg <wl@gnu.org>
|
||||||
|
.\"
|
||||||
|
.\" Version 2007-Feb-02
|
||||||
|
.\"
|
||||||
|
.\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
|
||||||
|
.\" You may freely use, modify and/or distribute this file.
|
||||||
|
|
||||||
|
* m4/absolute-header.m4, by Derek Price, and m4/include_next.m4, by
|
||||||
|
Paul Eggert and Derek Price bear the following notices:
|
||||||
|
|
||||||
|
Copyright (C) 2006-2013 Free Software Foundation, Inc.
|
||||||
|
This file is free software; the Free Software Foundation
|
||||||
|
gives unlimited permission to copy and/or distribute it,
|
||||||
|
with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
* The following files are licensed under the ISC-license
|
||||||
|
|
||||||
|
lib/lldp/aa-structs.h
|
||||||
|
lib/lldp/lldpd.c
|
||||||
|
lib/lldp/lldpd.h
|
||||||
|
lib/lldp/lldpd-structs.c
|
||||||
|
lib/lldp/lldpd-structs.h
|
||||||
|
lib/lldp/lldp.c
|
||||||
|
lib/lldp/lldp-tlv.h
|
||||||
|
lib/lldp/lldp-const.h
|
||||||
|
|
||||||
|
* All other components of this package are licensed under
|
||||||
|
The Apache License Version 2.0.
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the Apache License version 2.0
|
||||||
|
can be found in '/usr/share/common-licenses/Apache-2.0'.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Retrieved from http://host-sflow.sourceforge.net/sissl.html, 2011-12-12:
|
||||||
|
|
||||||
|
Sun Industry Standards Source License - Version 1.1
|
||||||
|
|
||||||
|
1.0 DEFINITIONS
|
||||||
|
|
||||||
|
1.1 "Commercial Use" means distribution or otherwise making the
|
||||||
|
Original Code available to a third party.
|
||||||
|
|
||||||
|
1.2 "Contributor Version" means the combination of the Original Code,
|
||||||
|
and the Modifications made by that particular Contributor.
|
||||||
|
|
||||||
|
1.3 "Electronic Distribution Mechanism" means a mechanism generally
|
||||||
|
accepted in the software development community for the electronic
|
||||||
|
transfer of data.
|
||||||
|
|
||||||
|
1.4 "Executable" means Original Code in any form other than Source
|
||||||
|
Code.
|
||||||
|
|
||||||
|
1.5 "Initial Developer" means the individual or entity identified as
|
||||||
|
the Initial Developer in the Source Code notice required by Exhibit A.
|
||||||
|
|
||||||
|
1.6 "Larger Work" means a work which combines Original Code or portions
|
||||||
|
thereof with code not governed by the terms of this License.
|
||||||
|
|
||||||
|
1.7 "License" means this document.
|
||||||
|
|
||||||
|
1.8 "Licensable" means having the right to grant, to the maximum extent
|
||||||
|
possible, whether at the time of the initial grant or subsequently
|
||||||
|
acquired, any and all of the rights conveyed herein.
|
||||||
|
|
||||||
|
1.9 "Modifications" means any addition to or deletion from the
|
||||||
|
substance or structure of either the Original Code or any previous
|
||||||
|
Modifications. A Modification is:
|
||||||
|
|
||||||
|
A. Any addition to or deletion from the contents of a file containing
|
||||||
|
Original Code or previous Modifications.
|
||||||
|
|
||||||
|
B. Any new file that contains any part of the Original Code or previous
|
||||||
|
Modifications.
|
||||||
|
|
||||||
|
1.10 "Original Code" means Source Code of computer software code which
|
||||||
|
is described in the Source Code notice required by Exhibit A as
|
||||||
|
Original Code.
|
||||||
|
|
||||||
|
1.11 "Patent Claims" means any patent claim(s), now owned or hereafter
|
||||||
|
acquired, including without limitation, method, process, and apparatus
|
||||||
|
claims, in any patent Licensable by grantor.
|
||||||
|
|
||||||
|
1.12 "Source Code" means the preferred form of the Original Code for
|
||||||
|
making modifications to it, including all modules it contains, plus any
|
||||||
|
associated interface definition files, or scripts used to control
|
||||||
|
compilation and installation of an Executable.
|
||||||
|
|
||||||
|
1.13 "Standards" means the standards identified in Exhibit B.
|
||||||
|
|
||||||
|
1.14 "You" (or "Your") means an individual or a legal entity exercising
|
||||||
|
rights under, and complying with all of the terms of, this License or a
|
||||||
|
future version of this License issued under Section 6.1. For legal
|
||||||
|
entities, "You'' includes any entity which controls, is controlled by,
|
||||||
|
or is under common control with You. For purposes of this definition,
|
||||||
|
"control'' means (a) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (b) ownership of more than fifty percent (50%) of the
|
||||||
|
outstanding shares or beneficial ownership of such entity.
|
||||||
|
|
||||||
|
2.0 SOURCE CODE LICENSE
|
||||||
|
|
||||||
|
2.1 The Initial Developer Grant
|
||||||
|
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license, subject to third party intellectual property
|
||||||
|
claims:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by Initial Developer to use, reproduce, modify, display,
|
||||||
|
perform, sublicense and distribute the Original Code (or portions
|
||||||
|
thereof) with or without Modifications, and/or as part of a Larger
|
||||||
|
Work; and
|
||||||
|
|
||||||
|
(b) under Patents Claims infringed by the making, using or selling of
|
||||||
|
Original Code, to make, have made, use, practice, sell, and offer for
|
||||||
|
sale, and/or otherwise dispose of the Original Code (or portions
|
||||||
|
thereof).
|
||||||
|
|
||||||
|
(c) the licenses granted in this Section 2.1(a) and (b) are effective
|
||||||
|
on the date Initial Developer first distributes Original Code under the
|
||||||
|
terms of this License.
|
||||||
|
|
||||||
|
(d) Notwithstanding Section 2.1(b) above, no patent license is granted:
|
||||||
|
1) for code that You delete from the Original Code; 2) separate from
|
||||||
|
the Original Code; or 3) for infringements caused by: i) the
|
||||||
|
modification of the Original Code or ii) the combination of the
|
||||||
|
Original Code with other software or devices, including but not limited
|
||||||
|
to Modifications.
|
||||||
|
3.0 DISTRIBUTION OBLIGATIONS
|
||||||
|
|
||||||
|
3.1 Application of License.
|
||||||
|
The Source Code version of Original Code may be distributed only under
|
||||||
|
the terms of this License or a future version of this License released
|
||||||
|
under Section 6.1, and You must include a copy of this License with
|
||||||
|
every copy of the Source Code You distribute. You may not offer or
|
||||||
|
impose any terms on any Source Code version that alters or restricts
|
||||||
|
the applicable version of this License or the recipients' rights
|
||||||
|
hereunder. Your license for shipment of the Contributor Version is
|
||||||
|
conditioned upon Your full compliance with this Section. The
|
||||||
|
Modifications which You create must comply with all requirements set
|
||||||
|
out by the Standards body in effect one hundred twenty (120) days
|
||||||
|
before You ship the Contributor Version. In the event that the
|
||||||
|
Modifications do not meet such requirements, You agree to publish
|
||||||
|
either (i) any deviation from the Standards protocol resulting from
|
||||||
|
implementation of Your Modifications and a reference implementation of
|
||||||
|
Your Modifications or (ii) Your Modifications in Source Code form, and
|
||||||
|
to make any such deviation and reference implementation or
|
||||||
|
Modifications available to all third parties under the same terms as
|
||||||
|
this license on a royalty free basis within thirty (30) days of Your
|
||||||
|
first customer shipment of Your Modifications.
|
||||||
|
|
||||||
|
3.2 Required Notices.
|
||||||
|
You must duplicate the notice in Exhibit A in each file of the Source
|
||||||
|
Code. If it is not possible to put such notice in a particular Source
|
||||||
|
Code file due to its structure, then You must include such notice in a
|
||||||
|
location (such as a relevant directory) where a user would be likely to
|
||||||
|
look for such a notice. If You created one or more Modification(s) You
|
||||||
|
may add Your name as a Contributor to the notice described in Exhibit
|
||||||
|
A. You must also duplicate this License in any documentation for the
|
||||||
|
Source Code where You describe recipients' rights or ownership rights
|
||||||
|
relating to Initial Code. You may choose to offer, and to charge a fee
|
||||||
|
for, warranty, support, indemnity or liability obligations to one or
|
||||||
|
more recipients of Your version of the Code. However, You may do so
|
||||||
|
only on Your own behalf, and not on behalf of the Initial Developer.
|
||||||
|
You must make it absolutely clear than any such warranty, support,
|
||||||
|
indemnity or liability obligation is offered by You alone, and You
|
||||||
|
hereby agree to indemnify the Initial Developer for any liability
|
||||||
|
incurred by the Initial Developer as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer.
|
||||||
|
|
||||||
|
3.3 Distribution of Executable Versions.
|
||||||
|
You may distribute Original Code in Executable and Source form only if
|
||||||
|
the requirements of Sections 3.1 and 3.2 have been met for that
|
||||||
|
Original Code, and if You include a notice stating that the Source Code
|
||||||
|
version of the Original Code is available under the terms of this
|
||||||
|
License. The notice must be conspicuously included in any notice in an
|
||||||
|
Executable or Source versions, related documentation or collateral in
|
||||||
|
which You describe recipients' rights relating to the Original Code.
|
||||||
|
You may distribute the Executable and Source versions of Your version
|
||||||
|
of the Code or ownership rights under a license of Your choice, which
|
||||||
|
may contain terms different from this License, provided that You are in
|
||||||
|
compliance with the terms of this License. If You distribute the
|
||||||
|
Executable and Source versions under a different license You must make
|
||||||
|
it absolutely clear that any terms which differ from this License are
|
||||||
|
offered by You alone, not by the Initial Developer. You hereby agree to
|
||||||
|
indemnify the Initial Developer for any liability incurred by the
|
||||||
|
Initial Developer as a result of any such terms You offer.
|
||||||
|
|
||||||
|
3.4 Larger Works.
|
||||||
|
You may create a Larger Work by combining Original Code with other code
|
||||||
|
not governed by the terms of this License and distribute the Larger
|
||||||
|
Work as a single product. In such a case, You must make sure the
|
||||||
|
requirements of this License are fulfilled for the Original Code.
|
||||||
|
|
||||||
|
4.0 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Original Code due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description
|
||||||
|
must be included in the LEGAL file described in Section 3.2 and must be
|
||||||
|
included with all distributions of the Source Code. Except to the
|
||||||
|
extent prohibited by statute or regulation, such description must be
|
||||||
|
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||||
|
understand it.
|
||||||
|
|
||||||
|
5.0 APPLICATION OF THIS LICENSE
|
||||||
|
|
||||||
|
This License applies to code to which the Initial Developer has
|
||||||
|
attached the notice in Exhibit A and to related Modifications as set
|
||||||
|
out in Section 3.1.
|
||||||
|
|
||||||
|
6.0 VERSIONS OF THE LICENSE
|
||||||
|
|
||||||
|
6.1 New Versions.
|
||||||
|
Sun may publish revised and/or new versions of the License from time to
|
||||||
|
time. Each version will be given a distinguishing version number.
|
||||||
|
|
||||||
|
6.2 Effect of New Versions.
|
||||||
|
Once Original Code has been published under a particular version of the
|
||||||
|
License, You may always continue to use it under the terms of that
|
||||||
|
version. You may also choose to use such Original Code under the terms
|
||||||
|
of any subsequent version of the License published by Sun. No one other
|
||||||
|
than Sun has the right to modify the terms applicable to Original Code.
|
||||||
|
|
||||||
|
7.0 DISCLAIMER OF WARRANTY
|
||||||
|
|
||||||
|
ORIGINAL CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||||
|
WITHOUT LIMITATION, WARRANTIES THAT THE ORIGINAL CODE IS FREE OF
|
||||||
|
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
|
||||||
|
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ORIGINAL CODE
|
||||||
|
IS WITH YOU. SHOULD ANY ORIGINAL CODE PROVE DEFECTIVE IN ANY RESPECT,
|
||||||
|
YOU (NOT THE INITIAL DEVELOPER) ASSUME THE COST OF ANY NECESSARY
|
||||||
|
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
|
||||||
|
CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY ORIGINAL
|
||||||
|
CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||||
|
|
||||||
|
8.0 TERMINATION
|
||||||
|
|
||||||
|
8.1 This License and the rights granted hereunder will terminate
|
||||||
|
automatically if You fail to comply with terms herein and fail to cure
|
||||||
|
such breach within 30 days of becoming aware of the breach. All
|
||||||
|
sublicenses to the Original Code which are properly granted shall
|
||||||
|
survive any termination of this License. Provisions which, by their
|
||||||
|
nature, must remain in effect beyond the termination of this License
|
||||||
|
shall survive.
|
||||||
|
|
||||||
|
8.2 In the event of termination under Section 8.1 above, all end user
|
||||||
|
license agreements (excluding distributors and resellers) which have
|
||||||
|
been validly granted by You or any distributor hereunder prior to
|
||||||
|
termination shall survive termination.
|
||||||
|
|
||||||
|
9.0 LIMIT OF LIABILITY
|
||||||
|
|
||||||
|
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
|
||||||
|
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
|
||||||
|
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF ORIGINAL CODE,
|
||||||
|
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
|
||||||
|
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||||
|
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
|
||||||
|
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
|
||||||
|
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
|
||||||
|
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
|
||||||
|
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
|
||||||
|
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||||
|
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||||
|
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
|
||||||
|
EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||||
|
|
||||||
|
10.0 U.S. GOVERNMENT END USERS
|
||||||
|
|
||||||
|
U.S. Government: If this Software is being acquired by or on behalf of
|
||||||
|
the U.S. Government or by a U.S. Government prime contractor or
|
||||||
|
subcontractor (at any tier), then the Government's rights in the
|
||||||
|
Software and accompanying documentation shall be only as set forth in
|
||||||
|
this license; this is in accordance with 48 C.F.R. 227.7201 through
|
||||||
|
227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48
|
||||||
|
C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
|
||||||
|
|
||||||
|
11.0 MISCELLANEOUS
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. This License shall be governed by
|
||||||
|
California law provisions (except to the extent applicable law, if any,
|
||||||
|
provides otherwise), excluding its conflict-of-law provisions. With
|
||||||
|
respect to disputes in which at least one party is a citizen of, or an
|
||||||
|
entity chartered or registered to do business in the United States of
|
||||||
|
America, any litigation relating to this License shall be subject to
|
||||||
|
the jurisdiction of the Federal Courts of the Northern District of
|
||||||
|
California, with venue lying in Santa Clara County, California, with
|
||||||
|
the losing party responsible for costs, including without limitation,
|
||||||
|
court costs and reasonable attorneys' fees and expenses. The
|
||||||
|
application of the United Nations Convention on Contracts for the
|
||||||
|
International Sale of Goods is expressly excluded. Any law or
|
||||||
|
regulation which provides that the language of a contract shall be
|
||||||
|
construed against the drafter shall not apply to this License.
|
||||||
|
|
||||||
|
EXHIBIT A - Sun Standards License
|
||||||
|
"The contents of this file are subject to the Sun Standards
|
||||||
|
License Version 1.1 (the "License");
|
||||||
|
You may not use this file except in compliance with the
|
||||||
|
License. You may obtain a copy of the
|
||||||
|
License at _______________________________.
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on
|
||||||
|
an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
|
||||||
|
express or implied. See the License for the specific
|
||||||
|
language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is ______________________________________.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is:
|
||||||
|
InMon Corp.
|
||||||
|
|
||||||
|
Portions created by: _______________________________________
|
||||||
|
|
||||||
|
are Copyright (C): _______________________________________
|
||||||
|
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s): _______________________________________
|
||||||
|
|
||||||
|
EXHIBIT B - Standards
|
||||||
|
|
||||||
|
The Standard is defined as the following:
|
||||||
|
|
||||||
|
sFlow Specification, located at
|
||||||
|
[1]http://sflow.org/developers/specifications.php
|
||||||
|
|
||||||
|
References
|
||||||
|
|
||||||
|
1. http://sflow.org/developers/specifications.php
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Retrieved from http://www.inmon.com/technology/sflowlicense.txt, 2011-12-12:
|
||||||
|
|
||||||
|
LICENSE AGREEMENT
|
||||||
|
|
||||||
|
PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY BEFORE REPRODUCING OR IN ANY WAY
|
||||||
|
UTILIZING THE sFlow(R) SOFTWARE ("SOFTWARE") AND/OR ANY ACCOMPANYING DOCUMENTATION
|
||||||
|
("DOCUMENTATION") AND/OR THE RELATED SPECIFICATIONS ("SPECIFICATIONS"). YOUR REPRODUCTION
|
||||||
|
OR USE OF THE SOFTWARE AND/OR THE DOCUMENTATION AND/OR THE SPECIFICATIONS CONSTITUTES YOUR
|
||||||
|
ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO BE BOUND
|
||||||
|
BY THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT REPRODUCE OR IN ANY WAY UTILIZE
|
||||||
|
THE SOFTWARE OR THE DOCUMENTATION OR THE SPECIFICATIONS.
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"Documentation" means the user manuals, training materials, and operating materials, if any,
|
||||||
|
InMon provides to Licensee under this Agreement.
|
||||||
|
|
||||||
|
"InMon" means InMon Corporation, its affiliates and subsidiaries.
|
||||||
|
|
||||||
|
"Intellectual Property Rights" means any trade secrets, patents, including without
|
||||||
|
limitation any patents covering the Software, copyrights, know-how, moral rights and
|
||||||
|
similar rights of any type under the laws of any governmental authority, domestic or
|
||||||
|
foreign, including all applications and registrations relating to any of the foregoing.
|
||||||
|
|
||||||
|
"Licensee Hardware" means all computers, routers, or other equipment owned or controlled by
|
||||||
|
or on behalf of Licensee.
|
||||||
|
|
||||||
|
"Products" means any and all software applications, computers, routers, or other equipment
|
||||||
|
manufactured by or on behalf of Licensee for the purpose of resale or lease to any other
|
||||||
|
third party, or otherwise made available by Licensee free of charge.
|
||||||
|
|
||||||
|
"Software" means the sFlow(R) software programs, in source or binary code format, that
|
||||||
|
Licensee licenses from InMon under this Agreement and any bug fixes or error corrections
|
||||||
|
which InMon may provide to Licensee.
|
||||||
|
|
||||||
|
"Specifications" means the published specifications provided or otherwise made available by
|
||||||
|
InMon at: http://www.sflow.org.
|
||||||
|
|
||||||
|
"Trademark" means InMon's "sFlow(R)" trademark.
|
||||||
|
|
||||||
|
2. License Grant.
|
||||||
|
|
||||||
|
2.1 Software, Documentation and Specifications License Grant. InMon hereby grants to
|
||||||
|
Licensee, under all of InMon's Intellectual Property Rights therein, a perpetual (subject
|
||||||
|
to InMon's termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
|
||||||
|
transferable, sublicensable license, to: (i) use and reproduce the Software, the
|
||||||
|
Documentation, and the Specifications; (ii) modify the Software; (iii) implement the
|
||||||
|
Specifications in the Products; (iv) install the Software, or software in which the
|
||||||
|
Specifications have been implemented, on Licensee Hardware and Products, and (v) distribute
|
||||||
|
any Products that include the Software, the Documentation, or software in which the
|
||||||
|
Specifications have been implemented.
|
||||||
|
|
||||||
|
2.2 Trademark License. InMon hereby grants to Licensee a perpetual (subject to InMon's
|
||||||
|
termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
|
||||||
|
transferable, sublicensable license to use the Trademark on or in connection with the
|
||||||
|
Software, the Documentation, the Specifications and any software that implements the
|
||||||
|
Specifications.
|
||||||
|
|
||||||
|
2.3 Restrictions. Licensee agrees that it will not use the Software in a way
|
||||||
|
inconsistent with the license granted in Section 2.1. Further, Licensee agrees that, in
|
||||||
|
exercising its rights under the license granted to it in this Agreement, Licensee will:
|
||||||
|
(i) strictly adhere to and fully comply with the Specifications; (ii) use the Trademark,
|
||||||
|
and no other mark, to identify the Software, the Documentation, the Specifications and any
|
||||||
|
Products that implement the Specifications; (iii) place, in a font or graphic design
|
||||||
|
designated by InMon, the phrase "sFlow(R)" on any technical documentation,
|
||||||
|
sales/marketing materials, catalogs, or other such materials relating to products it
|
||||||
|
manufactures or markets which it has configured to be compatible with the Software or
|
||||||
|
otherwise implement the Specifications; (iv) in connection with any Products shipped to or
|
||||||
|
sold in other countries that include the Software or any software that implements the
|
||||||
|
Specifications, comply with the patent and trademark laws and practice of such other
|
||||||
|
country; and (v) not alter or impair any acknowledgment of copyright or trademark rights of
|
||||||
|
InMon that may appear in or on the Software, the Documentation or the Specifications. In
|
||||||
|
the event InMon determines that Licensee is not complying with its obligations under
|
||||||
|
clauses (i)-(v) above, InMon shall notify Licensee of such non-compliance, and if Licensee
|
||||||
|
fails to correct such non-compliance within three (3) months, InMon may immediately
|
||||||
|
terminate this Agreement as provided under paragraph 7 below and pursue any and all
|
||||||
|
actions and remedies as it deems necessary, including, but not limited to breach of
|
||||||
|
contract.
|
||||||
|
|
||||||
|
3. Ownership. Except for the license expressly granted in Section 2, Inmon hereby
|
||||||
|
retains all right, title, and interest in and to the Trademark and all its Intellectual
|
||||||
|
Property Rights in the Software, the Documentation and the Specifications. Licensee
|
||||||
|
obtains no rights hereunder in the Trademark, Software, Documentation or Specifications by
|
||||||
|
implication, estoppel or otherwise. Licensee acknowledges that the Trademark, Software,
|
||||||
|
Documentation and Specifications are being licensed and not sold under this Agreement, and
|
||||||
|
that this Agreement does not transfer title in the Trademark, Software, Documentation or
|
||||||
|
Specifications, or any copy thereof, to Licensee.
|
||||||
|
|
||||||
|
4. Support. Inmon shall have no obligation under this Agreement to (a) supply
|
||||||
|
maintenance or support, bug fixes or error corrections to the Licensed Software,
|
||||||
|
(b) supply future versions of the Licensed Software or (c) provide Licensed Software
|
||||||
|
development tools to Licensee.
|
||||||
|
|
||||||
|
5. Warranty. INMON HEREBY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED OR
|
||||||
|
STATUTORY, WITH RESPECT TO THE TRADEMARK, THE SOFTWARE, THE DOCUMENTATION, THE
|
||||||
|
SPECIFICATIONS. OR OTHERWISE, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF ANY INTELLECTUAL
|
||||||
|
PROPERTY RIGHTS.
|
||||||
|
|
||||||
|
6. Limitation of Liability. IN NO EVENT SHALL INMON OR ITS SUPPLIERS OR LICENSORS BE
|
||||||
|
LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT OR EXEMPLARY DAMAGES WHATSOEVER,
|
||||||
|
WHETHER RELATED TO OR ARISING OUT OF THIS AGREEMENT, THE TRADEMARK, THE SOFTWARE, THE
|
||||||
|
DOCUMENTATION, THE SPECIFICATIONS, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, DAMAGES FOR
|
||||||
|
LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF DATA, COSTS OF PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES OR FOR ANY CLAIM OR DEMAND AGAINST LICENSEE BY ANY OTHER PARTY, OR OTHER
|
||||||
|
PECUNIARY LOSS, EVEN IF INMON HAS BEEN ADVISED OF OR KNOWS OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
7. Term and Termination. The term of this Agreement will begin on the Effective Date,
|
||||||
|
which shall be deemed to be the date of delivery of the Software and/or Documentation and/or
|
||||||
|
Specifications to Licensee, and shall continue indefinitely unless and until terminated by
|
||||||
|
Licensee's giving written notice of termination to InMon, or by InMon pursuant to InMon's
|
||||||
|
termination rights as set forth in Section 2.3 above. Upon any termination of this
|
||||||
|
Agreement, Licensee shall cease exercising its license rights under this Agreement,
|
||||||
|
including the right to distribute Products that incorporate the Software or Documentation
|
||||||
|
or that implement the Specifications. The rights and obligations contained in Sections 1,
|
||||||
|
3, 5, 6, 7, and 8 shall survive any termination of this Agreement.
|
||||||
|
|
||||||
|
8. General Provisions.
|
||||||
|
|
||||||
|
8.1 Assignment. This Agreement shall be binding upon and inure to the benefit of the
|
||||||
|
parties hereto and their permitted successors and permitted assigns. InMon will have the
|
||||||
|
right to assign this Agreement without notice to Licensee. Licensee may assign or transfer
|
||||||
|
(whether by merger, operation of law or in any other manner) any of its rights or delegate
|
||||||
|
any of its obligations hereunder without the prior written consent of InMon, provided the
|
||||||
|
assignee assumes in writing all of Licensee's obligations hereunder.
|
||||||
|
|
||||||
|
8.2 Notices. All notices permitted or required under this Agreement shall be in
|
||||||
|
writing and shall be delivered in person or mailed by first class, registered or certified
|
||||||
|
mail, postage prepaid, to the address of the party specified in this Agreement or such
|
||||||
|
other address as either party may specify in writing. Such notice shall be deemed to have
|
||||||
|
been given upon receipt.
|
||||||
|
|
||||||
|
8.3 Non-Waiver. No term or provision hereof shall be deemed waived, and no breach
|
||||||
|
excused, unless such waiver or consent shall be in writing and signed by the party claimed
|
||||||
|
to have waived or consented. Any consent or waiver, whether express or implied, shall not
|
||||||
|
constitute a consent or waiver of, or excuse for any separate, different or subsequent
|
||||||
|
breach.
|
||||||
|
|
||||||
|
8.4 Independent Contractor. The parties' relationship shall be solely that of
|
||||||
|
independent contractors, and nothing contained in this Agreement shall be construed to make
|
||||||
|
either party an agent, partner, representative or principal of the other for any purpose.
|
||||||
|
|
||||||
|
8.5 Choice of Law and Forum. This Agreement shall be governed by and construed under
|
||||||
|
the laws of the State of California, without giving effect to such state's conflict of laws
|
||||||
|
principles. The parties hereby submit to the personal jurisdiction of, and agree that any
|
||||||
|
legal proceeding with respect to or arising under this Agreement shall be brought in, the
|
||||||
|
United States District Court for the Northern District of California or the state courts
|
||||||
|
of the State of California for the County of San Francisco.
|
||||||
|
|
||||||
|
8.6 U.S. Government Licenses. The Software and Documentation are considered a
|
||||||
|
"commercial item" as that term is defined at 48 C.F.R 2.101, or "commercial computer
|
||||||
|
software" and "commercial computer software documentation" as such terms are used in
|
||||||
|
48 C.F.R 12.212 of the Federal Acquisition Regulations and its successors, and
|
||||||
|
48 C.F.R. 227.7202 of the DoD FAR Supplement and its successors.
|
||||||
|
|
||||||
|
8.7 Severability. If any provision of this Agreement is held to be unenforceable under
|
||||||
|
applicable law, then such provision shall be excluded from this Agreement and the balance
|
||||||
|
of this Agreement shall be interpreted as if such provision were so excluded and shall be
|
||||||
|
enforceable in accordance with its terms. The court in its discretion may substitute for
|
||||||
|
the excluded provision an enforceable provision which in economic substance reasonably
|
||||||
|
approximates the excluded provision.
|
||||||
|
|
||||||
|
8.8 Compliance With Law. Licensee shall comply with all applicable laws and
|
||||||
|
regulations (including privacy laws and regulations) having application to or governing its
|
||||||
|
use and/or operation of the Software and agrees to indemnify and hold InMon harmless from
|
||||||
|
and against any claims, damages, losses or obligations suffered or incurred by InMon
|
||||||
|
arising from its failure to so comply.
|
||||||
|
|
||||||
|
8.9 Entire Agreement; Amendment. This Agreement constitutes the final, complete and
|
||||||
|
entire agreement between the parties with respect to the subject matter hereof, and
|
||||||
|
supersedes any previous proposals, negotiations, agreements, or arrangements, whether
|
||||||
|
verbal or written, made between the parties with respect to such subject matter. This
|
||||||
|
Agreement shall control over any additional or conflicting terms in any of Licensee's
|
||||||
|
purchase orders or other business forms. This Agreement may only be amended or modified
|
||||||
|
by mutual agreement of authorized representatives of the parties in writing.
|
||||||
|
|
||||||
|
InMon Corp.
|
||||||
|
580 California Street, 5th Floor, San Francisco, CA 94104
|
||||||
|
Phone: (415) 283-3260
|
||||||
|
URL: www.inmon.com
|
||||||
|
Email: info@inmon.com
|
|
@ -0,0 +1,716 @@
|
||||||
|
The original sources for this package can be found at:
|
||||||
|
|
||||||
|
http://openvswitch.org/
|
||||||
|
|
||||||
|
Upstream Authors (from AUTHORS):
|
||||||
|
|
||||||
|
%AUTHORS%
|
||||||
|
|
||||||
|
Upstream Copyright Holders:
|
||||||
|
|
||||||
|
Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
|
||||||
|
Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
|
||||||
|
Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
|
||||||
|
and authors listed above.
|
||||||
|
Copyright (c) 2011 Gaetano Catalli
|
||||||
|
Copyright (C) 2000-2003 Geoffrey Wossum (gwossum@acm.org)
|
||||||
|
Copyright (C) 2000 The NetBSD Foundation, Inc.
|
||||||
|
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||||
|
Copyright (c) 1982, 1986, 1990, 1993 The Regents of the University of California.
|
||||||
|
Copyright (c) 2008, 2012 Vincent Bernat <bernat@luffy.cx>
|
||||||
|
Copyright (c) 2014 Michael Chapman
|
||||||
|
Copyright (c) 2014 WindRiver, Inc.
|
||||||
|
Copyright (c) 2014 Avaya, Inc.
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
* The following components are licensed under the
|
||||||
|
GNU Lesser General Public License version 2.1 only
|
||||||
|
with the exception clause below as a pre-amble.
|
||||||
|
|
||||||
|
xenserver/etc_xensource_scripts_vif
|
||||||
|
xenserver/opt_xensource_libexec_InterfaceReconfigure.py
|
||||||
|
xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
|
||||||
|
xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
|
||||||
|
xenserver/opt_xensource_libexec_interface-reconfigure
|
||||||
|
xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
|
||||||
|
|
||||||
|
* These components are only distributed in the source package.
|
||||||
|
They do not appear in any binary packages.
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the
|
||||||
|
GNU Lesser General Public License version 2.1 can be found in
|
||||||
|
`/usr/share/common-licenses/LGPL-2.1'
|
||||||
|
|
||||||
|
The exception clause pre-amble reads:
|
||||||
|
|
||||||
|
As a special exception to the GNU Lesser General Public License, you
|
||||||
|
may link, statically or dynamically, a "work that uses the Library"
|
||||||
|
with a publicly distributed version of the Library to produce an
|
||||||
|
executable file containing portions of the Library, and distribute
|
||||||
|
that executable file under terms of your choice, without any of the
|
||||||
|
additional requirements listed in clause 6 of the GNU Lesser General
|
||||||
|
Public License. By "a publicly distributed version of the Library",
|
||||||
|
we mean either the unmodified Library as distributed, or a
|
||||||
|
modified version of the Library that is distributed under the
|
||||||
|
conditions defined in clause 3 of the GNU Library General Public
|
||||||
|
License. This exception does not however invalidate any other reasons
|
||||||
|
why the executable file might be covered by the GNU Lesser General
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
* The following components are licensed under the
|
||||||
|
GNU Lesser General Public License version 2.1.
|
||||||
|
|
||||||
|
utilities/bugtool/ovs-bugtool
|
||||||
|
utilities/bugtool/ovs-bugtool-*
|
||||||
|
utilities/bugtool/plugins/kernel-info/openvswitch.xml
|
||||||
|
utilities/bugtool/plugins/network-status/openvswitch.xml
|
||||||
|
utilities/bugtool/plugins/system-configuration.xml
|
||||||
|
utilities/bugtool/plugins/system-configuration/openvswitch.xml
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the
|
||||||
|
GNU Lesser General Public License version 2.1 can be found in
|
||||||
|
`/usr/share/common-licenses/LGPL-2.1'
|
||||||
|
|
||||||
|
* The following component is licensed under the GNU General Public License
|
||||||
|
version 2.
|
||||||
|
|
||||||
|
datapath/
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General Public License
|
||||||
|
version 2 can be found in `/usr/share/common-licenses/GPL-2'
|
||||||
|
|
||||||
|
* The following file is licensed under the GNU General Public License
|
||||||
|
version 2.
|
||||||
|
|
||||||
|
build-aux/cccl
|
||||||
|
|
||||||
|
* The following files are licensed under the 2-clause BSD license.
|
||||||
|
|
||||||
|
lib/getopt_long.c
|
||||||
|
include/windows/getopt.h
|
||||||
|
|
||||||
|
* The following files are licensed under the 3-clause BSD-license
|
||||||
|
|
||||||
|
include/windows/netinet/icmp6.h
|
||||||
|
include/windows/netinet/ip6.h
|
||||||
|
lib/strsep.c
|
||||||
|
|
||||||
|
* The following components are dual-licensed under the
|
||||||
|
GNU General Public License version 2 and the Apache License Version 2.0.
|
||||||
|
|
||||||
|
datapath/linux/compat/include/linux/openvswitch.h
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General Public License
|
||||||
|
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||||
|
On Debian systems, the complete text of the Apache License version 2.0
|
||||||
|
can be found in '/usr/share/common-licenses/Apache-2.0'.
|
||||||
|
|
||||||
|
* The following components are licensed under the terms of either the
|
||||||
|
Sun Industry Standard Source License 1.1 or the InMon sFlow License:
|
||||||
|
|
||||||
|
lib/sflow.h
|
||||||
|
lib/sflow_agent.c
|
||||||
|
lib/sflow_api.h
|
||||||
|
lib/sflow_poller.c
|
||||||
|
lib/sflow_receiver.c
|
||||||
|
lib/sflow_sampler.c
|
||||||
|
|
||||||
|
These licenses are available, respectively, the following URLs:
|
||||||
|
|
||||||
|
http://host-sflow.sourceforge.net/sissl.html
|
||||||
|
http://www.inmon.com/technology/sflowlicense.txt
|
||||||
|
|
||||||
|
The full text of each license is also appended to the end of this
|
||||||
|
file.
|
||||||
|
|
||||||
|
* The following components are licensed for use as desired without restriction:
|
||||||
|
|
||||||
|
lib/crc32c.c
|
||||||
|
|
||||||
|
* The following components are licensed under the
|
||||||
|
Python Software Foundation License Version 2.
|
||||||
|
|
||||||
|
python/compat/uuid.py
|
||||||
|
python/compat/argparse.py
|
||||||
|
|
||||||
|
* These components are only distributed in the source package.
|
||||||
|
They do not appear in any binary packages.
|
||||||
|
|
||||||
|
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
1. This LICENSE AGREEMENT is between the Python Software Foundation
|
||||||
|
("PSF"), and the Individual or Organization ("Licensee") accessing and
|
||||||
|
otherwise using this software ("Python") in source or binary form and
|
||||||
|
its associated documentation.
|
||||||
|
|
||||||
|
2. Subject to the terms and conditions of this License Agreement, PSF
|
||||||
|
hereby grants Licensee a nonexclusive, royalty-free, world-wide
|
||||||
|
license to reproduce, analyze, test, perform and/or display publicly,
|
||||||
|
prepare derivative works, distribute, and otherwise use Python
|
||||||
|
alone or in any derivative version, provided, however, that PSF's
|
||||||
|
License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
|
||||||
|
2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
|
||||||
|
All Rights Reserved" are retained in Python alone or in any derivative
|
||||||
|
version prepared by Licensee.
|
||||||
|
|
||||||
|
3. In the event Licensee prepares a derivative work that is based on
|
||||||
|
or incorporates Python or any part thereof, and wants to make
|
||||||
|
the derivative work available to others as provided herein, then
|
||||||
|
Licensee hereby agrees to include in any such work a brief summary of
|
||||||
|
the changes made to Python.
|
||||||
|
|
||||||
|
4. PSF is making Python available to Licensee on an "AS IS"
|
||||||
|
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
||||||
|
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
|
||||||
|
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
||||||
|
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
|
||||||
|
INFRINGE ANY THIRD PARTY RIGHTS.
|
||||||
|
|
||||||
|
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
||||||
|
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
||||||
|
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
|
||||||
|
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
||||||
|
|
||||||
|
6. This License Agreement will automatically terminate upon a material
|
||||||
|
breach of its terms and conditions.
|
||||||
|
|
||||||
|
7. Nothing in this License Agreement shall be deemed to create any
|
||||||
|
relationship of agency, partnership, or joint venture between PSF and
|
||||||
|
Licensee. This License Agreement does not grant permission to use PSF
|
||||||
|
trademarks or trade name in a trademark sense to endorse or promote
|
||||||
|
products or services of Licensee, or any third party.
|
||||||
|
|
||||||
|
8. By copying, installing or otherwise using Python, Licensee
|
||||||
|
agrees to be bound by the terms and conditions of this License
|
||||||
|
Agreement.
|
||||||
|
|
||||||
|
* lib/ovs.tmac in the source distribution, and manpages in the
|
||||||
|
binaries, includes troff macros from groff 1.21 that contain the
|
||||||
|
following notice:
|
||||||
|
|
||||||
|
.\" an-ext.tmac
|
||||||
|
.\"
|
||||||
|
.\" Written by Eric S. Raymond <esr@thyrsus.com>
|
||||||
|
.\" Werner Lemberg <wl@gnu.org>
|
||||||
|
.\"
|
||||||
|
.\" Version 2007-Feb-02
|
||||||
|
.\"
|
||||||
|
.\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
|
||||||
|
.\" You may freely use, modify and/or distribute this file.
|
||||||
|
|
||||||
|
* m4/absolute-header.m4, by Derek Price, and m4/include_next.m4, by
|
||||||
|
Paul Eggert and Derek Price bear the following notices:
|
||||||
|
|
||||||
|
Copyright (C) 2006-2013 Free Software Foundation, Inc.
|
||||||
|
This file is free software; the Free Software Foundation
|
||||||
|
gives unlimited permission to copy and/or distribute it,
|
||||||
|
with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
* The following files are licensed under the ISC-license
|
||||||
|
|
||||||
|
lib/lldp/aa-structs.h
|
||||||
|
lib/lldp/lldpd.c
|
||||||
|
lib/lldp/lldpd.h
|
||||||
|
lib/lldp/lldpd-structs.c
|
||||||
|
lib/lldp/lldpd-structs.h
|
||||||
|
lib/lldp/lldp.c
|
||||||
|
lib/lldp/lldp-tlv.h
|
||||||
|
lib/lldp/lldp-const.h
|
||||||
|
|
||||||
|
* All other components of this package are licensed under
|
||||||
|
The Apache License Version 2.0.
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the Apache License version 2.0
|
||||||
|
can be found in '/usr/share/common-licenses/Apache-2.0'.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Retrieved from http://host-sflow.sourceforge.net/sissl.html, 2011-12-12:
|
||||||
|
|
||||||
|
Sun Industry Standards Source License - Version 1.1
|
||||||
|
|
||||||
|
1.0 DEFINITIONS
|
||||||
|
|
||||||
|
1.1 "Commercial Use" means distribution or otherwise making the
|
||||||
|
Original Code available to a third party.
|
||||||
|
|
||||||
|
1.2 "Contributor Version" means the combination of the Original Code,
|
||||||
|
and the Modifications made by that particular Contributor.
|
||||||
|
|
||||||
|
1.3 "Electronic Distribution Mechanism" means a mechanism generally
|
||||||
|
accepted in the software development community for the electronic
|
||||||
|
transfer of data.
|
||||||
|
|
||||||
|
1.4 "Executable" means Original Code in any form other than Source
|
||||||
|
Code.
|
||||||
|
|
||||||
|
1.5 "Initial Developer" means the individual or entity identified as
|
||||||
|
the Initial Developer in the Source Code notice required by Exhibit A.
|
||||||
|
|
||||||
|
1.6 "Larger Work" means a work which combines Original Code or portions
|
||||||
|
thereof with code not governed by the terms of this License.
|
||||||
|
|
||||||
|
1.7 "License" means this document.
|
||||||
|
|
||||||
|
1.8 "Licensable" means having the right to grant, to the maximum extent
|
||||||
|
possible, whether at the time of the initial grant or subsequently
|
||||||
|
acquired, any and all of the rights conveyed herein.
|
||||||
|
|
||||||
|
1.9 "Modifications" means any addition to or deletion from the
|
||||||
|
substance or structure of either the Original Code or any previous
|
||||||
|
Modifications. A Modification is:
|
||||||
|
|
||||||
|
A. Any addition to or deletion from the contents of a file containing
|
||||||
|
Original Code or previous Modifications.
|
||||||
|
|
||||||
|
B. Any new file that contains any part of the Original Code or previous
|
||||||
|
Modifications.
|
||||||
|
|
||||||
|
1.10 "Original Code" means Source Code of computer software code which
|
||||||
|
is described in the Source Code notice required by Exhibit A as
|
||||||
|
Original Code.
|
||||||
|
|
||||||
|
1.11 "Patent Claims" means any patent claim(s), now owned or hereafter
|
||||||
|
acquired, including without limitation, method, process, and apparatus
|
||||||
|
claims, in any patent Licensable by grantor.
|
||||||
|
|
||||||
|
1.12 "Source Code" means the preferred form of the Original Code for
|
||||||
|
making modifications to it, including all modules it contains, plus any
|
||||||
|
associated interface definition files, or scripts used to control
|
||||||
|
compilation and installation of an Executable.
|
||||||
|
|
||||||
|
1.13 "Standards" means the standards identified in Exhibit B.
|
||||||
|
|
||||||
|
1.14 "You" (or "Your") means an individual or a legal entity exercising
|
||||||
|
rights under, and complying with all of the terms of, this License or a
|
||||||
|
future version of this License issued under Section 6.1. For legal
|
||||||
|
entities, "You'' includes any entity which controls, is controlled by,
|
||||||
|
or is under common control with You. For purposes of this definition,
|
||||||
|
"control'' means (a) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (b) ownership of more than fifty percent (50%) of the
|
||||||
|
outstanding shares or beneficial ownership of such entity.
|
||||||
|
|
||||||
|
2.0 SOURCE CODE LICENSE
|
||||||
|
|
||||||
|
2.1 The Initial Developer Grant
|
||||||
|
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license, subject to third party intellectual property
|
||||||
|
claims:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by Initial Developer to use, reproduce, modify, display,
|
||||||
|
perform, sublicense and distribute the Original Code (or portions
|
||||||
|
thereof) with or without Modifications, and/or as part of a Larger
|
||||||
|
Work; and
|
||||||
|
|
||||||
|
(b) under Patents Claims infringed by the making, using or selling of
|
||||||
|
Original Code, to make, have made, use, practice, sell, and offer for
|
||||||
|
sale, and/or otherwise dispose of the Original Code (or portions
|
||||||
|
thereof).
|
||||||
|
|
||||||
|
(c) the licenses granted in this Section 2.1(a) and (b) are effective
|
||||||
|
on the date Initial Developer first distributes Original Code under the
|
||||||
|
terms of this License.
|
||||||
|
|
||||||
|
(d) Notwithstanding Section 2.1(b) above, no patent license is granted:
|
||||||
|
1) for code that You delete from the Original Code; 2) separate from
|
||||||
|
the Original Code; or 3) for infringements caused by: i) the
|
||||||
|
modification of the Original Code or ii) the combination of the
|
||||||
|
Original Code with other software or devices, including but not limited
|
||||||
|
to Modifications.
|
||||||
|
3.0 DISTRIBUTION OBLIGATIONS
|
||||||
|
|
||||||
|
3.1 Application of License.
|
||||||
|
The Source Code version of Original Code may be distributed only under
|
||||||
|
the terms of this License or a future version of this License released
|
||||||
|
under Section 6.1, and You must include a copy of this License with
|
||||||
|
every copy of the Source Code You distribute. You may not offer or
|
||||||
|
impose any terms on any Source Code version that alters or restricts
|
||||||
|
the applicable version of this License or the recipients' rights
|
||||||
|
hereunder. Your license for shipment of the Contributor Version is
|
||||||
|
conditioned upon Your full compliance with this Section. The
|
||||||
|
Modifications which You create must comply with all requirements set
|
||||||
|
out by the Standards body in effect one hundred twenty (120) days
|
||||||
|
before You ship the Contributor Version. In the event that the
|
||||||
|
Modifications do not meet such requirements, You agree to publish
|
||||||
|
either (i) any deviation from the Standards protocol resulting from
|
||||||
|
implementation of Your Modifications and a reference implementation of
|
||||||
|
Your Modifications or (ii) Your Modifications in Source Code form, and
|
||||||
|
to make any such deviation and reference implementation or
|
||||||
|
Modifications available to all third parties under the same terms as
|
||||||
|
this license on a royalty free basis within thirty (30) days of Your
|
||||||
|
first customer shipment of Your Modifications.
|
||||||
|
|
||||||
|
3.2 Required Notices.
|
||||||
|
You must duplicate the notice in Exhibit A in each file of the Source
|
||||||
|
Code. If it is not possible to put such notice in a particular Source
|
||||||
|
Code file due to its structure, then You must include such notice in a
|
||||||
|
location (such as a relevant directory) where a user would be likely to
|
||||||
|
look for such a notice. If You created one or more Modification(s) You
|
||||||
|
may add Your name as a Contributor to the notice described in Exhibit
|
||||||
|
A. You must also duplicate this License in any documentation for the
|
||||||
|
Source Code where You describe recipients' rights or ownership rights
|
||||||
|
relating to Initial Code. You may choose to offer, and to charge a fee
|
||||||
|
for, warranty, support, indemnity or liability obligations to one or
|
||||||
|
more recipients of Your version of the Code. However, You may do so
|
||||||
|
only on Your own behalf, and not on behalf of the Initial Developer.
|
||||||
|
You must make it absolutely clear than any such warranty, support,
|
||||||
|
indemnity or liability obligation is offered by You alone, and You
|
||||||
|
hereby agree to indemnify the Initial Developer for any liability
|
||||||
|
incurred by the Initial Developer as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer.
|
||||||
|
|
||||||
|
3.3 Distribution of Executable Versions.
|
||||||
|
You may distribute Original Code in Executable and Source form only if
|
||||||
|
the requirements of Sections 3.1 and 3.2 have been met for that
|
||||||
|
Original Code, and if You include a notice stating that the Source Code
|
||||||
|
version of the Original Code is available under the terms of this
|
||||||
|
License. The notice must be conspicuously included in any notice in an
|
||||||
|
Executable or Source versions, related documentation or collateral in
|
||||||
|
which You describe recipients' rights relating to the Original Code.
|
||||||
|
You may distribute the Executable and Source versions of Your version
|
||||||
|
of the Code or ownership rights under a license of Your choice, which
|
||||||
|
may contain terms different from this License, provided that You are in
|
||||||
|
compliance with the terms of this License. If You distribute the
|
||||||
|
Executable and Source versions under a different license You must make
|
||||||
|
it absolutely clear that any terms which differ from this License are
|
||||||
|
offered by You alone, not by the Initial Developer. You hereby agree to
|
||||||
|
indemnify the Initial Developer for any liability incurred by the
|
||||||
|
Initial Developer as a result of any such terms You offer.
|
||||||
|
|
||||||
|
3.4 Larger Works.
|
||||||
|
You may create a Larger Work by combining Original Code with other code
|
||||||
|
not governed by the terms of this License and distribute the Larger
|
||||||
|
Work as a single product. In such a case, You must make sure the
|
||||||
|
requirements of this License are fulfilled for the Original Code.
|
||||||
|
|
||||||
|
4.0 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Original Code due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description
|
||||||
|
must be included in the LEGAL file described in Section 3.2 and must be
|
||||||
|
included with all distributions of the Source Code. Except to the
|
||||||
|
extent prohibited by statute or regulation, such description must be
|
||||||
|
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||||
|
understand it.
|
||||||
|
|
||||||
|
5.0 APPLICATION OF THIS LICENSE
|
||||||
|
|
||||||
|
This License applies to code to which the Initial Developer has
|
||||||
|
attached the notice in Exhibit A and to related Modifications as set
|
||||||
|
out in Section 3.1.
|
||||||
|
|
||||||
|
6.0 VERSIONS OF THE LICENSE
|
||||||
|
|
||||||
|
6.1 New Versions.
|
||||||
|
Sun may publish revised and/or new versions of the License from time to
|
||||||
|
time. Each version will be given a distinguishing version number.
|
||||||
|
|
||||||
|
6.2 Effect of New Versions.
|
||||||
|
Once Original Code has been published under a particular version of the
|
||||||
|
License, You may always continue to use it under the terms of that
|
||||||
|
version. You may also choose to use such Original Code under the terms
|
||||||
|
of any subsequent version of the License published by Sun. No one other
|
||||||
|
than Sun has the right to modify the terms applicable to Original Code.
|
||||||
|
|
||||||
|
7.0 DISCLAIMER OF WARRANTY
|
||||||
|
|
||||||
|
ORIGINAL CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||||
|
WITHOUT LIMITATION, WARRANTIES THAT THE ORIGINAL CODE IS FREE OF
|
||||||
|
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
|
||||||
|
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ORIGINAL CODE
|
||||||
|
IS WITH YOU. SHOULD ANY ORIGINAL CODE PROVE DEFECTIVE IN ANY RESPECT,
|
||||||
|
YOU (NOT THE INITIAL DEVELOPER) ASSUME THE COST OF ANY NECESSARY
|
||||||
|
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
|
||||||
|
CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY ORIGINAL
|
||||||
|
CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||||
|
|
||||||
|
8.0 TERMINATION
|
||||||
|
|
||||||
|
8.1 This License and the rights granted hereunder will terminate
|
||||||
|
automatically if You fail to comply with terms herein and fail to cure
|
||||||
|
such breach within 30 days of becoming aware of the breach. All
|
||||||
|
sublicenses to the Original Code which are properly granted shall
|
||||||
|
survive any termination of this License. Provisions which, by their
|
||||||
|
nature, must remain in effect beyond the termination of this License
|
||||||
|
shall survive.
|
||||||
|
|
||||||
|
8.2 In the event of termination under Section 8.1 above, all end user
|
||||||
|
license agreements (excluding distributors and resellers) which have
|
||||||
|
been validly granted by You or any distributor hereunder prior to
|
||||||
|
termination shall survive termination.
|
||||||
|
|
||||||
|
9.0 LIMIT OF LIABILITY
|
||||||
|
|
||||||
|
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
|
||||||
|
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
|
||||||
|
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF ORIGINAL CODE,
|
||||||
|
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
|
||||||
|
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||||
|
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
|
||||||
|
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
|
||||||
|
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
|
||||||
|
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
|
||||||
|
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
|
||||||
|
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||||
|
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||||
|
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
|
||||||
|
EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||||
|
|
||||||
|
10.0 U.S. GOVERNMENT END USERS
|
||||||
|
|
||||||
|
U.S. Government: If this Software is being acquired by or on behalf of
|
||||||
|
the U.S. Government or by a U.S. Government prime contractor or
|
||||||
|
subcontractor (at any tier), then the Government's rights in the
|
||||||
|
Software and accompanying documentation shall be only as set forth in
|
||||||
|
this license; this is in accordance with 48 C.F.R. 227.7201 through
|
||||||
|
227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48
|
||||||
|
C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
|
||||||
|
|
||||||
|
11.0 MISCELLANEOUS
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. This License shall be governed by
|
||||||
|
California law provisions (except to the extent applicable law, if any,
|
||||||
|
provides otherwise), excluding its conflict-of-law provisions. With
|
||||||
|
respect to disputes in which at least one party is a citizen of, or an
|
||||||
|
entity chartered or registered to do business in the United States of
|
||||||
|
America, any litigation relating to this License shall be subject to
|
||||||
|
the jurisdiction of the Federal Courts of the Northern District of
|
||||||
|
California, with venue lying in Santa Clara County, California, with
|
||||||
|
the losing party responsible for costs, including without limitation,
|
||||||
|
court costs and reasonable attorneys' fees and expenses. The
|
||||||
|
application of the United Nations Convention on Contracts for the
|
||||||
|
International Sale of Goods is expressly excluded. Any law or
|
||||||
|
regulation which provides that the language of a contract shall be
|
||||||
|
construed against the drafter shall not apply to this License.
|
||||||
|
|
||||||
|
EXHIBIT A - Sun Standards License
|
||||||
|
"The contents of this file are subject to the Sun Standards
|
||||||
|
License Version 1.1 (the "License");
|
||||||
|
You may not use this file except in compliance with the
|
||||||
|
License. You may obtain a copy of the
|
||||||
|
License at _______________________________.
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on
|
||||||
|
an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
|
||||||
|
express or implied. See the License for the specific
|
||||||
|
language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is ______________________________________.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is:
|
||||||
|
InMon Corp.
|
||||||
|
|
||||||
|
Portions created by: _______________________________________
|
||||||
|
|
||||||
|
are Copyright (C): _______________________________________
|
||||||
|
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s): _______________________________________
|
||||||
|
|
||||||
|
EXHIBIT B - Standards
|
||||||
|
|
||||||
|
The Standard is defined as the following:
|
||||||
|
|
||||||
|
sFlow Specification, located at
|
||||||
|
[1]http://sflow.org/developers/specifications.php
|
||||||
|
|
||||||
|
References
|
||||||
|
|
||||||
|
1. http://sflow.org/developers/specifications.php
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Retrieved from http://www.inmon.com/technology/sflowlicense.txt, 2011-12-12:
|
||||||
|
|
||||||
|
LICENSE AGREEMENT
|
||||||
|
|
||||||
|
PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY BEFORE REPRODUCING OR IN ANY WAY
|
||||||
|
UTILIZING THE sFlow(R) SOFTWARE ("SOFTWARE") AND/OR ANY ACCOMPANYING DOCUMENTATION
|
||||||
|
("DOCUMENTATION") AND/OR THE RELATED SPECIFICATIONS ("SPECIFICATIONS"). YOUR REPRODUCTION
|
||||||
|
OR USE OF THE SOFTWARE AND/OR THE DOCUMENTATION AND/OR THE SPECIFICATIONS CONSTITUTES YOUR
|
||||||
|
ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO BE BOUND
|
||||||
|
BY THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT REPRODUCE OR IN ANY WAY UTILIZE
|
||||||
|
THE SOFTWARE OR THE DOCUMENTATION OR THE SPECIFICATIONS.
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"Documentation" means the user manuals, training materials, and operating materials, if any,
|
||||||
|
InMon provides to Licensee under this Agreement.
|
||||||
|
|
||||||
|
"InMon" means InMon Corporation, its affiliates and subsidiaries.
|
||||||
|
|
||||||
|
"Intellectual Property Rights" means any trade secrets, patents, including without
|
||||||
|
limitation any patents covering the Software, copyrights, know-how, moral rights and
|
||||||
|
similar rights of any type under the laws of any governmental authority, domestic or
|
||||||
|
foreign, including all applications and registrations relating to any of the foregoing.
|
||||||
|
|
||||||
|
"Licensee Hardware" means all computers, routers, or other equipment owned or controlled by
|
||||||
|
or on behalf of Licensee.
|
||||||
|
|
||||||
|
"Products" means any and all software applications, computers, routers, or other equipment
|
||||||
|
manufactured by or on behalf of Licensee for the purpose of resale or lease to any other
|
||||||
|
third party, or otherwise made available by Licensee free of charge.
|
||||||
|
|
||||||
|
"Software" means the sFlow(R) software programs, in source or binary code format, that
|
||||||
|
Licensee licenses from InMon under this Agreement and any bug fixes or error corrections
|
||||||
|
which InMon may provide to Licensee.
|
||||||
|
|
||||||
|
"Specifications" means the published specifications provided or otherwise made available by
|
||||||
|
InMon at: http://www.sflow.org.
|
||||||
|
|
||||||
|
"Trademark" means InMon's "sFlow(R)" trademark.
|
||||||
|
|
||||||
|
2. License Grant.
|
||||||
|
|
||||||
|
2.1 Software, Documentation and Specifications License Grant. InMon hereby grants to
|
||||||
|
Licensee, under all of InMon's Intellectual Property Rights therein, a perpetual (subject
|
||||||
|
to InMon's termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
|
||||||
|
transferable, sublicensable license, to: (i) use and reproduce the Software, the
|
||||||
|
Documentation, and the Specifications; (ii) modify the Software; (iii) implement the
|
||||||
|
Specifications in the Products; (iv) install the Software, or software in which the
|
||||||
|
Specifications have been implemented, on Licensee Hardware and Products, and (v) distribute
|
||||||
|
any Products that include the Software, the Documentation, or software in which the
|
||||||
|
Specifications have been implemented.
|
||||||
|
|
||||||
|
2.2 Trademark License. InMon hereby grants to Licensee a perpetual (subject to InMon's
|
||||||
|
termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
|
||||||
|
transferable, sublicensable license to use the Trademark on or in connection with the
|
||||||
|
Software, the Documentation, the Specifications and any software that implements the
|
||||||
|
Specifications.
|
||||||
|
|
||||||
|
2.3 Restrictions. Licensee agrees that it will not use the Software in a way
|
||||||
|
inconsistent with the license granted in Section 2.1. Further, Licensee agrees that, in
|
||||||
|
exercising its rights under the license granted to it in this Agreement, Licensee will:
|
||||||
|
(i) strictly adhere to and fully comply with the Specifications; (ii) use the Trademark,
|
||||||
|
and no other mark, to identify the Software, the Documentation, the Specifications and any
|
||||||
|
Products that implement the Specifications; (iii) place, in a font or graphic design
|
||||||
|
designated by InMon, the phrase "sFlow(R)" on any technical documentation,
|
||||||
|
sales/marketing materials, catalogs, or other such materials relating to products it
|
||||||
|
manufactures or markets which it has configured to be compatible with the Software or
|
||||||
|
otherwise implement the Specifications; (iv) in connection with any Products shipped to or
|
||||||
|
sold in other countries that include the Software or any software that implements the
|
||||||
|
Specifications, comply with the patent and trademark laws and practice of such other
|
||||||
|
country; and (v) not alter or impair any acknowledgment of copyright or trademark rights of
|
||||||
|
InMon that may appear in or on the Software, the Documentation or the Specifications. In
|
||||||
|
the event InMon determines that Licensee is not complying with its obligations under
|
||||||
|
clauses (i)-(v) above, InMon shall notify Licensee of such non-compliance, and if Licensee
|
||||||
|
fails to correct such non-compliance within three (3) months, InMon may immediately
|
||||||
|
terminate this Agreement as provided under paragraph 7 below and pursue any and all
|
||||||
|
actions and remedies as it deems necessary, including, but not limited to breach of
|
||||||
|
contract.
|
||||||
|
|
||||||
|
3. Ownership. Except for the license expressly granted in Section 2, Inmon hereby
|
||||||
|
retains all right, title, and interest in and to the Trademark and all its Intellectual
|
||||||
|
Property Rights in the Software, the Documentation and the Specifications. Licensee
|
||||||
|
obtains no rights hereunder in the Trademark, Software, Documentation or Specifications by
|
||||||
|
implication, estoppel or otherwise. Licensee acknowledges that the Trademark, Software,
|
||||||
|
Documentation and Specifications are being licensed and not sold under this Agreement, and
|
||||||
|
that this Agreement does not transfer title in the Trademark, Software, Documentation or
|
||||||
|
Specifications, or any copy thereof, to Licensee.
|
||||||
|
|
||||||
|
4. Support. Inmon shall have no obligation under this Agreement to (a) supply
|
||||||
|
maintenance or support, bug fixes or error corrections to the Licensed Software,
|
||||||
|
(b) supply future versions of the Licensed Software or (c) provide Licensed Software
|
||||||
|
development tools to Licensee.
|
||||||
|
|
||||||
|
5. Warranty. INMON HEREBY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED OR
|
||||||
|
STATUTORY, WITH RESPECT TO THE TRADEMARK, THE SOFTWARE, THE DOCUMENTATION, THE
|
||||||
|
SPECIFICATIONS. OR OTHERWISE, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF ANY INTELLECTUAL
|
||||||
|
PROPERTY RIGHTS.
|
||||||
|
|
||||||
|
6. Limitation of Liability. IN NO EVENT SHALL INMON OR ITS SUPPLIERS OR LICENSORS BE
|
||||||
|
LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT OR EXEMPLARY DAMAGES WHATSOEVER,
|
||||||
|
WHETHER RELATED TO OR ARISING OUT OF THIS AGREEMENT, THE TRADEMARK, THE SOFTWARE, THE
|
||||||
|
DOCUMENTATION, THE SPECIFICATIONS, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, DAMAGES FOR
|
||||||
|
LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF DATA, COSTS OF PROCUREMENT OF SUBSTITUTE
|
||||||
|
GOODS OR SERVICES OR FOR ANY CLAIM OR DEMAND AGAINST LICENSEE BY ANY OTHER PARTY, OR OTHER
|
||||||
|
PECUNIARY LOSS, EVEN IF INMON HAS BEEN ADVISED OF OR KNOWS OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
7. Term and Termination. The term of this Agreement will begin on the Effective Date,
|
||||||
|
which shall be deemed to be the date of delivery of the Software and/or Documentation and/or
|
||||||
|
Specifications to Licensee, and shall continue indefinitely unless and until terminated by
|
||||||
|
Licensee's giving written notice of termination to InMon, or by InMon pursuant to InMon's
|
||||||
|
termination rights as set forth in Section 2.3 above. Upon any termination of this
|
||||||
|
Agreement, Licensee shall cease exercising its license rights under this Agreement,
|
||||||
|
including the right to distribute Products that incorporate the Software or Documentation
|
||||||
|
or that implement the Specifications. The rights and obligations contained in Sections 1,
|
||||||
|
3, 5, 6, 7, and 8 shall survive any termination of this Agreement.
|
||||||
|
|
||||||
|
8. General Provisions.
|
||||||
|
|
||||||
|
8.1 Assignment. This Agreement shall be binding upon and inure to the benefit of the
|
||||||
|
parties hereto and their permitted successors and permitted assigns. InMon will have the
|
||||||
|
right to assign this Agreement without notice to Licensee. Licensee may assign or transfer
|
||||||
|
(whether by merger, operation of law or in any other manner) any of its rights or delegate
|
||||||
|
any of its obligations hereunder without the prior written consent of InMon, provided the
|
||||||
|
assignee assumes in writing all of Licensee's obligations hereunder.
|
||||||
|
|
||||||
|
8.2 Notices. All notices permitted or required under this Agreement shall be in
|
||||||
|
writing and shall be delivered in person or mailed by first class, registered or certified
|
||||||
|
mail, postage prepaid, to the address of the party specified in this Agreement or such
|
||||||
|
other address as either party may specify in writing. Such notice shall be deemed to have
|
||||||
|
been given upon receipt.
|
||||||
|
|
||||||
|
8.3 Non-Waiver. No term or provision hereof shall be deemed waived, and no breach
|
||||||
|
excused, unless such waiver or consent shall be in writing and signed by the party claimed
|
||||||
|
to have waived or consented. Any consent or waiver, whether express or implied, shall not
|
||||||
|
constitute a consent or waiver of, or excuse for any separate, different or subsequent
|
||||||
|
breach.
|
||||||
|
|
||||||
|
8.4 Independent Contractor. The parties' relationship shall be solely that of
|
||||||
|
independent contractors, and nothing contained in this Agreement shall be construed to make
|
||||||
|
either party an agent, partner, representative or principal of the other for any purpose.
|
||||||
|
|
||||||
|
8.5 Choice of Law and Forum. This Agreement shall be governed by and construed under
|
||||||
|
the laws of the State of California, without giving effect to such state's conflict of laws
|
||||||
|
principles. The parties hereby submit to the personal jurisdiction of, and agree that any
|
||||||
|
legal proceeding with respect to or arising under this Agreement shall be brought in, the
|
||||||
|
United States District Court for the Northern District of California or the state courts
|
||||||
|
of the State of California for the County of San Francisco.
|
||||||
|
|
||||||
|
8.6 U.S. Government Licenses. The Software and Documentation are considered a
|
||||||
|
"commercial item" as that term is defined at 48 C.F.R 2.101, or "commercial computer
|
||||||
|
software" and "commercial computer software documentation" as such terms are used in
|
||||||
|
48 C.F.R 12.212 of the Federal Acquisition Regulations and its successors, and
|
||||||
|
48 C.F.R. 227.7202 of the DoD FAR Supplement and its successors.
|
||||||
|
|
||||||
|
8.7 Severability. If any provision of this Agreement is held to be unenforceable under
|
||||||
|
applicable law, then such provision shall be excluded from this Agreement and the balance
|
||||||
|
of this Agreement shall be interpreted as if such provision were so excluded and shall be
|
||||||
|
enforceable in accordance with its terms. The court in its discretion may substitute for
|
||||||
|
the excluded provision an enforceable provision which in economic substance reasonably
|
||||||
|
approximates the excluded provision.
|
||||||
|
|
||||||
|
8.8 Compliance With Law. Licensee shall comply with all applicable laws and
|
||||||
|
regulations (including privacy laws and regulations) having application to or governing its
|
||||||
|
use and/or operation of the Software and agrees to indemnify and hold InMon harmless from
|
||||||
|
and against any claims, damages, losses or obligations suffered or incurred by InMon
|
||||||
|
arising from its failure to so comply.
|
||||||
|
|
||||||
|
8.9 Entire Agreement; Amendment. This Agreement constitutes the final, complete and
|
||||||
|
entire agreement between the parties with respect to the subject matter hereof, and
|
||||||
|
supersedes any previous proposals, negotiations, agreements, or arrangements, whether
|
||||||
|
verbal or written, made between the parties with respect to such subject matter. This
|
||||||
|
Agreement shall control over any additional or conflicting terms in any of Licensee's
|
||||||
|
purchase orders or other business forms. This Agreement may only be amended or modified
|
||||||
|
by mutual agreement of authorized representatives of the parties in writing.
|
||||||
|
|
||||||
|
InMon Corp.
|
||||||
|
580 California Street, 5th Floor, San Francisco, CA 94104
|
||||||
|
Phone: (415) 283-3260
|
||||||
|
URL: www.inmon.com
|
||||||
|
Email: info@inmon.com
|
|
@ -0,0 +1,42 @@
|
||||||
|
openvswitch-switch-dpdk
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
This package provides a DPDK enabled version of the OpenvSwitch vswitchd
|
||||||
|
binary; by default, the ovs-vswitchd binary from openvswitch-switch will
|
||||||
|
be used:
|
||||||
|
|
||||||
|
$ update-alternatives --query ovs-vswitchd
|
||||||
|
Name: ovs-vswitchd
|
||||||
|
Link: /usr/sbin/ovs-vswitchd
|
||||||
|
Status: auto
|
||||||
|
Best: /usr/lib/openvswitch-switch/ovs-vswitchd
|
||||||
|
Value: /usr/lib/openvswitch-switch/ovs-vswitchd
|
||||||
|
|
||||||
|
Alternative: /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
|
||||||
|
Priority: 50
|
||||||
|
|
||||||
|
Alternative: /usr/lib/openvswitch-switch/ovs-vswitchd
|
||||||
|
Priority: 100
|
||||||
|
|
||||||
|
DPDK provides fast packet processing in userspace, and has some specific
|
||||||
|
requirements in terms of system configuration - see the upstream
|
||||||
|
documentation for more details:
|
||||||
|
|
||||||
|
/usr/share/doc/openvswitch-common/INSTALL.DPDK.md.gz
|
||||||
|
|
||||||
|
DPDK has a minimum CPU feature set of SSE3, so is not appropriate for all
|
||||||
|
amd64 CPU types hence is not enabled by default.
|
||||||
|
|
||||||
|
To switch to the DPDK version:
|
||||||
|
|
||||||
|
sudo update-alternatives --set ovs-vswitchd \
|
||||||
|
/usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
|
||||||
|
sudo service openvswitch-switch restart
|
||||||
|
|
||||||
|
and to switch back:
|
||||||
|
|
||||||
|
sudo update-alternatives --set ovs-vswitchd \
|
||||||
|
/usr/lib/openvswitch-switch/ovs-vswitchd
|
||||||
|
sudo service openvswitch-switch restart
|
||||||
|
|
||||||
|
-- James Page <james.page@ubuntu.com> Tue, 21 Jul 2015 12:06:49 +0100
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
update-alternatives --install /usr/sbin/ovs-vswitchd ovs-vswitchd \
|
||||||
|
/usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk 50
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
update-alternatives --remove ovs-vswitchd /usr/lib/openvswitch-switch/ovs-vswitchd-dpdk
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
|
@ -0,0 +1,494 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
# Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.
|
||||||
|
#
|
||||||
|
# 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:
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# A daemon to monitor attempts to create GRE-over-IPsec tunnels.
|
||||||
|
# Uses racoon and setkey to support the configuration. Assumes that
|
||||||
|
# OVS has complete control over IPsec configuration for the box.
|
||||||
|
|
||||||
|
# xxx To-do:
|
||||||
|
# - Doesn't actually check that Interface is connected to bridge
|
||||||
|
# - If a certificate is badly formed, Racoon will refuse to start. We
|
||||||
|
# should do a better job of verifying certificates are valid before
|
||||||
|
# adding an interface to racoon.conf.
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import glob
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import ovs.dirs
|
||||||
|
from ovs.db import error
|
||||||
|
from ovs.db import types
|
||||||
|
import ovs.util
|
||||||
|
import ovs.daemon
|
||||||
|
import ovs.db.idl
|
||||||
|
import ovs.unixctl
|
||||||
|
import ovs.unixctl.server
|
||||||
|
import ovs.vlog
|
||||||
|
|
||||||
|
vlog = ovs.vlog.Vlog("ovs-monitor-ipsec")
|
||||||
|
root_prefix = '' # Prefix for absolute file names, for testing.
|
||||||
|
SETKEY = "/usr/sbin/setkey"
|
||||||
|
exiting = False
|
||||||
|
|
||||||
|
|
||||||
|
def unixctl_exit(conn, unused_argv, unused_aux):
|
||||||
|
global exiting
|
||||||
|
exiting = True
|
||||||
|
conn.reply(None)
|
||||||
|
|
||||||
|
|
||||||
|
# Class to configure the racoon daemon, which handles IKE negotiation
|
||||||
|
class Racoon:
|
||||||
|
# Default locations for files
|
||||||
|
conf_file = "/etc/racoon/racoon.conf"
|
||||||
|
cert_dir = "/etc/racoon/certs"
|
||||||
|
psk_file = "/etc/racoon/psk.txt"
|
||||||
|
|
||||||
|
# Racoon configuration header we use for IKE
|
||||||
|
conf_header = """# Configuration file generated by Open vSwitch
|
||||||
|
#
|
||||||
|
# Do not modify by hand!
|
||||||
|
|
||||||
|
path pre_shared_key "%s";
|
||||||
|
path certificate "%s";
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Racoon configuration footer we use for IKE
|
||||||
|
conf_footer = """sainfo anonymous {
|
||||||
|
pfs_group 2;
|
||||||
|
lifetime time 1 hour;
|
||||||
|
encryption_algorithm aes;
|
||||||
|
authentication_algorithm hmac_sha1, hmac_md5;
|
||||||
|
compression_algorithm deflate;
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Certificate entry template.
|
||||||
|
cert_entry = """remote %s {
|
||||||
|
exchange_mode main;
|
||||||
|
nat_traversal on;
|
||||||
|
ike_frag on;
|
||||||
|
certificate_type x509 "%s" "%s";
|
||||||
|
my_identifier asn1dn;
|
||||||
|
peers_identifier asn1dn;
|
||||||
|
peers_certfile x509 "%s";
|
||||||
|
verify_identifier on;
|
||||||
|
proposal {
|
||||||
|
encryption_algorithm aes;
|
||||||
|
hash_algorithm sha1;
|
||||||
|
authentication_method rsasig;
|
||||||
|
dh_group 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Pre-shared key template.
|
||||||
|
psk_entry = """remote %s {
|
||||||
|
exchange_mode main;
|
||||||
|
nat_traversal on;
|
||||||
|
proposal {
|
||||||
|
encryption_algorithm aes;
|
||||||
|
hash_algorithm sha1;
|
||||||
|
authentication_method pre_shared_key;
|
||||||
|
dh_group 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.psk_hosts = {}
|
||||||
|
self.cert_hosts = {}
|
||||||
|
|
||||||
|
if not os.path.isdir(root_prefix + self.cert_dir):
|
||||||
|
os.mkdir(self.cert_dir)
|
||||||
|
|
||||||
|
# Clean out stale peer certs from previous runs
|
||||||
|
for ovs_cert in glob.glob("%s%s/ovs-*.pem"
|
||||||
|
% (root_prefix, self.cert_dir)):
|
||||||
|
try:
|
||||||
|
os.remove(ovs_cert)
|
||||||
|
except OSError:
|
||||||
|
vlog.warn("couldn't remove %s" % ovs_cert)
|
||||||
|
|
||||||
|
# Replace racoon's conf file with our template
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
def reload(self):
|
||||||
|
exitcode = subprocess.call([root_prefix + "/etc/init.d/racoon",
|
||||||
|
"reload"])
|
||||||
|
if exitcode != 0:
|
||||||
|
# Racoon is finicky about its configuration file and will
|
||||||
|
# refuse to start if it sees something it doesn't like
|
||||||
|
# (e.g., a certificate file doesn't exist). Try restarting
|
||||||
|
# the process before giving up.
|
||||||
|
vlog.warn("attempting to restart racoon")
|
||||||
|
exitcode = subprocess.call([root_prefix + "/etc/init.d/racoon",
|
||||||
|
"restart"])
|
||||||
|
if exitcode != 0:
|
||||||
|
vlog.warn("couldn't reload racoon")
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
# Rewrite the Racoon configuration file
|
||||||
|
conf_file = open(root_prefix + self.conf_file, 'w')
|
||||||
|
conf_file.write(Racoon.conf_header % (self.psk_file, self.cert_dir))
|
||||||
|
|
||||||
|
for host, vals in self.cert_hosts.iteritems():
|
||||||
|
conf_file.write(Racoon.cert_entry % (host, vals["certificate"],
|
||||||
|
vals["private_key"], vals["peer_cert_file"]))
|
||||||
|
|
||||||
|
for host in self.psk_hosts:
|
||||||
|
conf_file.write(Racoon.psk_entry % host)
|
||||||
|
|
||||||
|
conf_file.write(Racoon.conf_footer)
|
||||||
|
conf_file.close()
|
||||||
|
|
||||||
|
# Rewrite the pre-shared keys file; it must only be readable by root.
|
||||||
|
orig_umask = os.umask(0077)
|
||||||
|
psk_file = open(root_prefix + Racoon.psk_file, 'w')
|
||||||
|
os.umask(orig_umask)
|
||||||
|
|
||||||
|
psk_file.write("# Generated by Open vSwitch...do not modify by hand!")
|
||||||
|
psk_file.write("\n\n")
|
||||||
|
for host, vals in self.psk_hosts.iteritems():
|
||||||
|
psk_file.write("%s %s\n" % (host, vals["psk"]))
|
||||||
|
psk_file.close()
|
||||||
|
|
||||||
|
self.reload()
|
||||||
|
|
||||||
|
def _add_psk(self, host, psk):
|
||||||
|
if host in self.cert_hosts:
|
||||||
|
raise error.Error("host %s already defined for cert" % host)
|
||||||
|
|
||||||
|
self.psk_hosts[host] = psk
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
def _verify_certs(self, vals):
|
||||||
|
# Racoon will refuse to start if the certificate files don't
|
||||||
|
# exist, so verify that they're there.
|
||||||
|
if not os.path.isfile(root_prefix + vals["certificate"]):
|
||||||
|
raise error.Error("'certificate' file does not exist: %s"
|
||||||
|
% vals["certificate"])
|
||||||
|
elif not os.path.isfile(root_prefix + vals["private_key"]):
|
||||||
|
raise error.Error("'private_key' file does not exist: %s"
|
||||||
|
% vals["private_key"])
|
||||||
|
|
||||||
|
# Racoon won't start if a given certificate or private key isn't
|
||||||
|
# valid. This is a weak test, but will detect the most flagrant
|
||||||
|
# errors.
|
||||||
|
if vals["peer_cert"].find("-----BEGIN CERTIFICATE-----") == -1:
|
||||||
|
raise error.Error("'peer_cert' is not in valid PEM format")
|
||||||
|
|
||||||
|
cert = open(root_prefix + vals["certificate"]).read()
|
||||||
|
if cert.find("-----BEGIN CERTIFICATE-----") == -1:
|
||||||
|
raise error.Error("'certificate' is not in valid PEM format")
|
||||||
|
|
||||||
|
cert = open(root_prefix + vals["private_key"]).read()
|
||||||
|
if cert.find("-----BEGIN RSA PRIVATE KEY-----") == -1:
|
||||||
|
raise error.Error("'private_key' is not in valid PEM format")
|
||||||
|
|
||||||
|
def _add_cert(self, host, vals):
|
||||||
|
if host in self.psk_hosts:
|
||||||
|
raise error.Error("host %s already defined for psk" % host)
|
||||||
|
|
||||||
|
if vals["certificate"] == None:
|
||||||
|
raise error.Error("'certificate' not defined for %s" % host)
|
||||||
|
elif vals["private_key"] == None:
|
||||||
|
# Assume the private key is stored in the same PEM file as
|
||||||
|
# the certificate. We make a copy of "vals" so that we don't
|
||||||
|
# modify the original "vals", which would cause the script
|
||||||
|
# to constantly think that the configuration has changed
|
||||||
|
# in the database.
|
||||||
|
vals = vals.copy()
|
||||||
|
vals["private_key"] = vals["certificate"]
|
||||||
|
|
||||||
|
self._verify_certs(vals)
|
||||||
|
|
||||||
|
# The peer's certificate comes to us in PEM format as a string.
|
||||||
|
# Write that string to a file for Racoon to use.
|
||||||
|
f = open(root_prefix + vals["peer_cert_file"], "w")
|
||||||
|
f.write(vals["peer_cert"])
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
self.cert_hosts[host] = vals
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
def _del_cert(self, host):
|
||||||
|
peer_cert_file = self.cert_hosts[host]["peer_cert_file"]
|
||||||
|
del self.cert_hosts[host]
|
||||||
|
self.commit()
|
||||||
|
try:
|
||||||
|
os.remove(root_prefix + peer_cert_file)
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def add_entry(self, host, vals):
|
||||||
|
if vals["peer_cert"]:
|
||||||
|
self._add_cert(host, vals)
|
||||||
|
elif vals["psk"]:
|
||||||
|
self._add_psk(host, vals)
|
||||||
|
|
||||||
|
def del_entry(self, host):
|
||||||
|
if host in self.cert_hosts:
|
||||||
|
self._del_cert(host)
|
||||||
|
elif host in self.psk_hosts:
|
||||||
|
del self.psk_hosts[host]
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
|
||||||
|
# Class to configure IPsec on a system using racoon for IKE and setkey
|
||||||
|
# for maintaining the Security Association Database (SAD) and Security
|
||||||
|
# Policy Database (SPD). Only policies for GRE are supported.
|
||||||
|
class IPsec:
|
||||||
|
def __init__(self):
|
||||||
|
self.sad_flush()
|
||||||
|
self.spd_flush()
|
||||||
|
self.racoon = Racoon()
|
||||||
|
self.entries = []
|
||||||
|
|
||||||
|
def call_setkey(self, cmds):
|
||||||
|
try:
|
||||||
|
p = subprocess.Popen([root_prefix + SETKEY, "-c"],
|
||||||
|
stdin=subprocess.PIPE,
|
||||||
|
stdout=subprocess.PIPE)
|
||||||
|
except:
|
||||||
|
vlog.err("could not call %s%s" % (root_prefix, SETKEY))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# xxx It is safer to pass the string into the communicate()
|
||||||
|
# xxx method, but it didn't work for slightly longer commands.
|
||||||
|
# xxx An alternative may need to be found.
|
||||||
|
p.stdin.write(cmds)
|
||||||
|
return p.communicate()[0]
|
||||||
|
|
||||||
|
def get_spi(self, local_ip, remote_ip, proto="esp"):
|
||||||
|
# Run the setkey dump command to retrieve the SAD. Then, parse
|
||||||
|
# the output looking for SPI buried in the output. Note that
|
||||||
|
# multiple SAD entries can exist for the same "flow", since an
|
||||||
|
# older entry could be in a "dying" state.
|
||||||
|
spi_list = []
|
||||||
|
host_line = "%s %s" % (local_ip, remote_ip)
|
||||||
|
results = self.call_setkey("dump ;\n").split("\n")
|
||||||
|
for i in range(len(results)):
|
||||||
|
if results[i].strip() == host_line:
|
||||||
|
# The SPI is in the line following the host pair
|
||||||
|
spi_line = results[i + 1]
|
||||||
|
if (spi_line[1:4] == proto):
|
||||||
|
spi = spi_line.split()[2]
|
||||||
|
spi_list.append(spi.split('(')[1].rstrip(')'))
|
||||||
|
return spi_list
|
||||||
|
|
||||||
|
def sad_flush(self):
|
||||||
|
self.call_setkey("flush;\n")
|
||||||
|
|
||||||
|
def sad_del(self, local_ip, remote_ip):
|
||||||
|
# To delete all SAD entries, we should be able to use setkey's
|
||||||
|
# "deleteall" command. Unfortunately, it's fundamentally broken
|
||||||
|
# on Linux and not documented as such.
|
||||||
|
cmds = ""
|
||||||
|
|
||||||
|
# Delete local_ip->remote_ip SAD entries
|
||||||
|
spi_list = self.get_spi(local_ip, remote_ip)
|
||||||
|
for spi in spi_list:
|
||||||
|
cmds += "delete %s %s esp %s;\n" % (local_ip, remote_ip, spi)
|
||||||
|
|
||||||
|
# Delete remote_ip->local_ip SAD entries
|
||||||
|
spi_list = self.get_spi(remote_ip, local_ip)
|
||||||
|
for spi in spi_list:
|
||||||
|
cmds += "delete %s %s esp %s;\n" % (remote_ip, local_ip, spi)
|
||||||
|
|
||||||
|
if cmds:
|
||||||
|
self.call_setkey(cmds)
|
||||||
|
|
||||||
|
def spd_flush(self):
|
||||||
|
self.call_setkey("spdflush;\n")
|
||||||
|
|
||||||
|
def spd_add(self, local_ip, remote_ip):
|
||||||
|
cmds = ("spdadd %s %s gre -P out ipsec esp/transport//require;\n" %
|
||||||
|
(local_ip, remote_ip))
|
||||||
|
cmds += ("spdadd %s %s gre -P in ipsec esp/transport//require;\n" %
|
||||||
|
(remote_ip, local_ip))
|
||||||
|
self.call_setkey(cmds)
|
||||||
|
|
||||||
|
def spd_del(self, local_ip, remote_ip):
|
||||||
|
cmds = "spddelete %s %s gre -P out;\n" % (local_ip, remote_ip)
|
||||||
|
cmds += "spddelete %s %s gre -P in;\n" % (remote_ip, local_ip)
|
||||||
|
self.call_setkey(cmds)
|
||||||
|
|
||||||
|
def add_entry(self, local_ip, remote_ip, vals):
|
||||||
|
if remote_ip in self.entries:
|
||||||
|
raise error.Error("host %s already configured for ipsec"
|
||||||
|
% remote_ip)
|
||||||
|
|
||||||
|
self.racoon.add_entry(remote_ip, vals)
|
||||||
|
self.spd_add(local_ip, remote_ip)
|
||||||
|
|
||||||
|
self.entries.append(remote_ip)
|
||||||
|
|
||||||
|
def del_entry(self, local_ip, remote_ip):
|
||||||
|
if remote_ip in self.entries:
|
||||||
|
self.racoon.del_entry(remote_ip)
|
||||||
|
self.spd_del(local_ip, remote_ip)
|
||||||
|
self.sad_del(local_ip, remote_ip)
|
||||||
|
|
||||||
|
self.entries.remove(remote_ip)
|
||||||
|
|
||||||
|
|
||||||
|
def update_ipsec(ipsec, interfaces, new_interfaces):
|
||||||
|
for name, vals in interfaces.iteritems():
|
||||||
|
if name not in new_interfaces:
|
||||||
|
ipsec.del_entry(vals["local_ip"], vals["remote_ip"])
|
||||||
|
|
||||||
|
for name, vals in new_interfaces.iteritems():
|
||||||
|
orig_vals = interfaces.get(name)
|
||||||
|
if orig_vals:
|
||||||
|
# Configuration for this host already exists. Check if it's
|
||||||
|
# changed. We use set difference, since we want to ignore
|
||||||
|
# any local additions to "orig_vals" that we've made
|
||||||
|
# (e.g. the "peer_cert_file" key).
|
||||||
|
if set(vals.items()) - set(orig_vals.items()):
|
||||||
|
ipsec.del_entry(vals["local_ip"], vals["remote_ip"])
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
ipsec.add_entry(vals["local_ip"], vals["remote_ip"], vals)
|
||||||
|
except error.Error, msg:
|
||||||
|
vlog.warn("skipping ipsec config for %s: %s" % (name, msg))
|
||||||
|
|
||||||
|
|
||||||
|
def get_ssl_cert(data):
|
||||||
|
for ovs_rec in data["Open_vSwitch"].rows.itervalues():
|
||||||
|
if ovs_rec.ssl:
|
||||||
|
ssl = ovs_rec.ssl[0]
|
||||||
|
if ssl.certificate and ssl.private_key:
|
||||||
|
return (ssl.certificate, ssl.private_key)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("database", metavar="DATABASE",
|
||||||
|
help="A socket on which ovsdb-server is listening.")
|
||||||
|
parser.add_argument("--root-prefix", metavar="DIR",
|
||||||
|
help="Use DIR as alternate root directory"
|
||||||
|
" (for testing).")
|
||||||
|
|
||||||
|
ovs.vlog.add_args(parser)
|
||||||
|
ovs.daemon.add_args(parser)
|
||||||
|
args = parser.parse_args()
|
||||||
|
ovs.vlog.handle_args(args)
|
||||||
|
ovs.daemon.handle_args(args)
|
||||||
|
|
||||||
|
global root_prefix
|
||||||
|
if args.root_prefix:
|
||||||
|
root_prefix = args.root_prefix
|
||||||
|
|
||||||
|
remote = args.database
|
||||||
|
schema_helper = ovs.db.idl.SchemaHelper()
|
||||||
|
schema_helper.register_columns("Interface", ["name", "type", "options"])
|
||||||
|
schema_helper.register_columns("Open_vSwitch", ["ssl"])
|
||||||
|
schema_helper.register_columns("SSL", ["certificate", "private_key"])
|
||||||
|
idl = ovs.db.idl.Idl(remote, schema_helper)
|
||||||
|
|
||||||
|
ovs.daemon.daemonize()
|
||||||
|
|
||||||
|
ovs.unixctl.command_register("exit", "", 0, 0, unixctl_exit, None)
|
||||||
|
error, unixctl_server = ovs.unixctl.server.UnixctlServer.create(None)
|
||||||
|
if error:
|
||||||
|
ovs.util.ovs_fatal(error, "could not create unixctl server", vlog)
|
||||||
|
|
||||||
|
ipsec = IPsec()
|
||||||
|
|
||||||
|
interfaces = {}
|
||||||
|
seqno = idl.change_seqno # Sequence number when we last processed the db
|
||||||
|
while True:
|
||||||
|
unixctl_server.run()
|
||||||
|
if exiting:
|
||||||
|
break
|
||||||
|
|
||||||
|
idl.run()
|
||||||
|
if seqno == idl.change_seqno:
|
||||||
|
poller = ovs.poller.Poller()
|
||||||
|
unixctl_server.wait(poller)
|
||||||
|
idl.wait(poller)
|
||||||
|
poller.block()
|
||||||
|
continue
|
||||||
|
seqno = idl.change_seqno
|
||||||
|
|
||||||
|
ssl_cert = get_ssl_cert(idl.tables)
|
||||||
|
|
||||||
|
new_interfaces = {}
|
||||||
|
for rec in idl.tables["Interface"].rows.itervalues():
|
||||||
|
if rec.type == "ipsec_gre" or rec.type == "ipsec_gre64":
|
||||||
|
name = rec.name
|
||||||
|
options = rec.options
|
||||||
|
peer_cert_name = "ovs-%s.pem" % (options.get("remote_ip"))
|
||||||
|
entry = {
|
||||||
|
"remote_ip": options.get("remote_ip"),
|
||||||
|
"local_ip": options.get("local_ip", "0.0.0.0/0"),
|
||||||
|
"certificate": options.get("certificate"),
|
||||||
|
"private_key": options.get("private_key"),
|
||||||
|
"use_ssl_cert": options.get("use_ssl_cert"),
|
||||||
|
"peer_cert": options.get("peer_cert"),
|
||||||
|
"peer_cert_file": Racoon.cert_dir + "/" + peer_cert_name,
|
||||||
|
"psk": options.get("psk")}
|
||||||
|
|
||||||
|
if entry["peer_cert"] and entry["psk"]:
|
||||||
|
vlog.warn("both 'peer_cert' and 'psk' defined for %s"
|
||||||
|
% name)
|
||||||
|
continue
|
||||||
|
elif not entry["peer_cert"] and not entry["psk"]:
|
||||||
|
vlog.warn("no 'peer_cert' or 'psk' defined for %s" % name)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# The "use_ssl_cert" option is deprecated and will
|
||||||
|
# likely go away in the near future.
|
||||||
|
if entry["use_ssl_cert"] == "true":
|
||||||
|
if not ssl_cert:
|
||||||
|
vlog.warn("no valid SSL entry for %s" % name)
|
||||||
|
continue
|
||||||
|
|
||||||
|
entry["certificate"] = ssl_cert[0]
|
||||||
|
entry["private_key"] = ssl_cert[1]
|
||||||
|
|
||||||
|
new_interfaces[name] = entry
|
||||||
|
|
||||||
|
if interfaces != new_interfaces:
|
||||||
|
update_ipsec(ipsec, interfaces, new_interfaces)
|
||||||
|
interfaces = new_interfaces
|
||||||
|
|
||||||
|
unixctl_server.close()
|
||||||
|
idl.close()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
try:
|
||||||
|
main()
|
||||||
|
except SystemExit:
|
||||||
|
# Let system.exit() calls complete normally
|
||||||
|
raise
|
||||||
|
except:
|
||||||
|
vlog.exception("traceback")
|
||||||
|
sys.exit(ovs.daemon.RESTART_EXIT_CODE)
|
|
@ -0,0 +1,15 @@
|
||||||
|
--- a/utilities/ovs-ctl.in
|
||||||
|
+++ b/utilities/ovs-ctl.in
|
||||||
|
@@ -253,7 +253,11 @@ start_forwarding () {
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start ovs-vswitchd.
|
||||||
|
- set ovs-vswitchd unix:"$DB_SOCK"
|
||||||
|
+ set ovs-vswitchd
|
||||||
|
+ if test X"$DPDK_OPTS" != X; then
|
||||||
|
+ set "$@" $DPDK_OPTS --
|
||||||
|
+ fi
|
||||||
|
+ set "$@" unix:"$DB_SOCK"
|
||||||
|
set "$@" -vconsole:emer -vsyslog:err -vfile:info
|
||||||
|
if test X"$MLOCKALL" != Xno; then
|
||||||
|
set "$@" --mlockall
|
|
@ -0,0 +1 @@
|
||||||
|
ovs-ctl-dpdk.patch
|
|
@ -0,0 +1,68 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --with autoreconf,python2,systemd --parallel
|
||||||
|
|
||||||
|
# use --as-needed only if supported by dh-autoreconf (to simplify backporting)
|
||||||
|
DH_AS_NEEDED=$(shell dpkg --compare-versions $$(dpkg --status dh-autoreconf | grep Version | cut -d' ' -f2) ge 6 && echo --as-needed)
|
||||||
|
override_dh_autoreconf:
|
||||||
|
dh_autoreconf $(DH_AS_NEEDED)
|
||||||
|
|
||||||
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
||||||
|
PARALLEL = -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
||||||
|
else
|
||||||
|
PARALLEL =
|
||||||
|
endif
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure -- --enable-ssl --with-dpdk=/usr $(DATAPATH_CONFIGURE_OPTS)
|
||||||
|
|
||||||
|
override_dh_auto_test:
|
||||||
|
# NOTE(jamespage): skip tests on powerpc until
|
||||||
|
# https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1483572
|
||||||
|
# is resolved
|
||||||
|
ifneq (powerpc, $(DEB_BUILD_ARCH))
|
||||||
|
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
||||||
|
if $(MAKE) check TESTSUITEFLAGS='$(PARALLEL)' || \
|
||||||
|
$(MAKE) check TESTSUITEFLAGS='--recheck'; then :; \
|
||||||
|
else \
|
||||||
|
cat tests/testsuite.log; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
endif
|
||||||
|
endif # powerpc
|
||||||
|
|
||||||
|
override_dh_auto_build:
|
||||||
|
dh_auto_build -- distdir=openvswitch
|
||||||
|
|
||||||
|
override_dh_auto_clean:
|
||||||
|
rm -f python/ovs/*.pyc python/ovs/db/*.pyc
|
||||||
|
dh_auto_clean
|
||||||
|
|
||||||
|
override_dh_install:
|
||||||
|
install -D vswitchd/ovs-vswitchd \
|
||||||
|
$(CURDIR)/debian/openvswitch-switch-dpdk/usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
|
||||||
|
|
||||||
|
override_dh_installinit:
|
||||||
|
:
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
:
|
||||||
|
|
||||||
|
# Helper target for creating snapshots from upstream git
|
||||||
|
DATE=$(shell date +%Y%m%d)
|
||||||
|
# Upstream branch to track
|
||||||
|
BRANCH=branch-2.4
|
||||||
|
|
||||||
|
get-orig-snapshot:
|
||||||
|
rm -Rf openvswitch-upstream
|
||||||
|
git clone https://github.com/openvswitch/ovs openvswitch-upstream
|
||||||
|
cd openvswitch-upstream && \
|
||||||
|
git checkout -b $(BRANCH) remotes/origin/$(BRANCH) && \
|
||||||
|
export COMMIT=`git rev-parse --short HEAD` && \
|
||||||
|
export UPSTREAM_VERSION=`head -1 NEWS | awk '{ print $$1 }' | sed 's/v//'` && \
|
||||||
|
git archive --format tgz --prefix=openvswitch-$$UPSTREAM_VERSION+git$(DATE)/ \
|
||||||
|
-o ../../openvswitch_$$UPSTREAM_VERSION~git$(DATE).$$COMMIT.orig.tar.gz $(BRANCH)
|
||||||
|
rm -Rf openvswitch-upstream
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
update-alternatives --set ovs-vswitchd \
|
||||||
|
/usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
|
||||||
|
service openvswitch-switch restart
|
||||||
|
|
||||||
|
modprobe openvswitch || true
|
||||||
|
|
||||||
|
echo "kernel modules loaded: "
|
||||||
|
# Check that ovs loaded
|
||||||
|
lsmod | grep "openvswitch"
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
echo "Checking daemons: "
|
||||||
|
pgrep ovs-vswitchd
|
||||||
|
pgrep ovsdb-server
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
echo -n "running openflow tests using mininet"
|
||||||
|
python `dirname $0`/openflow.py 2>&1
|
||||||
|
echo "OK"
|
|
@ -0,0 +1,4 @@
|
||||||
|
Tests: kernel
|
||||||
|
Depends: mininet (>= 2.2.0~), iperf, openvswitch-switch-dpdk,
|
||||||
|
openvswitch-testcontroller
|
||||||
|
Restrictions: needs-root rw-build-tree
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
`dirname $0`/common
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
service openvswitch-controller stop
|
||||||
|
|
||||||
|
python `dirname $0`/openflow.py 2>&1
|
|
@ -0,0 +1,66 @@
|
||||||
|
import unittest
|
||||||
|
import logging
|
||||||
|
from mininet.net import Mininet
|
||||||
|
import mininet.log as log
|
||||||
|
from mininet.node import OVSController, OVSKernelSwitch
|
||||||
|
|
||||||
|
Switch = OVSKernelSwitch
|
||||||
|
Controller = OVSController
|
||||||
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
log.setLogLevel('info')
|
||||||
|
|
||||||
|
|
||||||
|
class BasicOpenflowTest(unittest.TestCase):
|
||||||
|
|
||||||
|
def addHost(self, N):
|
||||||
|
logging.debug("Creating host h%s and add to net.", N)
|
||||||
|
name = 'h%d' % N
|
||||||
|
ip = '10.0.0.%d' % N
|
||||||
|
return self.net.addHost(name, ip=ip)
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.net = Mininet(controller=Controller, switch=Switch)
|
||||||
|
|
||||||
|
logging.info("Creating controllers")
|
||||||
|
self.net.addController('c1', command='ovs-testcontroller')
|
||||||
|
|
||||||
|
logging.info("Creating switches")
|
||||||
|
s1 = self.net.addSwitch('s1', protocols="OpenFlow10")
|
||||||
|
s2 = self.net.addSwitch('s2', protocols="OpenFlow10")
|
||||||
|
|
||||||
|
logging.info("Creating hosts (7 on each switch)")
|
||||||
|
hosts1 = [self.addHost(n) for n in (1, 2, 3, 4, 5, 6, 7)]
|
||||||
|
hosts2 = [self.addHost(n) for n in (8, 9, 10, 11, 12, 13, 14)]
|
||||||
|
|
||||||
|
logging.info("Creating links")
|
||||||
|
for h in hosts1:
|
||||||
|
self.net.addLink(s1, h)
|
||||||
|
for h in hosts2:
|
||||||
|
self.net.addLink(s2, h)
|
||||||
|
self.net.addLink(s1, s2)
|
||||||
|
|
||||||
|
logging.info("Starting network")
|
||||||
|
self.net.start()
|
||||||
|
|
||||||
|
def testPingAll(self):
|
||||||
|
logging.info("Testing network")
|
||||||
|
packetLoss = self.net.pingAll()
|
||||||
|
self.assertTrue(
|
||||||
|
packetLoss == 0,
|
||||||
|
"Packet loss during ping test %s" %
|
||||||
|
packetLoss)
|
||||||
|
|
||||||
|
def testIPerfTCP(self):
|
||||||
|
logging.info("Running TCP performance test")
|
||||||
|
self.net.iperf()
|
||||||
|
|
||||||
|
def testIPerfUDP(self):
|
||||||
|
logging.info("Running UDP performance test")
|
||||||
|
self.net.iperf(l4Type='UDP')
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
logging.info("Stopping network")
|
||||||
|
self.net.stop()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
|
@ -0,0 +1,2 @@
|
||||||
|
version=3
|
||||||
|
http://openvswitch.org/releases/ openvswitch-(.*).tar.gz
|
Loading…
Reference in New Issue