Add openvswitch-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. remove patch & update debian spec
rm debian/patches/*.patch
echo > debian/patches/series

cat << EOF > debian/changelog
openvswitch-dpdk (2.5.90-1) unstable; urgency=low
  * New upstream version
 -- Open vSwitch team <dev@openvswitch.org>
EOF

Change-Id: I33616f5449d463ecadcc4df238c53ec99f6801ff
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
This commit is contained in:
Guo Ruijing 2016-08-05 10:30:27 +08:00
parent 51f41273b3
commit 2f68823227
19 changed files with 2242 additions and 0 deletions

View File

@ -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; \
} > $@

View File

@ -0,0 +1,3 @@
openvswitch-dpdk (2.5.90-1) unstable; urgency=low
* New upstream version
-- Open vSwitch team <dev@openvswitch.org>

View File

@ -0,0 +1 @@
9

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,10 @@
#!/bin/sh
set -e
update-alternatives --remove ovs-vswitchd /usr/lib/openvswitch-switch/ovs-vswitchd-dpdk
#DEBHELPER#
exit 0

View File

@ -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)

View File

@ -0,0 +1 @@

View File

@ -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

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -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"

View File

@ -0,0 +1,4 @@
Tests: kernel
Depends: mininet (>= 2.2.0~), iperf, openvswitch-switch-dpdk,
openvswitch-testcontroller
Restrictions: needs-root rw-build-tree

View File

@ -0,0 +1,5 @@
#!/bin/sh
set -e
`dirname $0`/common

View File

@ -0,0 +1,7 @@
#!/bin/sh
set -e
service openvswitch-controller stop
python `dirname $0`/openflow.py 2>&1

View File

@ -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()

View File

@ -0,0 +1,2 @@
version=3
http://openvswitch.org/releases/ openvswitch-(.*).tar.gz