Re: [ovs-dev] [PATCH v2 python3 6/6] Require Python 3 and remove support for Python 2.

2019-09-18 Thread 0-day Robot
Bleep bloop.  Greetings Ben Pfaff, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
ERROR: Author Ben Pfaff  needs to sign off.
WARNING: Line is 89 characters long (recommended limit is 79)
#556 FILE: debian/control:44:
Depends: dkms (>= 1.95), libc6-dev, libelf-dev, make, ${misc:Depends}, 
${python3:Depends}

Lines checked: 3544, Warnings: 1, Errors: 1


Please check this out.  If you feel there has been an error, please email 
acon...@redhat.com

Thanks,
0-day Robot
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH v2 python3 4/6] Recommend Sphinx from Python 3 in documentation and packaging.

2019-09-18 Thread Ben Pfaff
Signed-off-by: Ben Pfaff 
---
 .travis.yml   | 2 +-
 Documentation/intro/install/documentation.rst | 6 +++---
 Documentation/intro/install/rhel.rst  | 2 +-
 rhel/openvswitch-fedora.spec.in   | 2 +-
 rhel/openvswitch.spec.in  | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 370b3d0a6c98..68026312ba84 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,7 +20,7 @@ addons:
   - libjemalloc1
   - libjemalloc-dev
   - libnuma-dev
-  - python-sphinx
+  - python3-sphinx
   - libelf-dev
   - selinux-policy-dev
   - libunbound-dev
diff --git a/Documentation/intro/install/documentation.rst 
b/Documentation/intro/install/documentation.rst
index d7eb25d9ef06..acf5b3a3ff33 100644
--- a/Documentation/intro/install/documentation.rst
+++ b/Documentation/intro/install/documentation.rst
@@ -45,11 +45,11 @@ Sphinx. A detailed guide on installing Sphinx in many 
environments is available
 on the `Sphinx website`__ but, for most Linux distributions, you can install
 with your package manager. For example, on Debian/Ubuntu run::
 
-$ sudo apt-get install python-sphinx
+$ sudo apt-get install python3-sphinx
 
 Similarly, on RHEL/Fedora run::
 
-$ sudo dnf install python-sphinx
+$ sudo dnf install python3-sphinx
 
 A ``requirements.txt`` is also provided in the ``/Documentation``, should you
 wish to install using ``pip``::
@@ -71,7 +71,7 @@ available on the `Sphinx website`__.
 Building
 
 
-Once Sphinx installed, the documentation can be built using the provided
+Once Sphinx is installed, the documentation can be built using the provided
 Makefile targets::
 
 $ make docs-check
diff --git a/Documentation/intro/install/rhel.rst 
b/Documentation/intro/install/rhel.rst
index 6f062e89446a..0e5ca2743ef5 100644
--- a/Documentation/intro/install/rhel.rst
+++ b/Documentation/intro/install/rhel.rst
@@ -89,7 +89,7 @@ And to install specific dependencies, use yum-builddep tool::
 
 Once that is completed, remove the file ``/tmp/ovs.spec``.
 
-If python-sphinx package is not available in your version of RHEL, you can
+If python3-sphinx package is not available in your version of RHEL, you can
 install it via pip with 'pip install sphinx'.
 
 Open vSwitch requires python 2.7 or newer which is not available in older
diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in
index 9c752ff4ed4e..9c407123296a 100644
--- a/rhel/openvswitch-fedora.spec.in
+++ b/rhel/openvswitch-fedora.spec.in
@@ -79,7 +79,7 @@ BuildRequires: python3-devel
 BuildRequires: desktop-file-utils
 BuildRequires: groff graphviz
 BuildRequires: checkpolicy, selinux-policy-devel
-BuildRequires: /usr/bin/sphinx-build
+BuildRequires: /usr/bin/sphinx3-build
 # make check dependencies
 BuildRequires: %{_py2}-twisted%{?rhel:-core} %{_py2}-zope-interface %{_py2}-six
 BuildRequires: procps-ng
diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in
index c8361f5f29ff..7f27fedd6886 100644
--- a/rhel/openvswitch.spec.in
+++ b/rhel/openvswitch.spec.in
@@ -37,7 +37,7 @@ BuildRequires: python-six
 BuildRequires: openssl-devel
 BuildRequires: checkpolicy, selinux-policy-devel
 BuildRequires: autoconf, automake, libtool
-BuildRequires: python-sphinx
+BuildRequires: python3-sphinx
 BuildRequires: unbound-devel
 
 %bcond_without check
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH v2 python3 5/6] xenserver: Make Python files parse in Python 3 also.

2019-09-18 Thread Ben Pfaff
I don't actually have any idea whether XenServer has moved
forward to Python 3 these days, but these files are still
OK in Python 2.x as well.

The rest of the Python files in OVS seem to already be OK in
Python 3.

Signed-off-by: Ben Pfaff 
---
 ...xensource_libexec_InterfaceReconfigureBridge.py | 10 +-
 ..._lib_xsconsole_plugins-base_XSFeatureVSwitch.py | 14 +++---
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py 
b/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
index a93e438667de..5cc22319a9eb 100644
--- a/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
+++ b/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
@@ -65,7 +65,7 @@ def load_bonding_driver():
 f = open(sysfs_bonding_masters, "w")
 f.write("-bond0")
 f.close()
-except IOError, e:
+except IOError as e:
 log("Failed to load bonding driver: %s" % e)
 
 def bonding_driver_loaded():
@@ -92,7 +92,7 @@ def __create_bond_device(name):
 f = open(sysfs_bonding_masters, "w")
 f.write("+" + name)
 f.close()
-except IOError, e:
+except IOError as e:
 log("Failed to create %s: %s" % (name, e))
 
 def create_bond_device(pif):
@@ -114,7 +114,7 @@ def __destroy_bond_device(name):
 f.write("-" + name)
 f.close()
 retries = 0
-except IOError, e:
+except IOError as e:
 time.sleep(0.5)
 else:
 log("bond master %s does not exist, not destroying" % name)
@@ -355,8 +355,8 @@ def _configure_bond_interface(pif):
 
 # override defaults with values from other-config whose keys being with 
"bond-"
 oc = pifrec['other_config']
-overrides = filter(lambda (key,val): key.startswith("bond-"), oc.items())
-overrides = map(lambda (key,val): (key[5:], val), overrides)
+overrides = filter(lambda key,val: key.startswith("bond-"), oc.items())
+overrides = map(lambda key,val: (key[5:], val), overrides)
 bond_options.update(overrides)
 
 # write the bond options to ifcfg-bondX
diff --git a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py 
b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
index fdbbc0ed4c89..8946917d526e 100644
--- a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
+++ b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
@@ -39,7 +39,7 @@ class VSwitchService:
 def version(self):
 try:
 output = ShellPipe(["service", self.name, "version"]).Stdout()
-except StandardError, e:
+except StandardError as e:
 XSLogError("vswitch version retrieval error: " + str(e))
 return ""
 for line in output:
@@ -50,7 +50,7 @@ class VSwitchService:
 def status(self):
 try:
 output = ShellPipe(["service", self.name, "status"]).Stdout()
-except StandardError, e:
+except StandardError as e:
 XSLogError("vswitch status retrieval error: " + str(e))
 return ""
 if len(output) == 0:
@@ -69,7 +69,7 @@ class VSwitchService:
 def restart(self):
 try:
 ShellPipe(["service", self.name, "restart"]).Call()
-except StandardError, e:
+except StandardError as e:
 XSLogError("vswitch restart error: " + str(e))
 
 @classmethod
@@ -88,7 +88,7 @@ class VSwitchConfig:
 try:
 arg = [vsctl, "-vconsole:off"] + action.split()
 output = ShellPipe(arg).Stdout()
-except StandardError, e:
+except StandardError as e:
 XSLogError("config retrieval error: " + str(e))
 return ""
 
@@ -189,7 +189,7 @@ class VSwitchControllerDialogue(Dialogue):
 try:
 self.SetController(self.controller)
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Setting 
controller successful")))
-except Exception, e:
+except Exception as e:
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Setting 
controller failed")))
 
 self.ChangeState("INITIAL")
@@ -213,7 +213,7 @@ class VSwitchControllerDialogue(Dialogue):
 try:
 self.SetController(None)
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Controller deletion 
successful")))
-except Exception, e:
+except Exception as e:
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Controller deletion 
failed")))
 
 def syncController(self):
@@ -222,7 +222,7 @@ class VSwitchControllerDialogue(Dialogue):
 try:
 Task.Sync(lambda s: self._updateThisServer(s))
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Resyncing controller 
config successful")))
-except Exception, e:
+except Exception as e:
 

[ovs-dev] [PATCH v2 python3 3/6] Documentation: Work with sphinx-build for Python 3 also.

2019-09-18 Thread Ben Pfaff
There's nothing in OVS specific to Sphinx for Python 2, but the
compile-time check only looked for a binary named "sphinx-build", which is
typically provided only for Python 2.  With Python 3, the binary is
typically called "sphinx-build-3".  With this commit, either name is
accepted.

Signed-off-by: Ben Pfaff 
---
 Documentation/automake.mk |  1 -
 m4/openvswitch.m4 | 13 -
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/Documentation/automake.mk b/Documentation/automake.mk
index cd68f3b1571e..e1384851d330 100644
--- a/Documentation/automake.mk
+++ b/Documentation/automake.mk
@@ -115,7 +115,6 @@ EXTRA_DIST += $(DOC_SOURCE)
 
 # You can set these variables from the command line.
 SPHINXOPTS =
-SPHINXBUILD = sphinx-build
 SPHINXSRCDIR = $(srcdir)/Documentation
 SPHINXBUILDDIR = $(builddir)/Documentation/_build
 
diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
index cd6b51d86c16..4379d16b4203 100644
--- a/m4/openvswitch.m4
+++ b/m4/openvswitch.m4
@@ -474,15 +474,10 @@ AC_DEFUN([OVS_CHECK_FLAKE8],
 
 dnl Checks for sphinx.
 AC_DEFUN([OVS_CHECK_SPHINX],
-  [AC_CACHE_CHECK(
-[for sphinx],
-[ovs_cv_sphinx],
-[if type sphinx-build >/dev/null 2>&1; then
-   ovs_cv_sphinx=yes
- else
-   ovs_cv_sphinx=no
- fi])
-   AM_CONDITIONAL([HAVE_SPHINX], [test "$ovs_cv_sphinx" = yes])])
+  [AC_CHECK_PROGS(
+ [SPHINXBUILD], [sphinx-build-3 sphinx-build-2 sphinx-build], [none])
+   AC_ARG_VAR([SPHINXBUILD])
+   AM_CONDITIONAL([HAVE_SPHINX], [test "$ac_cv_prog_SPHINXBUILD" != none])])
 
 dnl Checks for dot.
 AC_DEFUN([OVS_CHECK_DOT],
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH v2 python3 2/6] travis: Dump config.log if make fails.

2019-09-18 Thread Ben Pfaff
This is sometimes useful for debugging.

Signed-off-by: Ben Pfaff 
---
 .travis/linux-build.sh | 2 +-
 .travis/osx-build.sh   | 8 ++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 661d5e89ed70..89496e2a275b 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -132,7 +132,7 @@ function build_ovs()
 make -j4
 popd
 else
-make -j4
+make -j4 || { cat config.log; exit 1; }
 fi
 }
 
diff --git a/.travis/osx-build.sh b/.travis/osx-build.sh
index 909173061a71..bf2c13fa3c1a 100755
--- a/.travis/osx-build.sh
+++ b/.travis/osx-build.sh
@@ -13,9 +13,13 @@ function configure_ovs()
 configure_ovs $EXTRA_OPTS $*
 
 if [ "$CC" = "clang" ]; then
-make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
+set make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
 else
-make CFLAGS="$CFLAGS $BUILD_ENV"
+set make CFLAGS="$CFLAGS $BUILD_ENV"
+fi
+if ! "$@"; then
+cat config.log
+exit 1
 fi
 if [ "$TESTSUITE" ] && [ "$CC" != "clang" ]; then
 if ! make distcheck RECHECK=yes; then
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH v2 python3 0/6] Remove Python 2 support

2019-09-18 Thread Ben Pfaff
Python 2 will reach end-of-life at the beginning of 2020, in only
a few months.  This series removes support for Python 2 from OVS
and requires Python 3.

v1->v2:
- Fixed build problems found by travis.
- Added a couple of commits at the beginning to make travis
  failures more debuggable.
- Fix test for sphinx-build, which always treated it as present.
- Use pip3 on Mac OSX instead of pip2.
- Fix "#! @PYTHON@" lines in numerous scripts to read "#! @PYTHON3@".

Ben Pfaff (6):
  travis: Obtain testsuite logs from the correct directory.
  travis: Dump config.log if make fails.
  Documentation: Work with sphinx-build for Python 3 also.
  Recommend Sphinx from Python 3 in documentation and packaging.
  xenserver: Make Python files parse in Python 3 also.
  Require Python 3 and remove support for Python 2.

 .cirrus.yml   |   3 +-
 .travis.yml   |   2 +-
 .travis/linux-build.sh|   4 +-
 .travis/osx-build.sh  |  10 +-
 .travis/osx-prepare.sh|   4 +-
 Documentation/automake.mk |   1 -
 Documentation/intro/install/documentation.rst |   6 +-
 Documentation/intro/install/fedora.rst|   4 +-
 Documentation/intro/install/general.rst   |   8 +-
 Documentation/intro/install/netbsd.rst|  10 +-
 Documentation/intro/install/rhel.rst  |   4 +-
 Documentation/intro/install/windows.rst   |   4 +-
 Documentation/intro/install/xenserver.rst |   4 +-
 Makefile.am   |  12 +-
 Vagrantfile   |  24 +-
 Vagrantfile-FreeBSD   |   2 +-
 appveyor.yml  |   2 +-
 build-aux/check-structs   |   2 +-
 build-aux/dpdkstrip.py|   2 +-
 build-aux/extract-ofp-actions |   2 +-
 build-aux/extract-ofp-errors  |   2 +-
 build-aux/extract-ofp-fields  |   2 +-
 build-aux/extract-ofp-msgs|   2 +-
 build-aux/sodepends.py|   2 +-
 build-aux/soexpand.py |   2 +-
 build-aux/text2c  |   2 +-
 build-aux/xml2nroff   |   2 +-
 configure.ac  |   3 +-
 debian/.gitignore |   1 +
 debian/automake.mk|   4 +-
 debian/control|  35 +-
 debian/openvswitch-test.install   |   2 +-
 debian/python-openvswitch.install |   1 -
 ...nvswitch.dirs => python3-openvswitch.dirs} |   0
 debian/python3-openvswitch.install|   1 +
 debian/rules  |   2 +-
 include/openflow/automake.mk  |   2 -
 ipsec/ovs-monitor-ipsec.in|   2 +-
 m4/openvswitch.m4 | 112 +
 manpages.mk   |   6 -
 ovn/automake.mk   |   8 +-
 ovsdb/ovsdb-dot.in|   2 +-
 ovsdb/ovsdb-idlc.in   |   2 +-
 python/automake.mk|   9 +-
 rhel/openvswitch-fedora.spec.in   |   2 +-
 rhel/openvswitch.spec.in  |   2 +-
 tests/atlocal.in  |  42 +-
 tests/automake.mk |   2 +-
 tests/check-structs.at|   3 +-
 tests/checkpatch.at   |  17 +-
 tests/daemon-py.at| 453 --
 tests/flowgen.py  |   2 +-
 tests/interface-reconfigure.at|   2 +-
 tests/json.at |  57 +--
 tests/jsonrpc-py.at   |  67 +--
 tests/library.at  |  42 +-
 tests/ofproto-dpif.at |  10 +-
 tests/ofproto.at  |   4 +-
 tests/ovs-macros.at   |   2 +-
 tests/ovs-xapi-sync.at|   3 +-
 tests/ovsdb-data.at   |   9 +-
 tests/ovsdb-idl.at| 188 ++--
 tests/ovsdb-macros.at |  52 +-
 tests/ovsdb-monitor.at|  20 +-
 tests/reconnect.at|  13 +-
 tests/system-common-macros.at |   2 +-
 tests/system-kmod-macros.at   |   3 +-
 tests/system-traffic.at   |  16 +-
 tests/system-userspace-macros.at  |   4 +-
 tests/unixctl-py.at   | 208 
 tests/vlog.at | 219 -
 utilities/automake.mk |   5 +-
 utilities/bugtool/automake.mk |   2 -
 utilities/bugtool/ovs-bugtool.in  |   2 +-
 

[ovs-dev] [PATCH v2 python3 1/6] travis: Obtain testsuite logs from the correct directory.

2019-09-18 Thread Ben Pfaff
These days Automake uses _build/sub for its distcheck builds, not
plain _build.  (I don't know whether that is a change from previous
versions.)

Signed-off-by: Ben Pfaff 
---
 .travis/linux-build.sh | 2 +-
 .travis/osx-build.sh   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 1577ae51659d..661d5e89ed70 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -172,7 +172,7 @@ if [ "$TESTSUITE" ]; then
 export DISTCHECK_CONFIGURE_FLAGS="$OPTS"
 if ! make distcheck TESTSUITEFLAGS=-j4 RECHECK=yes; then
 # testsuite.log is necessary for debugging.
-cat */_build/tests/testsuite.log
+cat */_build/sub/tests/testsuite.log
 exit 1
 fi
 else
diff --git a/.travis/osx-build.sh b/.travis/osx-build.sh
index f11d7b9af5d6..909173061a71 100755
--- a/.travis/osx-build.sh
+++ b/.travis/osx-build.sh
@@ -20,7 +20,7 @@ fi
 if [ "$TESTSUITE" ] && [ "$CC" != "clang" ]; then
 if ! make distcheck RECHECK=yes; then
 # testsuite.log is necessary for debugging.
-cat */_build/tests/testsuite.log
+cat */_build/sub/tests/testsuite.log
 exit 1
 fi
 fi
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH] fatal-signal: Catch SIGSEGV and print backtrace.

2019-09-18 Thread Ben Pfaff
On Wed, Sep 18, 2019 at 01:16:37PM -0700, William Tu wrote:
> Thanks for the feedback.
> 
> On Wed, Sep 18, 2019 at 11:30 AM Ben Pfaff  wrote:
> >
> > On Tue, Sep 17, 2019 at 04:13:24PM -0700, William Tu wrote:
> > > The patch catches the SIGSEGV signal and prints the backtrace
> > > using libunwind, hopefully makes it easier to debug.
> > >
> > > Signed-off-by: William Tu 
> >
> > I guess my experience is that this sort of thing is sometimes useful but
> > ultimately causes problems because it tries to call a lot of functions
> > that a signal handler is not supposed to call.
> 
> Do you mean the show_backtrace() tries to call too many functions?
> What's the concern about calling lots of functions in a signal handler?

There is no concern about the number of functions but about the specific
ones.  Most C library functions are not async-signal-safe, meaning that
it is not safe to call them from a signal handler.  There is a list of
functions guaranteed to be async-signal-safe in section 2.4.3 "Signal
Actions" of the System Interfaces volume of POSIX.  You can find it
here: https://pubs.opengroup.org/onlinepubs/9699919799/.  Notably, it
doesn't contain the stdio functions like printf() and fflush(), or
syslog, and those functions are likely to malfunction if the signal
handler interrupts some ongoing operation on a stream.  There's a risk
of being caught in some kind of SIGSEGV loop.

I think there needs to be a lot of care if we're going to do this by
default.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] 13-09-2019 RESULTS.

2019-09-18 Thread MICROSOFT CORPORATION via dev
Microsoft UK
Regional Office
Waverley Gate
2-4 Waterloo Place
Edinburgh EH1 3EG
United Kingdom.
 Dear ovs-dev@openvswitch.org
 Congratulation to you as we bring to your notice the results of the Microsoft 
2019 Product Award Draws held on Friday 13th September 2019. We are happy to 
inform you that you have emerged a winner in the third Category of our 
promotional draws. Participants were selected through a computer ballot system 
drawn from our email database of all Microsoft Product Users worldwide as part 
of our annual Product Award in appreciation to your patronage on Microsoft 
Products.
 Yours Faithfully.
Cindy Helen Rose
CEO
Microsoft UK
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] 13-09-2019 RESULTS.

2019-09-18 Thread MICROSOFT CORPORATION via dev
Microsoft UK
Regional Office
Waverley Gate
2-4 Waterloo Place
Edinburgh EH1 3EG
United Kingdom.
 Dear d...@openvswitch.org
 Congratulation to you as we bring to your notice the results of the Microsoft 
2019 Product Award Draws held on Friday 13th September 2019. We are happy to 
inform you that you have emerged a winner in the third Category of our 
promotional draws. Participants were selected through a computer ballot system 
drawn from our email database of all Microsoft Product Users worldwide as part 
of our annual Product Award in appreciation to your patronage on Microsoft 
Products.
 Yours Faithfully.
Cindy Helen Rose
CEO
Microsoft UK
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] Fabrica de Bolsas de Friselina. Precio de fabrica

2019-09-18 Thread Starpack via dev
( http://www.starpack.com.ar/ )



 
Estimado Cliente, Envio Precios de Promocion de Septiembre para la 
Reposicon de tus Bolsas Ecologicas de Friselina y Friselina Laminada , Como 
bien saben Confeccionamos nuestras Bolsas Con Friselina de Calidad Premiun 
para que tu negocio se destaque del resto y tengas publicidad constante.  
 Fabricamos a partir de 1.000u  Podes pedirnos cotizacion por cualquier 
otra medida.

Starpack El Mejor Precio y Calidad Siempre!!!

Este mes de Septiembre te damos un descuento en los precios de Promocion.  
Si, 5% de descuento en la compra de 5.000u de tus Bolsas ecologicas. 




 
Promociones mes de Septiembre en Friselina 80grs Premiun Blanca, Natural o 
Negra x 5.000u Si es otra medida Tambien tiene descuento del 5% de 
descuento a partir de 5.000u. Precios + iva.



30x40x10 fuelle en base manija Asas 2 caras 1 color x 5.000u $9.49 -
5% ($9.02+iva)
40x40x10 fuelle en base manija Asas 2 caras 1 color x 5.000u $11.32-5% 
($10.76+iva)
60x40x10 fuelle en base manija Asas 2 caras 1 color x 5.000u $15.42 -5%  
(14.64+iva)   



 

20x40x10 fuelle en base manija Riñon 2 caras 1 color x5.000u $5.42-
5% ($5.15+ iva)
30x40x10 fuelle en base manija Riñon 2 caras 1 color x5.000u $7.25 -
5% ($6.89+iva)
40x40x10 fuelle en base manija Riñon 2 caras 1 color x5.000u $9.20-5% 
 ($8.74+iva)




20x30 Bolsa Residuos Palanca de Auto 1 cara 1 color  x5.000u $3.39 -5% 
(3.22+iva)



Bolsas de Friselina Laminada y Metalizadas Consultar a partir de 1.000u

Los Precios no incluyen iva, el polimero de impresion es a cargo del 
Comprador se abona por unica vez y sirve para siempre, el costo es de $2.25 
cm2 + iva por color y por cara.

Compra Directo de Fabrica
Atencion Especial a Revendedores de todo el pais . .

VISITA NUESTRO SITIO WEB » ( http://www.starpack.com.ar/ )

Enviar Mensaje de Whatsapp» 
( https://web.whatsapp.com/send?phone=5491165004968=Hola... )

.
ENVIAR UNA CONSULTA » ( mailto:ven...@starpack.com.ar )
Bolsas Ecologicas Reutilizables la Mejor
Publicidad para tu Negocio!

  Horario de Atención Telefonica: Lunes a Viernes de 9 a 18hs 
  Empresa:  011-47340490 |  Lineas Rotativas
  Whatsapp: 11 6500 4968
  Buenos Aires, Argentina


Este es un e-mail legal y contiene informacion de servicios y productos que 
consideramos pueden ser de su interes.
De acuerdo con la nueva Ley argentina Nro. 26.032, la libre distribucion de 
este e-mail esta
autorizada por tratarse de propositos de informacion, sin embargo, si le 
hemos causado alguna molestia por el mismo, le rogamos acepte nuestras 
disculpas.

Si lo desea puede ser quitado de nuestra lista de correos solicitandolo a 
baj...@yopmail.com
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH] fatal-signal: Catch SIGSEGV and print backtrace.

2019-09-18 Thread William Tu
Thanks for the feedback.

On Wed, Sep 18, 2019 at 11:30 AM Ben Pfaff  wrote:
>
> On Tue, Sep 17, 2019 at 04:13:24PM -0700, William Tu wrote:
> > The patch catches the SIGSEGV signal and prints the backtrace
> > using libunwind, hopefully makes it easier to debug.
> >
> > Signed-off-by: William Tu 
>
> I guess my experience is that this sort of thing is sometimes useful but
> ultimately causes problems because it tries to call a lot of functions
> that a signal handler is not supposed to call.

Do you mean the show_backtrace() tries to call too many functions?
What's the concern about calling lots of functions in a signal handler?

>
> It might be a good idea to put some of this in lib/backtrace.[ch] and
> provide some way to enable it at runtime.

I'm hoping this can be enabled by default, so debugging on systems
without ovs debug symbol package or gdb is easier.

Regards,
William
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH python3 4/4] Require Python 3 and remove support for Python 2.

2019-09-18 Thread 0-day Robot
Bleep bloop.  Greetings Ben Pfaff, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
ERROR: Author Ben Pfaff  needs to sign off.
WARNING: Line is 89 characters long (recommended limit is 79)
#530 FILE: debian/control:44:
Depends: dkms (>= 1.95), libc6-dev, libelf-dev, make, ${misc:Depends}, 
${python3:Depends}

WARNING: Line has non-spaces leading whitespace
#800 FILE: m4/openvswitch.m4:398:
AC_MSG_ERROR([Missing Python six library.])

Lines checked: 3369, Warnings: 2, Errors: 1


Please check this out.  If you feel there has been an error, please email 
acon...@redhat.com

Thanks,
0-day Robot
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH python3 2/4] Recommend Sphinx from Python 3 in documentation and packaging.

2019-09-18 Thread 0-day Robot
Bleep bloop.  Greetings Ben Pfaff, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
ERROR: Author Ben Pfaff  needs to sign off.
Lines checked: 95, Warnings: 0, Errors: 1


Please check this out.  If you feel there has been an error, please email 
acon...@redhat.com

Thanks,
0-day Robot
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH] ovs-bugtool: Add ip -s -s to get_device_stats.out.

2019-09-18 Thread Ben Pfaff
On Mon, Sep 16, 2019 at 09:31:36AM -0700, Gregory Rose wrote:
> 
> On 9/12/2019 10:07 AM, William Tu wrote:
> > The patch adds 'ip -s -s' to file get_device_stats.out to collect
> > device statistics. When debugging tunnel related issues, the command
> > shows much more detailed counters, ex: frame, crc, carrier, helping
> > to understand the root cause when packets are dropped.
> > 
> > Signed-off-by: William Tu 
> > ---
> >   utilities/bugtool/plugins/network-status/openvswitch.xml | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/utilities/bugtool/plugins/network-status/openvswitch.xml 
> > b/utilities/bugtool/plugins/network-status/openvswitch.xml
> > index d39867c6e4d0..b0e7a15103b0 100644
> > --- a/utilities/bugtool/plugins/network-status/openvswitch.xml
> > +++ b/utilities/bugtool/plugins/network-status/openvswitch.xml
> > @@ -40,4 +40,5 @@
> >> filters="ovs">/usr/share/openvswitch/scripts/ovs-bugtool-ovs-ofctl-loop-over-bridges
> >  "dump-groups"
> >> repeat="2">/usr/share/openvswitch/scripts/ovs-bugtool-ovs-ofctl-loop-over-bridges
> >  "dump-group-stats"
> >> filters="ovs">/usr/share/openvswitch/scripts/ovs-bugtool-get-dpdk-nic-numa
> > +ip -s -s link 
> > show
> >   
> 
> LGTM
> 
> Reviewed-by: Greg Rose 

Thanks, applied to master.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH 1/1] stream_ssl: fix important memory leak in ssl_connect() function

2019-09-18 Thread Ben Pfaff
On Mon, Sep 16, 2019 at 04:44:11PM -0700, William Tu wrote:
> On Mon, Sep 16, 2019 at 12:20 AM Damijan Skvarc  
> wrote:
> >
> > Hi William and thanks for your review.
> > I agree with your proposed changes.
> > Is there still some action expected from me?
> >
> > thanks, Damijan
> 
> No, thanks for the patch.
> Let's wait to see if others have more feedback.

Has the revised patch been sent out formally?
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH] fatal-signal: Catch SIGSEGV and print backtrace.

2019-09-18 Thread Ben Pfaff
On Tue, Sep 17, 2019 at 04:13:24PM -0700, William Tu wrote:
> The patch catches the SIGSEGV signal and prints the backtrace
> using libunwind, hopefully makes it easier to debug.
> 
> Signed-off-by: William Tu 

I guess my experience is that this sort of thing is sometimes useful but
ultimately causes problems because it tries to call a lot of functions
that a signal handler is not supposed to call.

It might be a good idea to put some of this in lib/backtrace.[ch] and
provide some way to enable it at runtime.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH python3 3/4] xenserver: Make Python files parse in Python 3 also.

2019-09-18 Thread Ben Pfaff
I don't actually have any idea whether XenServer has moved
forward to Python 3 these days, but these files are still
OK in Python 2.x as well.

The rest of the Python files in OVS seem to already be OK in
Python 3.

Signed-off-by: Ben Pfaff 
---
 ...xensource_libexec_InterfaceReconfigureBridge.py | 10 +-
 ..._lib_xsconsole_plugins-base_XSFeatureVSwitch.py | 14 +++---
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py 
b/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
index a93e438667de..5cc22319a9eb 100644
--- a/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
+++ b/xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py
@@ -65,7 +65,7 @@ def load_bonding_driver():
 f = open(sysfs_bonding_masters, "w")
 f.write("-bond0")
 f.close()
-except IOError, e:
+except IOError as e:
 log("Failed to load bonding driver: %s" % e)
 
 def bonding_driver_loaded():
@@ -92,7 +92,7 @@ def __create_bond_device(name):
 f = open(sysfs_bonding_masters, "w")
 f.write("+" + name)
 f.close()
-except IOError, e:
+except IOError as e:
 log("Failed to create %s: %s" % (name, e))
 
 def create_bond_device(pif):
@@ -114,7 +114,7 @@ def __destroy_bond_device(name):
 f.write("-" + name)
 f.close()
 retries = 0
-except IOError, e:
+except IOError as e:
 time.sleep(0.5)
 else:
 log("bond master %s does not exist, not destroying" % name)
@@ -355,8 +355,8 @@ def _configure_bond_interface(pif):
 
 # override defaults with values from other-config whose keys being with 
"bond-"
 oc = pifrec['other_config']
-overrides = filter(lambda (key,val): key.startswith("bond-"), oc.items())
-overrides = map(lambda (key,val): (key[5:], val), overrides)
+overrides = filter(lambda key,val: key.startswith("bond-"), oc.items())
+overrides = map(lambda key,val: (key[5:], val), overrides)
 bond_options.update(overrides)
 
 # write the bond options to ifcfg-bondX
diff --git a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py 
b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
index fdbbc0ed4c89..8946917d526e 100644
--- a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
+++ b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
@@ -39,7 +39,7 @@ class VSwitchService:
 def version(self):
 try:
 output = ShellPipe(["service", self.name, "version"]).Stdout()
-except StandardError, e:
+except StandardError as e:
 XSLogError("vswitch version retrieval error: " + str(e))
 return ""
 for line in output:
@@ -50,7 +50,7 @@ class VSwitchService:
 def status(self):
 try:
 output = ShellPipe(["service", self.name, "status"]).Stdout()
-except StandardError, e:
+except StandardError as e:
 XSLogError("vswitch status retrieval error: " + str(e))
 return ""
 if len(output) == 0:
@@ -69,7 +69,7 @@ class VSwitchService:
 def restart(self):
 try:
 ShellPipe(["service", self.name, "restart"]).Call()
-except StandardError, e:
+except StandardError as e:
 XSLogError("vswitch restart error: " + str(e))
 
 @classmethod
@@ -88,7 +88,7 @@ class VSwitchConfig:
 try:
 arg = [vsctl, "-vconsole:off"] + action.split()
 output = ShellPipe(arg).Stdout()
-except StandardError, e:
+except StandardError as e:
 XSLogError("config retrieval error: " + str(e))
 return ""
 
@@ -189,7 +189,7 @@ class VSwitchControllerDialogue(Dialogue):
 try:
 self.SetController(self.controller)
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Setting 
controller successful")))
-except Exception, e:
+except Exception as e:
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Setting 
controller failed")))
 
 self.ChangeState("INITIAL")
@@ -213,7 +213,7 @@ class VSwitchControllerDialogue(Dialogue):
 try:
 self.SetController(None)
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Controller deletion 
successful")))
-except Exception, e:
+except Exception as e:
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Controller deletion 
failed")))
 
 def syncController(self):
@@ -222,7 +222,7 @@ class VSwitchControllerDialogue(Dialogue):
 try:
 Task.Sync(lambda s: self._updateThisServer(s))
 Layout.Inst().PushDialogue(InfoDialogue(Lang("Resyncing controller 
config successful")))
-except Exception, e:
+except Exception as e:
 

[ovs-dev] [PATCH python3 2/4] Recommend Sphinx from Python 3 in documentation and packaging.

2019-09-18 Thread Ben Pfaff
---
 .travis.yml   | 2 +-
 Documentation/intro/install/documentation.rst | 6 +++---
 Documentation/intro/install/rhel.rst  | 2 +-
 rhel/openvswitch-fedora.spec.in   | 2 +-
 rhel/openvswitch.spec.in  | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 370b3d0a6c98..68026312ba84 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,7 +20,7 @@ addons:
   - libjemalloc1
   - libjemalloc-dev
   - libnuma-dev
-  - python-sphinx
+  - python3-sphinx
   - libelf-dev
   - selinux-policy-dev
   - libunbound-dev
diff --git a/Documentation/intro/install/documentation.rst 
b/Documentation/intro/install/documentation.rst
index d7eb25d9ef06..acf5b3a3ff33 100644
--- a/Documentation/intro/install/documentation.rst
+++ b/Documentation/intro/install/documentation.rst
@@ -45,11 +45,11 @@ Sphinx. A detailed guide on installing Sphinx in many 
environments is available
 on the `Sphinx website`__ but, for most Linux distributions, you can install
 with your package manager. For example, on Debian/Ubuntu run::
 
-$ sudo apt-get install python-sphinx
+$ sudo apt-get install python3-sphinx
 
 Similarly, on RHEL/Fedora run::
 
-$ sudo dnf install python-sphinx
+$ sudo dnf install python3-sphinx
 
 A ``requirements.txt`` is also provided in the ``/Documentation``, should you
 wish to install using ``pip``::
@@ -71,7 +71,7 @@ available on the `Sphinx website`__.
 Building
 
 
-Once Sphinx installed, the documentation can be built using the provided
+Once Sphinx is installed, the documentation can be built using the provided
 Makefile targets::
 
 $ make docs-check
diff --git a/Documentation/intro/install/rhel.rst 
b/Documentation/intro/install/rhel.rst
index 6f062e89446a..0e5ca2743ef5 100644
--- a/Documentation/intro/install/rhel.rst
+++ b/Documentation/intro/install/rhel.rst
@@ -89,7 +89,7 @@ And to install specific dependencies, use yum-builddep tool::
 
 Once that is completed, remove the file ``/tmp/ovs.spec``.
 
-If python-sphinx package is not available in your version of RHEL, you can
+If python3-sphinx package is not available in your version of RHEL, you can
 install it via pip with 'pip install sphinx'.
 
 Open vSwitch requires python 2.7 or newer which is not available in older
diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in
index 9c752ff4ed4e..9c407123296a 100644
--- a/rhel/openvswitch-fedora.spec.in
+++ b/rhel/openvswitch-fedora.spec.in
@@ -79,7 +79,7 @@ BuildRequires: python3-devel
 BuildRequires: desktop-file-utils
 BuildRequires: groff graphviz
 BuildRequires: checkpolicy, selinux-policy-devel
-BuildRequires: /usr/bin/sphinx-build
+BuildRequires: /usr/bin/sphinx3-build
 # make check dependencies
 BuildRequires: %{_py2}-twisted%{?rhel:-core} %{_py2}-zope-interface %{_py2}-six
 BuildRequires: procps-ng
diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in
index c8361f5f29ff..7f27fedd6886 100644
--- a/rhel/openvswitch.spec.in
+++ b/rhel/openvswitch.spec.in
@@ -37,7 +37,7 @@ BuildRequires: python-six
 BuildRequires: openssl-devel
 BuildRequires: checkpolicy, selinux-policy-devel
 BuildRequires: autoconf, automake, libtool
-BuildRequires: python-sphinx
+BuildRequires: python3-sphinx
 BuildRequires: unbound-devel
 
 %bcond_without check
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH python3 1/4] Documentation: Work with sphinx-build for Python 3 also.

2019-09-18 Thread Ben Pfaff
There's nothing in OVS specific to Sphinx for Python 2, but the
compile-time check only looked for a binary named "sphinx-build", which is
typically provided only for Python 2.  With Python 3, the binary is
typically called "sphinx-build-3".  With this commit, either name is
accepted.

Signed-off-by: Ben Pfaff 
---
 Documentation/automake.mk |  1 -
 m4/openvswitch.m4 | 13 -
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/Documentation/automake.mk b/Documentation/automake.mk
index cd68f3b1571e..e1384851d330 100644
--- a/Documentation/automake.mk
+++ b/Documentation/automake.mk
@@ -115,7 +115,6 @@ EXTRA_DIST += $(DOC_SOURCE)
 
 # You can set these variables from the command line.
 SPHINXOPTS =
-SPHINXBUILD = sphinx-build
 SPHINXSRCDIR = $(srcdir)/Documentation
 SPHINXBUILDDIR = $(builddir)/Documentation/_build
 
diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
index cd6b51d86c16..4379d16b4203 100644
--- a/m4/openvswitch.m4
+++ b/m4/openvswitch.m4
@@ -474,15 +474,10 @@ AC_DEFUN([OVS_CHECK_FLAKE8],
 
 dnl Checks for sphinx.
 AC_DEFUN([OVS_CHECK_SPHINX],
-  [AC_CACHE_CHECK(
-[for sphinx],
-[ovs_cv_sphinx],
-[if type sphinx-build >/dev/null 2>&1; then
-   ovs_cv_sphinx=yes
- else
-   ovs_cv_sphinx=no
- fi])
-   AM_CONDITIONAL([HAVE_SPHINX], [test "$ovs_cv_sphinx" = yes])])
+  [AC_CHECK_PROGS(
+ [SPHINXBUILD], [sphinx-build-3 sphinx-build-2 sphinx-build], [none])
+   AC_ARG_VAR([SPHINXBUILD])
+   AM_CONDITIONAL([HAVE_SPHINX], [test "$ac_cv_prog_SPHINXBUILD" != none])])
 
 dnl Checks for dot.
 AC_DEFUN([OVS_CHECK_DOT],
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH python3 0/4] Remove Python 2 support

2019-09-18 Thread Ben Pfaff
Python 2 will reach end-of-life at the beginning of 2020, in only
a few months.  This series removes support for Python 2 from OVS
and requires Python 3.

This is currently building on Travis:
https://travis-ci.org/blp/ovs-reviews/builds/586655314

Ben Pfaff (4):
  Documentation: Work with sphinx-build for Python 3 also.
  Recommend Sphinx from Python 3 in documentation and packaging.
  xenserver: Make Python files parse in Python 3 also.
  Require Python 3 and remove support for Python 2.

 .cirrus.yml   |   3 +-
 .travis.yml   |   2 +-
 Documentation/automake.mk |   1 -
 Documentation/intro/install/documentation.rst |   6 +-
 Documentation/intro/install/fedora.rst|   4 +-
 Documentation/intro/install/general.rst   |   8 +-
 Documentation/intro/install/netbsd.rst|  10 +-
 Documentation/intro/install/rhel.rst  |   4 +-
 Documentation/intro/install/windows.rst   |   4 +-
 Documentation/intro/install/xenserver.rst |   4 +-
 Makefile.am   |  12 +-
 Vagrantfile   |  24 +-
 Vagrantfile-FreeBSD   |   2 +-
 appveyor.yml  |   2 +-
 build-aux/check-structs   |   2 +-
 build-aux/dpdkstrip.py|   2 +-
 build-aux/extract-ofp-actions |   2 +-
 build-aux/extract-ofp-errors  |   2 +-
 build-aux/extract-ofp-fields  |   2 +-
 build-aux/extract-ofp-msgs|   2 +-
 build-aux/sodepends.py|   2 +-
 build-aux/soexpand.py |   2 +-
 build-aux/text2c  |   2 +-
 build-aux/xml2nroff   |   2 +-
 configure.ac  |   3 +-
 debian/.gitignore |   1 +
 debian/automake.mk|   4 +-
 debian/control|  35 +-
 debian/openvswitch-test.install   |   2 +-
 debian/python-openvswitch.install |   1 -
 ...nvswitch.dirs => python3-openvswitch.dirs} |   0
 debian/python3-openvswitch.install|   1 +
 debian/rules  |   2 +-
 include/openflow/automake.mk  |   2 -
 m4/openvswitch.m4 | 112 +
 manpages.mk   |   6 -
 ovn/automake.mk   |   8 +-
 python/automake.mk|   9 +-
 rhel/openvswitch-fedora.spec.in   |   2 +-
 rhel/openvswitch.spec.in  |   2 +-
 tests/atlocal.in  |  42 +-
 tests/automake.mk |   2 +-
 tests/check-structs.at|   3 +-
 tests/checkpatch.at   |  17 +-
 tests/daemon-py.at| 453 --
 tests/flowgen.py  |   2 +-
 tests/interface-reconfigure.at|   2 +-
 tests/json.at |  57 +--
 tests/jsonrpc-py.at   |  67 +--
 tests/library.at  |  42 +-
 tests/ofproto-dpif.at |  10 +-
 tests/ofproto.at  |   4 +-
 tests/ovs-macros.at   |   2 +-
 tests/ovs-xapi-sync.at|   3 +-
 tests/ovsdb-data.at   |   9 +-
 tests/ovsdb-idl.at| 188 ++--
 tests/ovsdb-macros.at |  52 +-
 tests/ovsdb-monitor.at|  20 +-
 tests/reconnect.at|  13 +-
 tests/system-common-macros.at |   2 +-
 tests/system-kmod-macros.at   |   3 +-
 tests/system-traffic.at   |  16 +-
 tests/system-userspace-macros.at  |   4 +-
 tests/unixctl-py.at   | 208 
 tests/vlog.at | 219 -
 utilities/automake.mk |   5 +-
 utilities/bugtool/automake.mk |   2 -
 utilities/checkpatch.py   |   2 +-
 vswitchd/automake.mk  |   4 +-
 vtep/automake.mk  |   4 +-
 ...urce_libexec_InterfaceReconfigureBridge.py |  10 +-
 ...xsconsole_plugins-base_XSFeatureVSwitch.py |  14 +-
 72 files changed, 654 insertions(+), 1123 deletions(-)
 delete mode 100644 debian/python-openvswitch.install
 rename debian/{python-openvswitch.dirs => python3-openvswitch.dirs} (100%)
 create mode 100644 debian/python3-openvswitch.install

-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH 2/2] db-ctl-base: Give better error messages for ambiguous abbreviations.

2019-09-18 Thread Ben Pfaff
THank you for the reviews.  I applied these to master.

On Wed, Sep 18, 2019 at 10:36:53AM -0700, Yifeng Sun wrote:
> LGTM, thanks.
> 
> Reviewed-by: Yifeng Sun 
> 
> On Wed, Sep 18, 2019 at 9:32 AM Ben Pfaff  wrote:
> >
> > Tables and columns may be abbreviated to unique prefixes, but until now
> > the error messages have just said there's more than one match.  This commit
> > makes the error messages list the possibilities.
> >
> > Signed-off-by: Ben Pfaff 
> > ---
> >  lib/db-ctl-base.c  | 58 +-
> >  tests/ovs-vsctl.at |  5 +++-
> >  2 files changed, 41 insertions(+), 22 deletions(-)
> >
> > diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
> > index 3bd9f006acb1..6ae638be5a2b 100644
> > --- a/lib/db-ctl-base.c
> > +++ b/lib/db-ctl-base.c
> > @@ -430,31 +430,39 @@ static char *
> >  get_column(const struct ovsdb_idl_table_class *table, const char 
> > *column_name,
> > const struct ovsdb_idl_column **columnp)
> >  {
> > +struct sset best_matches = SSET_INITIALIZER(_matches);
> >  const struct ovsdb_idl_column *best_match = NULL;
> >  unsigned int best_score = 0;
> > -size_t i;
> >
> > -for (i = 0; i < table->n_columns; i++) {
> > +for (size_t i = 0; i < table->n_columns; i++) {
> >  const struct ovsdb_idl_column *column = >columns[i];
> >  unsigned int score = score_partial_match(column->name, 
> > column_name);
> > -if (score > best_score) {
> > +if (score && score >= best_score) {
> > +if (score > best_score) {
> > +sset_clear(_matches);
> > +}
> > +sset_add(_matches, column->name);
> >  best_match = column;
> >  best_score = score;
> > -} else if (score == best_score) {
> > -best_match = NULL;
> >  }
> >  }
> >
> > -*columnp = best_match;
> > -if (best_match) {
> > -return NULL;
> > -} else if (best_score) {
> > -return xasprintf("%s contains more than one column whose name "
> > - "matches \"%s\"", table->name, column_name);
> > +char *error = NULL;
> > +*columnp = NULL;
> > +if (!best_match) {
> > +error = xasprintf("%s does not contain a column whose name matches 
> > "
> > +  "\"%s\"", table->name, column_name);
> > +} else if (sset_count(_matches) == 1) {
> > +*columnp = best_match;
> >  } else {
> > -return xasprintf("%s does not contain a column whose name matches "
> > - "\"%s\"", table->name, column_name);
> > +char *matches = sset_join(_matches, ", ", "");
> > +error = xasprintf("%s contains more than one column "
> > +  "whose name matches \"%s\": %s",
> > +  table->name, column_name, matches);
> > +free(matches);
> >  }
> > +sset_destroy(_matches);
> > +return error;
> >  }
> >
> >  static char * OVS_WARN_UNUSED_RESULT
> > @@ -1207,27 +1215,35 @@ cmd_list(struct ctl_context *ctx)
> >  static char * OVS_WARN_UNUSED_RESULT
> >  get_table(const char *table_name, const struct ovsdb_idl_table_class 
> > **tablep)
> >  {
> > +struct sset best_matches = SSET_INITIALIZER(_matches);
> >  const struct ovsdb_idl_table_class *best_match = NULL;
> >  unsigned int best_score = 0;
> > -char *error = NULL;
> >
> >  for (const struct ovsdb_idl_table_class *table = idl_classes;
> >   table < _classes[n_classes]; table++) {
> >  unsigned int score = score_partial_match(table->name, table_name);
> > -if (score > best_score) {
> > +if (score && score >= best_score) {
> > +if (score > best_score) {
> > +sset_clear(_matches);
> > +}
> > +sset_add(_matches, table->name);
> >  best_match = table;
> >  best_score = score;
> > -} else if (score == best_score) {
> > -best_match = NULL;
> >  }
> >  }
> > -if (best_match) {
> > +
> > +char *error = NULL;
> > +if (!best_match) {
> > +error = xasprintf("unknown table \"%s\"", table_name);
> > +} else if (sset_count(_matches) == 1) {
> >  *tablep = best_match;
> > -} else if (best_score) {
> > -error = xasprintf("multiple table names match \"%s\"", table_name);
> >  } else {
> > -error = xasprintf("unknown table \"%s\"", table_name);
> > +char *matches = sset_join(_matches, ", ", "");
> > +error = xasprintf("\"%s\" matches multiple table names: %s",
> > +  table_name, matches);
> > +free(matches);
> >  }
> > +sset_destroy(_matches);
> >  return error;
> >  }
> >
> > diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
> > index 4907be35d342..1b9c6d90219d 100644
> > --- a/tests/ovs-vsctl.at
> > +++ b/tests/ovs-vsctl.at
> > @@ -848,6 +848,9 @@ targets   

Re: [ovs-dev] [PATCH 2/2] db-ctl-base: Give better error messages for ambiguous abbreviations.

2019-09-18 Thread Yifeng Sun
LGTM, thanks.

Reviewed-by: Yifeng Sun 

On Wed, Sep 18, 2019 at 9:32 AM Ben Pfaff  wrote:
>
> Tables and columns may be abbreviated to unique prefixes, but until now
> the error messages have just said there's more than one match.  This commit
> makes the error messages list the possibilities.
>
> Signed-off-by: Ben Pfaff 
> ---
>  lib/db-ctl-base.c  | 58 +-
>  tests/ovs-vsctl.at |  5 +++-
>  2 files changed, 41 insertions(+), 22 deletions(-)
>
> diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
> index 3bd9f006acb1..6ae638be5a2b 100644
> --- a/lib/db-ctl-base.c
> +++ b/lib/db-ctl-base.c
> @@ -430,31 +430,39 @@ static char *
>  get_column(const struct ovsdb_idl_table_class *table, const char 
> *column_name,
> const struct ovsdb_idl_column **columnp)
>  {
> +struct sset best_matches = SSET_INITIALIZER(_matches);
>  const struct ovsdb_idl_column *best_match = NULL;
>  unsigned int best_score = 0;
> -size_t i;
>
> -for (i = 0; i < table->n_columns; i++) {
> +for (size_t i = 0; i < table->n_columns; i++) {
>  const struct ovsdb_idl_column *column = >columns[i];
>  unsigned int score = score_partial_match(column->name, column_name);
> -if (score > best_score) {
> +if (score && score >= best_score) {
> +if (score > best_score) {
> +sset_clear(_matches);
> +}
> +sset_add(_matches, column->name);
>  best_match = column;
>  best_score = score;
> -} else if (score == best_score) {
> -best_match = NULL;
>  }
>  }
>
> -*columnp = best_match;
> -if (best_match) {
> -return NULL;
> -} else if (best_score) {
> -return xasprintf("%s contains more than one column whose name "
> - "matches \"%s\"", table->name, column_name);
> +char *error = NULL;
> +*columnp = NULL;
> +if (!best_match) {
> +error = xasprintf("%s does not contain a column whose name matches "
> +  "\"%s\"", table->name, column_name);
> +} else if (sset_count(_matches) == 1) {
> +*columnp = best_match;
>  } else {
> -return xasprintf("%s does not contain a column whose name matches "
> - "\"%s\"", table->name, column_name);
> +char *matches = sset_join(_matches, ", ", "");
> +error = xasprintf("%s contains more than one column "
> +  "whose name matches \"%s\": %s",
> +  table->name, column_name, matches);
> +free(matches);
>  }
> +sset_destroy(_matches);
> +return error;
>  }
>
>  static char * OVS_WARN_UNUSED_RESULT
> @@ -1207,27 +1215,35 @@ cmd_list(struct ctl_context *ctx)
>  static char * OVS_WARN_UNUSED_RESULT
>  get_table(const char *table_name, const struct ovsdb_idl_table_class 
> **tablep)
>  {
> +struct sset best_matches = SSET_INITIALIZER(_matches);
>  const struct ovsdb_idl_table_class *best_match = NULL;
>  unsigned int best_score = 0;
> -char *error = NULL;
>
>  for (const struct ovsdb_idl_table_class *table = idl_classes;
>   table < _classes[n_classes]; table++) {
>  unsigned int score = score_partial_match(table->name, table_name);
> -if (score > best_score) {
> +if (score && score >= best_score) {
> +if (score > best_score) {
> +sset_clear(_matches);
> +}
> +sset_add(_matches, table->name);
>  best_match = table;
>  best_score = score;
> -} else if (score == best_score) {
> -best_match = NULL;
>  }
>  }
> -if (best_match) {
> +
> +char *error = NULL;
> +if (!best_match) {
> +error = xasprintf("unknown table \"%s\"", table_name);
> +} else if (sset_count(_matches) == 1) {
>  *tablep = best_match;
> -} else if (best_score) {
> -error = xasprintf("multiple table names match \"%s\"", table_name);
>  } else {
> -error = xasprintf("unknown table \"%s\"", table_name);
> +char *matches = sset_join(_matches, ", ", "");
> +error = xasprintf("\"%s\" matches multiple table names: %s",
> +  table_name, matches);
> +free(matches);
>  }
> +sset_destroy(_matches);
>  return error;
>  }
>
> diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
> index 4907be35d342..1b9c6d90219d 100644
> --- a/tests/ovs-vsctl.at
> +++ b/tests/ovs-vsctl.at
> @@ -848,6 +848,9 @@ targets : ["1.2.3.4:567"]
>  AT_CHECK([RUN_OVS_VSCTL([list interx x])],
>[1], [], [ovs-vsctl: unknown table "interx"
>  ])
> +AT_CHECK([RUN_OVS_VSCTL([list c x])],
> +  [1], [], [ovs-vsctl: "c" matches multiple table names: CT_Timeout_Policy, 
> CT_Zone, Controller
> +])
>  AT_CHECK([RUN_OVS_VSCTL([list bridge x])],
>[1], [], [ovs-vsctl: no row "x" in table Bridge
>  

Re: [ovs-dev] [PATCH 1/2] sset: New function sset_join().

2019-09-18 Thread Yifeng Sun
LGTM, thanks.

Reviewed-by: Yifeng Sun 

On Wed, Sep 18, 2019 at 9:31 AM Ben Pfaff  wrote:
>
> This will acquire its first user in an upcoming commit.
>
> This function follows the pattern set by svec_join().
>
> Signed-off-by: Ben Pfaff 
> ---
>  lib/sset.c | 31 +++
>  lib/sset.h |  3 +++
>  2 files changed, 34 insertions(+)
>
> diff --git a/lib/sset.c b/lib/sset.c
> index 3deb1f9de9be..b2e3f43ec91b 100644
> --- a/lib/sset.c
> +++ b/lib/sset.c
> @@ -18,6 +18,7 @@
>
>  #include "sset.h"
>
> +#include "openvswitch/dynamic-string.h"
>  #include "hash.h"
>
>  static uint32_t
> @@ -118,6 +119,36 @@ sset_from_delimited_string(struct sset *set, const char 
> *s_,
>  free(s);
>  }
>
> +/* Returns a malloc()'d string that consists of the concatenation of all of 
> the
> + * strings in 'sset' in lexicographic order, each separated from the next by
> + * 'delimiter' and followed by 'terminator'.  For example:
> + *
> + *   sset_join(("a", "b", "c"), ", ", ".") -> "a, b, c."
> + *   sset_join(("xyzzy"),   ", ", ".") -> "xyzzy."
> + *   sset_join((""),", ", ".") -> "."
> + *
> + * The caller is responsible for freeing the returned string (with free()).
> + */
> +char *
> +sset_join(const struct sset *sset,
> +  const char *delimiter, const char *terminator)
> +{
> +struct ds s = DS_EMPTY_INITIALIZER;
> +
> +const char **names = sset_sort(sset);
> +for (size_t i = 0; i < sset_count(sset); i++) {
> +if (i) {
> +ds_put_cstr(, delimiter);
> +}
> +ds_put_cstr(, names[i]);
> +}
> +free(names);
> +
> +ds_put_cstr(, terminator);
> +
> +return ds_steal_cstr();
> +}
> +
>  /* Returns true if 'set' contains no strings, false if it contains at least 
> one
>   * string. */
>  bool
> diff --git a/lib/sset.h b/lib/sset.h
> index 768d0cf0a1f3..f0bb8b534496 100644
> --- a/lib/sset.h
> +++ b/lib/sset.h
> @@ -43,8 +43,11 @@ void sset_clone(struct sset *, const struct sset *);
>  void sset_swap(struct sset *, struct sset *);
>  void sset_moved(struct sset *);
>
> +/* String parsing and formatting. */
>  void sset_from_delimited_string(struct sset *, const char *s,
>  const char *delimiters);
> +char *sset_join(const struct sset *,
> +const char *delimiter, const char *terminator);
>
>  /* Count. */
>  bool sset_is_empty(const struct sset *);
> --
> 2.21.0
>
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] Supply Chain Management

2019-09-18 Thread Laura Mendez
Did you get a chance to review my previous email? Please let me know if you did 
like to review few sample records from your target audience.

Look forward to hearing back

Regards,

Laura

From: Laura Mendez
Sent: 06 September, 2019 1:47 PM
To: 'd...@openvswitch.org'
Subject: Supply Chain Management

Hi,

Would you be interested in an email lead list of Supply Chain Executives? We 
can help you reach out to.

Title includes:

?  VP of Supply Chain

?  Director of Supply Chain

?  Supply Chain Manager

?  Purchasing Manager

?  Purchasing Director

?  Procurement Manager

?  Procurement Director

I'd be happy to send over few sample records on your request, and set up a time 
to discuss further.

Have a great day!


Regards,

Laura Mendez / PR Solutions
If you don't wish to receive emails from us reply back with "Withdraw".

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH 2/2] db-ctl-base: Give better error messages for ambiguous abbreviations.

2019-09-18 Thread Ben Pfaff
Tables and columns may be abbreviated to unique prefixes, but until now
the error messages have just said there's more than one match.  This commit
makes the error messages list the possibilities.

Signed-off-by: Ben Pfaff 
---
 lib/db-ctl-base.c  | 58 +-
 tests/ovs-vsctl.at |  5 +++-
 2 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
index 3bd9f006acb1..6ae638be5a2b 100644
--- a/lib/db-ctl-base.c
+++ b/lib/db-ctl-base.c
@@ -430,31 +430,39 @@ static char *
 get_column(const struct ovsdb_idl_table_class *table, const char *column_name,
const struct ovsdb_idl_column **columnp)
 {
+struct sset best_matches = SSET_INITIALIZER(_matches);
 const struct ovsdb_idl_column *best_match = NULL;
 unsigned int best_score = 0;
-size_t i;
 
-for (i = 0; i < table->n_columns; i++) {
+for (size_t i = 0; i < table->n_columns; i++) {
 const struct ovsdb_idl_column *column = >columns[i];
 unsigned int score = score_partial_match(column->name, column_name);
-if (score > best_score) {
+if (score && score >= best_score) {
+if (score > best_score) {
+sset_clear(_matches);
+}
+sset_add(_matches, column->name);
 best_match = column;
 best_score = score;
-} else if (score == best_score) {
-best_match = NULL;
 }
 }
 
-*columnp = best_match;
-if (best_match) {
-return NULL;
-} else if (best_score) {
-return xasprintf("%s contains more than one column whose name "
- "matches \"%s\"", table->name, column_name);
+char *error = NULL;
+*columnp = NULL;
+if (!best_match) {
+error = xasprintf("%s does not contain a column whose name matches "
+  "\"%s\"", table->name, column_name);
+} else if (sset_count(_matches) == 1) {
+*columnp = best_match;
 } else {
-return xasprintf("%s does not contain a column whose name matches "
- "\"%s\"", table->name, column_name);
+char *matches = sset_join(_matches, ", ", "");
+error = xasprintf("%s contains more than one column "
+  "whose name matches \"%s\": %s",
+  table->name, column_name, matches);
+free(matches);
 }
+sset_destroy(_matches);
+return error;
 }
 
 static char * OVS_WARN_UNUSED_RESULT
@@ -1207,27 +1215,35 @@ cmd_list(struct ctl_context *ctx)
 static char * OVS_WARN_UNUSED_RESULT
 get_table(const char *table_name, const struct ovsdb_idl_table_class **tablep)
 {
+struct sset best_matches = SSET_INITIALIZER(_matches);
 const struct ovsdb_idl_table_class *best_match = NULL;
 unsigned int best_score = 0;
-char *error = NULL;
 
 for (const struct ovsdb_idl_table_class *table = idl_classes;
  table < _classes[n_classes]; table++) {
 unsigned int score = score_partial_match(table->name, table_name);
-if (score > best_score) {
+if (score && score >= best_score) {
+if (score > best_score) {
+sset_clear(_matches);
+}
+sset_add(_matches, table->name);
 best_match = table;
 best_score = score;
-} else if (score == best_score) {
-best_match = NULL;
 }
 }
-if (best_match) {
+
+char *error = NULL;
+if (!best_match) {
+error = xasprintf("unknown table \"%s\"", table_name);
+} else if (sset_count(_matches) == 1) {
 *tablep = best_match;
-} else if (best_score) {
-error = xasprintf("multiple table names match \"%s\"", table_name);
 } else {
-error = xasprintf("unknown table \"%s\"", table_name);
+char *matches = sset_join(_matches, ", ", "");
+error = xasprintf("\"%s\" matches multiple table names: %s",
+  table_name, matches);
+free(matches);
 }
+sset_destroy(_matches);
 return error;
 }
 
diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
index 4907be35d342..1b9c6d90219d 100644
--- a/tests/ovs-vsctl.at
+++ b/tests/ovs-vsctl.at
@@ -848,6 +848,9 @@ targets : ["1.2.3.4:567"]
 AT_CHECK([RUN_OVS_VSCTL([list interx x])],
   [1], [], [ovs-vsctl: unknown table "interx"
 ])
+AT_CHECK([RUN_OVS_VSCTL([list c x])],
+  [1], [], [ovs-vsctl: "c" matches multiple table names: CT_Timeout_Policy, 
CT_Zone, Controller
+])
 AT_CHECK([RUN_OVS_VSCTL([list bridge x])],
   [1], [], [ovs-vsctl: no row "x" in table Bridge
 ])
@@ -855,7 +858,7 @@ AT_CHECK([RUN_OVS_VSCTL([get bridge x datapath_id])],
   [1], [], [ovs-vsctl: no row "x" in table Bridge
 ])
 AT_CHECK([RUN_OVS_VSCTL([get bridge br0 d])],
-  [1], [], [ovs-vsctl: Bridge contains more than one column whose name matches 
"d"
+  [1], [], [ovs-vsctl: Bridge contains more than one column whose name 

[ovs-dev] [PATCH 1/2] sset: New function sset_join().

2019-09-18 Thread Ben Pfaff
This will acquire its first user in an upcoming commit.

This function follows the pattern set by svec_join().

Signed-off-by: Ben Pfaff 
---
 lib/sset.c | 31 +++
 lib/sset.h |  3 +++
 2 files changed, 34 insertions(+)

diff --git a/lib/sset.c b/lib/sset.c
index 3deb1f9de9be..b2e3f43ec91b 100644
--- a/lib/sset.c
+++ b/lib/sset.c
@@ -18,6 +18,7 @@
 
 #include "sset.h"
 
+#include "openvswitch/dynamic-string.h"
 #include "hash.h"
 
 static uint32_t
@@ -118,6 +119,36 @@ sset_from_delimited_string(struct sset *set, const char 
*s_,
 free(s);
 }
 
+/* Returns a malloc()'d string that consists of the concatenation of all of the
+ * strings in 'sset' in lexicographic order, each separated from the next by
+ * 'delimiter' and followed by 'terminator'.  For example:
+ *
+ *   sset_join(("a", "b", "c"), ", ", ".") -> "a, b, c."
+ *   sset_join(("xyzzy"),   ", ", ".") -> "xyzzy."
+ *   sset_join((""),", ", ".") -> "."
+ *
+ * The caller is responsible for freeing the returned string (with free()).
+ */
+char *
+sset_join(const struct sset *sset,
+  const char *delimiter, const char *terminator)
+{
+struct ds s = DS_EMPTY_INITIALIZER;
+
+const char **names = sset_sort(sset);
+for (size_t i = 0; i < sset_count(sset); i++) {
+if (i) {
+ds_put_cstr(, delimiter);
+}
+ds_put_cstr(, names[i]);
+}
+free(names);
+
+ds_put_cstr(, terminator);
+
+return ds_steal_cstr();
+}
+
 /* Returns true if 'set' contains no strings, false if it contains at least one
  * string. */
 bool
diff --git a/lib/sset.h b/lib/sset.h
index 768d0cf0a1f3..f0bb8b534496 100644
--- a/lib/sset.h
+++ b/lib/sset.h
@@ -43,8 +43,11 @@ void sset_clone(struct sset *, const struct sset *);
 void sset_swap(struct sset *, struct sset *);
 void sset_moved(struct sset *);
 
+/* String parsing and formatting. */
 void sset_from_delimited_string(struct sset *, const char *s,
 const char *delimiters);
+char *sset_join(const struct sset *,
+const char *delimiter, const char *terminator);
 
 /* Count. */
 bool sset_is_empty(const struct sset *);
-- 
2.21.0

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v1 ovn] ovn-ctl: Support passing ssl certs for northd

2019-09-18 Thread Mark Michelson

Thanks, I pushed this to master.

On 9/17/19 7:43 PM, Han Zhou wrote:

On Mon, Sep 16, 2019 at 3:12 PM  wrote:


From: Aliasgar Ginwala 

When using ssl mode for ovn nb/sb active-standby/cluster db service

models,

northd can use ssl mode too.
e.g. one can pass  --ovn-northd-ssl-key, --ovn-northd-ssl-ca-cert and
--ovn-northd-ssl-cert to start northd with ssl

Signed-off-by: Aliasgar Ginwala 
---
  utilities/ovn-ctl | 16 
  1 file changed, 16 insertions(+)

diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
index 4242cd2c8..433ee4f50 100755
--- a/utilities/ovn-ctl
+++ b/utilities/ovn-ctl
@@ -344,6 +344,15 @@ start_northd () {
  if test X"$OVN_NORTHD_LOGFILE" != X; then
  set "$@" --log-file=$OVN_NORTHD_LOGFILE
  fi
+if test X"$OVN_NORTHD_SSL_KEY" != X; then
+set "$@" --private-key=$OVN_NORTHD_SSL_KEY
+fi
+if test X"$OVN_NORTHD_SSL_CERT" != X; then
+set "$@" --certificate=$OVN_NORTHD_SSL_CERT
+fi
+if test X"$OVN_NORTHD_SSL_CA_CERT" != X; then
+set "$@" --ca-cert=$OVN_NORTHD_SSL_CA_CERT
+fi

  [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"

@@ -513,6 +522,10 @@ set_defaults () {
  OVN_CONTROLLER_SSL_CA_CERT=""
  OVN_CONTROLLER_SSL_BOOTSTRAP_CA_CERT=""

+OVN_NORTHD_SSL_KEY=""
+OVN_NORTHD_SSL_CERT=""
+OVN_NORTHD_SSL_CA_CERT=""
+
  DB_SB_CREATE_INSECURE_REMOTE="no"
  DB_NB_CREATE_INSECURE_REMOTE="no"

@@ -617,6 +630,9 @@ Options:
--ovn-sb-db-ssl-key=KEY OVN Southbound DB SSL private key file
--ovn-sb-db-ssl-cert=CERT OVN Southbound DB SSL certificate file
--ovn-sb-db-ssl-ca-cert=CERT OVN Southbound DB SSL CA certificate file
+  --ovn-northd-ssl-key=KEY OVN Northd SSL private key file
+  --ovn-northd-ssl-cert=CERT OVN Northd SSL certificate file
+  --ovn-northd-ssl-ca-cert=CERT OVN Northd SSL CA certificate file
--ovn-manage-ovsdb=yes|noWhether or not the OVN databases

should be

 automatically started and stopped

along

 with ovn-northd. The default is

"yes". If

--
2.20.1 (Apple Git-117)

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Thanks Ali.
Acked-by: Han Zhou 
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev



___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCHv4] netdev-afxdp: Add need_wakeup supprt.

2019-09-18 Thread Eelco Chaudron



On 17 Sep 2019, at 20:36, William Tu wrote:

> The patch adds support for using need_wakeup flag in AF_XDP rings.
> A new option, use_need_wakeup, is added. When this option is used,
> it means that OVS has to explicitly wake up the kernel RX, using poll()
> syscall and wake up TX, using sendto() syscall. This feature improves
> the performance by avoiding unnecessary sendto syscalls for TX.
> For RX, instead of kernel always busy-spinning on fille queue, OVS wakes
> up the kernel RX processing when fill queue is replenished.
>
> The need_wakeup feature is merged into Linux kernel 5.3.0-rc1 and OVS
> enables it by default. Running the feature before this version causes
> xsk bind fails, please use options:use_need_wakeup=false to disable it.
> If users enable it but runs in an older version of libbpf, then the
> need_wakeup feature has no effect, and a warning message is logged.
>
> For virtual interface, it's better set use_need_wakeup=false, since
> the virtual device's AF_XDP xmit is synchronous: the sendto syscall
> enters kernel and process the TX packet on tx queue directly.
>
> I tested on kernel 5.3.0-rc3 using its libbpf.  On Intel Xeon E5-2620
> v3 2.4GHz system, performance of physical port to physical port improves
> from 6.1Mpps to 7.3Mpps. Testing on 5.2.0-rc6 using libbpf from 5.3.0-rc3
> does not work due to libbpf API change. Users have to use the older
> libbpf for older kernel.
>
> Suggested-by: Ilya Maximets 
> Signed-off-by: William Tu 

Thanks William!

Acked-by: Eelco Chaudron 
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH ovn] Exclude inport and outport symbol tables from conjunction

2019-09-18 Thread Dumitru Ceara
On Wed, Sep 18, 2019 at 9:30 AM Dumitru Ceara  wrote:
>
> On Tue, Sep 17, 2019 at 6:49 PM Han Zhou  wrote:
> >
> >
> >
> > On Tue, Sep 17, 2019 at 5:21 AM Mark Michelson  wrote:
> > >
> > > On 9/16/19 12:04 PM, Han Zhou wrote:
> > > >
> > > >
> > > > On Mon, Sep 16, 2019 at 4:15 AM Dumitru Ceara  > > > > wrote:
> > > >  >
> > > >  > On Sat, Sep 14, 2019 at 7:16 PM Han Zhou  > > > > wrote:
> > > >  > >
> > > >  > >
> > > >  > >
> > > >  > > On Sat, Sep 14, 2019 at 9:09 AM Han Zhou  > > > > wrote:
> > > >  > > >
> > > >  > > >
> > > >  > > >
> > > >  > > > On Sat, Sep 14, 2019 at 12:40 AM Numan Siddique
> > > > mailto:nusid...@redhat.com>> wrote:
> > > >  > > > >
> > > >  > > > >
> > > >  > > > >
> > > >  > > > > On Sat, Sep 14, 2019 at 2:41 AM Daniel Alvarez Sanchez
> > > > mailto:dalva...@redhat.com>> wrote:
> > > >  > > > >>
> > > >  > > > >> Acked-by: Daniel Alvarez  > > > >
> > > >  > > > >>
> > > >  > > > >>
> > > >  > > > >> On Fri, Sep 13, 2019 at 11:02 PM Mark Michelson
> > > > mailto:mmich...@redhat.com>> wrote:
> > > >  > > > >> >
> > > >  > > > >> > Acked-by: Mark Michelson
> > > >  > > > >> >
> > > >  > > > >> > It sucks that we lose the efficiency of the conjunctive
> > > > match altogether
> > > >  > > > >> > on port groups because of this error, but I understand this
> > > > is a huge
> > > >  > > > >> > bug and needs fixing.
> > > >  > > > >> If I'm not mistaken, from OpenStack standpoint conjunction was
> > > > *only*
> > > >  > > > >> being used when using port groups and ACLs that matched on
> > > > port ranges
> > > >  > > > >> ( e.g tcp.dst >= X && tcp.dst <=Y) which was not working.
> > > > Therefore
> > > >  > > > >> we're not losing performance because it was already broken
> > > > (given that
> > > >  > > > >> there was more than one ACL like that).
> > > >  > > > >>
> > > >  > > > >> >
> > > >  > > > >> > Perhaps it would be good to start up a discussion on this
> > > > list about a
> > > >  > > > >> > more longterm solution that would allow for conjunctive
> > > > matches with no
> > > >  > > > >> > ambiguity.
> > > >  > > > >> Agreed! We already discussed some ideas on IRC but it'd be
> > > > awesome to
> > > >  > > > >> have a thread and brainstorm there.
> > > >  > > > >>
> > > >  > > > >
> > > >  > > > > Thanks for the reviews. I applied this to master.
> > > >  > > > > Agree we can discuss it further and come up with ideas.
> > > >  > > > >
> > > >  > > > > I know Dumitru has some idea to make use of conjunctions for
> > > > port groups.
> > > >  > > > > CC'ing Han if he has any comments on ideas.
> > > >  > > > >
> > > >  > > >
> > > >  > > > Hi Numan,
> > > >  > > >
> > > >  > > > This is a good finding. However, I think it is not specifically a
> > > > problem of port group. It seems to be a more general problem and this
> > > > patch fixes only a special case.
> > > >  > > > For example, would there be similar problem for below ACLs
> > > > without port groups:
> > > >  > > >
> > > >  > > > ip4 && tcp.src >= 1000 && tcp.src <= 1001 && tcp.dst >= 500 &&
> > > > tcp.dst <= 501
> > > >  > > > ip4 && tcp.src >= 1000 && tcp.src <= 1001 && tcp.dst >= 600 &&
> > > > tcp.dst <= 601
> > > >  > > >
> > > >  > > > Another example is with address set:
> > > >  > > >
> > > >  > > > ip4 && ip4.src == $as1 && tcp.dst >= 500 && tcp.dst <= 501
> > > >  > > > ip4 && ip4.src == $as1 && tcp.dst >= 600 && tcp.dst <= 601
> > > >  > > >
> > > >  > > > Or even without range:
> > > >  > > > ip4 && tcp.src == {1000, 1001} && tcp.dst == {500, 501}
> > > >  > > > ip4 && tcp.src == {1000, 1001} && tcp.dst == {600, 601}
> > > >  > > >
> > > >  > > > You may think of more examples. Whenever there are multiple
> > > > conjunctionable ACLs with same match as part of the conjunction, it
> > > > should result in such problem.
> > > >  > > >
> > > >  > > > A quick fix to all these problems may be just abandon
> > > > conjunction, but I believe there are better ways to address it.
> > > >  > > >
> > > >  > > > First of all, these matches can be rewritten by combining them in
> > > > a single ACL with "OR" operator, e.g.:
> > > >  > > >
> > > >  > > > outport == @pg1 && ip4 && tcp.dst >= 500 && tcp.dst <= 501
> > > >  > > > outport == @pg1 && ip4 && tcp.dst >= 600 && tcp.dst <= 601
> > > >  > > >
> > > >  > > > can be rewritten as >
> > > >  > > >
> > > >  > > > outport == @pg1 && ip4 && (tcp.dst >= 500 && tcp.dst <= 501 ||
> > > > tcp.dst >= 600 && tcp.dst <= 601)
> > > >  > > >
> > > >  > > > Similar can be done for all above examples. So, a workaround to
> > > > the problem is from user side (e.g. OpenStack) to make sure always
> > > > combining ACLs with "OR" if there are common conjunctionable matches
> > > > between different ACLs. However, a better way would be in ovn-northd
> > > > itself to detect and combine such ACLs internally, before generating the
> > > > final logical flows in SB. It 

Re: [ovs-dev] [PATCH ovn] Exclude inport and outport symbol tables from conjunction

2019-09-18 Thread Dumitru Ceara
On Tue, Sep 17, 2019 at 6:49 PM Han Zhou  wrote:
>
>
>
> On Tue, Sep 17, 2019 at 5:21 AM Mark Michelson  wrote:
> >
> > On 9/16/19 12:04 PM, Han Zhou wrote:
> > >
> > >
> > > On Mon, Sep 16, 2019 at 4:15 AM Dumitru Ceara  > > > wrote:
> > >  >
> > >  > On Sat, Sep 14, 2019 at 7:16 PM Han Zhou  > > > wrote:
> > >  > >
> > >  > >
> > >  > >
> > >  > > On Sat, Sep 14, 2019 at 9:09 AM Han Zhou  > > > wrote:
> > >  > > >
> > >  > > >
> > >  > > >
> > >  > > > On Sat, Sep 14, 2019 at 12:40 AM Numan Siddique
> > > mailto:nusid...@redhat.com>> wrote:
> > >  > > > >
> > >  > > > >
> > >  > > > >
> > >  > > > > On Sat, Sep 14, 2019 at 2:41 AM Daniel Alvarez Sanchez
> > > mailto:dalva...@redhat.com>> wrote:
> > >  > > > >>
> > >  > > > >> Acked-by: Daniel Alvarez  > > >
> > >  > > > >>
> > >  > > > >>
> > >  > > > >> On Fri, Sep 13, 2019 at 11:02 PM Mark Michelson
> > > mailto:mmich...@redhat.com>> wrote:
> > >  > > > >> >
> > >  > > > >> > Acked-by: Mark Michelson
> > >  > > > >> >
> > >  > > > >> > It sucks that we lose the efficiency of the conjunctive
> > > match altogether
> > >  > > > >> > on port groups because of this error, but I understand this
> > > is a huge
> > >  > > > >> > bug and needs fixing.
> > >  > > > >> If I'm not mistaken, from OpenStack standpoint conjunction was
> > > *only*
> > >  > > > >> being used when using port groups and ACLs that matched on
> > > port ranges
> > >  > > > >> ( e.g tcp.dst >= X && tcp.dst <=Y) which was not working.
> > > Therefore
> > >  > > > >> we're not losing performance because it was already broken
> > > (given that
> > >  > > > >> there was more than one ACL like that).
> > >  > > > >>
> > >  > > > >> >
> > >  > > > >> > Perhaps it would be good to start up a discussion on this
> > > list about a
> > >  > > > >> > more longterm solution that would allow for conjunctive
> > > matches with no
> > >  > > > >> > ambiguity.
> > >  > > > >> Agreed! We already discussed some ideas on IRC but it'd be
> > > awesome to
> > >  > > > >> have a thread and brainstorm there.
> > >  > > > >>
> > >  > > > >
> > >  > > > > Thanks for the reviews. I applied this to master.
> > >  > > > > Agree we can discuss it further and come up with ideas.
> > >  > > > >
> > >  > > > > I know Dumitru has some idea to make use of conjunctions for
> > > port groups.
> > >  > > > > CC'ing Han if he has any comments on ideas.
> > >  > > > >
> > >  > > >
> > >  > > > Hi Numan,
> > >  > > >
> > >  > > > This is a good finding. However, I think it is not specifically a
> > > problem of port group. It seems to be a more general problem and this
> > > patch fixes only a special case.
> > >  > > > For example, would there be similar problem for below ACLs
> > > without port groups:
> > >  > > >
> > >  > > > ip4 && tcp.src >= 1000 && tcp.src <= 1001 && tcp.dst >= 500 &&
> > > tcp.dst <= 501
> > >  > > > ip4 && tcp.src >= 1000 && tcp.src <= 1001 && tcp.dst >= 600 &&
> > > tcp.dst <= 601
> > >  > > >
> > >  > > > Another example is with address set:
> > >  > > >
> > >  > > > ip4 && ip4.src == $as1 && tcp.dst >= 500 && tcp.dst <= 501
> > >  > > > ip4 && ip4.src == $as1 && tcp.dst >= 600 && tcp.dst <= 601
> > >  > > >
> > >  > > > Or even without range:
> > >  > > > ip4 && tcp.src == {1000, 1001} && tcp.dst == {500, 501}
> > >  > > > ip4 && tcp.src == {1000, 1001} && tcp.dst == {600, 601}
> > >  > > >
> > >  > > > You may think of more examples. Whenever there are multiple
> > > conjunctionable ACLs with same match as part of the conjunction, it
> > > should result in such problem.
> > >  > > >
> > >  > > > A quick fix to all these problems may be just abandon
> > > conjunction, but I believe there are better ways to address it.
> > >  > > >
> > >  > > > First of all, these matches can be rewritten by combining them in
> > > a single ACL with "OR" operator, e.g.:
> > >  > > >
> > >  > > > outport == @pg1 && ip4 && tcp.dst >= 500 && tcp.dst <= 501
> > >  > > > outport == @pg1 && ip4 && tcp.dst >= 600 && tcp.dst <= 601
> > >  > > >
> > >  > > > can be rewritten as >
> > >  > > >
> > >  > > > outport == @pg1 && ip4 && (tcp.dst >= 500 && tcp.dst <= 501 ||
> > > tcp.dst >= 600 && tcp.dst <= 601)
> > >  > > >
> > >  > > > Similar can be done for all above examples. So, a workaround to
> > > the problem is from user side (e.g. OpenStack) to make sure always
> > > combining ACLs with "OR" if there are common conjunctionable matches
> > > between different ACLs. However, a better way would be in ovn-northd
> > > itself to detect and combine such ACLs internally, before generating the
> > > final logical flows in SB. It may be more convenient to be done in
> > > ovn-controller, because we are not even parsing the ACLs in ovn-northd
> > > today, but the cost of such pre-processing would be duplicated in all
> > > HVs. It surely will increase CPU cost for doing such combination, but
> > > I'd not worry too much