Browse Source

Add openvswitch-dpdk_2.5.90 debian spec

1. download ovs 2.4.0 debian spec
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0.orig.tar.gz
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.debian.tar.xz
dpkg-source -x openvswitch-dpdk_2.4.0-0ubuntu1.dsc

2. remove patch & update debian spec
rm debian/patches/*.patch
echo > debian/patches/series

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

Change-Id: I33616f5449d463ecadcc4df238c53ec99f6801ff
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Guo Ruijing 2 years ago
parent
commit
2f68823227

+ 19
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/automake.mk View File

@@ -0,0 +1,19 @@
1
+check-debian-changelog-version:
2
+	@DEB_VERSION=`echo '$(VERSION)' | sed 's/pre/~pre/'`;		     \
3
+	if $(FGREP) '($(DEB_VERSION)' $(srcdir)/debian/changelog >/dev/null; \
4
+	then								     \
5
+	  :;								     \
6
+	else								     \
7
+	  echo "Update debian/changelog to mention version $(VERSION)";	     \
8
+	  exit 1;							     \
9
+	fi
10
+ALL_LOCAL += check-debian-changelog-version
11
+DIST_HOOKS += check-debian-changelog-version
12
+
13
+$(srcdir)/debian/copyright: AUTHORS debian/copyright.in
14
+	$(AM_V_GEN) \
15
+	{ sed -n -e '/%AUTHORS%/q' -e p < $(srcdir)/debian/copyright.in;   \
16
+	  sed '1,/^$$/d' $(srcdir)/AUTHORS |				   \
17
+		sed -n -e '/^$$/q' -e 's/^/  /p';			   \
18
+	  sed -e '1,/%AUTHORS%/d' $(srcdir)/debian/copyright.in;	   \
19
+	} > $@

+ 3
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/changelog View File

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

+ 1
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/compat View File

@@ -0,0 +1 @@
1
+9

+ 54
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/control View File

@@ -0,0 +1,54 @@
1
+Source: openvswitch-dpdk
2
+Section: net
3
+Priority: extra
4
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5
+XSBC-Original-Maintainer: Open vSwitch developers <dev@openvswitch.org>
6
+Uploaders: Ben Pfaff <pfaffben@debian.org>,
7
+           Simon Horman <horms@debian.org>,
8
+Build-Depends: autoconf (>= 2.64),
9
+               automake (>= 1.10) | automake1.10,
10
+               bzip2,
11
+               debhelper (>= 9~),
12
+               dh-autoreconf,
13
+               dh-systemd (>= 1.5),
14
+               graphviz,
15
+               libdpdk-dev,
16
+               libfuse-dev,
17
+               libssl-dev,
18
+               libtool,
19
+               openssl,
20
+               procps,
21
+               python-all (>= 2.6.6-3~),
22
+               python-qt4,
23
+               python-twisted-conch,
24
+               python-zopeinterface,
25
+Standards-Version: 3.9.6
26
+Homepage: http://openvswitch.org/
27
+XS-Testsuite: autopkgtest
28
+
29
+Package: openvswitch-switch-dpdk
30
+Architecture: i386 amd64
31
+Depends: dpdk,
32
+         openvswitch-switch (>= 2.4.0),
33
+         ${misc:Depends},
34
+         ${python:Depends},
35
+         ${shlibs:Depends},
36
+Enhances: openvswitch-switch,
37
+Description: DPDK enabled Open vSwitch switch implementation
38
+ Open vSwitch is a production quality, multilayer, software-based,
39
+ Ethernet virtual switch. It is designed to enable massive network
40
+ automation through programmatic extension, while still supporting
41
+ standard management interfaces and protocols (e.g. NetFlow, IPFIX,
42
+ sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In addition, it is designed
43
+ to support distribution across multiple physical servers similar to
44
+ VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
45
+ .
46
+ openvswitch-switch provides the userspace components and utilities for
47
+ the Open vSwitch kernel-based switch.
48
+ .
49
+ DPDK is a set of libraries for fast packet processing. Applications run
50
+ in user-space and communicate directly with dedicated network interfaces.
51
+ This package contains the runtime environment to run DPDK applications.
52
+ .
53
+ This package provides a DPDK enabled implementation of the ovs-vswitchd
54
+ binary.

+ 716
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/copyright View File

@@ -0,0 +1,716 @@
1
+The original sources for this package can be found at:
2
+
3
+	http://openvswitch.org/
4
+
5
+Upstream Authors (from AUTHORS):
6
+
7
+%AUTHORS%
8
+
9
+Upstream Copyright Holders:
10
+
11
+	Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
12
+	Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
13
+	Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
14
+	and authors listed above.
15
+	Copyright (c) 2011 Gaetano Catalli
16
+	Copyright (C) 2000-2003 Geoffrey Wossum (gwossum@acm.org)
17
+	Copyright (C) 2000 The NetBSD Foundation, Inc.
18
+	Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
19
+	Copyright (c) 1982, 1986, 1990, 1993 The Regents of the University of California.
20
+	Copyright (c) 2008, 2012 Vincent Bernat <bernat@luffy.cx>
21
+	Copyright (c) 2014 Michael Chapman
22
+	Copyright (c) 2014 WindRiver, Inc.
23
+	Copyright (c) 2014 Avaya, Inc.
24
+
25
+License:
26
+
27
+* The following components are licensed under the
28
+  GNU Lesser General Public License version 2.1 only
29
+  with the exception clause below as a pre-amble.
30
+
31
+	xenserver/etc_xensource_scripts_vif
32
+	xenserver/opt_xensource_libexec_InterfaceReconfigure.py
33
+	xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
34
+	xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
35
+	xenserver/opt_xensource_libexec_interface-reconfigure
36
+	xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
37
+
38
+	* These components are only distributed in the source package.
39
+	  They do not appear in any binary packages.
40
+
41
+  On Debian systems, the complete text of the
42
+  GNU Lesser General Public License version 2.1 can be found in
43
+  `/usr/share/common-licenses/LGPL-2.1'
44
+
45
+  The exception clause pre-amble reads:
46
+
47
+  As a special exception to the GNU Lesser General Public License, you
48
+  may link, statically or dynamically, a "work that uses the Library"
49
+  with a publicly distributed version of the Library to produce an
50
+  executable file containing portions of the Library, and distribute
51
+  that executable file under terms of your choice, without any of the
52
+  additional requirements listed in clause 6 of the GNU Lesser General
53
+  Public License.  By "a publicly distributed version of the Library",
54
+  we mean either the unmodified Library as distributed, or a
55
+  modified version of the Library that is distributed under the
56
+  conditions defined in clause 3 of the GNU Library General Public
57
+  License.  This exception does not however invalidate any other reasons
58
+  why the executable file might be covered by the GNU Lesser General
59
+  Public License.
60
+
61
+* The following components are licensed under the
62
+  GNU Lesser General Public License version 2.1.
63
+
64
+	utilities/bugtool/ovs-bugtool
65
+	utilities/bugtool/ovs-bugtool-*
66
+	utilities/bugtool/plugins/kernel-info/openvswitch.xml
67
+	utilities/bugtool/plugins/network-status/openvswitch.xml
68
+	utilities/bugtool/plugins/system-configuration.xml
69
+	utilities/bugtool/plugins/system-configuration/openvswitch.xml
70
+
71
+  On Debian systems, the complete text of the
72
+  GNU Lesser General Public License version 2.1 can be found in
73
+  `/usr/share/common-licenses/LGPL-2.1'
74
+
75
+* The following component is licensed under the GNU General Public License
76
+  version 2.
77
+
78
+	datapath/
79
+
80
+  On Debian systems, the complete text of the GNU General Public License
81
+  version 2 can be found in `/usr/share/common-licenses/GPL-2'
82
+
83
+* The following file is licensed under the GNU General Public License
84
+  version 2.
85
+
86
+	build-aux/cccl
87
+
88
+* The following files are licensed under the 2-clause BSD license.
89
+
90
+	lib/getopt_long.c
91
+	include/windows/getopt.h
92
+
93
+* The following files are licensed under the 3-clause BSD-license
94
+
95
+	include/windows/netinet/icmp6.h
96
+	include/windows/netinet/ip6.h
97
+	lib/strsep.c
98
+
99
+* The following components are dual-licensed under the
100
+  GNU General Public License version 2 and the Apache License Version 2.0.
101
+
102
+	datapath/linux/compat/include/linux/openvswitch.h
103
+
104
+  On Debian systems, the complete text of the GNU General Public License
105
+  version 2 can be found in `/usr/share/common-licenses/GPL-2'.
106
+  On Debian systems, the complete text of the Apache License version 2.0
107
+  can be found in '/usr/share/common-licenses/Apache-2.0'.
108
+
109
+* The following components are licensed under the terms of either the
110
+  Sun Industry Standard Source License 1.1 or the InMon sFlow License:
111
+
112
+	lib/sflow.h
113
+	lib/sflow_agent.c
114
+	lib/sflow_api.h
115
+	lib/sflow_poller.c
116
+	lib/sflow_receiver.c
117
+	lib/sflow_sampler.c
118
+
119
+  These licenses are available, respectively, the following URLs:
120
+
121
+        http://host-sflow.sourceforge.net/sissl.html
122
+        http://www.inmon.com/technology/sflowlicense.txt
123
+
124
+  The full text of each license is also appended to the end of this
125
+  file.
126
+
127
+* The following components are licensed for use as desired without restriction:
128
+
129
+	lib/crc32c.c
130
+
131
+* The following components are licensed under the
132
+  Python Software Foundation License Version 2.
133
+
134
+	python/compat/uuid.py
135
+	python/compat/argparse.py
136
+
137
+	* These components are only distributed in the source package.
138
+	  They do not appear in any binary packages.
139
+
140
+   PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
141
+   --------------------------------------------
142
+
143
+   1. This LICENSE AGREEMENT is between the Python Software Foundation
144
+   ("PSF"), and the Individual or Organization ("Licensee") accessing and
145
+   otherwise using this software ("Python") in source or binary form and
146
+   its associated documentation.
147
+
148
+   2. Subject to the terms and conditions of this License Agreement, PSF
149
+   hereby grants Licensee a nonexclusive, royalty-free, world-wide
150
+   license to reproduce, analyze, test, perform and/or display publicly,
151
+   prepare derivative works, distribute, and otherwise use Python
152
+   alone or in any derivative version, provided, however, that PSF's
153
+   License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
154
+   2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
155
+   All Rights Reserved" are retained in Python alone or in any derivative
156
+   version prepared by Licensee.
157
+
158
+   3. In the event Licensee prepares a derivative work that is based on
159
+   or incorporates Python or any part thereof, and wants to make
160
+   the derivative work available to others as provided herein, then
161
+   Licensee hereby agrees to include in any such work a brief summary of
162
+   the changes made to Python.
163
+
164
+   4. PSF is making Python available to Licensee on an "AS IS"
165
+   basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
166
+   IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
167
+   DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
168
+   FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
169
+   INFRINGE ANY THIRD PARTY RIGHTS.
170
+
171
+   5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
172
+   FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
173
+   A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
174
+   OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
175
+
176
+   6. This License Agreement will automatically terminate upon a material
177
+   breach of its terms and conditions.
178
+
179
+   7. Nothing in this License Agreement shall be deemed to create any
180
+   relationship of agency, partnership, or joint venture between PSF and
181
+   Licensee.  This License Agreement does not grant permission to use PSF
182
+   trademarks or trade name in a trademark sense to endorse or promote
183
+   products or services of Licensee, or any third party.
184
+
185
+   8. By copying, installing or otherwise using Python, Licensee
186
+   agrees to be bound by the terms and conditions of this License
187
+   Agreement.
188
+
189
+* lib/ovs.tmac in the source distribution, and manpages in the
190
+  binaries, includes troff macros from groff 1.21 that contain the
191
+  following notice:
192
+
193
+    .\" an-ext.tmac
194
+    .\"
195
+    .\" Written by Eric S. Raymond <esr@thyrsus.com>
196
+    .\"            Werner Lemberg <wl@gnu.org>
197
+    .\"
198
+    .\" Version 2007-Feb-02
199
+    .\"
200
+    .\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
201
+    .\" You may freely use, modify and/or distribute this file.
202
+
203
+* m4/absolute-header.m4, by Derek Price, and m4/include_next.m4, by
204
+  Paul Eggert and Derek Price bear the following notices:
205
+
206
+    Copyright (C) 2006-2013 Free Software Foundation, Inc.
207
+    This file is free software; the Free Software Foundation
208
+    gives unlimited permission to copy and/or distribute it,
209
+    with or without modifications, as long as this notice is preserved.
210
+
211
+* The following files are licensed under the ISC-license
212
+
213
+    lib/lldp/aa-structs.h
214
+    lib/lldp/lldpd.c
215
+    lib/lldp/lldpd.h
216
+    lib/lldp/lldpd-structs.c
217
+    lib/lldp/lldpd-structs.h
218
+    lib/lldp/lldp.c
219
+    lib/lldp/lldp-tlv.h
220
+    lib/lldp/lldp-const.h
221
+
222
+* All other components of this package are licensed under
223
+  The Apache License Version 2.0.
224
+
225
+  On Debian systems, the complete text of the Apache License version 2.0
226
+  can be found in '/usr/share/common-licenses/Apache-2.0'.
227
+
228
+----------------------------------------------------------------------
229
+
230
+Retrieved from http://host-sflow.sourceforge.net/sissl.html, 2011-12-12:
231
+
232
+   Sun Industry Standards Source License - Version 1.1
233
+
234
+   1.0 DEFINITIONS
235
+
236
+   1.1 "Commercial Use" means distribution or otherwise making the
237
+   Original Code available to a third party.
238
+
239
+   1.2 "Contributor Version" means the combination of the Original Code,
240
+   and the Modifications made by that particular Contributor.
241
+
242
+   1.3 "Electronic Distribution Mechanism" means a mechanism generally
243
+   accepted in the software development community for the electronic
244
+   transfer of data.
245
+
246
+   1.4 "Executable" means Original Code in any form other than Source
247
+   Code.
248
+
249
+   1.5 "Initial Developer" means the individual or entity identified as
250
+   the Initial Developer in the Source Code notice required by Exhibit A.
251
+
252
+   1.6 "Larger Work" means a work which combines Original Code or portions
253
+   thereof with code not governed by the terms of this License.
254
+
255
+   1.7 "License" means this document.
256
+
257
+   1.8 "Licensable" means having the right to grant, to the maximum extent
258
+   possible, whether at the time of the initial grant or subsequently
259
+   acquired, any and all of the rights conveyed herein.
260
+
261
+   1.9 "Modifications" means any addition to or deletion from the
262
+   substance or structure of either the Original Code or any previous
263
+   Modifications. A Modification is:
264
+
265
+   A. Any addition to or deletion from the contents of a file containing
266
+   Original Code or previous Modifications.
267
+
268
+   B. Any new file that contains any part of the Original Code or previous
269
+   Modifications.
270
+
271
+   1.10 "Original Code" means Source Code of computer software code which
272
+   is described in the Source Code notice required by Exhibit A as
273
+   Original Code.
274
+
275
+   1.11 "Patent Claims" means any patent claim(s), now owned or hereafter
276
+   acquired, including without limitation, method, process, and apparatus
277
+   claims, in any patent Licensable by grantor.
278
+
279
+   1.12 "Source Code" means the preferred form of the Original Code for
280
+   making modifications to it, including all modules it contains, plus any
281
+   associated interface definition files, or scripts used to control
282
+   compilation and installation of an Executable.
283
+
284
+   1.13 "Standards" means the standards identified in Exhibit B.
285
+
286
+   1.14 "You" (or "Your") means an individual or a legal entity exercising
287
+   rights under, and complying with all of the terms of, this License or a
288
+   future version of this License issued under Section 6.1. For legal
289
+   entities, "You'' includes any entity which controls, is controlled by,
290
+   or is under common control with You. For purposes of this definition,
291
+   "control'' means (a) the power, direct or indirect, to cause the
292
+   direction or management of such entity, whether by contract or
293
+   otherwise, or (b) ownership of more than fifty percent (50%) of the
294
+   outstanding shares or beneficial ownership of such entity.
295
+
296
+   2.0 SOURCE CODE LICENSE
297
+
298
+   2.1 The Initial Developer Grant
299
+   The Initial Developer hereby grants You a world-wide, royalty-free,
300
+   non-exclusive license, subject to third party intellectual property
301
+   claims:
302
+
303
+   (a) under intellectual property rights (other than patent or trademark)
304
+   Licensable by Initial Developer to use, reproduce, modify, display,
305
+   perform, sublicense and distribute the Original Code (or portions
306
+   thereof) with or without Modifications, and/or as part of a Larger
307
+   Work; and
308
+
309
+   (b) under Patents Claims infringed by the making, using or selling of
310
+   Original Code, to make, have made, use, practice, sell, and offer for
311
+   sale, and/or otherwise dispose of the Original Code (or portions
312
+   thereof).
313
+
314
+   (c) the licenses granted in this Section 2.1(a) and (b) are effective
315
+   on the date Initial Developer first distributes Original Code under the
316
+   terms of this License.
317
+
318
+   (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
319
+   1) for code that You delete from the Original Code; 2) separate from
320
+   the Original Code; or 3) for infringements caused by: i) the
321
+   modification of the Original Code or ii) the combination of the
322
+   Original Code with other software or devices, including but not limited
323
+   to Modifications.
324
+   3.0 DISTRIBUTION OBLIGATIONS
325
+
326
+   3.1 Application of License.
327
+   The Source Code version of Original Code may be distributed only under
328
+   the terms of this License or a future version of this License released
329
+   under Section 6.1, and You must include a copy of this License with
330
+   every copy of the Source Code You distribute. You may not offer or
331
+   impose any terms on any Source Code version that alters or restricts
332
+   the applicable version of this License or the recipients' rights
333
+   hereunder. Your license for shipment of the Contributor Version is
334
+   conditioned upon Your full compliance with this Section. The
335
+   Modifications which You create must comply with all requirements set
336
+   out by the Standards body in effect one hundred twenty (120) days
337
+   before You ship the Contributor Version. In the event that the
338
+   Modifications do not meet such requirements, You agree to publish
339
+   either (i) any deviation from the Standards protocol resulting from
340
+   implementation of Your Modifications and a reference implementation of
341
+   Your Modifications or (ii) Your Modifications in Source Code form, and
342
+   to make any such deviation and reference implementation or
343
+   Modifications available to all third parties under the same terms as
344
+   this license on a royalty free basis within thirty (30) days of Your
345
+   first customer shipment of Your Modifications.
346
+
347
+   3.2 Required Notices.
348
+   You must duplicate the notice in Exhibit A in each file of the Source
349
+   Code. If it is not possible to put such notice in a particular Source
350
+   Code file due to its structure, then You must include such notice in a
351
+   location (such as a relevant directory) where a user would be likely to
352
+   look for such a notice. If You created one or more Modification(s) You
353
+   may add Your name as a Contributor to the notice described in Exhibit
354
+   A. You must also duplicate this License in any documentation for the
355
+   Source Code where You describe recipients' rights or ownership rights
356
+   relating to Initial Code. You may choose to offer, and to charge a fee
357
+   for, warranty, support, indemnity or liability obligations to one or
358
+   more recipients of Your version of the Code. However, You may do so
359
+   only on Your own behalf, and not on behalf of the Initial Developer.
360
+   You must make it absolutely clear than any such warranty, support,
361
+   indemnity or liability obligation is offered by You alone, and You
362
+   hereby agree to indemnify the Initial Developer for any liability
363
+   incurred by the Initial Developer as a result of warranty, support,
364
+   indemnity or liability terms You offer.
365
+
366
+   3.3 Distribution of Executable Versions.
367
+   You may distribute Original Code in Executable and Source form only if
368
+   the requirements of Sections 3.1 and 3.2 have been met for that
369
+   Original Code, and if You include a notice stating that the Source Code
370
+   version of the Original Code is available under the terms of this
371
+   License. The notice must be conspicuously included in any notice in an
372
+   Executable or Source versions, related documentation or collateral in
373
+   which You describe recipients' rights relating to the Original Code.
374
+   You may distribute the Executable and Source versions of Your version
375
+   of the Code or ownership rights under a license of Your choice, which
376
+   may contain terms different from this License, provided that You are in
377
+   compliance with the terms of this License. If You distribute the
378
+   Executable and Source versions under a different license You must make
379
+   it absolutely clear that any terms which differ from this License are
380
+   offered by You alone, not by the Initial Developer. You hereby agree to
381
+   indemnify the Initial Developer for any liability incurred by the
382
+   Initial Developer as a result of any such terms You offer.
383
+
384
+   3.4 Larger Works.
385
+   You may create a Larger Work by combining Original Code with other code
386
+   not governed by the terms of this License and distribute the Larger
387
+   Work as a single product. In such a case, You must make sure the
388
+   requirements of this License are fulfilled for the Original Code.
389
+
390
+   4.0 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION
391
+
392
+   If it is impossible for You to comply with any of the terms of this
393
+   License with respect to some or all of the Original Code due to
394
+   statute, judicial order, or regulation then You must: (a) comply with
395
+   the terms of this License to the maximum extent possible; and (b)
396
+   describe the limitations and the code they affect. Such description
397
+   must be included in the LEGAL file described in Section 3.2 and must be
398
+   included with all distributions of the Source Code. Except to the
399
+   extent prohibited by statute or regulation, such description must be
400
+   sufficiently detailed for a recipient of ordinary skill to be able to
401
+   understand it.
402
+
403
+   5.0 APPLICATION OF THIS LICENSE
404
+
405
+   This License applies to code to which the Initial Developer has
406
+   attached the notice in Exhibit A and to related Modifications as set
407
+   out in Section 3.1.
408
+
409
+   6.0 VERSIONS OF THE LICENSE
410
+
411
+   6.1 New Versions.
412
+   Sun may publish revised and/or new versions of the License from time to
413
+   time. Each version will be given a distinguishing version number.
414
+
415
+   6.2 Effect of New Versions.
416
+   Once Original Code has been published under a particular version of the
417
+   License, You may always continue to use it under the terms of that
418
+   version. You may also choose to use such Original Code under the terms
419
+   of any subsequent version of the License published by Sun. No one other
420
+   than Sun has the right to modify the terms applicable to Original Code.
421
+
422
+   7.0 DISCLAIMER OF WARRANTY
423
+
424
+   ORIGINAL CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
425
+   WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
426
+   WITHOUT LIMITATION, WARRANTIES THAT THE ORIGINAL CODE IS FREE OF
427
+   DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
428
+   THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ORIGINAL CODE
429
+   IS WITH YOU. SHOULD ANY ORIGINAL CODE PROVE DEFECTIVE IN ANY RESPECT,
430
+   YOU (NOT THE INITIAL DEVELOPER) ASSUME THE COST OF ANY NECESSARY
431
+   SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
432
+   CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY ORIGINAL
433
+   CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
434
+
435
+   8.0 TERMINATION
436
+
437
+   8.1 This License and the rights granted hereunder will terminate
438
+   automatically if You fail to comply with terms herein and fail to cure
439
+   such breach within 30 days of becoming aware of the breach. All
440
+   sublicenses to the Original Code which are properly granted shall
441
+   survive any termination of this License. Provisions which, by their
442
+   nature, must remain in effect beyond the termination of this License
443
+   shall survive.
444
+
445
+   8.2 In the event of termination under Section 8.1 above, all end user
446
+   license agreements (excluding distributors and resellers) which have
447
+   been validly granted by You or any distributor hereunder prior to
448
+   termination shall survive termination.
449
+
450
+   9.0 LIMIT OF LIABILITY
451
+
452
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
453
+   (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
454
+   DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF ORIGINAL CODE,
455
+   OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
456
+   INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
457
+   CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
458
+   WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
459
+   COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
460
+   INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
461
+   LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
462
+   RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
463
+   PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
464
+   EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
465
+   EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
466
+
467
+   10.0 U.S. GOVERNMENT END USERS
468
+
469
+   U.S. Government: If this Software is being acquired by or on behalf of
470
+   the U.S. Government or by a U.S. Government prime contractor or
471
+   subcontractor (at any tier), then the Government's rights in the
472
+   Software and accompanying documentation shall be only as set forth in
473
+   this license; this is in accordance with 48 C.F.R. 227.7201 through
474
+   227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48
475
+   C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
476
+
477
+   11.0 MISCELLANEOUS
478
+
479
+   This License represents the complete agreement concerning subject
480
+   matter hereof. If any provision of this License is held to be
481
+   unenforceable, such provision shall be reformed only to the extent
482
+   necessary to make it enforceable. This License shall be governed by
483
+   California law provisions (except to the extent applicable law, if any,
484
+   provides otherwise), excluding its conflict-of-law provisions. With
485
+   respect to disputes in which at least one party is a citizen of, or an
486
+   entity chartered or registered to do business in the United States of
487
+   America, any litigation relating to this License shall be subject to
488
+   the jurisdiction of the Federal Courts of the Northern District of
489
+   California, with venue lying in Santa Clara County, California, with
490
+   the losing party responsible for costs, including without limitation,
491
+   court costs and reasonable attorneys' fees and expenses. The
492
+   application of the United Nations Convention on Contracts for the
493
+   International Sale of Goods is expressly excluded. Any law or
494
+   regulation which provides that the language of a contract shall be
495
+   construed against the drafter shall not apply to this License.
496
+
497
+   EXHIBIT A - Sun Standards License
498
+"The contents of this file are subject to the Sun Standards
499
+License Version 1.1 (the "License");
500
+You may not use this file except in compliance with the
501
+License. You may obtain a copy of the
502
+License at _______________________________.
503
+
504
+Software distributed under the License is distributed on
505
+an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
506
+express or implied. See the License for the specific
507
+language governing rights and limitations under the License.
508
+
509
+The Original Code is ______________________________________.
510
+
511
+The Initial Developer of the Original Code is:
512
+InMon Corp.
513
+
514
+Portions created by: _______________________________________
515
+
516
+are Copyright (C): _______________________________________
517
+
518
+All Rights Reserved.
519
+
520
+Contributor(s): _______________________________________
521
+
522
+   EXHIBIT B - Standards
523
+
524
+   The Standard is defined as the following:
525
+
526
+   sFlow Specification, located at
527
+   [1]http://sflow.org/developers/specifications.php
528
+
529
+References
530
+
531
+   1. http://sflow.org/developers/specifications.php
532
+
533
+----------------------------------------------------------------------
534
+
535
+Retrieved from http://www.inmon.com/technology/sflowlicense.txt, 2011-12-12:
536
+
537
+LICENSE AGREEMENT
538
+
539
+PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY BEFORE REPRODUCING OR IN ANY WAY
540
+UTILIZING THE sFlow(R) SOFTWARE ("SOFTWARE") AND/OR ANY ACCOMPANYING DOCUMENTATION
541
+("DOCUMENTATION") AND/OR THE RELATED SPECIFICATIONS ("SPECIFICATIONS").  YOUR REPRODUCTION
542
+OR USE OF THE SOFTWARE AND/OR THE DOCUMENTATION AND/OR THE SPECIFICATIONS CONSTITUTES YOUR
543
+ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS AGREEMENT.  IF YOU DO NOT AGREE TO BE BOUND
544
+BY THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT REPRODUCE OR IN ANY WAY UTILIZE
545
+THE SOFTWARE OR THE DOCUMENTATION OR THE SPECIFICATIONS.
546
+
547
+1.	Definitions.
548
+
549
+"Documentation" means the user manuals, training materials, and operating materials, if any,
550
+InMon provides to Licensee under this Agreement.
551
+
552
+"InMon" means InMon Corporation, its affiliates and subsidiaries.
553
+
554
+"Intellectual Property Rights" means any trade secrets, patents, including without
555
+limitation any patents covering the Software, copyrights, know-how, moral rights and
556
+similar rights of any type under the laws of any governmental authority, domestic or
557
+foreign, including all applications and registrations relating to any of the foregoing.
558
+
559
+"Licensee Hardware" means all computers, routers, or other equipment owned or controlled by
560
+or on behalf of Licensee.
561
+
562
+"Products" means any and all software applications, computers, routers, or other equipment
563
+manufactured by or on behalf of Licensee for the purpose of resale or lease to any other
564
+third party, or otherwise made available by Licensee free of charge.
565
+
566
+"Software" means the sFlow(R) software programs, in source or binary code format, that
567
+Licensee licenses from InMon under this Agreement and any bug fixes or error corrections
568
+which InMon may provide to Licensee.
569
+
570
+"Specifications" means the published specifications provided or otherwise made available by
571
+InMon at: http://www.sflow.org.
572
+
573
+"Trademark" means InMon's "sFlow(R)" trademark.
574
+
575
+2.	License Grant.
576
+
577
+2.1	Software, Documentation and Specifications License Grant.  InMon hereby grants to
578
+Licensee, under all of InMon's Intellectual Property Rights therein, a perpetual (subject
579
+to InMon's termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
580
+transferable, sublicensable license, to:  (i) use and reproduce the Software, the
581
+Documentation, and the Specifications; (ii) modify the Software; (iii) implement the
582
+Specifications in the Products; (iv) install the Software, or software in which the
583
+Specifications have been implemented, on Licensee Hardware and Products, and (v) distribute
584
+any Products that include the Software, the Documentation, or software in which the
585
+Specifications have been implemented.
586
+
587
+2.2	Trademark License.  InMon hereby grants to Licensee a perpetual (subject to InMon's
588
+termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
589
+transferable, sublicensable license to use the Trademark on or in connection with the
590
+Software, the Documentation, the Specifications and any software that implements the
591
+Specifications.
592
+
593
+2.3	Restrictions.  Licensee agrees that it will not use the Software in a way
594
+inconsistent with the license granted in Section 2.1.  Further, Licensee agrees that, in
595
+exercising its rights under the license granted to it in this Agreement, Licensee will:
596
+(i) strictly adhere to and fully comply with the Specifications; (ii) use the Trademark,
597
+and no other mark, to identify the Software, the Documentation, the Specifications and any
598
+Products that implement the Specifications; (iii) place, in a font or graphic design
599
+designated by InMon,  the phrase "sFlow(R)" on any technical documentation,
600
+sales/marketing materials, catalogs, or other such materials relating to products it
601
+manufactures or markets which it has configured to be compatible with the Software or
602
+otherwise implement the Specifications; (iv) in connection with any Products shipped to or
603
+sold in other countries that include the Software or any software that implements the
604
+Specifications, comply with the patent and trademark laws and practice of such other
605
+country; and (v) not alter or impair any acknowledgment of copyright or trademark rights of
606
+InMon that may appear in or on the Software, the Documentation or the Specifications.  In
607
+the event InMon determines that Licensee is not complying with its obligations under
608
+clauses (i)-(v) above, InMon shall notify Licensee of such non-compliance, and if Licensee
609
+fails to correct such non-compliance within three (3) months, InMon may immediately
610
+terminate this Agreement as provided under paragraph 7 below and pursue any and all
611
+actions and remedies as it deems necessary, including, but not limited to breach of
612
+contract.
613
+
614
+3.	Ownership.  Except for the license expressly granted in Section 2, Inmon hereby
615
+retains all right, title, and interest in and to the Trademark and all its Intellectual
616
+Property Rights in the Software, the Documentation and the Specifications.  Licensee
617
+obtains no rights hereunder in the Trademark, Software, Documentation or Specifications by
618
+implication, estoppel or otherwise.  Licensee acknowledges that the Trademark, Software,
619
+Documentation and Specifications are being licensed and not sold under this Agreement, and
620
+that this Agreement does not transfer title in the Trademark, Software, Documentation or
621
+Specifications, or any copy thereof, to Licensee.
622
+
623
+4.	Support.  Inmon shall have no obligation under this Agreement to (a) supply
624
+maintenance or support, bug fixes or error corrections to the Licensed Software,
625
+(b) supply future versions of the Licensed Software or (c) provide Licensed Software
626
+development tools to Licensee.
627
+
628
+5.	Warranty.  INMON HEREBY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED OR
629
+STATUTORY, WITH RESPECT TO THE TRADEMARK, THE SOFTWARE, THE DOCUMENTATION, THE
630
+SPECIFICATIONS. OR OTHERWISE, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
631
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF ANY INTELLECTUAL
632
+PROPERTY RIGHTS.
633
+
634
+6.	Limitation of Liability.  IN NO EVENT SHALL INMON OR ITS SUPPLIERS OR LICENSORS BE
635
+LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT OR EXEMPLARY DAMAGES WHATSOEVER,
636
+WHETHER RELATED TO OR ARISING OUT OF THIS AGREEMENT, THE TRADEMARK, THE SOFTWARE, THE
637
+DOCUMENTATION, THE SPECIFICATIONS, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, DAMAGES FOR
638
+LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF DATA, COSTS OF PROCUREMENT OF SUBSTITUTE
639
+GOODS OR SERVICES OR FOR ANY CLAIM OR DEMAND AGAINST LICENSEE BY ANY OTHER PARTY, OR OTHER
640
+PECUNIARY LOSS, EVEN IF INMON HAS BEEN ADVISED OF OR KNOWS OF THE POSSIBILITY OF SUCH
641
+DAMAGES.
642
+
643
+7.	Term and Termination.  The term of this Agreement will begin on the Effective Date,
644
+which shall be deemed to be the date of delivery of the Software and/or Documentation and/or
645
+Specifications to Licensee, and shall continue indefinitely unless and until terminated by
646
+Licensee's giving written notice of termination to InMon, or by InMon pursuant to InMon's
647
+termination rights as set forth in Section 2.3 above.  Upon any termination of this
648
+Agreement, Licensee shall cease exercising its license rights under this Agreement,
649
+including the right to distribute Products that incorporate the Software or Documentation
650
+or that implement the Specifications.  The rights and obligations contained in Sections 1,
651
+3, 5, 6, 7, and 8 shall survive any termination of this Agreement.
652
+
653
+8.	General Provisions.
654
+
655
+8.1	Assignment.  This Agreement shall be binding upon and inure to the benefit of the
656
+parties hereto and their permitted successors and permitted assigns.  InMon will have the
657
+right to assign this Agreement without notice to Licensee.  Licensee may assign or transfer
658
+(whether by merger, operation of law or in any other manner) any of its rights or delegate
659
+any of its obligations hereunder without the prior written consent of InMon, provided the
660
+assignee assumes in writing all of Licensee's obligations hereunder.
661
+
662
+8.2	Notices.  All notices permitted or required under this Agreement shall be in
663
+writing and shall be delivered in person or mailed by first class, registered or certified
664
+mail, postage prepaid, to the address of the party specified in this Agreement or such
665
+other address as either party may specify in writing.  Such notice shall be deemed to have
666
+been given upon receipt.
667
+
668
+8.3	Non-Waiver.  No term or provision hereof shall be deemed waived, and no breach
669
+excused, unless such waiver or consent shall be in writing and signed by the party claimed
670
+to have waived or consented.  Any consent or waiver, whether express or implied, shall not
671
+constitute a consent or waiver of, or excuse for any separate, different or subsequent
672
+breach.
673
+
674
+8.4	Independent Contractor.  The parties' relationship shall be solely that of
675
+independent contractors, and nothing contained in this Agreement shall be construed to make
676
+either party an agent, partner, representative or principal of the other for any purpose.
677
+
678
+8.5	Choice of Law and Forum.  This Agreement shall be governed by and construed under
679
+the laws of the State of California, without giving effect to such state's conflict of laws
680
+principles.  The parties hereby submit to the personal jurisdiction of, and agree that any
681
+legal proceeding with respect to or arising under this Agreement shall be brought in, the
682
+United States District Court for the Northern District of California or the state courts
683
+of the State of California for the County of San Francisco.
684
+
685
+8.6	U.S. Government Licenses.  The Software and Documentation are considered a
686
+"commercial item" as that term is defined at 48 C.F.R 2.101, or "commercial computer
687
+software" and "commercial computer software documentation" as such terms are used in
688
+48 C.F.R 12.212 of the Federal Acquisition Regulations and its successors, and
689
+48 C.F.R. 227.7202 of the DoD FAR Supplement and its successors.
690
+
691
+8.7	Severability.  If any provision of this Agreement is held to be unenforceable under
692
+applicable law, then such provision shall be excluded from this Agreement and the balance
693
+of this Agreement shall be interpreted as if such provision were so excluded and shall be
694
+enforceable in accordance with its terms.  The court in its discretion may substitute for
695
+the excluded provision an enforceable provision which in economic substance reasonably
696
+approximates the excluded provision.
697
+
698
+8.8	Compliance With Law.  Licensee shall comply with all applicable laws and
699
+regulations (including privacy laws and regulations) having application to or governing its
700
+ use and/or operation of the Software and agrees to indemnify and hold InMon harmless from
701
+and against any claims, damages, losses or obligations suffered or incurred by InMon
702
+arising from its failure to so comply.
703
+
704
+8.9	Entire Agreement; Amendment.  This Agreement constitutes the final, complete and
705
+entire agreement between the parties with respect to the subject matter hereof, and
706
+supersedes any previous proposals, negotiations, agreements, or arrangements, whether
707
+verbal or written, made between the parties with respect to such subject matter.  This
708
+Agreement shall control over any additional or conflicting terms in any of Licensee's
709
+purchase orders or other business forms.  This Agreement may only be amended or modified
710
+by mutual agreement of authorized representatives of the parties in writing.
711
+
712
+InMon Corp.
713
+580 California Street, 5th Floor, San Francisco, CA 94104
714
+Phone: (415) 283-3260
715
+URL:   www.inmon.com
716
+Email: info@inmon.com

+ 716
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/copyright.in View File

@@ -0,0 +1,716 @@
1
+The original sources for this package can be found at:
2
+
3
+	http://openvswitch.org/
4
+
5
+Upstream Authors (from AUTHORS):
6
+
7
+%AUTHORS%
8
+
9
+Upstream Copyright Holders:
10
+
11
+	Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
12
+	Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
13
+	Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
14
+	and authors listed above.
15
+	Copyright (c) 2011 Gaetano Catalli
16
+	Copyright (C) 2000-2003 Geoffrey Wossum (gwossum@acm.org)
17
+	Copyright (C) 2000 The NetBSD Foundation, Inc.
18
+	Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
19
+	Copyright (c) 1982, 1986, 1990, 1993 The Regents of the University of California.
20
+	Copyright (c) 2008, 2012 Vincent Bernat <bernat@luffy.cx>
21
+	Copyright (c) 2014 Michael Chapman
22
+	Copyright (c) 2014 WindRiver, Inc.
23
+	Copyright (c) 2014 Avaya, Inc.
24
+
25
+License:
26
+
27
+* The following components are licensed under the
28
+  GNU Lesser General Public License version 2.1 only
29
+  with the exception clause below as a pre-amble.
30
+
31
+	xenserver/etc_xensource_scripts_vif
32
+	xenserver/opt_xensource_libexec_InterfaceReconfigure.py
33
+	xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
34
+	xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py
35
+	xenserver/opt_xensource_libexec_interface-reconfigure
36
+	xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
37
+
38
+	* These components are only distributed in the source package.
39
+	  They do not appear in any binary packages.
40
+
41
+  On Debian systems, the complete text of the
42
+  GNU Lesser General Public License version 2.1 can be found in
43
+  `/usr/share/common-licenses/LGPL-2.1'
44
+
45
+  The exception clause pre-amble reads:
46
+
47
+  As a special exception to the GNU Lesser General Public License, you
48
+  may link, statically or dynamically, a "work that uses the Library"
49
+  with a publicly distributed version of the Library to produce an
50
+  executable file containing portions of the Library, and distribute
51
+  that executable file under terms of your choice, without any of the
52
+  additional requirements listed in clause 6 of the GNU Lesser General
53
+  Public License.  By "a publicly distributed version of the Library",
54
+  we mean either the unmodified Library as distributed, or a
55
+  modified version of the Library that is distributed under the
56
+  conditions defined in clause 3 of the GNU Library General Public
57
+  License.  This exception does not however invalidate any other reasons
58
+  why the executable file might be covered by the GNU Lesser General
59
+  Public License.
60
+
61
+* The following components are licensed under the
62
+  GNU Lesser General Public License version 2.1.
63
+
64
+	utilities/bugtool/ovs-bugtool
65
+	utilities/bugtool/ovs-bugtool-*
66
+	utilities/bugtool/plugins/kernel-info/openvswitch.xml
67
+	utilities/bugtool/plugins/network-status/openvswitch.xml
68
+	utilities/bugtool/plugins/system-configuration.xml
69
+	utilities/bugtool/plugins/system-configuration/openvswitch.xml
70
+
71
+  On Debian systems, the complete text of the
72
+  GNU Lesser General Public License version 2.1 can be found in
73
+  `/usr/share/common-licenses/LGPL-2.1'
74
+
75
+* The following component is licensed under the GNU General Public License
76
+  version 2.
77
+
78
+	datapath/
79
+
80
+  On Debian systems, the complete text of the GNU General Public License
81
+  version 2 can be found in `/usr/share/common-licenses/GPL-2'
82
+
83
+* The following file is licensed under the GNU General Public License
84
+  version 2.
85
+
86
+	build-aux/cccl
87
+
88
+* The following files are licensed under the 2-clause BSD license.
89
+
90
+	lib/getopt_long.c
91
+	include/windows/getopt.h
92
+
93
+* The following files are licensed under the 3-clause BSD-license
94
+
95
+	include/windows/netinet/icmp6.h
96
+	include/windows/netinet/ip6.h
97
+	lib/strsep.c
98
+
99
+* The following components are dual-licensed under the
100
+  GNU General Public License version 2 and the Apache License Version 2.0.
101
+
102
+	datapath/linux/compat/include/linux/openvswitch.h
103
+
104
+  On Debian systems, the complete text of the GNU General Public License
105
+  version 2 can be found in `/usr/share/common-licenses/GPL-2'.
106
+  On Debian systems, the complete text of the Apache License version 2.0
107
+  can be found in '/usr/share/common-licenses/Apache-2.0'.
108
+
109
+* The following components are licensed under the terms of either the
110
+  Sun Industry Standard Source License 1.1 or the InMon sFlow License:
111
+
112
+	lib/sflow.h
113
+	lib/sflow_agent.c
114
+	lib/sflow_api.h
115
+	lib/sflow_poller.c
116
+	lib/sflow_receiver.c
117
+	lib/sflow_sampler.c
118
+
119
+  These licenses are available, respectively, the following URLs:
120
+
121
+        http://host-sflow.sourceforge.net/sissl.html
122
+        http://www.inmon.com/technology/sflowlicense.txt
123
+
124
+  The full text of each license is also appended to the end of this
125
+  file.
126
+
127
+* The following components are licensed for use as desired without restriction:
128
+
129
+	lib/crc32c.c
130
+
131
+* The following components are licensed under the
132
+  Python Software Foundation License Version 2.
133
+
134
+	python/compat/uuid.py
135
+	python/compat/argparse.py
136
+
137
+	* These components are only distributed in the source package.
138
+	  They do not appear in any binary packages.
139
+
140
+   PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
141
+   --------------------------------------------
142
+
143
+   1. This LICENSE AGREEMENT is between the Python Software Foundation
144
+   ("PSF"), and the Individual or Organization ("Licensee") accessing and
145
+   otherwise using this software ("Python") in source or binary form and
146
+   its associated documentation.
147
+
148
+   2. Subject to the terms and conditions of this License Agreement, PSF
149
+   hereby grants Licensee a nonexclusive, royalty-free, world-wide
150
+   license to reproduce, analyze, test, perform and/or display publicly,
151
+   prepare derivative works, distribute, and otherwise use Python
152
+   alone or in any derivative version, provided, however, that PSF's
153
+   License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
154
+   2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
155
+   All Rights Reserved" are retained in Python alone or in any derivative
156
+   version prepared by Licensee.
157
+
158
+   3. In the event Licensee prepares a derivative work that is based on
159
+   or incorporates Python or any part thereof, and wants to make
160
+   the derivative work available to others as provided herein, then
161
+   Licensee hereby agrees to include in any such work a brief summary of
162
+   the changes made to Python.
163
+
164
+   4. PSF is making Python available to Licensee on an "AS IS"
165
+   basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
166
+   IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
167
+   DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
168
+   FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
169
+   INFRINGE ANY THIRD PARTY RIGHTS.
170
+
171
+   5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
172
+   FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
173
+   A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
174
+   OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
175
+
176
+   6. This License Agreement will automatically terminate upon a material
177
+   breach of its terms and conditions.
178
+
179
+   7. Nothing in this License Agreement shall be deemed to create any
180
+   relationship of agency, partnership, or joint venture between PSF and
181
+   Licensee.  This License Agreement does not grant permission to use PSF
182
+   trademarks or trade name in a trademark sense to endorse or promote
183
+   products or services of Licensee, or any third party.
184
+
185
+   8. By copying, installing or otherwise using Python, Licensee
186
+   agrees to be bound by the terms and conditions of this License
187
+   Agreement.
188
+
189
+* lib/ovs.tmac in the source distribution, and manpages in the
190
+  binaries, includes troff macros from groff 1.21 that contain the
191
+  following notice:
192
+
193
+    .\" an-ext.tmac
194
+    .\"
195
+    .\" Written by Eric S. Raymond <esr@thyrsus.com>
196
+    .\"            Werner Lemberg <wl@gnu.org>
197
+    .\"
198
+    .\" Version 2007-Feb-02
199
+    .\"
200
+    .\" Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
201
+    .\" You may freely use, modify and/or distribute this file.
202
+
203
+* m4/absolute-header.m4, by Derek Price, and m4/include_next.m4, by
204
+  Paul Eggert and Derek Price bear the following notices:
205
+
206
+    Copyright (C) 2006-2013 Free Software Foundation, Inc.
207
+    This file is free software; the Free Software Foundation
208
+    gives unlimited permission to copy and/or distribute it,
209
+    with or without modifications, as long as this notice is preserved.
210
+
211
+* The following files are licensed under the ISC-license
212
+
213
+    lib/lldp/aa-structs.h
214
+    lib/lldp/lldpd.c
215
+    lib/lldp/lldpd.h
216
+    lib/lldp/lldpd-structs.c
217
+    lib/lldp/lldpd-structs.h
218
+    lib/lldp/lldp.c
219
+    lib/lldp/lldp-tlv.h
220
+    lib/lldp/lldp-const.h
221
+
222
+* All other components of this package are licensed under
223
+  The Apache License Version 2.0.
224
+
225
+  On Debian systems, the complete text of the Apache License version 2.0
226
+  can be found in '/usr/share/common-licenses/Apache-2.0'.
227
+
228
+----------------------------------------------------------------------
229
+
230
+Retrieved from http://host-sflow.sourceforge.net/sissl.html, 2011-12-12:
231
+
232
+   Sun Industry Standards Source License - Version 1.1
233
+
234
+   1.0 DEFINITIONS
235
+
236
+   1.1 "Commercial Use" means distribution or otherwise making the
237
+   Original Code available to a third party.
238
+
239
+   1.2 "Contributor Version" means the combination of the Original Code,
240
+   and the Modifications made by that particular Contributor.
241
+
242
+   1.3 "Electronic Distribution Mechanism" means a mechanism generally
243
+   accepted in the software development community for the electronic
244
+   transfer of data.
245
+
246
+   1.4 "Executable" means Original Code in any form other than Source
247
+   Code.
248
+
249
+   1.5 "Initial Developer" means the individual or entity identified as
250
+   the Initial Developer in the Source Code notice required by Exhibit A.
251
+
252
+   1.6 "Larger Work" means a work which combines Original Code or portions
253
+   thereof with code not governed by the terms of this License.
254
+
255
+   1.7 "License" means this document.
256
+
257
+   1.8 "Licensable" means having the right to grant, to the maximum extent
258
+   possible, whether at the time of the initial grant or subsequently
259
+   acquired, any and all of the rights conveyed herein.
260
+
261
+   1.9 "Modifications" means any addition to or deletion from the
262
+   substance or structure of either the Original Code or any previous
263
+   Modifications. A Modification is:
264
+
265
+   A. Any addition to or deletion from the contents of a file containing
266
+   Original Code or previous Modifications.
267
+
268
+   B. Any new file that contains any part of the Original Code or previous
269
+   Modifications.
270
+
271
+   1.10 "Original Code" means Source Code of computer software code which
272
+   is described in the Source Code notice required by Exhibit A as
273
+   Original Code.
274
+
275
+   1.11 "Patent Claims" means any patent claim(s), now owned or hereafter
276
+   acquired, including without limitation, method, process, and apparatus
277
+   claims, in any patent Licensable by grantor.
278
+
279
+   1.12 "Source Code" means the preferred form of the Original Code for
280
+   making modifications to it, including all modules it contains, plus any
281
+   associated interface definition files, or scripts used to control
282
+   compilation and installation of an Executable.
283
+
284
+   1.13 "Standards" means the standards identified in Exhibit B.
285
+
286
+   1.14 "You" (or "Your") means an individual or a legal entity exercising
287
+   rights under, and complying with all of the terms of, this License or a
288
+   future version of this License issued under Section 6.1. For legal
289
+   entities, "You'' includes any entity which controls, is controlled by,
290
+   or is under common control with You. For purposes of this definition,
291
+   "control'' means (a) the power, direct or indirect, to cause the
292
+   direction or management of such entity, whether by contract or
293
+   otherwise, or (b) ownership of more than fifty percent (50%) of the
294
+   outstanding shares or beneficial ownership of such entity.
295
+
296
+   2.0 SOURCE CODE LICENSE
297
+
298
+   2.1 The Initial Developer Grant
299
+   The Initial Developer hereby grants You a world-wide, royalty-free,
300
+   non-exclusive license, subject to third party intellectual property
301
+   claims:
302
+
303
+   (a) under intellectual property rights (other than patent or trademark)
304
+   Licensable by Initial Developer to use, reproduce, modify, display,
305
+   perform, sublicense and distribute the Original Code (or portions
306
+   thereof) with or without Modifications, and/or as part of a Larger
307
+   Work; and
308
+
309
+   (b) under Patents Claims infringed by the making, using or selling of
310
+   Original Code, to make, have made, use, practice, sell, and offer for
311
+   sale, and/or otherwise dispose of the Original Code (or portions
312
+   thereof).
313
+
314
+   (c) the licenses granted in this Section 2.1(a) and (b) are effective
315
+   on the date Initial Developer first distributes Original Code under the
316
+   terms of this License.
317
+
318
+   (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
319
+   1) for code that You delete from the Original Code; 2) separate from
320
+   the Original Code; or 3) for infringements caused by: i) the
321
+   modification of the Original Code or ii) the combination of the
322
+   Original Code with other software or devices, including but not limited
323
+   to Modifications.
324
+   3.0 DISTRIBUTION OBLIGATIONS
325
+
326
+   3.1 Application of License.
327
+   The Source Code version of Original Code may be distributed only under
328
+   the terms of this License or a future version of this License released
329
+   under Section 6.1, and You must include a copy of this License with
330
+   every copy of the Source Code You distribute. You may not offer or
331
+   impose any terms on any Source Code version that alters or restricts
332
+   the applicable version of this License or the recipients' rights
333
+   hereunder. Your license for shipment of the Contributor Version is
334
+   conditioned upon Your full compliance with this Section. The
335
+   Modifications which You create must comply with all requirements set
336
+   out by the Standards body in effect one hundred twenty (120) days
337
+   before You ship the Contributor Version. In the event that the
338
+   Modifications do not meet such requirements, You agree to publish
339
+   either (i) any deviation from the Standards protocol resulting from
340
+   implementation of Your Modifications and a reference implementation of
341
+   Your Modifications or (ii) Your Modifications in Source Code form, and
342
+   to make any such deviation and reference implementation or
343
+   Modifications available to all third parties under the same terms as
344
+   this license on a royalty free basis within thirty (30) days of Your
345
+   first customer shipment of Your Modifications.
346
+
347
+   3.2 Required Notices.
348
+   You must duplicate the notice in Exhibit A in each file of the Source
349
+   Code. If it is not possible to put such notice in a particular Source
350
+   Code file due to its structure, then You must include such notice in a
351
+   location (such as a relevant directory) where a user would be likely to
352
+   look for such a notice. If You created one or more Modification(s) You
353
+   may add Your name as a Contributor to the notice described in Exhibit
354
+   A. You must also duplicate this License in any documentation for the
355
+   Source Code where You describe recipients' rights or ownership rights
356
+   relating to Initial Code. You may choose to offer, and to charge a fee
357
+   for, warranty, support, indemnity or liability obligations to one or
358
+   more recipients of Your version of the Code. However, You may do so
359
+   only on Your own behalf, and not on behalf of the Initial Developer.
360
+   You must make it absolutely clear than any such warranty, support,
361
+   indemnity or liability obligation is offered by You alone, and You
362
+   hereby agree to indemnify the Initial Developer for any liability
363
+   incurred by the Initial Developer as a result of warranty, support,
364
+   indemnity or liability terms You offer.
365
+
366
+   3.3 Distribution of Executable Versions.
367
+   You may distribute Original Code in Executable and Source form only if
368
+   the requirements of Sections 3.1 and 3.2 have been met for that
369
+   Original Code, and if You include a notice stating that the Source Code
370
+   version of the Original Code is available under the terms of this
371
+   License. The notice must be conspicuously included in any notice in an
372
+   Executable or Source versions, related documentation or collateral in
373
+   which You describe recipients' rights relating to the Original Code.
374
+   You may distribute the Executable and Source versions of Your version
375
+   of the Code or ownership rights under a license of Your choice, which
376
+   may contain terms different from this License, provided that You are in
377
+   compliance with the terms of this License. If You distribute the
378
+   Executable and Source versions under a different license You must make
379
+   it absolutely clear that any terms which differ from this License are
380
+   offered by You alone, not by the Initial Developer. You hereby agree to
381
+   indemnify the Initial Developer for any liability incurred by the
382
+   Initial Developer as a result of any such terms You offer.
383
+
384
+   3.4 Larger Works.
385
+   You may create a Larger Work by combining Original Code with other code
386
+   not governed by the terms of this License and distribute the Larger
387
+   Work as a single product. In such a case, You must make sure the
388
+   requirements of this License are fulfilled for the Original Code.
389
+
390
+   4.0 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION
391
+
392
+   If it is impossible for You to comply with any of the terms of this
393
+   License with respect to some or all of the Original Code due to
394
+   statute, judicial order, or regulation then You must: (a) comply with
395
+   the terms of this License to the maximum extent possible; and (b)
396
+   describe the limitations and the code they affect. Such description
397
+   must be included in the LEGAL file described in Section 3.2 and must be
398
+   included with all distributions of the Source Code. Except to the
399
+   extent prohibited by statute or regulation, such description must be
400
+   sufficiently detailed for a recipient of ordinary skill to be able to
401
+   understand it.
402
+
403
+   5.0 APPLICATION OF THIS LICENSE
404
+
405
+   This License applies to code to which the Initial Developer has
406
+   attached the notice in Exhibit A and to related Modifications as set
407
+   out in Section 3.1.
408
+
409
+   6.0 VERSIONS OF THE LICENSE
410
+
411
+   6.1 New Versions.
412
+   Sun may publish revised and/or new versions of the License from time to
413
+   time. Each version will be given a distinguishing version number.
414
+
415
+   6.2 Effect of New Versions.
416
+   Once Original Code has been published under a particular version of the
417
+   License, You may always continue to use it under the terms of that
418
+   version. You may also choose to use such Original Code under the terms
419
+   of any subsequent version of the License published by Sun. No one other
420
+   than Sun has the right to modify the terms applicable to Original Code.
421
+
422
+   7.0 DISCLAIMER OF WARRANTY
423
+
424
+   ORIGINAL CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
425
+   WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
426
+   WITHOUT LIMITATION, WARRANTIES THAT THE ORIGINAL CODE IS FREE OF
427
+   DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
428
+   THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ORIGINAL CODE
429
+   IS WITH YOU. SHOULD ANY ORIGINAL CODE PROVE DEFECTIVE IN ANY RESPECT,
430
+   YOU (NOT THE INITIAL DEVELOPER) ASSUME THE COST OF ANY NECESSARY
431
+   SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
432
+   CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY ORIGINAL
433
+   CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
434
+
435
+   8.0 TERMINATION
436
+
437
+   8.1 This License and the rights granted hereunder will terminate
438
+   automatically if You fail to comply with terms herein and fail to cure
439
+   such breach within 30 days of becoming aware of the breach. All
440
+   sublicenses to the Original Code which are properly granted shall
441
+   survive any termination of this License. Provisions which, by their
442
+   nature, must remain in effect beyond the termination of this License
443
+   shall survive.
444
+
445
+   8.2 In the event of termination under Section 8.1 above, all end user
446
+   license agreements (excluding distributors and resellers) which have
447
+   been validly granted by You or any distributor hereunder prior to
448
+   termination shall survive termination.
449
+
450
+   9.0 LIMIT OF LIABILITY
451
+
452
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
453
+   (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
454
+   DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF ORIGINAL CODE,
455
+   OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
456
+   INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
457
+   CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
458
+   WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
459
+   COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
460
+   INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
461
+   LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
462
+   RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
463
+   PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
464
+   EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
465
+   EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
466
+
467
+   10.0 U.S. GOVERNMENT END USERS
468
+
469
+   U.S. Government: If this Software is being acquired by or on behalf of
470
+   the U.S. Government or by a U.S. Government prime contractor or
471
+   subcontractor (at any tier), then the Government's rights in the
472
+   Software and accompanying documentation shall be only as set forth in
473
+   this license; this is in accordance with 48 C.F.R. 227.7201 through
474
+   227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48
475
+   C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
476
+
477
+   11.0 MISCELLANEOUS
478
+
479
+   This License represents the complete agreement concerning subject
480
+   matter hereof. If any provision of this License is held to be
481
+   unenforceable, such provision shall be reformed only to the extent
482
+   necessary to make it enforceable. This License shall be governed by
483
+   California law provisions (except to the extent applicable law, if any,
484
+   provides otherwise), excluding its conflict-of-law provisions. With
485
+   respect to disputes in which at least one party is a citizen of, or an
486
+   entity chartered or registered to do business in the United States of
487
+   America, any litigation relating to this License shall be subject to
488
+   the jurisdiction of the Federal Courts of the Northern District of
489
+   California, with venue lying in Santa Clara County, California, with
490
+   the losing party responsible for costs, including without limitation,
491
+   court costs and reasonable attorneys' fees and expenses. The
492
+   application of the United Nations Convention on Contracts for the
493
+   International Sale of Goods is expressly excluded. Any law or
494
+   regulation which provides that the language of a contract shall be
495
+   construed against the drafter shall not apply to this License.
496
+
497
+   EXHIBIT A - Sun Standards License
498
+"The contents of this file are subject to the Sun Standards
499
+License Version 1.1 (the "License");
500
+You may not use this file except in compliance with the
501
+License. You may obtain a copy of the
502
+License at _______________________________.
503
+
504
+Software distributed under the License is distributed on
505
+an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
506
+express or implied. See the License for the specific
507
+language governing rights and limitations under the License.
508
+
509
+The Original Code is ______________________________________.
510
+
511
+The Initial Developer of the Original Code is:
512
+InMon Corp.
513
+
514
+Portions created by: _______________________________________
515
+
516
+are Copyright (C): _______________________________________
517
+
518
+All Rights Reserved.
519
+
520
+Contributor(s): _______________________________________
521
+
522
+   EXHIBIT B - Standards
523
+
524
+   The Standard is defined as the following:
525
+
526
+   sFlow Specification, located at
527
+   [1]http://sflow.org/developers/specifications.php
528
+
529
+References
530
+
531
+   1. http://sflow.org/developers/specifications.php
532
+
533
+----------------------------------------------------------------------
534
+
535
+Retrieved from http://www.inmon.com/technology/sflowlicense.txt, 2011-12-12:
536
+
537
+LICENSE AGREEMENT
538
+
539
+PLEASE READ THIS LICENSE AGREEMENT ("AGREEMENT") CAREFULLY BEFORE REPRODUCING OR IN ANY WAY
540
+UTILIZING THE sFlow(R) SOFTWARE ("SOFTWARE") AND/OR ANY ACCOMPANYING DOCUMENTATION
541
+("DOCUMENTATION") AND/OR THE RELATED SPECIFICATIONS ("SPECIFICATIONS").  YOUR REPRODUCTION
542
+OR USE OF THE SOFTWARE AND/OR THE DOCUMENTATION AND/OR THE SPECIFICATIONS CONSTITUTES YOUR
543
+ACCEPTANCE OF THE TERMS AND CONDITIONS OF THIS AGREEMENT.  IF YOU DO NOT AGREE TO BE BOUND
544
+BY THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT REPRODUCE OR IN ANY WAY UTILIZE
545
+THE SOFTWARE OR THE DOCUMENTATION OR THE SPECIFICATIONS.
546
+
547
+1.	Definitions.
548
+
549
+"Documentation" means the user manuals, training materials, and operating materials, if any,
550
+InMon provides to Licensee under this Agreement.
551
+
552
+"InMon" means InMon Corporation, its affiliates and subsidiaries.
553
+
554
+"Intellectual Property Rights" means any trade secrets, patents, including without
555
+limitation any patents covering the Software, copyrights, know-how, moral rights and
556
+similar rights of any type under the laws of any governmental authority, domestic or
557
+foreign, including all applications and registrations relating to any of the foregoing.
558
+
559
+"Licensee Hardware" means all computers, routers, or other equipment owned or controlled by
560
+or on behalf of Licensee.
561
+
562
+"Products" means any and all software applications, computers, routers, or other equipment
563
+manufactured by or on behalf of Licensee for the purpose of resale or lease to any other
564
+third party, or otherwise made available by Licensee free of charge.
565
+
566
+"Software" means the sFlow(R) software programs, in source or binary code format, that
567
+Licensee licenses from InMon under this Agreement and any bug fixes or error corrections
568
+which InMon may provide to Licensee.
569
+
570
+"Specifications" means the published specifications provided or otherwise made available by
571
+InMon at: http://www.sflow.org.
572
+
573
+"Trademark" means InMon's "sFlow(R)" trademark.
574
+
575
+2.	License Grant.
576
+
577
+2.1	Software, Documentation and Specifications License Grant.  InMon hereby grants to
578
+Licensee, under all of InMon's Intellectual Property Rights therein, a perpetual (subject
579
+to InMon's termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
580
+transferable, sublicensable license, to:  (i) use and reproduce the Software, the
581
+Documentation, and the Specifications; (ii) modify the Software; (iii) implement the
582
+Specifications in the Products; (iv) install the Software, or software in which the
583
+Specifications have been implemented, on Licensee Hardware and Products, and (v) distribute
584
+any Products that include the Software, the Documentation, or software in which the
585
+Specifications have been implemented.
586
+
587
+2.2	Trademark License.  InMon hereby grants to Licensee a perpetual (subject to InMon's
588
+termination rights under Section 7 below), nonexclusive, royalty-free, worldwide,
589
+transferable, sublicensable license to use the Trademark on or in connection with the
590
+Software, the Documentation, the Specifications and any software that implements the
591
+Specifications.
592
+
593
+2.3	Restrictions.  Licensee agrees that it will not use the Software in a way
594
+inconsistent with the license granted in Section 2.1.  Further, Licensee agrees that, in
595
+exercising its rights under the license granted to it in this Agreement, Licensee will:
596
+(i) strictly adhere to and fully comply with the Specifications; (ii) use the Trademark,
597
+and no other mark, to identify the Software, the Documentation, the Specifications and any
598
+Products that implement the Specifications; (iii) place, in a font or graphic design
599
+designated by InMon,  the phrase "sFlow(R)" on any technical documentation,
600
+sales/marketing materials, catalogs, or other such materials relating to products it
601
+manufactures or markets which it has configured to be compatible with the Software or
602
+otherwise implement the Specifications; (iv) in connection with any Products shipped to or
603
+sold in other countries that include the Software or any software that implements the
604
+Specifications, comply with the patent and trademark laws and practice of such other
605
+country; and (v) not alter or impair any acknowledgment of copyright or trademark rights of
606
+InMon that may appear in or on the Software, the Documentation or the Specifications.  In
607
+the event InMon determines that Licensee is not complying with its obligations under
608
+clauses (i)-(v) above, InMon shall notify Licensee of such non-compliance, and if Licensee
609
+fails to correct such non-compliance within three (3) months, InMon may immediately
610
+terminate this Agreement as provided under paragraph 7 below and pursue any and all
611
+actions and remedies as it deems necessary, including, but not limited to breach of
612
+contract.
613
+
614
+3.	Ownership.  Except for the license expressly granted in Section 2, Inmon hereby
615
+retains all right, title, and interest in and to the Trademark and all its Intellectual
616
+Property Rights in the Software, the Documentation and the Specifications.  Licensee
617
+obtains no rights hereunder in the Trademark, Software, Documentation or Specifications by
618
+implication, estoppel or otherwise.  Licensee acknowledges that the Trademark, Software,
619
+Documentation and Specifications are being licensed and not sold under this Agreement, and
620
+that this Agreement does not transfer title in the Trademark, Software, Documentation or
621
+Specifications, or any copy thereof, to Licensee.
622
+
623
+4.	Support.  Inmon shall have no obligation under this Agreement to (a) supply
624
+maintenance or support, bug fixes or error corrections to the Licensed Software,
625
+(b) supply future versions of the Licensed Software or (c) provide Licensed Software
626
+development tools to Licensee.
627
+
628
+5.	Warranty.  INMON HEREBY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED OR
629
+STATUTORY, WITH RESPECT TO THE TRADEMARK, THE SOFTWARE, THE DOCUMENTATION, THE
630
+SPECIFICATIONS. OR OTHERWISE, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
631
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF ANY INTELLECTUAL
632
+PROPERTY RIGHTS.
633
+
634
+6.	Limitation of Liability.  IN NO EVENT SHALL INMON OR ITS SUPPLIERS OR LICENSORS BE
635
+LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT OR EXEMPLARY DAMAGES WHATSOEVER,
636
+WHETHER RELATED TO OR ARISING OUT OF THIS AGREEMENT, THE TRADEMARK, THE SOFTWARE, THE
637
+DOCUMENTATION, THE SPECIFICATIONS, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, DAMAGES FOR
638
+LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF DATA, COSTS OF PROCUREMENT OF SUBSTITUTE
639
+GOODS OR SERVICES OR FOR ANY CLAIM OR DEMAND AGAINST LICENSEE BY ANY OTHER PARTY, OR OTHER
640
+PECUNIARY LOSS, EVEN IF INMON HAS BEEN ADVISED OF OR KNOWS OF THE POSSIBILITY OF SUCH
641
+DAMAGES.
642
+
643
+7.	Term and Termination.  The term of this Agreement will begin on the Effective Date,
644
+which shall be deemed to be the date of delivery of the Software and/or Documentation and/or
645
+Specifications to Licensee, and shall continue indefinitely unless and until terminated by
646
+Licensee's giving written notice of termination to InMon, or by InMon pursuant to InMon's
647
+termination rights as set forth in Section 2.3 above.  Upon any termination of this
648
+Agreement, Licensee shall cease exercising its license rights under this Agreement,
649
+including the right to distribute Products that incorporate the Software or Documentation
650
+or that implement the Specifications.  The rights and obligations contained in Sections 1,
651
+3, 5, 6, 7, and 8 shall survive any termination of this Agreement.
652
+
653
+8.	General Provisions.
654
+
655
+8.1	Assignment.  This Agreement shall be binding upon and inure to the benefit of the
656
+parties hereto and their permitted successors and permitted assigns.  InMon will have the
657
+right to assign this Agreement without notice to Licensee.  Licensee may assign or transfer
658
+(whether by merger, operation of law or in any other manner) any of its rights or delegate
659
+any of its obligations hereunder without the prior written consent of InMon, provided the
660
+assignee assumes in writing all of Licensee's obligations hereunder.
661
+
662
+8.2	Notices.  All notices permitted or required under this Agreement shall be in
663
+writing and shall be delivered in person or mailed by first class, registered or certified
664
+mail, postage prepaid, to the address of the party specified in this Agreement or such
665
+other address as either party may specify in writing.  Such notice shall be deemed to have
666
+been given upon receipt.
667
+
668
+8.3	Non-Waiver.  No term or provision hereof shall be deemed waived, and no breach
669
+excused, unless such waiver or consent shall be in writing and signed by the party claimed
670
+to have waived or consented.  Any consent or waiver, whether express or implied, shall not
671
+constitute a consent or waiver of, or excuse for any separate, different or subsequent
672
+breach.
673
+
674
+8.4	Independent Contractor.  The parties' relationship shall be solely that of
675
+independent contractors, and nothing contained in this Agreement shall be construed to make
676
+either party an agent, partner, representative or principal of the other for any purpose.
677
+
678
+8.5	Choice of Law and Forum.  This Agreement shall be governed by and construed under
679
+the laws of the State of California, without giving effect to such state's conflict of laws
680
+principles.  The parties hereby submit to the personal jurisdiction of, and agree that any
681
+legal proceeding with respect to or arising under this Agreement shall be brought in, the
682
+United States District Court for the Northern District of California or the state courts
683
+of the State of California for the County of San Francisco.
684
+
685
+8.6	U.S. Government Licenses.  The Software and Documentation are considered a
686
+"commercial item" as that term is defined at 48 C.F.R 2.101, or "commercial computer
687
+software" and "commercial computer software documentation" as such terms are used in
688
+48 C.F.R 12.212 of the Federal Acquisition Regulations and its successors, and
689
+48 C.F.R. 227.7202 of the DoD FAR Supplement and its successors.
690
+
691
+8.7	Severability.  If any provision of this Agreement is held to be unenforceable under
692
+applicable law, then such provision shall be excluded from this Agreement and the balance
693
+of this Agreement shall be interpreted as if such provision were so excluded and shall be
694
+enforceable in accordance with its terms.  The court in its discretion may substitute for
695
+the excluded provision an enforceable provision which in economic substance reasonably
696
+approximates the excluded provision.
697
+
698
+8.8	Compliance With Law.  Licensee shall comply with all applicable laws and
699
+regulations (including privacy laws and regulations) having application to or governing its
700
+ use and/or operation of the Software and agrees to indemnify and hold InMon harmless from
701
+and against any claims, damages, losses or obligations suffered or incurred by InMon
702
+arising from its failure to so comply.
703
+
704
+8.9	Entire Agreement; Amendment.  This Agreement constitutes the final, complete and
705
+entire agreement between the parties with respect to the subject matter hereof, and
706
+supersedes any previous proposals, negotiations, agreements, or arrangements, whether
707
+verbal or written, made between the parties with respect to such subject matter.  This
708
+Agreement shall control over any additional or conflicting terms in any of Licensee's
709
+purchase orders or other business forms.  This Agreement may only be amended or modified
710
+by mutual agreement of authorized representatives of the parties in writing.
711
+
712
+InMon Corp.
713
+580 California Street, 5th Floor, San Francisco, CA 94104
714
+Phone: (415) 283-3260
715
+URL:   www.inmon.com
716
+Email: info@inmon.com

+ 42
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/openvswitch-switch-dpdk.README.Debian View File

@@ -0,0 +1,42 @@
1
+openvswitch-switch-dpdk
2
+-----------------------
3
+
4
+This package provides a DPDK enabled version of the OpenvSwitch vswitchd
5
+binary; by default, the ovs-vswitchd binary from openvswitch-switch will
6
+be used:
7
+
8
+  $ update-alternatives --query ovs-vswitchd
9
+  Name: ovs-vswitchd
10
+  Link: /usr/sbin/ovs-vswitchd
11
+  Status: auto
12
+  Best: /usr/lib/openvswitch-switch/ovs-vswitchd
13
+  Value: /usr/lib/openvswitch-switch/ovs-vswitchd
14
+
15
+  Alternative: /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
16
+  Priority: 50
17
+
18
+  Alternative: /usr/lib/openvswitch-switch/ovs-vswitchd
19
+  Priority: 100
20
+
21
+DPDK provides fast packet processing in userspace, and has some specific
22
+requirements in terms of system configuration - see the upstream
23
+documentation for more details:
24
+
25
+  /usr/share/doc/openvswitch-common/INSTALL.DPDK.md.gz
26
+
27
+DPDK has a minimum CPU feature set of SSE3, so is not appropriate for all
28
+amd64 CPU types hence is not enabled by default.
29
+
30
+To switch to the DPDK version:
31
+
32
+   sudo update-alternatives --set ovs-vswitchd \
33
+        /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
34
+   sudo service openvswitch-switch restart
35
+
36
+and to switch back:
37
+
38
+   sudo update-alternatives --set ovs-vswitchd \
39
+        /usr/lib/openvswitch-switch/ovs-vswitchd
40
+   sudo service openvswitch-switch restart
41
+
42
+ -- James Page <james.page@ubuntu.com>  Tue, 21 Jul 2015 12:06:49 +0100

+ 10
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/openvswitch-switch-dpdk.postinst View File

@@ -0,0 +1,10 @@
1
+#!/bin/sh
2
+
3
+set -e
4
+
5
+update-alternatives --install /usr/sbin/ovs-vswitchd ovs-vswitchd \
6
+    /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk 50
7
+
8
+#DEBHELPER#
9
+
10
+exit 0

+ 10
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/openvswitch-switch-dpdk.prerm View File

@@ -0,0 +1,10 @@
1
+#!/bin/sh
2
+
3
+set -e
4
+
5
+update-alternatives --remove ovs-vswitchd /usr/lib/openvswitch-switch/ovs-vswitchd-dpdk
6
+
7
+#DEBHELPER#
8
+
9
+exit 0
10
+

+ 494
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/ovs-monitor-ipsec View File

@@ -0,0 +1,494 @@
1
+#!/usr/bin/python
2
+# Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.
3
+#
4
+# Licensed under the Apache License, Version 2.0 (the "License");
5
+# you may not use this file except in compliance with the License.
6
+# You may obtain a copy of the License at:
7
+#
8
+#     http://www.apache.org/licenses/LICENSE-2.0
9
+#
10
+# Unless required by applicable law or agreed to in writing, software
11
+# distributed under the License is distributed on an "AS IS" BASIS,
12
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+# See the License for the specific language governing permissions and
14
+# limitations under the License.
15
+
16
+
17
+# A daemon to monitor attempts to create GRE-over-IPsec tunnels.
18
+# Uses racoon and setkey to support the configuration.  Assumes that
19
+# OVS has complete control over IPsec configuration for the box.
20
+
21
+# xxx To-do:
22
+#  - Doesn't actually check that Interface is connected to bridge
23
+#  - If a certificate is badly formed, Racoon will refuse to start.  We
24
+#    should do a better job of verifying certificates are valid before
25
+#    adding an interface to racoon.conf.
26
+
27
+
28
+import argparse
29
+import glob
30
+import os
31
+import subprocess
32
+import sys
33
+
34
+import ovs.dirs
35
+from ovs.db import error
36
+from ovs.db import types
37
+import ovs.util
38
+import ovs.daemon
39
+import ovs.db.idl
40
+import ovs.unixctl
41
+import ovs.unixctl.server
42
+import ovs.vlog
43
+
44
+vlog = ovs.vlog.Vlog("ovs-monitor-ipsec")
45
+root_prefix = ''                # Prefix for absolute file names, for testing.
46
+SETKEY = "/usr/sbin/setkey"
47
+exiting = False
48
+
49
+
50
+def unixctl_exit(conn, unused_argv, unused_aux):
51
+    global exiting
52
+    exiting = True
53
+    conn.reply(None)
54
+
55
+
56
+# Class to configure the racoon daemon, which handles IKE negotiation
57
+class Racoon:
58
+    # Default locations for files
59
+    conf_file = "/etc/racoon/racoon.conf"
60
+    cert_dir = "/etc/racoon/certs"
61
+    psk_file = "/etc/racoon/psk.txt"
62
+
63
+    # Racoon configuration header we use for IKE
64
+    conf_header = """# Configuration file generated by Open vSwitch
65
+#
66
+# Do not modify by hand!
67
+
68
+path pre_shared_key "%s";
69
+path certificate "%s";
70
+
71
+"""
72
+
73
+    # Racoon configuration footer we use for IKE
74
+    conf_footer = """sainfo anonymous {
75
+        pfs_group 2;
76
+        lifetime time 1 hour;
77
+        encryption_algorithm aes;
78
+        authentication_algorithm hmac_sha1, hmac_md5;
79
+        compression_algorithm deflate;
80
+}
81
+
82
+"""
83
+
84
+    # Certificate entry template.
85
+    cert_entry = """remote %s {
86
+        exchange_mode main;
87
+        nat_traversal on;
88
+        ike_frag on;
89
+        certificate_type x509 "%s" "%s";
90
+        my_identifier asn1dn;
91
+        peers_identifier asn1dn;
92
+        peers_certfile x509 "%s";
93
+        verify_identifier on;
94
+        proposal {
95
+                encryption_algorithm aes;
96
+                hash_algorithm sha1;
97
+                authentication_method rsasig;
98
+                dh_group 2;
99
+        }
100
+}
101
+
102
+"""
103
+
104
+    # Pre-shared key template.
105
+    psk_entry = """remote %s {
106
+        exchange_mode main;
107
+        nat_traversal on;
108
+        proposal {
109
+                encryption_algorithm aes;
110
+                hash_algorithm sha1;
111
+                authentication_method pre_shared_key;
112
+                dh_group 2;
113
+        }
114
+}
115
+
116
+"""
117
+
118
+    def __init__(self):
119
+        self.psk_hosts = {}
120
+        self.cert_hosts = {}
121
+
122
+        if not os.path.isdir(root_prefix + self.cert_dir):
123
+            os.mkdir(self.cert_dir)
124
+
125
+        # Clean out stale peer certs from previous runs
126
+        for ovs_cert in glob.glob("%s%s/ovs-*.pem"
127
+                                  % (root_prefix, self.cert_dir)):
128
+            try:
129
+                os.remove(ovs_cert)
130
+            except OSError:
131
+                vlog.warn("couldn't remove %s" % ovs_cert)
132
+
133
+        # Replace racoon's conf file with our template
134
+        self.commit()
135
+
136
+    def reload(self):
137
+        exitcode = subprocess.call([root_prefix + "/etc/init.d/racoon",
138
+                                    "reload"])
139
+        if exitcode != 0:
140
+            # Racoon is finicky about its configuration file and will
141
+            # refuse to start if it sees something it doesn't like
142
+            # (e.g., a certificate file doesn't exist).  Try restarting
143
+            # the process before giving up.
144
+            vlog.warn("attempting to restart racoon")
145
+            exitcode = subprocess.call([root_prefix + "/etc/init.d/racoon",
146
+                                        "restart"])
147
+            if exitcode != 0:
148
+                vlog.warn("couldn't reload racoon")
149
+
150
+    def commit(self):
151
+        # Rewrite the Racoon configuration file
152
+        conf_file = open(root_prefix + self.conf_file, 'w')
153
+        conf_file.write(Racoon.conf_header % (self.psk_file, self.cert_dir))
154
+
155
+        for host, vals in self.cert_hosts.iteritems():
156
+            conf_file.write(Racoon.cert_entry % (host, vals["certificate"],
157
+                    vals["private_key"], vals["peer_cert_file"]))
158
+
159
+        for host in self.psk_hosts:
160
+            conf_file.write(Racoon.psk_entry % host)
161
+
162
+        conf_file.write(Racoon.conf_footer)
163
+        conf_file.close()
164
+
165
+        # Rewrite the pre-shared keys file; it must only be readable by root.
166
+        orig_umask = os.umask(0077)
167
+        psk_file = open(root_prefix + Racoon.psk_file, 'w')
168
+        os.umask(orig_umask)
169
+
170
+        psk_file.write("# Generated by Open vSwitch...do not modify by hand!")
171
+        psk_file.write("\n\n")
172
+        for host, vals in self.psk_hosts.iteritems():
173
+            psk_file.write("%s   %s\n" % (host, vals["psk"]))
174
+        psk_file.close()
175
+
176
+        self.reload()
177
+
178
+    def _add_psk(self, host, psk):
179
+        if host in self.cert_hosts:
180
+            raise error.Error("host %s already defined for cert" % host)
181
+
182
+        self.psk_hosts[host] = psk
183
+        self.commit()
184
+
185
+    def _verify_certs(self, vals):
186
+        # Racoon will refuse to start if the certificate files don't
187
+        # exist, so verify that they're there.
188
+        if not os.path.isfile(root_prefix + vals["certificate"]):
189
+            raise error.Error("'certificate' file does not exist: %s"
190
+                    % vals["certificate"])
191
+        elif not os.path.isfile(root_prefix + vals["private_key"]):
192
+            raise error.Error("'private_key' file does not exist: %s"
193
+                    % vals["private_key"])
194
+
195
+        # Racoon won't start if a given certificate or private key isn't
196
+        # valid.  This is a weak test, but will detect the most flagrant
197
+        # errors.
198
+        if vals["peer_cert"].find("-----BEGIN CERTIFICATE-----") == -1:
199
+            raise error.Error("'peer_cert' is not in valid PEM format")
200
+
201
+        cert = open(root_prefix + vals["certificate"]).read()
202
+        if cert.find("-----BEGIN CERTIFICATE-----") == -1:
203
+            raise error.Error("'certificate' is not in valid PEM format")
204
+
205
+        cert = open(root_prefix + vals["private_key"]).read()
206
+        if cert.find("-----BEGIN RSA PRIVATE KEY-----") == -1:
207
+            raise error.Error("'private_key' is not in valid PEM format")
208
+
209
+    def _add_cert(self, host, vals):
210
+        if host in self.psk_hosts:
211
+            raise error.Error("host %s already defined for psk" % host)
212
+
213
+        if vals["certificate"] == None:
214
+            raise error.Error("'certificate' not defined for %s" % host)
215
+        elif vals["private_key"] == None:
216
+            # Assume the private key is stored in the same PEM file as
217
+            # the certificate.  We make a copy of "vals" so that we don't
218
+            # modify the original "vals", which would cause the script
219
+            # to constantly think that the configuration has changed
220
+            # in the database.
221
+            vals = vals.copy()
222
+            vals["private_key"] = vals["certificate"]
223
+
224
+        self._verify_certs(vals)
225
+
226
+        # The peer's certificate comes to us in PEM format as a string.
227
+        # Write that string to a file for Racoon to use.
228
+        f = open(root_prefix + vals["peer_cert_file"], "w")
229
+        f.write(vals["peer_cert"])
230
+        f.close()
231
+
232
+        self.cert_hosts[host] = vals
233
+        self.commit()
234
+
235
+    def _del_cert(self, host):
236
+        peer_cert_file = self.cert_hosts[host]["peer_cert_file"]
237
+        del self.cert_hosts[host]
238
+        self.commit()
239
+        try:
240
+            os.remove(root_prefix + peer_cert_file)
241
+        except OSError:
242
+            pass
243
+
244
+    def add_entry(self, host, vals):
245
+        if vals["peer_cert"]:
246
+            self._add_cert(host, vals)
247
+        elif vals["psk"]:
248
+            self._add_psk(host, vals)
249
+
250
+    def del_entry(self, host):
251
+        if host in self.cert_hosts:
252
+            self._del_cert(host)
253
+        elif host in self.psk_hosts:
254
+            del self.psk_hosts[host]
255
+            self.commit()
256
+
257
+
258
+# Class to configure IPsec on a system using racoon for IKE and setkey
259
+# for maintaining the Security Association Database (SAD) and Security
260
+# Policy Database (SPD).  Only policies for GRE are supported.
261
+class IPsec:
262
+    def __init__(self):
263
+        self.sad_flush()
264
+        self.spd_flush()
265
+        self.racoon = Racoon()
266
+        self.entries = []
267
+
268
+    def call_setkey(self, cmds):
269
+        try:
270
+            p = subprocess.Popen([root_prefix + SETKEY, "-c"],
271
+                                 stdin=subprocess.PIPE,
272
+                                 stdout=subprocess.PIPE)
273
+        except:
274
+            vlog.err("could not call %s%s" % (root_prefix, SETKEY))
275
+            sys.exit(1)
276
+
277
+        # xxx It is safer to pass the string into the communicate()
278
+        # xxx method, but it didn't work for slightly longer commands.
279
+        # xxx An alternative may need to be found.
280
+        p.stdin.write(cmds)
281
+        return p.communicate()[0]
282
+
283
+    def get_spi(self, local_ip, remote_ip, proto="esp"):
284
+        # Run the setkey dump command to retrieve the SAD.  Then, parse
285
+        # the output looking for SPI buried in the output.  Note that
286
+        # multiple SAD entries can exist for the same "flow", since an
287
+        # older entry could be in a "dying" state.
288
+        spi_list = []
289
+        host_line = "%s %s" % (local_ip, remote_ip)
290
+        results = self.call_setkey("dump ;\n").split("\n")
291
+        for i in range(len(results)):
292
+            if results[i].strip() == host_line:
293
+                # The SPI is in the line following the host pair
294
+                spi_line = results[i + 1]
295
+                if (spi_line[1:4] == proto):
296
+                    spi = spi_line.split()[2]
297
+                    spi_list.append(spi.split('(')[1].rstrip(')'))
298
+        return spi_list
299
+
300
+    def sad_flush(self):
301
+        self.call_setkey("flush;\n")
302
+
303
+    def sad_del(self, local_ip, remote_ip):
304
+        # To delete all SAD entries, we should be able to use setkey's
305
+        # "deleteall" command.  Unfortunately, it's fundamentally broken
306
+        # on Linux and not documented as such.
307
+        cmds = ""
308
+
309
+        # Delete local_ip->remote_ip SAD entries
310
+        spi_list = self.get_spi(local_ip, remote_ip)
311
+        for spi in spi_list:
312
+            cmds += "delete %s %s esp %s;\n" % (local_ip, remote_ip, spi)
313
+
314
+        # Delete remote_ip->local_ip SAD entries
315
+        spi_list = self.get_spi(remote_ip, local_ip)
316
+        for spi in spi_list:
317
+            cmds += "delete %s %s esp %s;\n" % (remote_ip, local_ip, spi)
318
+
319
+        if cmds:
320
+            self.call_setkey(cmds)
321
+
322
+    def spd_flush(self):
323
+        self.call_setkey("spdflush;\n")
324
+
325
+    def spd_add(self, local_ip, remote_ip):
326
+        cmds = ("spdadd %s %s gre -P out ipsec esp/transport//require;\n" %
327
+                    (local_ip, remote_ip))
328
+        cmds += ("spdadd %s %s gre -P in ipsec esp/transport//require;\n" %
329
+                    (remote_ip, local_ip))
330
+        self.call_setkey(cmds)
331
+
332
+    def spd_del(self, local_ip, remote_ip):
333
+        cmds = "spddelete %s %s gre -P out;\n" % (local_ip, remote_ip)
334
+        cmds += "spddelete %s %s gre -P in;\n" % (remote_ip, local_ip)
335
+        self.call_setkey(cmds)
336
+
337
+    def add_entry(self, local_ip, remote_ip, vals):
338
+        if remote_ip in self.entries:
339
+            raise error.Error("host %s already configured for ipsec"
340
+                              % remote_ip)
341
+
342
+        self.racoon.add_entry(remote_ip, vals)
343
+        self.spd_add(local_ip, remote_ip)
344
+
345
+        self.entries.append(remote_ip)
346
+
347
+    def del_entry(self, local_ip, remote_ip):
348
+        if remote_ip in self.entries:
349
+            self.racoon.del_entry(remote_ip)
350
+            self.spd_del(local_ip, remote_ip)
351
+            self.sad_del(local_ip, remote_ip)
352
+
353
+            self.entries.remove(remote_ip)
354
+
355
+
356
+def update_ipsec(ipsec, interfaces, new_interfaces):
357
+    for name, vals in interfaces.iteritems():
358
+        if name not in new_interfaces:
359
+            ipsec.del_entry(vals["local_ip"], vals["remote_ip"])
360
+
361
+    for name, vals in new_interfaces.iteritems():
362
+        orig_vals = interfaces.get(name)
363
+        if orig_vals:
364
+            # Configuration for this host already exists.  Check if it's
365
+            # changed.  We use set difference, since we want to ignore
366
+            # any local additions to "orig_vals" that we've made
367
+            # (e.g. the "peer_cert_file" key).
368
+            if set(vals.items()) - set(orig_vals.items()):
369
+                ipsec.del_entry(vals["local_ip"], vals["remote_ip"])
370
+            else:
371
+                continue
372
+
373
+        try:
374
+            ipsec.add_entry(vals["local_ip"], vals["remote_ip"], vals)
375
+        except error.Error, msg:
376
+            vlog.warn("skipping ipsec config for %s: %s" % (name, msg))
377
+
378
+
379
+def get_ssl_cert(data):
380
+    for ovs_rec in data["Open_vSwitch"].rows.itervalues():
381
+        if ovs_rec.ssl:
382
+            ssl = ovs_rec.ssl[0]
383
+            if ssl.certificate and ssl.private_key:
384
+                return (ssl.certificate, ssl.private_key)
385
+
386
+    return None
387
+
388
+
389
+def main():
390
+
391
+    parser = argparse.ArgumentParser()
392
+    parser.add_argument("database", metavar="DATABASE",
393
+                        help="A socket on which ovsdb-server is listening.")
394
+    parser.add_argument("--root-prefix", metavar="DIR",
395
+                        help="Use DIR as alternate root directory"
396
+                        " (for testing).")
397
+
398
+    ovs.vlog.add_args(parser)
399
+    ovs.daemon.add_args(parser)
400
+    args = parser.parse_args()
401
+    ovs.vlog.handle_args(args)
402
+    ovs.daemon.handle_args(args)
403
+
404
+    global root_prefix
405
+    if args.root_prefix:
406
+        root_prefix = args.root_prefix
407
+
408
+    remote = args.database
409
+    schema_helper = ovs.db.idl.SchemaHelper()
410
+    schema_helper.register_columns("Interface", ["name", "type", "options"])
411
+    schema_helper.register_columns("Open_vSwitch", ["ssl"])
412
+    schema_helper.register_columns("SSL", ["certificate", "private_key"])
413
+    idl = ovs.db.idl.Idl(remote, schema_helper)
414
+
415
+    ovs.daemon.daemonize()
416
+
417
+    ovs.unixctl.command_register("exit", "", 0, 0, unixctl_exit, None)
418
+    error, unixctl_server = ovs.unixctl.server.UnixctlServer.create(None)
419
+    if error:
420
+        ovs.util.ovs_fatal(error, "could not create unixctl server", vlog)
421
+
422
+    ipsec = IPsec()
423
+
424
+    interfaces = {}
425
+    seqno = idl.change_seqno    # Sequence number when we last processed the db
426
+    while True:
427
+        unixctl_server.run()
428
+        if exiting:
429
+            break
430
+
431
+        idl.run()
432
+        if seqno == idl.change_seqno:
433
+            poller = ovs.poller.Poller()
434
+            unixctl_server.wait(poller)
435
+            idl.wait(poller)
436
+            poller.block()
437
+            continue
438
+        seqno = idl.change_seqno
439
+
440
+        ssl_cert = get_ssl_cert(idl.tables)
441
+
442
+        new_interfaces = {}
443
+        for rec in idl.tables["Interface"].rows.itervalues():
444
+            if rec.type == "ipsec_gre" or rec.type == "ipsec_gre64":
445
+                name = rec.name
446
+                options = rec.options
447
+                peer_cert_name = "ovs-%s.pem" % (options.get("remote_ip"))
448
+                entry = {
449
+                    "remote_ip": options.get("remote_ip"),
450
+                    "local_ip": options.get("local_ip", "0.0.0.0/0"),
451
+                    "certificate": options.get("certificate"),
452
+                    "private_key": options.get("private_key"),
453
+                    "use_ssl_cert": options.get("use_ssl_cert"),
454
+                    "peer_cert": options.get("peer_cert"),
455
+                    "peer_cert_file": Racoon.cert_dir + "/" + peer_cert_name,
456
+                    "psk": options.get("psk")}
457
+
458
+                if entry["peer_cert"] and entry["psk"]:
459
+                    vlog.warn("both 'peer_cert' and 'psk' defined for %s"
460
+                              % name)
461
+                    continue
462
+                elif not entry["peer_cert"] and not entry["psk"]:
463
+                    vlog.warn("no 'peer_cert' or 'psk' defined for %s" % name)
464
+                    continue
465
+
466
+                # The "use_ssl_cert" option is deprecated and will
467
+                # likely go away in the near future.
468
+                if entry["use_ssl_cert"] == "true":
469
+                    if not ssl_cert:
470
+                        vlog.warn("no valid SSL entry for %s" % name)
471
+                        continue
472
+
473
+                    entry["certificate"] = ssl_cert[0]
474
+                    entry["private_key"] = ssl_cert[1]
475
+
476
+                new_interfaces[name] = entry
477
+
478
+        if interfaces != new_interfaces:
479
+            update_ipsec(ipsec, interfaces, new_interfaces)
480
+            interfaces = new_interfaces
481
+
482
+    unixctl_server.close()
483
+    idl.close()
484
+
485
+
486
+if __name__ == '__main__':
487
+    try:
488
+        main()
489
+    except SystemExit:
490
+        # Let system.exit() calls complete normally
491
+        raise
492
+    except:
493
+        vlog.exception("traceback")
494
+        sys.exit(ovs.daemon.RESTART_EXIT_CODE)

+ 1
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/patches/series View File

@@ -0,0 +1 @@
1
+

+ 68
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/rules View File

@@ -0,0 +1,68 @@
1
+#!/usr/bin/make -f
2
+# -*- makefile -*-
3
+#export DH_VERBOSE=1
4
+
5
+%:
6
+	dh $@ --with autoreconf,python2,systemd --parallel
7
+
8
+# use --as-needed only if supported by dh-autoreconf (to simplify backporting)
9
+DH_AS_NEEDED=$(shell dpkg --compare-versions $$(dpkg --status dh-autoreconf | grep Version | cut -d' ' -f2) ge 6 && echo --as-needed)
10
+override_dh_autoreconf:
11
+	dh_autoreconf $(DH_AS_NEEDED)
12
+
13
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
14
+PARALLEL = -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
15
+else
16
+PARALLEL =
17
+endif
18
+
19
+override_dh_auto_configure:
20
+	dh_auto_configure -- --enable-ssl --with-dpdk=/usr $(DATAPATH_CONFIGURE_OPTS)
21
+
22
+override_dh_auto_test:
23
+# NOTE(jamespage): skip tests on powerpc until
24
+# https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1483572
25
+# is resolved
26
+ifneq (powerpc, $(DEB_BUILD_ARCH))
27
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
28
+	if $(MAKE) check TESTSUITEFLAGS='$(PARALLEL)' || \
29
+                $(MAKE) check TESTSUITEFLAGS='--recheck'; then :; \
30
+	else \
31
+		cat tests/testsuite.log; \
32
+		exit 1; \
33
+	fi
34
+endif
35
+endif # powerpc
36
+
37
+override_dh_auto_build:
38
+	dh_auto_build -- distdir=openvswitch
39
+
40
+override_dh_auto_clean:
41
+	rm -f python/ovs/*.pyc python/ovs/db/*.pyc
42
+	dh_auto_clean
43
+
44
+override_dh_install:
45
+	install -D vswitchd/ovs-vswitchd \
46
+		$(CURDIR)/debian/openvswitch-switch-dpdk/usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
47
+
48
+override_dh_installinit:
49
+	:
50
+
51
+override_dh_auto_install:
52
+	:
53
+
54
+# Helper target for creating snapshots from upstream git
55
+DATE=$(shell date +%Y%m%d)
56
+# Upstream branch to track
57
+BRANCH=branch-2.4
58
+
59
+get-orig-snapshot:
60
+	rm -Rf openvswitch-upstream
61
+	git clone https://github.com/openvswitch/ovs openvswitch-upstream
62
+	cd openvswitch-upstream && \
63
+		git checkout -b $(BRANCH) remotes/origin/$(BRANCH) && \
64
+		export COMMIT=`git rev-parse --short HEAD` && \
65
+		export UPSTREAM_VERSION=`head -1 NEWS | awk '{ print $$1 }' | sed 's/v//'` && \
66
+		git archive --format tgz --prefix=openvswitch-$$UPSTREAM_VERSION+git$(DATE)/ \
67
+			-o ../../openvswitch_$$UPSTREAM_VERSION~git$(DATE).$$COMMIT.orig.tar.gz $(BRANCH)
68
+	rm -Rf openvswitch-upstream

+ 1
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/source/format View File

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

+ 23
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/tests/common View File

@@ -0,0 +1,23 @@
1
+#!/bin/sh
2
+
3
+set -e
4
+
5
+update-alternatives --set ovs-vswitchd \
6
+    /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
7
+service openvswitch-switch restart
8
+
9
+modprobe openvswitch || true
10
+
11
+echo "kernel modules loaded: "
12
+# Check that ovs loaded
13
+lsmod | grep "openvswitch"
14
+echo "OK"
15
+
16
+echo "Checking daemons: "
17
+pgrep ovs-vswitchd
18
+pgrep ovsdb-server
19
+echo "OK"
20
+
21
+echo -n "running openflow tests using mininet"
22
+python `dirname $0`/openflow.py 2>&1
23
+echo "OK"

+ 4
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/tests/control View File

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

+ 5
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/tests/kernel View File

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

+ 7
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/tests/openflow View File

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

+ 66
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/tests/openflow.py View File

@@ -0,0 +1,66 @@
1
+import unittest
2
+import logging
3
+from mininet.net import Mininet
4
+import mininet.log as log
5
+from mininet.node import OVSController, OVSKernelSwitch
6
+
7
+Switch = OVSKernelSwitch
8
+Controller = OVSController
9
+logging.basicConfig(level=logging.DEBUG)
10
+log.setLogLevel('info')
11
+
12
+
13
+class BasicOpenflowTest(unittest.TestCase):
14
+
15
+    def addHost(self, N):
16
+        logging.debug("Creating host h%s and add to net.", N)
17
+        name = 'h%d' % N
18
+        ip = '10.0.0.%d' % N
19
+        return self.net.addHost(name, ip=ip)
20
+
21
+    def setUp(self):
22
+        self.net = Mininet(controller=Controller, switch=Switch)
23
+
24
+        logging.info("Creating controllers")
25
+        self.net.addController('c1', command='ovs-testcontroller')
26
+
27
+        logging.info("Creating switches")
28
+        s1 = self.net.addSwitch('s1', protocols="OpenFlow10")
29
+        s2 = self.net.addSwitch('s2', protocols="OpenFlow10")
30
+
31
+        logging.info("Creating hosts (7 on each switch)")
32
+        hosts1 = [self.addHost(n) for n in (1, 2, 3, 4, 5, 6, 7)]
33
+        hosts2 = [self.addHost(n) for n in (8, 9, 10, 11, 12, 13, 14)]
34
+
35
+        logging.info("Creating links")
36
+        for h in hosts1:
37
+            self.net.addLink(s1, h)
38
+        for h in hosts2:
39
+            self.net.addLink(s2, h)
40
+        self.net.addLink(s1, s2)
41
+
42
+        logging.info("Starting network")
43
+        self.net.start()
44
+
45
+    def testPingAll(self):
46
+        logging.info("Testing network")
47
+        packetLoss = self.net.pingAll()
48
+        self.assertTrue(
49
+            packetLoss == 0,
50
+            "Packet loss during ping test %s" %
51
+            packetLoss)
52
+
53
+    def testIPerfTCP(self):
54
+        logging.info("Running TCP performance test")
55
+        self.net.iperf()
56
+
57
+    def testIPerfUDP(self):
58
+        logging.info("Running UDP performance test")
59
+        self.net.iperf(l4Type='UDP')
60
+
61
+    def tearDown(self):
62
+        logging.info("Stopping network")
63
+        self.net.stop()
64
+
65
+if __name__ == '__main__':
66
+    unittest.main()

+ 2
- 0
ovs_build/openvswitch-dpdk_2.5.90/debian/watch View File

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

Loading…
Cancel
Save