debian/0000755000000000000000000000000012302376147007173 5ustar debian/ifupdown.sh0000755000000000000000000000534612267213371011374 0ustar #! /bin/sh # Copyright (c) 2012, 2013 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. # Have a look at /usr/share/doc/openvswitch-switch/README.Debian # for more information about configuring the /etc/network/interfaces. if [ -z "${IF_OVS_TYPE}" ]; then exit 0 fi ovs_vsctl() { ovs-vsctl --timeout=5 "$@" } if (ovs_vsctl --version) > /dev/null 2>&1; then :; else exit 0 fi if [ "${MODE}" = "start" ]; then eval OVS_EXTRA=\"${IF_OVS_EXTRA}\" case "${IF_OVS_TYPE}" in OVSBridge) ovs_vsctl -- --may-exist add-br "${IFACE}" ${IF_OVS_OPTIONS}\ ${OVS_EXTRA+-- $OVS_EXTRA} if [ ! -z "${IF_OVS_PORTS}" ]; then ifup --allow="${IFACE}" ${IF_OVS_PORTS} fi ;; OVSPort) ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\ "${IFACE}" ${IF_OVS_OPTIONS} \ ${OVS_EXTRA+-- $OVS_EXTRA} ifconfig "${IFACE}" up ;; OVSIntPort) ovs_vsctl -- --may-exist add-port "${IF_OVS_BRIDGE}"\ "${IFACE}" ${IF_OVS_OPTIONS} -- set Interface "${IFACE}"\ type=internal ${OVS_EXTRA+-- $OVS_EXTRA} ifconfig "${IFACE}" up ;; OVSBond) ovs_vsctl -- --fake-iface add-bond "${IF_OVS_BRIDGE}"\ "${IFACE}" ${IF_OVS_BONDS} ${IF_OVS_OPTIONS} \ ${OVS_EXTRA+-- $OVS_EXTRA} ifconfig "${IFACE}" up for slave in ${IF_OVS_BONDS} do ifconfig "${slave}" up done ;; *) exit 0 ;; esac elif [ "${MODE}" = "stop" ]; then case "${IF_OVS_TYPE}" in OVSBridge) if [ ! -z "${IF_OVS_PORTS}" ]; then ifdown --allow="${IFACE}" ${IF_OVS_PORTS} fi ovs_vsctl -- --if-exists del-br "${IFACE}" ;; OVSPort|OVSIntPort|OVSBond) ovs_vsctl -- --if-exists del-port "${IF_OVS_BRIDGE}" "${IFACE}" ;; *) exit 0 ;; esac fi exit 0 debian/openvswitch-controller.README.Debian0000644000000000000000000000042512267213371015765 0ustar README.Debian for openvswitch-controller ------------------------------------- * To (re)configure the controller, edit /etc/default/openvswitch-controller and run "/etc/init.d/openvswitch-controller restart". -- Ben Pfaff , Fri, 4 Mar 2011 14:28:53 -0800 debian/openvswitch-test.install0000644000000000000000000000015212267213371014106 0ustar usr/share/openvswitch/python/ovstest usr/lib/python2.6/dist-packages/ usr/bin/ovs-test usr/bin/ovs-l3ping debian/openvswitch-controller.dirs0000644000000000000000000000003312267213371014603 0ustar etc/openvswitch-controller debian/openvswitch-test.dirs0000644000000000000000000000003412267213371013400 0ustar usr/share/pyshared/ovstest/ debian/openvswitch-common.manpages0000644000000000000000000000037312267213371014551 0ustar _debian/ovsdb/ovsdb-client.1 _debian/ovsdb/ovsdb-tool.1 _debian/utilities/ovs-appctl.8 _debian/utilities/ovs-benchmark.1 _debian/utilities/ovs-ofctl.8 _debian/utilities/ovs-pki.8 _debian/utilities/bugtool/ovs-bugtool.8 utilities/ovs-parse-backtrace.8 debian/openvswitch-datapath-source.dirs0000644000000000000000000000005412267213371015507 0ustar usr/src/modules/openvswitch-datapath/debian debian/openvswitch-switch.links0000644000000000000000000000023712267213371014106 0ustar usr/share/openvswitch/scripts/ifupdown.sh etc/network/if-pre-up.d/openvswitch usr/share/openvswitch/scripts/ifupdown.sh etc/network/if-post-down.d/openvswitch debian/copyright0000644000000000000000000011351612267213371011134 0ustar The original sources for this package can be found at: http://openvswitch.org/ Upstream Authors (from AUTHORS): Aaron Rosen arosen@clemson.edu Alexey I. Froloff raorn@altlinux.org Alex Wang alexw@nicira.com Andrew Evans aevans@nicira.com Andrew Lambeth wal@nicira.com Andy Hill hillad@gmail.com Andy Southgate andy.southgate@citrix.com Andy Zhou azhou@nicira.com Ansis Atteka aatteka@nicira.com Anupam Chanda achanda@nicira.com Arun Sharma arun.sharma@calsoftinc.com Ben Pfaff blp@nicira.com Brian Kruger bkruger+ovsdev@gmail.com Bruce Davie bsd@nicira.com Bryan Phillippe bp@toroki.com Casey Barker crbarker@google.com Chris Wright chrisw@sous-sol.org Chuck Short zulcss@ubuntu.com Damien Millescamps damien.millescamps@6wind.com Dan Carpenter dan.carpenter@oracle.com Dan Wendlandt dan@nicira.com Daniel Roman droman@nicira.com Danny Kukawka danny.kukawka@bisect.de David Erickson derickso@stanford.edu David S. Miller davem@davemloft.net Devendra Naga devendra.aaru@gmail.com Dominic Curran dominic.curran@citrix.com Duffie Cooley dcooley@nicira.com Ed Maste emaste at freebsd.org Edward Tomasz NapieraƂa trasz@freebsd.org Ethan Jackson ethan@nicira.com FUJITA Tomonori fujita.tomonori@lab.ntt.co.jp Gaetano Catalli gaetano.catalli@gmail.com Giuseppe Lettieri g.lettieri@iet.unipi.it Glen Gibb grg@stanford.edu Guolin Yang gyang@nicira.com Gurucharan Shetty gshetty@nicira.com Henry Mai hmai@nicira.com Hao Zheng hzheng@nicira.com Ian Campbell Ian.Campbell@citrix.com Isaku Yamahata yamahata@valinux.co.jp James P. roampune@gmail.com James Page james.page@ubuntu.com Jarno Rajahalme jarno.rajahalme@nsn.com Jean Tourrilhes jt@hpl.hp.com Jeremy Stribling strib@nicira.com Jesse Gross jesse@nicira.com Jing Ai jinga@google.com Joe Perches joe@perches.com Joe Stringer joe@wand.net.nz Jun Nakajima jun.nakajima@intel.com Justin Pettit jpettit@nicira.com Keith Amidon keith@nicira.com Krishna Kondaka kkondaka@vmware.com Kyle Mestery kmestery@cisco.com Leo Alterman lalterman@nicira.com Linda Sun lsun@vmware.com Lorand Jakab lojakab@cisco.com Luca Giraudo lgiraudo@nicira.com Mark Hamilton mhamilton@nicira.com Martin Casado casado@nicira.com Mehak Mahajan mmahajan@nicira.com Murphy McCauley murphy.mccauley@gmail.com Natasha Gude natasha@nicira.com Neil McKee neil.mckee@inmon.com Paraneetharan Chandrasekaran paraneetharanc@gmail.com Paul Fazzone pfazzone@nicira.com Paul Ingram paul@nicira.com Pavithra Ramesh paramesh@vmware.com Philippe Jung phil.jung@free.fr pritesh pritesh.kothari@cisco.com Pravin B Shelar pshelar@nicira.com Raju Subramanian rsubramanian@nicira.com Ravi Kerur Ravi.Kerur@telekom.com Reid Price reid@nicira.com Rich Lane rlane@bigswitch.com Rob Hoes rob.hoes@citrix.com Romain Lenglet romain.lenglet@berabera.info Sajjad Lateef slateef@nicira.com Sanjay Sane ssane@nicira.com Shan Wei davidshan@tencent.com Shih-Hao Li shli@nicira.com Simon Horman horms@verge.net.au Stephane A. Sezer sas@cd80.net SUGYO Kazushi sugyo.org@gmail.com Tadaaki Nagao nagao@stratosphere.co.jp Tetsuo NAKAGAWA nakagawa@mxc.nes.nec.co.jp Thomas Goirand zigo@debian.org Thomas Graf tgraf@redhat.com Thomas Lacroix thomas.lacroix@citrix.com Todd Deshane deshantm@gmail.com Tom Everman teverman@google.com Tsvi Slonim tsvi@toroki.com Tyler Coumbes coumbes@gmail.com Valient Gough vgough@pobox.com Vivien Bernet-Rollande vbr@soprive.net Wei Yongjun yjwei@cn.fujitsu.com Yasuhito Takamiya yasuhito@gmail.com Yu Zhiguo yuzg@cn.fujitsu.com ZhengLingyun konghuarukhr@163.com Zoltan Kiss zoltan.kiss@citrix.com Zhi Yong Wu zwu.kernel@gmail.com Zang MingJie zealot0630@gmail.com Upstream Copyright Holders: Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012 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 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 components are dual-licensed under the GNU General Public License version 2 and the Apache License Version 2.0. 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 .\" Werner Lemberg .\" .\" Version 2007-Feb-02 .\" .\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc. .\" You may freely use, modify and/or distribute this file. * 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 debian/automake.mk0000644000000000000000000000514112267213371011332 0ustar EXTRA_DIST += \ debian/changelog \ debian/compat \ debian/control \ debian/control.modules.in \ debian/copyright \ debian/copyright.in \ debian/dkms.conf.in \ debian/dirs \ debian/openvswitch-common.dirs \ debian/openvswitch-common.docs \ debian/openvswitch-common.install \ debian/openvswitch-common.manpages \ debian/openvswitch-controller.README.Debian \ debian/openvswitch-controller.default \ debian/openvswitch-controller.dirs \ debian/openvswitch-controller.init \ debian/openvswitch-controller.install \ debian/openvswitch-controller.manpages \ debian/openvswitch-controller.postinst \ debian/openvswitch-controller.postrm \ debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in \ debian/openvswitch-datapath-dkms.postinst \ debian/openvswitch-datapath-dkms.prerm \ debian/openvswitch-datapath-source.README.Debian \ debian/openvswitch-datapath-source.copyright \ debian/openvswitch-datapath-source.dirs \ debian/openvswitch-datapath-source.install \ debian/openvswitch-ipsec.dirs \ debian/openvswitch-ipsec.init \ debian/openvswitch-ipsec.install \ debian/openvswitch-pki.dirs \ debian/openvswitch-pki.postinst \ debian/openvswitch-pki.postrm \ debian/openvswitch-switch.README.Debian \ debian/openvswitch-switch.dirs \ debian/openvswitch-switch.init \ debian/openvswitch-switch.install \ debian/openvswitch-switch.logrotate \ debian/openvswitch-switch.manpages \ debian/openvswitch-switch.postinst \ debian/openvswitch-switch.postrm \ debian/openvswitch-switch.template \ debian/openvswitch-switch.links \ debian/openvswitch-test.dirs \ debian/openvswitch-test.install \ debian/openvswitch-test.manpages \ debian/ovsdbmonitor.install \ debian/ovsdbmonitor.manpages \ debian/ovs-monitor-ipsec \ debian/python-openvswitch.dirs \ debian/python-openvswitch.install \ debian/rules \ debian/rules.modules \ debian/ifupdown.sh \ debian/source/format 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 { 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; \ } > $@ DISTCLEANFILES += debian/copyright debian/openvswitch-datapath-source.copyright0000644000000000000000000000052712267213371016563 0ustar Upstream Authors: Nicira, Inc. Copyright: Copyright (C) 2008 Nicira, Inc. License: Files in the datapath/ and its sub-directories are covered under the GNU General Public License Version 2. On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. debian/openvswitch-switch.README.Debian0000644000000000000000000000700512267213371015104 0ustar README.Debian for openvswitch-switch --------------------------------- * To use the Linux kernel-based switch implementation, you will need to build and install the Open vSwitch kernel module. To do so, install the openvswitch-datapath-source package, then follow the instructions given in /usr/share/doc/openvswitch-datapath-source/README.Debian * This package does not yet support the userspace datapath-based switch implementation. -- Ben Pfaff , Fri, 6 Jul 2012 15:12:38 -0700 Debian network scripts integration ---------------------------------- This package lets a user to optionally configure Open vSwitch bridges and ports from /etc/network/interfaces. Please refer to the interfaces(5) manpage for more details regarding /etc/network/interfaces. The stanzas that configure the OVS bridges should begin with "allow-ovs" followed by name of the bridge. Here is an example. allow-ovs br0 The stanzas that configure the OVS ports should begin with "allow-${bridge-name}" followed by name of the port. Here is an example. allow-br0 eth0 The following OVS specific "command" options are supported: - ovs_type: This can either be OVSBridge, OVSPort, OVSIntPort or OVSBond depending on whether you configure a bridge, port, an internal port or a bond. This is a required option. - ovs_ports: This option specifies all the ports that belong to a bridge. - ovs_bridge: This options specifies a bridge to which a port belongs. This is a required option for a port. - ovs_bonds: This option specifies the list of physical interfaces to be bonded together. - ovs_options: This option lets you add extra arguments to a ovs-vsctl command. See examples. - ovs_extra: This option lets you run additional ovs-vsctl commands, separated by "--" (double dash). Variables can be part of the "ovs_extra" option. You can provide all the standard environmental variables described in the interfaces(5) man page. You can also pass shell commands. More implementation specific details can be seen in the examples. Examples: -------- ex 1: A standalone bridge. allow-ovs br0 iface br0 inet static address 192.168.1.1 netmask 255.255.255.0 ovs_type OVSBridge ex 2: A bridge with one port. allow-ovs br0 iface br0 inet dhcp ovs_type OVSBridge ovs_ports eth0 allow-br0 eth0 iface eth0 inet manual ovs_bridge br0 ovs_type OVSPort ex 3: A bridge with multiple physical ports. allow-ovs br0 iface br0 inet dhcp ovs_type OVSBridge ovs_ports eth0 eth1 allow-br0 eth0 iface eth0 inet manual ovs_bridge br0 ovs_type OVSPort allow-br0 eth1 iface eth1 inet manual ovs_bridge br0 ovs_type OVSPort ex 4: A bridge with an OVS internal port. allow-ovs br1 iface br1 inet static address 192.168.1.1 netmask 255.255.255.0 ovs_type OVSBridge ovs_ports vlan100 allow-br1 vlan100 iface vlan100 inet manual ovs_bridge br1 ovs_type OVSIntPort ovs_options tag=100 ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s) ex 5: Bonding. allow-ovs br2 iface br2 inet static address 192.170.1.1 netmask 255.255.255.0 ovs_type OVSBridge ovs_ports bond0 allow-br2 bond0 iface bond0 inet manual ovs_bridge br2 ovs_type OVSBond ovs_bonds eth2 eth3 ovs_options bond_mode=balance-tcp lacp=active ex 6: Create and destroy bridges. ifup --allow=ovs $list_of_bridges ifdown --allow=ovs $list_of_bridges -- Gurucharan Shetty , Fri, 04 May 2012 12:58:19 -0700 debian/python-openvswitch.install0000644000000000000000000000010212267213371014443 0ustar usr/share/openvswitch/python/ovs usr/lib/python2.6/dist-packages/ debian/ovsdbmonitor.manpages0000644000000000000000000000004212267213371013430 0ustar ovsdb/ovsdbmonitor/ovsdbmonitor.1 debian/openvswitch-test.manpages0000644000000000000000000000007412267213371014236 0ustar _debian/utilities/ovs-test.8 _debian/utilities/ovs-l3ping.8 debian/openvswitch-ipsec.dirs0000644000000000000000000000003612267213371013526 0ustar usr/share/openvswitch/scripts debian/openvswitch-switch.install0000644000000000000000000000066312267213371014437 0ustar usr/bin/ovs-dpctl usr/bin/ovs-dpctl-top usr/bin/ovs-pcap usr/bin/ovs-tcpundump usr/bin/ovs-vlan-test usr/bin/ovs-vsctl usr/bin/ovsdb-tool usr/sbin/ovs-vswitchd usr/sbin/ovsdb-server usr/share/openvswitch/scripts/ovs-check-dead-ifs usr/share/openvswitch/scripts/ovs-ctl usr/share/openvswitch/scripts/ovs-lib usr/share/openvswitch/scripts/ovs-save usr/share/openvswitch/vswitch.ovsschema debian/ifupdown.sh usr/share/openvswitch/scripts debian/openvswitch-switch.template0000644000000000000000000000045012267213371014576 0ustar # This is a POSIX shell fragment -*- sh -*- # FORCE_COREFILES: If 'yes' then core files will be enabled. # FORCE_COREFILES=yes # OVS_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example, # a suitable place to specify --ovs-vswitchd-wrapper=valgrind. # OVS_CTL_OPTS= debian/changelog0000644000000000000000000011137312302376147011053 0ustar openvswitch (2.0.1+git20140120-0ubuntu2) trusty; urgency=medium * Rebuild to drop files installed into /usr/share/pyshared. -- Matthias Klose Sun, 23 Feb 2014 13:49:27 +0000 openvswitch (2.0.1+git20140120-0ubuntu1) trusty; urgency=medium * New upstream snapshot: - d/p/0001-Add-check-for-latomic.patch: Dropped - included in snapshot. * d/p/fix-3.11-support.patch: Cherry pick fix for >= 3.11 GRE support from upstream VCS (LP: #1270649). * d/tests/dkms,ma: Gate test execution on <= 3.13 kernel. -- James Page Mon, 20 Jan 2014 12:55:24 +0000 openvswitch (2.0.1+git20140106-0ubuntu1) trusty; urgency=medium * New upstream snapshot. -- James Page Mon, 06 Jan 2014 17:32:42 +0000 openvswitch (2.0.0+git20131203-0ubuntu1) trusty; urgency=low * New upstream snapshot. * d/rules: Switch snapshot branch to branch-2.0. * Rework checks for -latomic: - d/p/0001-Add-check-for-latomic.patch: Add autoconf checks to see if -latomic is required when linking test-atomic. - d/p/atomic-test.patch: Dropped in preference to new patch. -- James Page Thu, 05 Dec 2013 10:08:20 +0000 openvswitch (2.0.0-0ubuntu3) trusty; urgency=low * d/rules,control: Switch to using dh-autoreconf for clean package builds. * d/p/kernel-3.12-support.patch: Add support for 3.12 kernel. * d/tests/control,kernel,common: Add kernel test to exercise in-tree openvswitch module, run openflow test against all module sources instead of standalone at the end of other tests. -- James Page Mon, 11 Nov 2013 12:23:01 +0000 openvswitch (2.0.0-0ubuntu2) trusty; urgency=low * d/p/atomic-test.patch: Link atomic test with -latomic for powerpc. -- Adam Conrad Sun, 03 Nov 2013 21:07:20 -0700 openvswitch (2.0.0-0ubuntu1) trusty; urgency=low * New upstream release: - d/p/kernel-3.11-support.patch: Cherry picked fix from upstream VCS for 3.11 kernel support. - Drop all other patches, no longer required. * d/p/xcp-interface-reconfigure.patch: Detect and use packaged XCP XAPI interface-reconfigure hook if installed (LP: #1195053). -- James Page Mon, 28 Oct 2013 13:15:45 +0000 openvswitch (1.10.2-0ubuntu2) saucy; urgency=low * d/p/boot.patch: Re-execution of boot.sh to ensure that new files introduced via patches are included in the dkms and source packages (LP: #1229222). -- James Page Mon, 23 Sep 2013 15:50:06 +0100 openvswitch (1.10.2-0ubuntu1) saucy; urgency=low * New upstream point release. -- James Page Sat, 07 Sep 2013 08:48:22 +0100 openvswitch (1.10.1+git20130823-0ubuntu3) saucy; urgency=low * d/openvswitch-switch.openvswitch-force-reload-kmod.upstart: Deal with instances where openvswitch-switch is not already running, use modprobe -r instead of rmmod to remove kernel modules. -- James Page Wed, 28 Aug 2013 13:32:38 +0100 openvswitch (1.10.1+git20130823-0ubuntu2) saucy; urgency=low * Fully support transitions from openvswitch module in 3.11 kernel to DKMS module: - d/openvswitch-switch.openvswitch-force-reload-mod.upstart: Drop the gre module when force reloading to make transitions from native kernel module to dkms module work. - d/NEWS: Drop information about DKMS/kernel compatibility with GRE tunnels. -- James Page Sat, 24 Aug 2013 09:41:02 +0100 openvswitch (1.10.1+git20130823-0ubuntu1) saucy; urgency=low * New upstream snapshot. - d/p/*.patch: Rebase on 1.10 branch with upstream submitted fixes for Linux 3.11 kernel compatibility (LP: #1213879). - d/NEWS: Add note about GRE tunnel support in the Linux 3.11 native kernel module with advice on use of -dkms package in this configuration. * Add Upstart configuration for openvswitch-switch (LP: #1084028): - d/openvswitch-switch.upstart: Add upstart configuration to support use during early boot. - d/rules,openvswitch-switch.openvswitch-force-reload-mod.upstart: Add helper to replace 'service openvswitch-switch force-reload-kmod'. - d/openvswitch-switch.preinst: Stop versions earlier than this version prior to install due to switch to upstart configuration. - d/NEWS: Let users know about this change and how to force a reload of the openvswitch kernel module. - d/tests/dkms,common: Update to work with upstart configuration. -- James Page Fri, 23 Aug 2013 11:18:52 +0100 openvswitch (1.10.1+git20130627-0ubuntu2) saucy; urgency=low * Allow compile with Linux 3.11 kernel - d/p/0005-datapath-Allow-compile-with-linux-3.11.patch Extend version checking to include the new kernel version. -- Stefan Bader Sat, 03 Aug 2013 12:12:08 +0100 openvswitch (1.10.1+git20130627-0ubuntu1) saucy; urgency=low * New upstream snapshot: - d/p/0007-tests-Tolerate-init-process-pid-1.patch: Dropped; included in snapshot. - d/p/*lacp*: Drop patches related to lacp test changes; not required for this series. - d/*: Sync relevant packaging changes. * Provide initial support for Linux 3.10 kernel: - d/p/0004-datapath-Fixup-compatibility-with-linux-3.10.patch: Fixup compatibility with Linux 3.10; this is not full support for all new 3.10 features - it simply maintains compatibility for the existing codebase. * d/rules: Add get-orig-snapshot target for creating snapshots from upstream VCS. -- James Page Mon, 01 Jul 2013 09:45:12 +0100 openvswitch (1.10.0-0ubuntu5) saucy; urgency=low * d/p/0007-tests-Tolerate-init-process-pid-1.patch: Resync with upstream accepted fix for FTBFS with upstart user sessions enabled, supercedes fix-init-user-sessions.patch with a more reliable test. -- James Page Fri, 21 Jun 2013 09:43:18 +0100 openvswitch (1.10.0-0ubuntu4) saucy; urgency=low * Fix FTBFS when upstart user sessions are enabled: - d/p/fix-init-user-sessions.patch: init is not pid == 1 when building on Ubuntu with user sessions enabled; just check that the cmd name of the init process is 'init' instead. -- James Page Thu, 20 Jun 2013 18:46:17 +0100 openvswitch (1.10.0-0ubuntu3) saucy; urgency=low * d/rules: Disable testing on powerpc architecture https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1189408. -- James Page Mon, 10 Jun 2013 11:20:56 +0100 openvswitch (1.10.0-0ubuntu2) saucy; urgency=low * Fix FTBFS on powerpc architecture: - d/p/{0004,0005,0006}*.patch: Cherry picked fixes from upstream VCS for failing lacp test. -- James Page Mon, 10 Jun 2013 10:30:10 +0100 openvswitch (1.10.0-0ubuntu1) saucy; urgency=low * New upstream release: - d/p/handle-unix-socket-long-paths.patch: Dropped - included upstream. - d/control,NEWS: Drop openvswitch-brcompat package as feature has been dropped upstream, added NEWS entry to let users know. - d/tests: Update tests to drop brcompat module testing. * Add support for Linux 3.9 kernel (LP: #1180385): - d/p/0001-datapath-hlist-drop-the-node-parameter-from-iterator.patch: Cherry picked fix from upstream master branch to remove dropped node parameter from hlist calls. - d/p/0002-Add-support-for-linux-3.9-kernel.patch: Include the 3.9 kernel in the list of supported kernel versions. - d/p/0003-datapath-Backport-simplified-hlist-iterators.patch: Cherry picked fix to provide backported hlist iterators for older kernels. - d/rules: Always run boot.sh to pickup above changes. -- James Page Mon, 03 Jun 2013 15:40:43 +0100 openvswitch (1.9.0-0ubuntu1) raring; urgency=low * New upstream release. * Added watch file. -- James Page Fri, 01 Mar 2013 14:25:54 +0000 openvswitch (1.9.0~git20130225.cec7c9e-0ubuntu1) raring; urgency=low * New upstream snapshot. * d/rules.modules: Install built modules to updates/openvswitch to ensure that they override any kernel provided version of openvswitch. -- James Page Mon, 25 Feb 2013 14:28:46 +0000 openvswitch (1.9.0~git20130207.84b39f2-0ubuntu2) raring; urgency=low * Add DEP-8 tests for dkms, module-assistant and openflow. -- James Page Sun, 17 Feb 2013 20:40:09 +0000 openvswitch (1.9.0~git20130207.84b39f2-0ubuntu1) raring; urgency=low * New upstream snapshot from 1.9 branch: - d/p/support-linux-3.8.patch, d/p/linux-Makefile.main.in-acinclude-preparation-for-lin.patch: Dropped as included upstream. * Fix dependencies for ovsdbmonitor (LP: #1098324): - d/control: Add dependency on python-twisted-conch. * d/control: Bumped Standards-Version, no changes. -- James Page Thu, 07 Feb 2013 15:32:38 +0000 openvswitch (1.9.0~git20130115.ca71f5b-0ubuntu2) raring; urgency=low * Fix typo in debian/openvswitch-controller.default (LP: #1094556). -- Logan Rosen Thu, 17 Jan 2013 19:24:45 +0000 openvswitch (1.9.0~git20130115.ca71f5b-0ubuntu1) raring; urgency=low * New upstream snapshot based on branch-1.9: - d/patches: Dropped all previous patches as all found upstream. - d/*: Synced packaging with upstream packaging changes. - d/control: Add libtool to BD's to support use of snapshot. * Fix compatibility with Linux 3.8 (LP: #1098650): - d/p/support-linux-3.8.patch: Accept Linux 3.8 as a compatible kernel version. - d/p/linux-Makefile.main.in-acinclude-preparation-for-lin.patch: Adjust autoconf checks to correctly detect new kernel header file names. * Fix python test issues caused by long UNIX socket paths: - d/p/handle-unix-socket-long-paths.patch: Workaround long UNIX socket paths by using /proc/self/fd on Linux. -- James Page Wed, 16 Jan 2013 11:22:40 +0000 openvswitch (1.4.3-0ubuntu2) quantal-proposed; urgency=low * Re-enable the openvswitch-datapath-dkms package to enable support for gre tunnels between virtual switches which is not supported in the kernel provided openvswitch module (LP: #1068365). - d/patches/0001->0008*.patch: Cherry picked patches from upstream trunk which enable support for the 3.5 linux kernel and align dkms module naming with kernel module naming. - d/dkms.conf.in: Drop _mod postfix from dkms module names. -- James Page Tue, 23 Oct 2012 17:24:17 +0200 openvswitch (1.4.3-0ubuntu1) quantal; urgency=low * New upstream release (LP: #1057098). * Dropped Debian patches: - debian/patches/debian-changes-1.4.2+git20120612-6 - debian/patches/bug-681955-ovs-ctl-Start-the-rest-of-Open-vSwitch.patch - debian/patches/bug-684057-ovs-ctl-Add-support-for-newer-module-name.patch - debian/patches/debian-changes-1.4.2+git20120612-9 * Dropped Ubuntu patches: - debian/patches/lp1044318-Reset-upper-layer-protocol-info.patch * Remaining changes: - debian/rules, debian/control: Enable hardening wrapper. - debian/control: Disable openvswitch-datapath-dkms package. -- Adam Gandelman Mon, 24 Sep 2012 14:55:07 -0700 openvswitch (1.4.2+git20120612-9ubuntu3) quantal; urgency=low * debian/patches/lp1044318-Reset-upper-layer-protocol-info.patch: Cherry picked upstream patch to avoid critical issues with SNAT/DNAT when OVS is chained with other Linux components. May be dropped with 1.4.3 upload. (LP: #1044318) -- Adam Gandelman Fri, 07 Sep 2012 12:12:03 -0700 openvswitch (1.4.2+git20120612-9ubuntu2) quantal; urgency=low * debian/rules, debian/control: Enable hardening wrapper. -- Chuck Short Mon, 20 Aug 2012 19:39:58 -0500 openvswitch (1.4.2+git20120612-9ubuntu1) quantal; urgency=low * Merge from Debian unstable; remaining changes: - d/control: Disable openvswitch-datapath-dkms package. * Dropped changes: - d/patches/kernel_3.5_support.patch: Superceded by bug-684057-ovs-ctl-Add-support-for-newer-module-name.patch -- James Page Tue, 07 Aug 2012 16:00:53 +0100 openvswitch (1.4.2+git20120612-9) unstable; urgency=low * Apply bug-684057-ovs-ctl-Add-support-for-newer-module-name.patch to allow use of the openvswitch kernel module integrated into 3.3 and later. Closes: #684057. -- Ben Pfaff Mon, 06 Aug 2012 16:59:01 -0700 openvswitch (1.4.2+git20120612-8) unstable; urgency=low * Apply further patches to fix bugs resulting from moving /etc/openvswitch/conf.db to /var/lib/openvswitch in -7. This required applying the following bug fix patches: bug-681880-3-Make-the-location-of-the-database-separately-configu.patch bug-681880-4-tests-Slightly-generalize-utility-function-tests.patch bug-681880-5-util-New-function-follow_symlinks.patch bug-681880-6-lockfile-Be-more-forgiving-about-lockfiles-for-symli.patch bug-681880-7-ovsdb-Do-not-replace-symlinks-by-regular-files-durin.patch bug-681880-8-Fix-a-typo-in-commit-f973f2af2.patch bug-681880-9-dirs-dbdir-default-must-be-based-on-sysconfdir.patch * debian/rules: Configure /var/lib/openvswitch as the database directory instead of working through symlinks. (The symlinks are still created for compatibility with people and existing software that are accustomed to seeing the database in its original location, but the Debian packages themselves never use the symlinks.) * debian/openvswitch-switch.postrm: Also remove /ec/openvswitch/system-id.conf and conf.db backups on purge. * utilities/ovs-pki.in: Use mode 0700 instead of 0733 for openvswitch-pki "incoming" directory, by applying bug-683665-use-mode-700-for-pki-incoming-dir.patch. See the patch for complete rationale. Closes: #683665. Thanks to Andreas Beckmann for reporting this bug. * debian/openvswitch-pki.postinst: Change mode of existing "incoming" directories to 0700 at configure time (see above). -- Ben Pfaff Wed, 01 Aug 2012 11:20:21 -0700 openvswitch (1.4.2+git20120612-7) unstable; urgency=low * Move /etc/openvswitch/conf.db to /var/lib/openvswitch, using symlinks. Closes: #681880. Thanks to Bastian Blank for reporting this bug. This required applying the following bug fix patches: bug-681880-1-lockfile-Fix-hang-locking-through-a-dangling-symlink.patch bug-681880-2-ovsdb-Make-ovsdb-tool-create-work-through-a-dangling.patch * Start the rest of OVS if bridge compatibility is enabled but the kernel bridge module cannot be loaded. Closes: #681955. Thanks to Bastian Blank for reporting this bug. This was fixed by applying the following bug fix patch: bug-681955-ovs-ctl-Start-the-rest-of-Open-vSwitch.patch -- Ben Pfaff Fri, 27 Jul 2012 12:36:03 -0700 openvswitch (1.4.2+git20120612-6) unstable; urgency=low * utilities/automake.mk: Fix duplicate mention of ovs-vsctl in bin_PROGRAMS and bin_SCRIPTS; it should only have been in the former. Closes: #682384. Thanks to Bastian Blank for reporting this bug. -- Ben Pfaff Mon, 23 Jul 2012 09:46:41 -0700 openvswitch (1.4.2+git20120612-5) unstable; urgency=low * debian/openvswitch-controller.postrm: Remove configuration files in /etc/openvswitch-controller on purge. Closes: #682187. Thanks to Andreas Beckmann for reporting this bug. -- Ben Pfaff Fri, 20 Jul 2012 22:33:19 -0700 openvswitch (1.4.2+git20120612-4ubuntu1) quantal; urgency=low * Merge from Debian unstable. Remaining changes: - d/control: Disable openvswitch-datapath-dkms package. - d/patches/kernel_3.5_support.patch: Fix openvswitch-switch startup with 3.5 kernel module name, allowing use of openvswitch without openvswitch-datapath-dkms. -- James Page Thu, 19 Jul 2012 08:51:47 +0100 openvswitch (1.4.2+git20120612-4) unstable; urgency=low * debian/openvswitch-switch.init: Do not modify iptables rules. Closes: #680537. Thanks to Bastian Blank for reporting this bug. -- Ben Pfaff Mon, 16 Jul 2012 12:56:37 -0700 openvswitch (1.4.2+git20120612-3ubuntu1) quantal; urgency=low * Merge from Debian unstable. Remaining changes: - d/control: Disable openvswitch-datapath-dkms package. - d/patches/kernel_3.5_support.patch: Fix openvswitch-switch startup with 3.5 kernel module name, allowing use of openvswitch without openvswitch-datapath-dkms. -- James Page Mon, 16 Jul 2012 14:48:43 +0100 openvswitch (1.4.2+git20120612-3) unstable; urgency=low * debian/control: Add "netbase" dependency to ensure that /etc/protocols is available. Closes: #680537. Thanks to Bastian Blank for reporting this bug. -- Ben Pfaff Mon, 09 Jul 2012 09:50:03 -0700 openvswitch (1.4.2+git20120612-2ubuntu2) quantal; urgency=low * Disable openvswitch-datapath-dkms package (LP: #1018265); it's not compatible with the 3.5 kernel (which provides the openvswitch module) and if users really required the brcompat module and are using an older kernel then they can use openvswitch-datapath-source. -- James Page Wed, 11 Jul 2012 13:00:58 +0100 openvswitch (1.4.2+git20120612-2ubuntu1) quantal; urgency=low * Fix openvswitch-switch startup with 3.5 kernel module name, allowing use of openvswitch without openvswitch-datapath-dkms (LP: #1021078): - d/patches/kernel_3.5_support.patch: Cherry picked patch from upstream VCS to align module naming with openvswitch module in 3.5 kernel. -- James Page Mon, 09 Jul 2012 22:01:41 +0100 openvswitch (1.4.2+git20120612-2) unstable; urgency=low * Apply upstream commit that enables DKMS to automatically build for the running kernel, which seems to be common practice in DMS packaging (launchpad bug #962189) -- Ben Pfaff Tue, 19 Jun 2012 09:40:53 -0700 openvswitch (1.4.2+git20120612-1) unstable; urgency=low * New upstream version fixing the following bugs: o Crash fixes: - ofproto: Fix use after free in ofoperation_complete(). - odp-util: Update ODPUTIL_FLOW_KEY_BYTES for current kernel flow format. - datapath: Check correct return value from skb_gso_segment(). o Possible serious malfunctions: - dpif-netdev: allow for proper destruction of netdev datapaths. - datapath: Validation of IPv6 set port action uses IPv4 header. o Rare annoying corner case: - odp-util: Fix parsing of actions encapsulated within "sample" actions. o Bugs with unknown impact: - Correctly set destination MAC in mf_set_flow_value(). o OpenFlow controller compatibility: - Allow OFPP_CONTROLLER as the in_port for packet-out messages. -- Ben Pfaff Tue, 12 Jun 2012 10:25:08 -0700 openvswitch (1.4.0+git20120426-1) unstable; urgency=low * New upstream release fixing the following bugs: o Broken log rotation. o Use-after-free error when ports disappear. o Minor memory leaks. o Testsuite failures on big-endian architectures. -- Ben Pfaff Thu, 26 Apr 2012 13:46:55 -0700 openvswitch (1.4.0+git20120321-1) unstable; urgency=low * New upstream version including: o Features: - ovs-vsctl: Allow "fake bridges" to be created for VLAN 0. - vswitchd: Make the MAC entry aging time configurable. - mac-learning: Increase MAC learning timeout to 300 seconds. o Bug fixes: - netdev-linux: Fix use-after-free when netdev_dump_queues() deletes queues. - netlink-socket: Increase Netlink socket receive buffer size. - ofproto: Fix code that keeps track of MTU. - ovs-monitor-ipsec: Detect correctly IPSEC configuration changes - bond: Incorrectly reported an error in appctl. - socket-util: Unlink Unix domain sockets that bind but fail to connect. - bridge: Remove unwanted ports at time of ofproto creation. - dpif-linux: Make dpif_linux_port_query_by_name() query only one datapath. - ofproto-dpif: Cleanup STP on ports when disabled on their bridge. - configure: Try to extract kernel source directory from build Makefile. - vswitchd: Always configure a default queue for QoS. - ofproto-dpif: Don't output to in_port even if in_port is OFPP_LOCAL. - sflow_agent: Use snprintf() in place of sprintf(). o Packaging: - Move PKI directory to FHS-compliant location. Closes: #661090. Thanks to Andreas Beckmann for reporting this bug. - Use a different way to avoid failing install without kernel module. - Avoid unit test failure when doing "unofficial" builds. - Bump standards-version to 3.9.3. - Remove some useless files from the dkms package. - Clean .pyc files in "clean" target. - Remove po-debconf build dependency. - Build-depend on python-all to pull in all Python versions. - Add missing ${python:Depends} to openvswitch-test package. - Improve long descriptions so as to better describe the packages. - Bump debhelper compat level to 8 and make build-depends consistent. - Fix exit status of openvswitch-switch init script "status" command. - Use provided kernel source dir instead of host kernel version. - Do not run "make" if "configure" fails during DKMS build. - Look in /lib/modules instead of /usr/src for DKMS kernel sources. - Fix dependencies for openvswitch-datapath-dkms package. - Don't install Python modules for obsolete Python versions. - Add dependency on ${misc:Depends} to openvswitch-test o Documentation improvements: - ovsdb-doc: Use minus sign in negative numbers in nroff output. - ovsdb-doc: Convert '-' preceding a number as a minus sign, not a hyphen. - ovsdb-doc: Put NAME section into generated manpage. - Fix typo in manpage. - vswitchd: Document behavior of 802.1p priorities with VLAN splinters. - netdev: Fix typo in error message. - INSTALL.Linux: minor typo * Many thanks to Thomas Goirand for contributing many of the packaging fixes listed above. * This version fixes most of the lintian errors described in bug #663051, but a few remain, so this upload does not close that bug. I believe that this upload should be suitable for downgrading that bug's severity. -- Ben Pfaff Wed, 21 Mar 2012 10:00:28 -0700 openvswitch (1.4.0-2+nmu1) unstable; urgency=low * Non maintainer upload. * Removes all patches in debian/patches, because they are patching stuff inconditionally in debian/*, and this should be applied by default. * Uses the correct ${kernel_source_dir} in debian/dkms.conf.in, so that the kernel module builds as expected (Closes: #659685). -- Thomas Goirand Thu, 08 Mar 2012 08:46:24 +0000 openvswitch (1.4.0-2) unstable; urgency=low * Use explicit DKMS variable for kernel source directory - 0001-debian-Fix-dependencies-for-openvswitch-datapath-dkm.patch - 0002-debian-Look-in-lib-modules-instead-of-usr-src-for-DK.patch - 0001-debian-Use-provided-kernel-source-dir.patch - 0001-debian-Do-not-run-make-if-configure-fails-during-DKM.patch - (closes: #659685) * Don't install Python modules for obsolete Python versions - 0001-debian-Don-t-install-Python-modules-for-obsolete-Pyt.patch -- Simon Horman Tue, 14 Feb 2012 11:43:13 +0900 openvswitch (1.4.0-1) unstable; urgency=low [ Open vSwitch team ] * New upstream version - Compatible with Open vSwitch kernel module included in Linux 3.3. - New "VLAN splinters" feature to work around buggy device drivers in old Linux versions. (This feature is deprecated. When broken device drivers are no longer in widespread use, we will delete this feature.) See ovs-vswitchd.conf.db(5) for more information. - OpenFlow: - Added ability to match on IPv6 flow label through NXM. - Added ability to match on ECN bits in IPv4 and IPv6 through NXM. - Added ability to match on TTL in IPv4 and IPv6 through NXM. - Added ability to modify ECN bits in IPv4. - Added ability to modify TTL in IPv4. - ovs-vswitchd: - Don't require the "normal" action to use mirrors. Traffic will now be properly mirrored for any flows, regardless of their actions. - Track packet and byte statistics sent on mirrors. - ovs-appctl: - New "fdb/flush" command to flush bridge's MAC learning table. - ovs-test: - A new distributed testing tool that allows one to diagnose performance and connectivity issues. This tool currently is not included in RH or Xen packages. - RHEL packaging now supports integration with Red Hat network scripts. - Debian: Depend on python (>= 2.7) | python-argparse instead of python-argparse to avoid pulling in python2.6 (closes: #653645) -- Open vSwitch team Mon, 30 Jan 2012 23:36:00 +0000 openvswitch (1.3.0-1) unstable; urgency=low [ Open vSwitch team ] * New upstream version - OpenFlow: - Added an OpenFlow extension which allows the "output" action to accept NXM fields. - Added an OpenFlow extension for flexible learning. - Bumped number of NXM registers from four to five. - ovs-appctl: - New "version" command to determine version of running daemon. - If no argument is provided for "cfm/show", displays detailed information about all interfaces with CFM enabled. - If no argument is provided for "lacp/show", displays detailed information about all ports with LACP enabled. - ovs-vswitchd: - The software switch now supports 255 OpenFlow tables, instead of just one. By default, only table 0 is consulted, but the new NXAST_RESUBMIT_TABLE action can look up in additional tables. Tables 128 and above are reserved for use by the switch itself; please use only tables 0 through 127. - Add support for 802.1D spanning tree (STP). - Fragment handling extensions: - New OFPC_FRAG_NX_MATCH fragment handling mode, in which L4 fields are made available for matching in fragments with offset 0. - New NXM_NX_IP_FRAG match field for matching IP fragments (usable via "ip_frag" in ovs-ofctl). - New ovs-ofctl "get-frags" and "set-frags" commands to get and set fragment handling policy. - CAPWAP tunneling now supports an extension to transport a 64-key. By default it remains compatible with the old version and other standards-based implementations. - Flow setups are now processed in a round-robin manner across ports to prevent any single client from monopolizing the CPU and conducting a denial of service attack. - Added support for native VLAN tagging. A new "vlan_mode" parameter can be set for "port". Possible values: "access", "trunk", "native-tagged" and "native-untagged". - test-openflowd has been removed. Please use ovs-vswitchd instead. -- Open vSwitch team Mon, 09 Dec 2011 23:36:00 +0000 openvswitch (1.2.0-1) unstable; urgency=low [ Open vSwitch team ] * New upstream version - New "ofproto" abstraction layer to ease porting to hardware switching ASICs. - Packaging for Red Hat Enterprise Linux 5.6 and 6.0. - Datapath support for Linux kernels up to 3.0. - OpenFlow: - New "bundle" and "bundle_load" action extensions. - Database: - Implement table unique constraints. - Support cooperative locking between callers. - ovs-dpctl: - New "-s" option for "show" command prints packet and byte counters for each port. - ovs-ofctl: - New "--readd" option for "replace-flows". - ovs-vsctl: - New "show" command to print an overview of configuration. - New "comment" command to add remark that explains intentions. - ovs-brcompatd has been rewritten to fix long-standing bugs. - ovs-openflowd has been renamed test-openflowd and moved into the tests directory. Its presence confused too many users. Please use ovs-vswitchd instead. - New ovs-benchmark utility to test flow setup performance. - A new log level "off" has been added. Configuring a log facility "off" prevents any messages from being logged to it. Previously, "emer" was effectively "off" because no messages were ever logged at level "emer". Now, errors that cause a process to exit are logged at "emer" level. - "configure" option --with-l26 has been renamed --with-linux, and --with-l26-source has been renamed --with-linux-source. The old names will be removed after the next release, so please update your scripts. - The "-2.6" suffix has been dropped from the datapath/linux-2.6 and datapath/linux-2.6/compat-2.6 directories. - Feature removals: - Dropped support for "tun_id_from_cookie" OpenFlow extension. Please use the extensible match extensions instead. - Removed the Maintenance_Point and Monitor tables in an effort to simplify 802.1ag configuration. - Performance and scalability improvements - Bug fixes -- Open vSwitch team Wed, 03 Aug 2011 14:43:00 +0000 openvswitch (1.1.1-1) unstable; urgency=low [ Open vSwitch team ] * Bug fixes. [ Simon Horman ] * docs: Suppress warning marcro DD not defined (upstream commit 58f870d0) * debian: Make openvswitch depend on Python (upstream commit aa41cb61) * debian: Don't begin openvswitch-pki description with article. (upstream commit bc6bb66) * Debian: Add ${misc:Depends} dependency to python-openvswitch * Debian: Update standards version from 3.9.1 to 3.9.2 * Debian: ${source:Version} dependency on python openvswitch * Debian: ${source:Version} dependency for python openvswitch * Switch to dpkg-source 3.0 (quilt) format - For local non-debian/ patches (above) -- Simon Horman Wed, 15 Jun 2011 10:46:15 +0900 openvswitch (1.1.0-1) unstable; urgency=low [ Open vSwitch team ] * New upstream version - Ability to define policies over IPv6 - LACP - 802.1ag CCM - Support for extensible match extensions to OpenFlow - QoS: - Support for HFSC qdisc. - Queue used by in-band control can now be configured. - Kernel: - Kernel<->userspace interface has been reworked and should be close to a stable ABI now. - "Port group" concept has been dropped. - GRE over IPSEC tunnels - Bonding: - New active backup bonding mode. - New L4 hashing support when LACP is enabled. - Source MAC hash now includes VLAN field also. - miimon support. - Greatly improved handling of large flow tables - ovs-dpctl: - "show" command now prints full vport configuration. - "dump-groups" command removed since kernel support for port groups was dropped. - ovs-vsctl: - New commands for working with the new Managers table. - "list" command enhanced with new formatting options and --columns option. - "get" command now accepts new --id option. - New "find" command. - ovs-ofctl: - New "queue-stats" command for printing queue stats. - New commands "replace-flows" and "diff-flows". - Commands to add and remove flows can now read from files. - New --flow-format option to enable or disable NXM. - New --more option to increase OpenFlow message verbosity. - Removed "tun-cookie" command, which is no longer useful. - ovs-controller enhancements for testing various features. - New ovs-vlan-test command for testing for Linux kernel driver VLAN bugs. New ovs-vlan-bug-workaround command for enabling and disabling a workaround for these driver bugs. - OpenFlow support: - "Resubmit" actions now update flow statistics. - New "register" extension for use in matching and actions, via NXM. - New "multipath" experimental action extension. - New support for matching multicast Ethernet frames, via NXM. - New extension for OpenFlow vendor error codes. - New extension to set the QoS output queue without actually sending to an output port. - Open vSwitch now reports a single flow table, instead of separate hash and wildcard tables. This better models the current implementation. - New experimental "note" action. - New "ofproto/trace" ovs-appctl command and associated utilities to ease debugging complex flow tables. - Database: - Schema documentation now includes an entity-relationship diagram. - The database is now garbage collected. In most tables, unreferenced rows will be deleted automatically. - Many tables now include statistics updated periodically by ovs-vswitchd or ovsdb-server. - Every table now has an "external-ids" column for use by OVS integrators. - There is no default controller anymore. Each bridge must have its controller individually specified. - The "fail-mode" is now a property of a Bridge instead of a Controller. - New versioning and checksum features. - New Managers table and manager_options column in Open_vSwitch table for specifying managers. The old "managers" column in the Open_vSwitch table has been removed. - Many "name" columns are now immutable. - Feature removals: - Dropped support for XenServer pre-5.6.100. - Dropped support for Linux pre-2.6.18. - Dropped controller discovery support. - Dropped "ovs-ofctl status" and the OpenFlow extension that it used. Statistics reporting in the database is a rough equivalent. - Dropped the "corekeeper" package (now separate, at http://openvswitch.org/cgi-bin/gitweb.cgi?p=corekeeper). - Performance and scalability improvements - Bug fixes [ Simon Horman ] * Add the following fixes from upstream branch-1.1 - 7f1aca9 dpif-linux: Avoid logging error on ENOENT in dpif_linux_is_internal_device(). - 8996f83 dpif-linux: Avoid segfault on netdev_get_stats() without kernel module. - 002d4a3 vswitch: Improve schema documentation. - 58bd294 cfm: Fix broken fault logic. - c042664 bridge: Run once before configuring CFM. * Switch to dpkg-source 3.0 (quilt) format -- Simon Horman Wed, 27 Apr 2011 17:11:10 +0900 openvswitch (1.1.0~pre2.g2.ea763e0e-1) unstable; urgency=low * Git snapshot, including - tests: Fix Y2011 bug in testsuite (closes: #609506) -- Simon Horman Wed, 12 Jan 2011 08:34:35 +0900 openvswitch (1.1.0~pre2.g1.bbe8d06e-1) unstable; urgency=low * Git snaptshot -- Simon Horman Thu, 06 Jan 2011 11:11:55 +0900 openvswitch (1.1.0~pre2-5) unstable; urgency=low * Open vSwitch only works on Linux so set the Architecture of binary packages to linux-any accordingly -- Simon Horman Tue, 23 Nov 2010 07:55:19 +0900 openvswitch (1.1.0~pre2-4) unstable; urgency=low * Add procps to Build-Depends (closes: #602891) -- Simon Horman Tue, 16 Nov 2010 06:46:17 +0900 openvswitch (1.1.0~pre2-3) unstable; urgency=low * Remove the corekeeper package as it isn't strongly related to Open vSwitch. It has subsequently been broken off into a separate source repository and may be uploaded as its own debian source package. http://openvswitch.org/cgi-bin/gitweb.cgi?p=corekeeper;a=summary (closes: #602946) * Avoid the use of long socket names. (closes: #602891, closes: #602911) -- Simon Horman Thu, 11 Nov 2010 06:35:05 +0900 openvswitch (1.1.0~pre2-2) unstable; urgency=low * Clarify licensing of files in xenserver/ -- Simon Horman Thu, 23 Sep 2010 10:56:18 +0900 openvswitch (1.1.0~pre2-1) unstable; urgency=low * New upstream version - Bug fixes -- Simon Horman Wed, 15 Sep 2010 18:28:59 +0900 openvswitch (1.1.0~pre1-1) unstable; urgency=low * New upstream version - OpenFlow 1.0 slicing (QoS) functionality - Python bindings for configuration database (no write support) - Performance and scalability improvements - Bug fixes -- Open vSwitch team Tue, 31 Aug 2010 23:20:00 +0000 openvswitch (1.0.1-1) unstable; urgency=low * New upstream version. -- Open vSwitch team Mon, 17 May 2010 10:36:00 +0000 debian/openvswitch-common.install0000644000000000000000000000034312267213371014421 0ustar usr/bin/ovs-appctl usr/bin/ovs-benchmark usr/bin/ovs-ofctl usr/bin/ovs-parse-backtrace usr/bin/ovs-pki usr/bin/ovsdb-client usr/sbin/ovs-bugtool usr/share/openvswitch/bugtool-plugins usr/share/openvswitch/scripts/ovs-bugtool-* debian/control.modules.in0000644000000000000000000000137212267213371012654 0ustar Source: openvswitch Section: net Priority: extra Maintainer: Open vSwitch developers Build-Depends: debhelper (>= 5.0.37) Standards-Version: 3.7.3 Package: openvswitch-datapath-module-_KVERS_ Architecture: any Recommends: kernel-image-_KVERS_, openvswitch-switch Provides: openvswitch-datapath-module Description: Open vSwitch Linux datapath kernel module This package contains the Open vSwitch loadable datapath kernel modules for the kernel-image-_KVERS_ package. . If you compiled a custom kernel, you will most likely need to compile a custom version of this module as well. The openvswitch-datapath-source package has been provided for this purpose. Refer to README.Debian provided in that package for further instructions. debian/openvswitch-ipsec.init0000755000000000000000000001273112267213371013540 0ustar #!/bin/sh # # Copyright (c) 2007, 2009 Javier Fernandez-Sanguino # # This is free software; you may redistribute it and/or modify # it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2, # or (at your option) any later version. # # This is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License with # the Debian operating system, in /usr/share/common-licenses/GPL; if # not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA # ### BEGIN INIT INFO # Provides: openvswitch-ipsec # Required-Start: $network $local_fs $remote_fs openvswitch-switch # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch GRE-over-IPsec daemon # Description: The ovs-monitor-ipsec script provides support for encrypting GRE # tunnels with IPsec. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/share/openvswitch/scripts/ovs-monitor-ipsec # Daemon's location NAME=ovs-monitor-ipsec # Introduce the short server's name here LOGDIR=/var/log/openvswitch # Log directory to use PIDFILE=/var/run/openvswitch/$NAME.pid test -x $DAEMON || exit 0 . /lib/lsb/init-functions DODTIME=10 # Time to wait for the server to die, in seconds # If this value is set too low you might not # let some servers to die gracefully and # 'restart' will not work set -e running_pid() { # Check if a given process pid's cmdline matches a given name pid=$1 name=$2 [ -z "$pid" ] && return 1 [ ! -d /proc/$pid ] && return 1 cmd=`cat /proc/$pid/cmdline | tr "\000" " "|cut -d " " -f 2` # Is this the expected server [ "$cmd" != "$name" ] && return 1 return 0 } running() { # Check if the process is running looking at /proc # (works for all users) # No pidfile, probably no daemon present [ ! -f "$PIDFILE" ] && return 1 pid=`cat $PIDFILE` running_pid $pid $DAEMON || return 1 return 0 } start_server() { if [ ! -d /var/run/openvswitch ]; then install -d -m 755 -o root -g root /var/run/openvswitch fi /usr/share/openvswitch/scripts/ovs-monitor-ipsec \ --pidfile=$PIDFILE --log-file --detach --monitor \ unix:/var/run/openvswitch/db.sock return 0 } stop_server() { if [ -e $PIDFILE ]; then kill `cat $PIDFILE` fi return 0 } force_stop() { # Force the process to die killing it manually [ ! -e "$PIDFILE" ] && return if running ; then kill -15 $pid # Is it really dead? sleep "$DODTIME" if running ; then kill -9 $pid sleep "$DODTIME" if running ; then echo "Cannot kill $NAME (pid=$pid)!" exit 1 fi fi fi rm -f $PIDFILE } case "$1" in start) log_daemon_msg "Starting $NAME" # Check if it's running first if running ; then log_progress_msg "apparently already running" log_end_msg 0 exit 0 fi if start_server && running ; then # It's ok, the server started and is running log_end_msg 0 else # Either we could not start it or it is not running # after we did # NOTE: Some servers might die some time after they start, # this code does not try to detect this and might give # a false positive (use 'status' for that) log_end_msg 1 fi ;; stop) log_daemon_msg "Stopping $NAME" if running ; then # Only stop the server if we see it running stop_server log_end_msg $? else # If it's not running don't do anything log_progress_msg "apparently not running" log_end_msg 0 exit 0 fi ;; force-stop) # First try to stop gracefully the program $0 stop if running; then # If it's still running try to kill it more forcefully log_daemon_msg "Stopping (force) $NAME" force_stop log_end_msg $? fi ;; restart|force-reload) log_daemon_msg "Restarting $NAME" stop_server # Wait some sensible amount, some server need this [ -n "$DODTIME" ] && sleep $DODTIME start_server running log_end_msg $? ;; status) log_daemon_msg "Checking status of $NAME" if running ; then log_progress_msg "running" log_end_msg 0 else log_progress_msg "apparently not running" log_end_msg 1 exit 1 fi ;; # Use this if the daemon cannot reload reload) log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon" log_warning_msg "cannot re-read the config file (use restart)." ;; *) N=/etc/init.d/openvswitch-ipsec echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 debian/dkms.conf.in0000644000000000000000000000043512267213371011406 0ustar PACKAGE_NAME="openvswitch" PACKAGE_VERSION="__VERSION__" MAKE="./configure --with-linux='${kernel_source_dir}' && make -C datapath/linux" BUILT_MODULE_NAME[0]=openvswitch BUILT_MODULE_LOCATION[0]=datapath/linux/ DEST_MODULE_LOCATION[0]=/kernel/drivers/net/openvswitch/ AUTOINSTALL=yes debian/rules.modules0000755000000000000000000000161312267213371011722 0ustar #! /usr/bin/make -f PACKAGE=openvswitch-datapath-module MA_DIR ?= /usr/share/modass -include $(MA_DIR)/include/generic.make -include $(MA_DIR)/include/common-rules.make DATAPATH_CONFIGURE_OPTS = kdist_clean: dh_testdir dh_testroot dh_clean rm -rf openvswitch .PHONY: kdist_config kdist_config: prep-deb-files .PHONY: binary-modules binary-modules: DSTDIR = $(CURDIR)/debian/$(PKGNAME)/lib/modules/$(KVERS)/updates/openvswitch binary-modules: prep-deb-files dh_testdir dh_testroot dh_clean -k tar xzf openvswitch.tar.gz cd openvswitch && ./configure --with-linux=$(KSRC) $(DATAPATH_CONFIGURE_OPTS) cd openvswitch && $(MAKE) -C datapath/linux install -d -m755 $(DSTDIR) install -m644 openvswitch/datapath/linux/*.ko $(DSTDIR)/ dh_installmodules dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb --destdir=$(DEB_DESTDIR) debian/NEWS0000644000000000000000000000223612267213371007674 0ustar openvswitch (1.10.1+git20130823-0ubuntu1) saucy; urgency=low Upstart configuration for openvswitch-switch -------------------------------------------- The OpenvSwitch switch daemons are now controlled using an upstart configuration to allow use of OpenvSwitch during early boot - for example configuring the primary network interface as part of an OpenvSwitch bridge using /etc/network/interfaces - see: /usr/share/doc/openvswitch-switch/README.Debian for more details on how to use this feature. Note that the upstart configuration does not support use of the 'force-reload-kmod' command that the init script supports; in order to force a reload of the kernel module use the following command: sudo start openvswitch-force-reload-kmod -- James Page Fri, 23 Aug 2013 10:52:18 +0100 openvswitch (1.10.0-0ubuntu1) saucy; urgency=low Bridge compatibility support has been removed. Any users that rely on ovs-brcompatd will have to stick with Open vSwitch 1.9.x or adapt to native Open vSwitch support (e.g. use ovs-vsctl instead of brctl). -- James Page Wed, 29 May 2013 14:52:00 +0100 debian/openvswitch-switch.upstart0000644000000000000000000000230312267213371014464 0ustar # vim: set ft=upstart ts=2 et: description "Open vSwitch switch" author "James Page Date: Wed, 20 Nov 2013 09:50:14 -0800 Subject: [PATCH] datapath: gre: Fix kernel 3.11 compatibility. On 3.11 kernel, gre module exports IP_GRE demux API, ovs needs to use it to register for GRE protocol handler. Reported-by: Nithin Nayak Sujir Signed-off-by: Pravin B Shelar Tested-by: Nithin Nayak Sujir Acked-by: Jesse Gross --- datapath/linux/compat/gre.c | 8 ++++++-- datapath/linux/compat/include/net/gre.h | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/datapath/linux/compat/gre.c b/datapath/linux/compat/gre.c index 582bd94..f35f11f 100644 --- a/datapath/linux/compat/gre.c +++ b/datapath/linux/compat/gre.c @@ -39,8 +39,6 @@ #include "gso.h" -static struct gre_cisco_protocol __rcu *gre_cisco_proto; - static void gre_csum_fix(struct sk_buff *skb) { struct gre_base_hdr *greh; @@ -114,6 +112,8 @@ void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi, } } +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) + static __sum16 check_checksum(struct sk_buff *skb) { __sum16 csum = 0; @@ -197,6 +197,8 @@ static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi, return iptunnel_pull_header(skb, hdr_len, tpi->proto); } +static struct gre_cisco_protocol __rcu *gre_cisco_proto; + static int gre_cisco_rcv(struct sk_buff *skb) { struct tnl_ptk_info tpi; @@ -354,4 +356,6 @@ int gre_cisco_unregister(struct gre_cisco_protocol *proto) return ret; } +#endif /* 3.11 */ + #endif /* CONFIG_NET_IPGRE_DEMUX */ diff --git a/datapath/linux/compat/include/net/gre.h b/datapath/linux/compat/include/net/gre.h index 5b17dcc..91fb7af 100644 --- a/datapath/linux/compat/include/net/gre.h +++ b/datapath/linux/compat/include/net/gre.h @@ -73,6 +73,8 @@ static inline __be16 tnl_flags_to_gre_flags(__be16 tflags) } #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) +/* GRE demux not available, implement our own demux. */ #define MAX_GRE_PROTO_PRIORITY 255 #define gre_cisco_protocol rpl_gre_cisco_protocol @@ -87,6 +89,8 @@ int gre_cisco_register(struct gre_cisco_protocol *proto); #define gre_cisco_unregister rpl_gre_cisco_unregister int gre_cisco_unregister(struct gre_cisco_protocol *proto); +#endif + #define gre_build_header rpl_gre_build_header void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi, int hdr_len); -- 1.7.9.5 debian/patches/atomic-test.patch0000644000000000000000000000100412267213414014064 0ustar Description: Link atomic test with -latomic for powerpc. Author: Adam Conrad --- a/tests/automake.mk +++ b/tests/automake.mk @@ -181,7 +181,7 @@ tests_test_aes128_LDADD = lib/libopenvsw noinst_PROGRAMS += tests/test-atomic tests_test_atomic_SOURCES = tests/test-atomic.c -tests_test_atomic_LDADD = lib/libopenvswitch.a $(SSL_LIBS) +tests_test_atomic_LDADD = lib/libopenvswitch.a $(SSL_LIBS) -latomic noinst_PROGRAMS += tests/test-bundle tests_test_bundle_SOURCES = tests/test-bundle.c debian/patches/xcp-interface-reconfigure.patch0000644000000000000000000000163012267213414016676 0ustar Description: Use xcp-xapi interface-reconfigure if found Ubuntu/Debian provide the XCP interface-reconfigure hook in a FHS compliant location; use this if found. Author: James Page Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1195053 Forwarded: no --- a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update +++ b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update @@ -43,6 +43,10 @@ def delete_cacert(): def update(session, args): # Refresh bridge network UUIDs in case this host joined or left a pool. script = "/opt/xensource/libexec/interface-reconfigure" + # NOTE(jamespage): Override with distro xcp xapi locations + # if present + if os.path.exists('/usr/lib/xcp/lib/interface-reconfigure'): + script = '/usr/lib/xcp/lib/interface-reconfigure' try: retval = subprocess.call([script, "rewrite"]) if retval != 0: debian/patches/kernel-3.12-support.patch0000644000000000000000000000141112267213414015210 0ustar Description: Enable support for 3.12 kernel Author: James Page Forwarded: no --- a/acinclude.m4 +++ b/acinclude.m4 @@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [ AC_MSG_RESULT([$kversion]) if test "$version" -ge 3; then - if test "$version" = 3 && test "$patchlevel" -le 11; then + if test "$version" = 3 && test "$patchlevel" -le 12; then : # Linux 3.x else - AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.11.x is not supported]) + AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.12.x is not supported]) fi else if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then debian/patches/kernel-3.11-support.patch0000644000000000000000000000707612267213414015224 0ustar From 54af97ad7ba7e103b91c48b9498edeef2fde1960 Mon Sep 17 00:00:00 2001 From: Pravin B Shelar Date: Mon, 14 Oct 2013 15:26:40 -0700 Subject: [PATCH] datapath: Add support for Linux 3.11 Kernel 3.11 has support for extended GRE API required for OVS datapath, But vxlan still needs out of tree tunneling compatibility. Therefore to simplify, all tunneling modules are forced to use compat tunneling. CC: James Page Signed-off-by: Pravin B Shelar Acked-by: Jesse Gross --- FAQ | 1 + NEWS | 1 + acinclude.m4 | 4 ++-- datapath/dp_notify.c | 2 +- datapath/linux/compat/include/linux/netdevice.h | 7 +++++++ datapath/linux/compat/include/net/gre.h | 6 ++++++ 6 files changed, 18 insertions(+), 3 deletions(-) --- a/FAQ +++ b/FAQ @@ -149,6 +149,7 @@ A: The following table lists the Linux k 1.10.x 2.6.18 to 3.8 1.11.x 2.6.18 to 3.8 2.0.x 2.6.32 to 3.10 + 2.1.x 2.6.32 to 3.11 Open vSwitch userspace should also work with the Linux kernel module built into Linux 3.3 and later. --- a/acinclude.m4 +++ b/acinclude.m4 @@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [ AC_MSG_RESULT([$kversion]) if test "$version" -ge 3; then - if test "$version" = 3 && test "$patchlevel" -le 10; then + if test "$version" = 3 && test "$patchlevel" -le 11; then : # Linux 3.x else - AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.10.x is not supported]) + AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.11.x is not supported]) fi else if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then --- a/datapath/dp_notify.c +++ b/datapath/dp_notify.c @@ -78,7 +78,7 @@ static int dp_device_event(struct notifi void *ptr) { struct ovs_net *ovs_net; - struct net_device *dev = ptr; + struct net_device *dev = netdev_notifier_info_to_dev(ptr); struct vport *vport = NULL; if (!ovs_is_internal_dev(dev)) --- a/datapath/linux/compat/include/linux/netdevice.h +++ b/datapath/linux/compat/include/linux/netdevice.h @@ -126,4 +126,11 @@ static inline struct net_device *netdev_ } #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) +static inline struct net_device *netdev_notifier_info_to_dev(void *info) +{ + return info; +} +#endif + #endif --- a/datapath/linux/compat/include/net/gre.h +++ b/datapath/linux/compat/include/net/gre.h @@ -74,12 +74,17 @@ static inline __be16 tnl_flags_to_gre_fl #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */ #define MAX_GRE_PROTO_PRIORITY 255 +#define gre_cisco_protocol rpl_gre_cisco_protocol + struct gre_cisco_protocol { int (*handler)(struct sk_buff *skb, const struct tnl_ptk_info *tpi); u8 priority; }; +#define gre_cisco_register rpl_gre_cisco_register int gre_cisco_register(struct gre_cisco_protocol *proto); + +#define gre_cisco_unregister rpl_gre_cisco_unregister int gre_cisco_unregister(struct gre_cisco_protocol *proto); #define gre_build_header rpl_gre_build_header @@ -89,6 +94,7 @@ void gre_build_header(struct sk_buff *sk #define gre_handle_offloads rpl_gre_handle_offloads struct sk_buff *gre_handle_offloads(struct sk_buff *skb, bool gre_csum); +#define ip_gre_calc_hlen rpl_ip_gre_calc_hlen static inline int ip_gre_calc_hlen(__be16 o_flags) { int addend = 4; debian/patches/series0000644000000000000000000000015312267213706012037 0ustar kernel-3.11-support.patch fix-3.11-support.patch xcp-interface-reconfigure.patch kernel-3.12-support.patch debian/openvswitch-switch.openvswitch-force-reload-kmod.upstart0000644000000000000000000000061112267213371022324 0ustar # vim: set ft=upstart ts=2 et: description "Open vSwitch - force reload of kernel module" author "James Page `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in purge) if cd /etc/openvswitch-controller; then rm -f cacert.pem cert.pem privkey.pem req.pem rm -f tmp-privkey.pem tmp-cert.pem tmp-req.pem fi ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/openvswitch-datapath-source.README.Debian0000644000000000000000000000154412267213371016671 0ustar Open vSwitch for Debian ---------------------- * How do I build this module the Debian way? - Building with module-assistant: $ module-assistant auto-install openvswitch-datapath or $ m-a a-i openvswitch-datapath If kernel source or headers are in a non-standard directory, add the option -k /path/to/kernel/source with the correct path. - Building with make-kpkg $ cd /usr/src/ $ tar jxvf openvswitch.tar.bz2 $ cd /usr/src/kernel-source-2.6.26 $ make-kpkg --added-modules=openvswitch modules - Building without make-kpkg $ cd /usr/src/ $ tar jxvf openvswitch.tar.bz2 $ cd modules/openvswitch $ fakeroot debian/rules kdist_image If you run this as root, fakeroot is not needed. -- Ben Pfaff , Wed, 22 Jun 2011 09:51:28 -0700 debian/control0000644000000000000000000002357412267214014010603 0ustar Source: openvswitch Section: net Priority: extra Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Open vSwitch developers Uploaders: Ben Pfaff , Simon Horman Build-Depends: debhelper (>= 8), autoconf (>= 2.64), automake (>= 1.10) | automake1.10, libssl-dev, bzip2, openssl, dh-autoreconf, python-all (>= 2.6.6-3~), procps, python-qt4, python-zopeinterface, python-twisted-conch, hardening-wrapper, libtool Standards-Version: 3.9.5 Homepage: http://openvswitch.org/ XS-Testsuite: autopkgtest Package: openvswitch-datapath-source Architecture: all Depends: module-assistant, bzip2, debhelper (>= 5.0.37), ${misc:Depends} Suggests: openvswitch-switch Description: Open vSwitch datapath module source - module-assistant version 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. . This package provides the Open vSwitch datapath module source code that is needed by openvswitch-switch. The kernel module can be built from it using module-assistant or make-kpkg. README.Debian in this package provides further instructions. Package: openvswitch-datapath-dkms Architecture: all Depends: dkms (>= 1.95), make, libc6-dev, ${misc:Depends}, ${python:Depends} Description: Open vSwitch datapath module source - DKMS version 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. . This package provides the Open vSwitch datapath module source code that is needed by openvswitch-switch. DKMS can built the kernel module from it. Package: openvswitch-common Architecture: linux-any Depends: ${shlibs:Depends}, openssl, ${misc:Depends}, python, python (>= 2.7) | python-argparse Suggests: ethtool Description: Open vSwitch common components 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-common provides components required by both openvswitch-switch and openvswitch-controller. Package: openvswitch-switch Architecture: linux-any Suggests: openvswitch-datapath-module Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, openvswitch-common (= ${binary:Version}), module-init-tools, procps, uuid-runtime, netbase, python-argparse Description: Open vSwitch switch implementations 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. Package: openvswitch-ipsec Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, python, ipsec-tools (>=0.8~alpha20101208), racoon (>=0.8~alpha20101208), openvswitch-common (= ${binary:Version}), openvswitch-switch (= ${binary:Version}), python-openvswitch (= ${source:Version}) Description: Open vSwitch GRE-over-IPsec support 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. . The ovs-monitor-ipsec script provides support for encrypting GRE tunnels with IPsec. Package: openvswitch-pki Architecture: all Depends: ${misc:Depends}, openvswitch-common (>= ${source:Version}), openvswitch-common (<< ${source:Version}.1~) Description: Open vSwitch public key infrastructure dependency package 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-pki provides PKI (public key infrastructure) support for Open vSwitch switches and controllers, reducing the risk of man-in-the-middle attacks on the Open vSwitch network infrastructure. Package: openvswitch-controller Architecture: linux-any Depends: ${shlibs:Depends}, openvswitch-common (= ${binary:Version}), openvswitch-pki (= ${source:Version}), ${misc:Depends} Description: Open vSwitch controller 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. . The Open vSwitch controller enables OpenFlow switches that connect to it to act as MAC-learning Ethernet switches. Package: openvswitch-dbg Section: debug Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, openvswitch-common (= ${binary:Version}), openvswitch-controller (= ${binary:Version}), openvswitch-switch (= ${binary:Version}) Description: Debug symbols for Open vSwitch packages 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. . This package contains the debug symbols for all the other openvswitch-* packages. Install it to debug one of them or to examine a core dump produced by one of them. Package: python-openvswitch Architecture: all Section: python Depends: ${misc:Depends}, ${python:Depends} Description: Python bindings for Open vSwitch 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. . This package contains the full Python bindings for Open vSwitch database. Package: ovsdbmonitor Architecture: all Section: utils Depends: ${python:Depends}, python-openvswitch, python-twisted-conch, ${misc:Depends} Description: Open vSwitch graphical monitoring tool 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. . This package is a GUI tool for monitoring and troubleshooting local or remote Open vSwitch installations. It presents GUI tables that graphically represent an Open vSwitch kernel flow table (similar to "ovs-dpctl dump-flows") and Open vSwitch database contents (similar to "ovs-vsctl list "). Package: openvswitch-test Architecture: all Depends: ${misc:Depends}, ${python:Depends}, python-twisted-web, python (>= 2.7) | python-argparse Description: Open vSwitch test package 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. . This package contains utilities that are useful to diagnose performance and connectivity issues in Open vSwitch setup. debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in0000755000000000000000000000132012267213371021660 0ustar #!/bin/sh # postinst script for #PACKAGE# # # see: dh_installdeb(1) set -e #DEBHELPER# # If the kernel module is already loaded, we have nothing to do here. # A force-reload-kmod should be run manually to use the new kernel module. if [ -e /sys/module/openvswitch ] || [ -e /sys/module/openvswitch_mod ]; then exit 0 fi # If the kernel module is not loaded, then it is likely because none # was installed before and therefore Open vSwitch couldn't be started. # Try to start it now. # # (Ideally we'd only want to do this if this package corresponds to the # running kernel, but I don't know a reliable way to check.) INIT=/etc/init.d/openvswitch-switch if test -x $INIT; then $INIT start || true fi exit 0 debian/openvswitch-switch.postrm0000755000000000000000000000236412267213371014320 0ustar #!/bin/sh # postrm script for openvswitch-switch # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in purge) rm -f /etc/openvswitch/conf.db rm -f /etc/openvswitch/.conf.db.~lock~ rm -f /etc/default/openvswitch-switch rm -f /var/log/openvswitch/ovs-vswitchd.log* || true rm -f /var/log/openvswitch/ovsdb-server.log* || true rm -f /etc/openvswitch/system-id.conf ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/dirs0000644000000000000000000000002112267213371010047 0ustar usr/bin usr/sbin debian/openvswitch-controller.postinst0000755000000000000000000000326712267213371015544 0ustar #!/bin/sh # postinst script for openvswitch-controller # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) cd /etc/openvswitch-controller # If cacert.pem is a symlink to the old location for cacert.pem, # remove it so that we can symlink it to the new location. if test -h cacert.pem && \ test X"`readlink cacert.pem`" = X/usr/share/openvswitch/pki/switchca/cacert.pem; then rm -f cacert.pem fi if ! test -e cacert.pem; then ln -s /var/lib/openvswitch/pki/switchca/cacert.pem cacert.pem fi if ! test -e privkey.pem || ! test -e cert.pem; then oldumask=$(umask) umask 077 ovs-pki req+sign tmp controller >/dev/null mv tmp-privkey.pem privkey.pem mv tmp-cert.pem cert.pem mv tmp-req.pem req.pem chmod go+r cert.pem req.pem umask $oldumask fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/tests/0000755000000000000000000000000012267216361010336 5ustar debian/tests/openflow.py0000755000000000000000000000343312267213371012545 0ustar import unittest import logging from mininet.net import Mininet from mininet.node import OVSController, OVSKernelSwitch from mininet.cli import CLI from mininet.log import setLogLevel Switch = OVSKernelSwitch Controller = OVSController logging.basicConfig(level=logging.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") c1 = self.net.addController( 'c1' ) logging.info("Creating switches") s1 = self.net.addSwitch( 's1' ) s2 = self.net.addSwitch( 's2' ) 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: s1.linkTo( h ) for h in hosts2: s2.linkTo( h ) s1.linkTo( 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") results = 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() debian/tests/ma0000755000000000000000000000101212267214322010646 0ustar #!/bin/sh set -e # Skip DKMS tests for kernels >= 3.13 dpkg --compare-versions "`uname -r | cut -d - -f 1`" ge "3.13" && exit 0 echo -n "ma dkms module-assitant install: " module-assistant -t get openvswitch-datapath 2>&1 module-assistant -t -k /usr/src/linux-headers-`uname -r` build openvswitch-datapath 2>&1 module-assistant -t install openvswitch-datapath 2>&1 echo "OK" `dirname $0`/common # Purge MA install module-assistant -t -f purge openvswitch-datapath 2>&1 start openvswitch-force-reload-kmod 2>/dev/null debian/tests/common0000755000000000000000000000113612267213371011553 0ustar #!/bin/sh set -e echo "mod reload: " start openvswitch-force-reload-kmod 2>/dev/null echo "OK" echo "kernel modules loaded: " # Check that ovs loaded lsmod | grep "openvswitch" echo "OK" echo "Checking daemons: " pgrep ovs-vswitchd pgrep ovsdb-server echo "OK" # Validate messages in /var/log/syslog echo -n "kernel modules loaded correctly: " grep -q "openvswitch: Open vSwitch switching datapath" /var/log/syslog echo "OK" echo -n "running openflow tests using mininet" service openvswitch-controller stop python `dirname $0`/openflow.py 2>&1 echo "OK" # Clear syslog cp /dev/null /var/log/syslog debian/tests/openflow0000755000000000000000000000013512267213371012112 0ustar #!/bin/sh set -e service openvswitch-controller stop python `dirname $0`/openflow.py 2>&1 debian/tests/dkms0000755000000000000000000000054112267216357011227 0ustar #!/bin/sh set -e # Skip DKMS tests for kernels >= 3.13 dpkg --compare-versions "`uname -r | cut -d - -f 1`" ge "3.13" && exit 0 echo -n "dkms installing dkms modules: " apt-get install -y openvswitch-datapath-dkms echo "OK" `dirname $0`/common # Purge DKMS apt-get purge -y openvswitch-datapath-dkms start openvswitch-force-reload-kmod 2>/dev/null debian/tests/control0000644000000000000000000000022412267213371011735 0ustar Tests: kernel dkms ma Depends: module-assistant, mininet, iperf, openvswitch-switch, openvswitch-controller Restrictions: needs-root rw-build-tree debian/tests/kernel0000755000000000000000000000004712267213371011543 0ustar #!/bin/sh set -e `dirname $0`/common debian/openvswitch-switch.postinst0000755000000000000000000000324512267213371014656 0ustar #!/bin/sh # postinst script for openvswitch-switch # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) DEFAULT=/etc/default/openvswitch-switch TEMPLATE=/usr/share/openvswitch/switch/default.template if ! test -e $DEFAULT; then cp $TEMPLATE $DEFAULT else for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE) do if ! grep $var $DEFAULT >/dev/null 2>&1; then echo >> $DEFAULT sed -n "/$var:/,/$var=/p" $TEMPLATE >> $DEFAULT fi done fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # Do not fail package installation just because the kernel module # is not available. OVS_MISSING_KMOD_OK=yes export OVS_MISSING_KMOD_OK # force-reload-kmod during upgrade. If a user wants to override this, # they can set the variable OVS_FORCE_RELOAD_KMOD=no while installing. [ -z "${OVS_FORCE_RELOAD_KMOD}" ] && OVS_FORCE_RELOAD_KMOD=yes || true export OVS_FORCE_RELOAD_KMOD #DEBHELPER# exit 0 debian/rules0000755000000000000000000001415212267213371010255 0ustar #!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # # Modified to make a template file for a multi-binary package with separated # build-arch and build-indep targets by Bill Allombert 2001 PACKAGE=openvswitch pdkms=openvswitch-datapath-dkms DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: ([0-9]:)*([^-]+).*,\2,p') srcfiles := $(filter-out debian, $(wildcard * .[^.]*)) ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) PARALLEL = -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) else PARALLEL = endif MAKEFLAGS += $(PARALLEL) CFLAGS += -g ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif # Old versions of dpkg-buildflags do not understand --export=configure. # When dpkg-buildflags does not understand an option, it prints its full # --help output on stdout, so we have to avoid that here. buildflags := $(shell if dpkg-buildflags --export=configure >/dev/null 2>&1; \ then dpkg-buildflags --export=configure; fi) configure: configure-stamp configure-stamp: dh_testdir dh_autoreconf test -d _debian || mkdir _debian echo $(DEB_BUILD_OPTIONS) echo $$CC cd _debian && ( \ test -e Makefile || \ ../configure --prefix=/usr --localstatedir=/var --enable-ssl \ --sysconfdir=/etc CFLAGS="$(CFLAGS)" \ $(buildflags) $(DATAPATH_CONFIGURE_OPTS)) touch configure-stamp #Architecture build: build-arch build-indep build-arch: build-arch-stamp build-arch-stamp: configure-stamp $(MAKE) -C _debian ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) ifneq (powerpc, $(DEB_HOST_ARCH)) if $(MAKE) -C _debian check TESTSUITEFLAGS='$(PARALLEL)'; then :; \ else \ cat _debian/tests/testsuite.log; \ exit 1; \ fi else # Disable testing on powerpc # https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1189408 echo "Testing disabled on powerpc" endif # powerpc endif # nocheck touch $@ build-indep: build-indep-stamp build-indep-stamp: configure-stamp $(MAKE) -C _debian dist distdir=openvswitch touch $@ clean: dh_testdir dh_testroot dh_autoreconf_clean rm -f build-arch-stamp build-indep-stamp configure-stamp rm -rf _debian [ ! -f Makefile ] || $(MAKE) distclean dh_clean rm -f python/ovs/*.pyc python/ovs/db/*.pyc install: install-indep install-arch install-indep: build-indep dh_testdir dh_testroot dh_prep -i dh_installdirs -i $(MAKE) -C _debian DESTDIR=$(CURDIR)/debian/tmp install dh_install -i cp debian/rules.modules debian/openvswitch-datapath-source/usr/src/modules/openvswitch-datapath/debian/rules chmod 755 debian/openvswitch-datapath-source/usr/src/modules/openvswitch-datapath/debian/rules cd debian/openvswitch-datapath-source/usr/src && tar -c modules | bzip2 -9 > openvswitch-datapath.tar.bz2 && rm -rf modules #dkms stuff # setup the dirs dh_installdirs -p$(pdkms) usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION) # copy the source cd debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION) && tar xvzf $(CURDIR)/_debian/openvswitch.tar.gz && mv openvswitch/* . && rmdir openvswitch # Prepare dkms.conf from the dkms.conf.in template sed "s/__VERSION__/$(DEB_UPSTREAM_VERSION)/g" debian/dkms.conf.in > debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/dkms.conf # We don't need the debian folder in there, just upstream sources... rm -rf debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/debian # We don't need the rhel stuff in there either rm -rf debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/rhel # And we should also clean useless license files, which are already # descriped in our debian/copyright anyway. rm -f debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/COPYING \ debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/ovsdb/ovsdbmonitor/COPYING \ debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/xenserver/LICENSE install-arch: build-arch dh_testdir dh_testroot dh_prep -s dh_installdirs -s $(MAKE) -C _debian DESTDIR=$(CURDIR)/debian/tmp install cp debian/openvswitch-switch.template debian/openvswitch-switch/usr/share/openvswitch/switch/default.template dh_install -s dh_link -s # Must not depend on anything. This is to be called by # binary-arch/binary-indep # in another 'make' thread. binary-common: dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installexamples dh_installdebconf dh_installlogrotate dh_installinit -R dh_installinit -popenvswitch-switch --name=openvswitch-force-reload-kmod --no-start dh_installcron dh_installman --language=C dh_link dh_strip --dbg-package=openvswitch-dbg dh_compress dh_fixperms dh_python2 dh_perl dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary-indep: install-indep $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common binary-arch: install-arch $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common binary: binary-arch binary-indep .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure # Helper target for creating snapshots from upstream git DATE=$(shell date +%Y%m%d) # Upstream branch to track BRANCH=branch-2.0 get-orig-snapshot: rm -Rf openvswitch-upstream git clone git://git.openvswitch.org/openvswitch openvswitch-upstream cd openvswitch-upstream && \ git checkout -b $(BRANCH) remotes/origin/$(BRANCH) && \ 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).orig.tar.gz $(BRANCH) rm -Rf openvswitch-upstream # This GNU make extensions disables parallel builds for the current Makefile # but not for sub-Makefiles. This is appropriate here because build-arch and # build-indep both invoke "make" on OVS, which can update some of the same # targets in ways that conflict (e.g. both update tests/testsuite). .NOTPARALLEL: debian/copyright.in0000644000000000000000000010231712267213371011536 0ustar 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 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 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 components are dual-licensed under the GNU General Public License version 2 and the Apache License Version 2.0. 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 .\" Werner Lemberg .\" .\" Version 2007-Feb-02 .\" .\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc. .\" You may freely use, modify and/or distribute this file. * 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 debian/source/0000755000000000000000000000000012267216361010474 5ustar debian/source/format0000644000000000000000000000001412267213371011700 0ustar 3.0 (quilt) debian/openvswitch-pki.dirs0000644000000000000000000000002512267213371013204 0ustar /var/lib/openvswitch debian/ovs-monitor-ipsec0000755000000000000000000004155712267213371012531 0ustar #!/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) debian/openvswitch-switch.dirs0000644000000000000000000000005712267213371013727 0ustar /etc/openvswitch /usr/share/openvswitch/switch debian/openvswitch-pki.postrm0000755000000000000000000000224712267213371013602 0ustar #!/bin/sh # postrm script for openvswitch-pki # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in purge) rm -f /var/log/openvswitch/ovs-pki.log* || true # Remove backward compatibility symlink, if present. if test -h /usr/share/openvswitch/pki; then rm -f /usr/share/openvswitch/pki fi ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/openvswitch-switch.preinst0000755000000000000000000000043412267213371014454 0ustar #!/bin/sh set -e if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt "1.10.1+git20130823-0ubuntu1~"; then # Stop openvswitch prior to upgrade as this version # provides an upstart configuration instead. invoke-rc.d openvswitch-switch stop fi #DEBHELPER# exit 0 debian/watch0000644000000000000000000000010312267213371010215 0ustar version=3 http://openvswitch.org/releases/ openvswitch-(.*).tar.gz debian/openvswitch-controller.install0000644000000000000000000000002712267213371015313 0ustar usr/bin/ovs-controller debian/openvswitch-switch.init0000755000000000000000000001036112267213371013733 0ustar #! /bin/sh # # Copyright (C) 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. # ### BEGIN INIT INFO # Provides: openvswitch-switch # Required-Start: $network $named $remote_fs $syslog # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch switch # Description: openvswitch-switch provides the userspace components and utilities for # the Open vSwitch kernel-based switch. ### END INIT INFO (test -x /usr/sbin/ovs-vswitchd && test -x /usr/sbin/ovsdb-server) || exit 0 . /usr/share/openvswitch/scripts/ovs-lib test -e /etc/default/openvswitch-switch && . /etc/default/openvswitch-switch network_interfaces () { INTERFACES="/etc/network/interfaces" [ -e "${INTERFACES}" ] || return bridges=`awk '{ if ($1 == "allow-ovs") { print $2; } }' "${INTERFACES}"` [ -n "${bridges}" ] && $1 --allow=ovs ${bridges} } load_kmod () { ovs_ctl load-kmod || exit $? } start () { if ovs_ctl load-kmod; then : else echo "Module has probably not been built for this kernel." if ! test -d /usr/share/doc/openvswitch-datapath-source; then echo "Install the openvswitch-datapath-source package, then read" else echo "For instructions, read" fi echo "/usr/share/doc/openvswitch-datapath-source/README.Debian" if test X"$OVS_MISSING_KMOD_OK" = Xyes; then # We're being invoked by the package postinst. Do not # fail package installation just because the kernel module # is not available. exit 0 fi fi set ovs_ctl ${1-start} --system-id=random if test X"$FORCE_COREFILES" != X; then set "$@" --force-corefiles="$FORCE_COREFILES" fi set "$@" $OVS_CTL_OPTS "$@" || exit $? [ "$2" = "start" ] && network_interfaces ifup } stop () { network_interfaces ifdown ovs_ctl stop } restart () { # OVS_FORCE_RELOAD_KMOD can be set by package postinst script. if [ "$1" = "--save-flows=yes" ] || \ [ "${OVS_FORCE_RELOAD_KMOD}" = "no" ]; then start restart elif [ "${OVS_FORCE_RELOAD_KMOD}" = "yes" ]; then depmod -a if [ -e /sys/module/openvswitch ]; then LOADED_SRCVERSION=`cat /sys/module/openvswitch/srcversion` LOADED_VERSION=`cat /sys/module/openvswitch/version` elif [ -e /sys/module/openvswitch_mod ]; then LOADED_SRCVERSION=`cat /sys/module/openvswitch_mod/srcversion` LOADED_VERSION=`cat /sys/module/openvswitch_mod/version` fi SRCVERSION=`modinfo -F srcversion openvswitch 2>/dev/null` VERSION=`modinfo -F version openvswitch 2>/dev/null` ovs_ctl_log "Package upgrading:\n"\ "Loaded version: ${LOADED_VERSION} ${LOADED_SRCVERSION}.\n"\ "Version on disk: ${VERSION} ${SRCVERSION}." # If the kernel module was previously loaded and it is different than # the kernel module on disk, then do a 'force-reload-kmod'. if [ -n "${LOADED_SRCVERSION}" ] && [ -n "${SRCVERSION}" ] && \ [ "${SRCVERSION}" != "${LOADED_SRCVERSION}" ]; then start force-reload-kmod else start restart fi else stop start fi } case $1 in start) start ;; stop | force-stop) stop ;; reload | force-reload) # The OVS daemons keep up-to-date. ;; restart) shift restart "$@" ;; status) ovs_ctl status exit $? ;; force-reload-kmod) start force-reload-kmod ;; load-kmod) load_kmod ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status|force-stop|force-reload-kmod|load-kmod}" >&2 exit 1 ;; esac exit 0 debian/openvswitch-controller.init0000755000000000000000000002116212267213371014616 0ustar #!/bin/sh # # Copyright (c) 2011 Nicira, Inc. # Copyright (c) 2007, 2009 Javier Fernandez-Sanguino # # This is free software; you may redistribute it and/or modify # it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2, # or (at your option) any later version. # # This is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License with # the Debian operating system, in /usr/share/common-licenses/GPL; if # not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA # ### BEGIN INIT INFO # Provides: openvswitch-controller # Required-Start: $network $local_fs $remote_fs # Required-Stop: $remote_fs # Should-Start: $named # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch controller # Description: The Open vSwitch controller enables OpenFlow switches that connect to it # to act as MAC-learning Ethernet switches. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/ovs-controller # Introduce the server's location here NAME=ovs-controller # Introduce the short server's name here DESC=ovs-controller # Introduce a short description here LOGDIR=/var/log/openvswitch # Log directory to use PIDFILE=/var/run/openvswitch/$NAME.pid test -x $DAEMON || exit 0 . /lib/lsb/init-functions # Default options, these can be overriden by the information # at /etc/default/openvswitch-controller DAEMON_OPTS="" # Additional options given to the server DODTIME=10 # Time to wait for the server to die, in seconds # If this value is set too low you might not # let some servers to die gracefully and # 'restart' will not work LOGFILE=$LOGDIR/$NAME.log # Server logfile #DAEMONUSER= # User to run the daemons as. If this value # is set start-stop-daemon will chuid the server # Include defaults if available default=/etc/default/openvswitch-controller if [ -f $default ] ; then . $default fi # Check that the user exists (if we set a user) # Does the user exist? if [ -n "$DAEMONUSER" ] ; then if getent passwd | grep -q "^$DAEMONUSER:"; then # Obtain the uid and gid DAEMONUID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $3}'` DAEMONGID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $4}'` else log_failure_msg "The user $DAEMONUSER, required to run $NAME does not exist." exit 1 fi fi set -e running_pid() { # Check if a given process pid's cmdline matches a given name pid=$1 name=$2 [ -z "$pid" ] && return 1 [ ! -d /proc/$pid ] && return 1 cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1` # Is this the expected server [ "$cmd" != "$name" ] && return 1 return 0 } running() { # Check if the process is running looking at /proc # (works for all users) # No pidfile, probably no daemon present [ ! -f "$PIDFILE" ] && return 1 pid=`cat $PIDFILE` running_pid $pid $DAEMON || return 1 return 0 } start_server() { if [ -z "$LISTEN" ]; then echo "$default: No connection methods configured, controller disabled" >&2 exit 0 fi if [ ! -d /var/run/openvswitch ]; then install -d -m 755 -o root -g root /var/run/openvswitch fi SSL_OPTS= case $LISTEN in *ssl*) : ${PRIVKEY:=/etc/openvswitch-controller/privkey.pem} : ${CERT:=/etc/openvswitch-controller/cert.pem} : ${CACERT:=/etc/openvswitch-controller/cacert.pem} if test ! -e "$PRIVKEY" || test ! -e "$CERT" || test ! -e "$CACERT"; then if test ! -e "$PRIVKEY"; then echo "$PRIVKEY: private key missing" >&2 fi if test ! -e "$CERT"; then echo "$CERT: certificate for private key missing" >&2 fi if test ! -e "$CACERT"; then echo "$CACERT: CA certificate missing" >&2 fi exit 1 fi SSL_OPTS="--private-key=$PRIVKEY --certificate=$CERT --ca-cert=$CACERT" ;; esac # Start the process using the wrapper if [ -z "$DAEMONUSER" ] ; then start-stop-daemon --start --pidfile $PIDFILE \ --exec $DAEMON -- --detach --pidfile=$PIDFILE \ $LISTEN $DAEMON_OPTS $SSL_OPTS errcode=$? else # if we are using a daemonuser then change the user id start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $DAEMONUSER --exec $DAEMON -- \ --detach --pidfile=$PIDFILE $LISTEN $DAEMON_OPTS \ $SSL_OPTS errcode=$? fi return $errcode } stop_server() { # Stop the process using the wrapper if [ -z "$DAEMONUSER" ] ; then start-stop-daemon --stop --quiet --pidfile $PIDFILE \ --exec $DAEMON errcode=$? else # if we are using a daemonuser then look for process that match start-stop-daemon --stop --quiet --pidfile $PIDFILE \ --user $DAEMONUSER --exec $DAEMON errcode=$? fi return $errcode } reload_server() { [ ! -f "$PIDFILE" ] && return 1 pid=`cat $PIDFILE` # This is the daemon's pid # Send a SIGHUP kill -1 $pid return $? } force_stop() { # Force the process to die killing it manually [ ! -e "$PIDFILE" ] && return if running ; then kill -15 $pid # Is it really dead? sleep "$DODTIME" if running ; then kill -9 $pid sleep "$DODTIME" if running ; then echo "Cannot kill $NAME (pid=$pid)!" exit 1 fi fi fi rm -f $PIDFILE } case "$1" in start) log_daemon_msg "Starting $DESC " "$NAME" # Check if it's running first if running ; then log_progress_msg "apparently already running" log_end_msg 0 exit 0 fi if start_server && running ; then # It's ok, the server started and is running log_end_msg 0 else # Either we could not start it or it is not running # after we did # NOTE: Some servers might die some time after they start, # this code does not try to detect this and might give # a false positive (use 'status' for that) log_end_msg 1 fi ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" if running ; then # Only stop the server if we see it running stop_server log_end_msg $? else # If it's not running don't do anything log_progress_msg "apparently not running" log_end_msg 0 exit 0 fi ;; force-stop) # First try to stop gracefully the program $0 stop if running; then # If it's still running try to kill it more forcefully log_daemon_msg "Stopping (force) $DESC" "$NAME" force_stop log_end_msg $? fi ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" if running; then stop_server # Wait some sensible amount, some server need this. [ -n "$DODTIME" ] && sleep $DODTIME fi start_server running log_end_msg $? ;; status) log_daemon_msg "Checking status of $DESC" "$NAME" if running ; then log_progress_msg "running" log_end_msg 0 else log_progress_msg "apparently not running" log_end_msg 1 exit 1 fi ;; # Use this if the daemon cannot reload reload) log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon" log_warning_msg "cannot re-read the config file (use restart)." ;; *) N=/etc/init.d/openvswitch-controller echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 debian/openvswitch-common.dirs0000644000000000000000000000002412267213371013710 0ustar var/log/openvswitch debian/python-openvswitch.dirs0000644000000000000000000000006312267213371013744 0ustar usr/share/pyshared/ovs/ usr/share/pyshared/ovs/db/ debian/openvswitch-pki.postinst0000755000000000000000000000257612267213371014146 0ustar #!/bin/sh # postinst script for openvswitch-pki # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) # Move the pki directory from its previous, non FHS-compliant location, # to its new location, leaving behind a symlink for compatibility. if test -d /usr/share/openvswitch/pki && \ test ! -e /var/lib/openvswitch/pki; then mv /usr/share/openvswitch/pki /var/lib/openvswitch ln -s /var/lib/openvswitch/pki /usr/share/openvswitch/pki fi # Create certificate authorities. if test ! -e /var/lib/openvswitch/pki; then ovs-pki init fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0