[ovs-git] [openvswitch/ovs] e77c97: dpif-netdev: Add round-robin based rxq to pmd assi...
GitHub
noreply at github.com
Wed Oct 17 16:48:46 UTC 2018
Branch: refs/heads/dpdk-hwol
Home: https://github.com/openvswitch/ovs
Commit: e77c97b9d693a96349af68c37c561252d8d7dcb8
https://github.com/openvswitch/ovs/commit/e77c97b9d693a96349af68c37c561252d8d7dcb8
Author: Kevin Traynor <ktraynor at redhat.com>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M Documentation/topics/dpdk/pmd.rst
M NEWS
M lib/dpif-netdev.c
M tests/pmd.at
M vswitchd/vswitch.xml
Log Message:
-----------
dpif-netdev: Add round-robin based rxq to pmd assignment.
Prior to OVS 2.9 automatic assignment of Rxqs to PMDs
(i.e. CPUs) was done by round-robin.
That was changed in OVS 2.9 to ordering the Rxqs based on
their measured processing cycles. This was to assign the
busiest Rxqs to different PMDs, improving aggregate
throughput.
For the most part the new scheme should be better, but
there could be situations where a user prefers a simple
round-robin scheme because Rxqs from a single port are
more likely to be spread across multiple PMDs, and/or
traffic is very bursty/unpredictable.
Add 'pmd-rxq-assign' config to allow a user to select
round-robin based assignment.
Signed-off-by: Kevin Traynor <ktraynor at redhat.com>
Acked-by: Eelco Chaudron <echaudro at redhat.com>
Acked-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: e1a64872da7b79fb755ab9d84e0e06ee5fddef57
https://github.com/openvswitch/ovs/commit/e1a64872da7b79fb755ab9d84e0e06ee5fddef57
Author: Greg Rose <roseg at vmware.com>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M utilities/ovs-lib.in
Log Message:
-----------
Revert "Revert "utilities/ovs-ctl: Force removal of ip_gre/gre""
This reverts commit a94f9524dbc11c78c83d1a49959497f5e73bf949.
This is a revert of a previously reverted commit
2bdd1f3d96a86bea6bdb8788f23ec7dd99b289e3.
When we originally added commit 2bdd1f3d96 it was part of an
effort to work around gre module conflicts found while enabling
the ERSPAN feature. Testing at the time did not show any benefit
so in commit a94f9524db we reverted it. However, further
developments showed that in some corner cases it did have a
benefit and it did not do any harm so we reverted the original
revert to restore the code.
Signed-off-by: Greg Rose <roseg at vmware.com>
Tested-by: Yifeng Sun <pkusunyifeng at gmail.com>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Justin Pettit <jpettit at ovn.org>
Commit: cd2c1d3b1e03b41f0e2c964fcbdb1e82cde7c794
https://github.com/openvswitch/ovs/commit/cd2c1d3b1e03b41f0e2c964fcbdb1e82cde7c794
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M lib/ofp-print.c
Log Message:
-----------
ofp-print: Fix a memory leak reported by fuzz
When ofputil_decode_port_stats returns error, it is possible that
custom_stats_counters is valid and still need freed.
The fuzz report link is
https://oss-fuzz.com/testcase?key=5739356233400320
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Justin Pettit <jpettit at ovn.org>
Commit: 9539528def954a94bfc3b95b4d893092831596d2
https://github.com/openvswitch/ovs/commit/9539528def954a94bfc3b95b4d893092831596d2
Author: Justin Pettit <jpettit at ovn.org>
Date: 2018-09-14 (Fri, 14 Sep 2018)
Changed paths:
M lib/ofp-port.c
M lib/ofp-print.c
Log Message:
-----------
ofp-port: Don't leak on error in ofputil_pull_ofp14_port_stats().
With this change, we can remove a case of free done in the error code
path.
Signed-off-by: Justin Pettit <jpettit at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Commit: d9564a2fcc90f0b9de507ad1e1a540c5d9a48684
https://github.com/openvswitch/ovs/commit/d9564a2fcc90f0b9de507ad1e1a540c5d9a48684
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-17 (Mon, 17 Sep 2018)
Changed paths:
M Documentation/topics/dpdk/pmd.rst
M NEWS
M lib/dpif-netdev.c
M tests/pmd.at
M vswitchd/vswitch.xml
Log Message:
-----------
Merge branch 'dpdk_merge' of https://github.com/istokes/ovs into HEAD
Commit: 03121ac4efbe198a137c97962a3017cea7a9ae15
https://github.com/openvswitch/ovs/commit/03121ac4efbe198a137c97962a3017cea7a9ae15
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-17 (Mon, 17 Sep 2018)
Changed paths:
M ofproto/ofproto-dpif-xlate.c
Log Message:
-----------
ofproto-dpif-xlate: Fix translation of groups with no buckets.
A group can have no buckets, in which case ovs_list_back() assert-fails.
This fixes the problem.
Found by OFTest.
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1626488
Tested-by: Eelco Chaudron <echaudro at redhat.com>
Fixes: a04e58881e25 ("ofproto-dpif-xlate: Simplify translation for groups.")
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Eelco Chaudron <echaudro at redhat.com>
Commit: bc4fd439586f35b51b7c33708e9e5cf2853298dd
https://github.com/openvswitch/ovs/commit/bc4fd439586f35b51b7c33708e9e5cf2853298dd
Author: Martin Xu <martinxu9.ovs at gmail.com>
Date: 2018-09-17 (Mon, 17 Sep 2018)
Changed paths:
M rhel/openvswitch-fedora.spec.in
Log Message:
-----------
rhel: Ship ovs shared libraries, fedora
This patch extends 4886d4d2495b (debian, rhel: Ship ovs shared libraries
and header files) to fedora, by packaging the shared libraries in
openvswitch and openvswitch-dvel RPM. These files are always packaged in
the RPMs built with rhel6 spec file.
VMware-BZ: #2036847
CC: Flavio Leitner <fbl at redhat.com>
Signed-off-by: Martin Xu <martinxu9.ovs at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Flavio Leitner <fbl at redhat.com>
Commit: 491fdb0e712d98bc60c60bd2d464b43164853c2d
https://github.com/openvswitch/ovs/commit/491fdb0e712d98bc60c60bd2d464b43164853c2d
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-17 (Mon, 17 Sep 2018)
Changed paths:
M ovsdb/ovsdb-idlc.in
Log Message:
-----------
ovsdb-idlc: Use ALIGNED_CAST to avoid spurious warnings for index rows.
The *_index_init_row() function casts a generic ovsdb_idl_row pointer to
a specific type of row pointer. This can cause an increase in required
alignment with some kinds of data on some architectures. GCC complains,
e.g.:
lib/vswitch-idl.c: In function 'ovsrec_flow_sample_collector_set_index_init_row'
lib/vswitch-idl.c:9277:12: warning: cast increases required alignment of target
However, rows are always allocated with malloc(), which returns member
suitable for any type, so this is a false positive warning and this commit
suppresses it.
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Han Zhou <zhouhan at gmail.com>
Commit: 4043c30028b86fcd65439d3e39344c018fd71827
https://github.com/openvswitch/ovs/commit/4043c30028b86fcd65439d3e39344c018fd71827
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-17 (Mon, 17 Sep 2018)
Changed paths:
M include/openvswitch/util.h
Log Message:
-----------
util: Better document ALIGNED_CAST.
CC: Han Zhou <zhouhan at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Han Zhou <hzhou8 at ebay.com>
Commit: ecf44dd3b26904edf480ada1c72a22fadb6b1825
https://github.com/openvswitch/ovs/commit/ecf44dd3b26904edf480ada1c72a22fadb6b1825
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-09-17 (Mon, 17 Sep 2018)
Changed paths:
M ovsdb/replication.c
Log Message:
-----------
ovsdb-server: Alleviate the possible data loss in an active/standby setup
The present code resets the database when it is in the state -
'RPL_S_SCHEMA_REQUESTED' and repopulates the database when it
receives the monitor reply when it is in the state -
'RPL_S_MONITOR_REQUESTED'. If however, it goes to active mode
before it processes the monitor reply, the whole data is lost.
This patch alleviates the problem by resetting the database when it
receives the monitor reply (before processing it). So that
reset and repopulation of the db happens in the same state.
This approach still has a window for data loss if the function
process_notification() when processing the monitor reply fails for
some reason or ovsdb-server crashes for some reason during
process_notification().
Reported-by: Han Zhou <zhouhan at gmail.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-August/047161.html
Tested-by: aginwala <aginwala at ebay.com>
Acked-by: Han Zhou <zhouhan at gmail.com>
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 52499f66f629619f61371a556338531677462680
https://github.com/openvswitch/ovs/commit/52499f66f629619f61371a556338531677462680
Author: Justin Pettit <jpettit at ovn.org>
Date: 2018-09-18 (Tue, 18 Sep 2018)
Changed paths:
M NEWS
M debian/changelog
Log Message:
-----------
Set release dates for 2.10.0.
Signed-off-by: Justin Pettit <jpettit at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Commit: 37ed637239bed0102037d6df2752fc515d6b4ed9
https://github.com/openvswitch/ovs/commit/37ed637239bed0102037d6df2752fc515d6b4ed9
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-09-18 (Tue, 18 Sep 2018)
Changed paths:
M datapath/linux/compat/ip6_gre.c
M datapath/linux/compat/ip6_tunnel.c
M datapath/linux/compat/ip_gre.c
Log Message:
-----------
gre: Rename fallback devices to avoid udev's interference
On certain kernel versions, when openvswitch kernel module creates
a gre0 interface, the kernel’s gre module will jump out and compete
to control the gre0 interface. This will cause the failure of
openvswitch kernel module loading.
This fix renames fallback devices by adding a prefix "ovs-".
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>
Tested-by: Greg Rose <gvrose8192 at gmail.com>
Signed-off-by: Justin Pettit <jpettit at ovn.org>
VMware Issue: #2162866
Commit: a1d4207e2c8a751d03b45fa21e5d8370713b9047
https://github.com/openvswitch/ovs/commit/a1d4207e2c8a751d03b45fa21e5d8370713b9047
Author: Anand Kumar <kumaranand at vmware.com>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M datapath-windows/include/OvsDpInterfaceExt.h
M datapath-windows/ovsext/Conntrack.c
M datapath-windows/ovsext/Conntrack.h
M datapath-windows/ovsext/Datapath.c
M lib/netlink-socket.c
Log Message:
-----------
datapath-windows: Add support to configure ct zone limits
This patch implements limiting conntrack entries
per zone using dpctl commands.
Example:
ovs-appctl dpctl/ct-set-limits default=5 zone=1,limit=2 zone=1,limit=3
ovs-appctl dpct/ct-del-limits zone=4
ovs-appctl dpct/ct-get-limits zone=1,2,3
- Also update the netlink-socket.c to support netlink family
'OVS_WIN_NL_CTLIMIT_FAMILY_ID' for conntrack zone limit.
Signed-off-by: Anand Kumar <kumaranand at vmware.com>
Acked-by: Alin Gabriel Serdean <aserdean at ovn.org>
Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
Commit: 202469aa9e919e549e6166e072cc8332b3d12092
https://github.com/openvswitch/ovs/commit/202469aa9e919e549e6166e072cc8332b3d12092
Author: Pieter Jansen van Vuuren <pieter.jansenvanvuuren at netronome.com>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M include/linux/tc_act/tc_tunnel_key.h
M lib/netdev-tc-offloads.c
M lib/tc.c
M lib/tc.h
Log Message:
-----------
lib/tc: add geneve with option encap action offload
Add TC offload support for encapsulating geneve tunnels with options.
Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren at netronome.com>
Signed-off-by: Simon Horman <simon.horman at netronome.com>
Commit: a468645c6d330943dbe0c8d466e05b9af2d7df0c
https://github.com/openvswitch/ovs/commit/a468645c6d330943dbe0c8d466e05b9af2d7df0c
Author: Pieter Jansen van Vuuren <pieter.jansenvanvuuren at netronome.com>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M include/linux/pkt_cls.h
M lib/netdev-tc-offloads.c
M lib/tc.c
M lib/tc.h
Log Message:
-----------
lib/tc: add geneve with option match offload
Add TC offload support for classifying geneve tunnels with options.
Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren at netronome.com>
Signed-off-by: Simon Horman <simon.horman at netronome.com>
Commit: ef1ebd3f33243e5585aa914208b94d0049fa2a7c
https://github.com/openvswitch/ovs/commit/ef1ebd3f33243e5585aa914208b94d0049fa2a7c
Author: Alin Gabriel Serdean <aserdean at ovn.org>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M datapath-windows/ovsext/Conntrack.h
Log Message:
-----------
datapath-windows: Fix payload length calculation in Conntrack.h
The payload calculation in OvsGetTcpHeader is wrong:
`ntohs(ipHdr->tot_len) - expr` instead of `ntohs((ipHdr->tot_len) - expr)`.
We already have a macro for that calculation defined in NetProto.h so use it.
Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
Acked-by: Anand Kumar <kumaranand at vmware.com>
Commit: 586ebdec0b17eb3f87705e72ec862b2911dfdf8c
https://github.com/openvswitch/ovs/commit/586ebdec0b17eb3f87705e72ec862b2911dfdf8c
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M include/openvswitch/meta-flow.h
M tests/ofproto-dpif.at
Log Message:
-----------
meta-flow: Make "nw_frag" a synonym for "ip_frag".
Since the time that OVS introduced support for IP fragments, the OVS
functions that format flows have used "nw_frag", but the ones that parse
flows have expected "ip_frag". Obviously this is a bug and it's a surprise
that it's gone so long without anyone reporting the problem. This fixes
it and adds a test.
Reported-by: Gurucharan Shetty <guru at ovn.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Gurucharan Shetty <guru at ovn.org>
Commit: 33f7f735c35b5f3bb84b3a7771e92ae487280dd2
https://github.com/openvswitch/ovs/commit/33f7f735c35b5f3bb84b3a7771e92ae487280dd2
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M ovn/ovn-nb.xml
Log Message:
-----------
ovn: Add the documentation for the DHCP opt 'wpad' in proper section
The commit "6f01617442" added the documenation for the DHCPv4 option
252 in the wrong section. This patch fixes it.
Fixes: 6f01617442 ("ovn: Add DHCP support for option 252.")
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Mark Michelson <mmichels at redhat.com>
Commit: ecc7744bcd1559c71acd0cb5f40fbcb947028f71
https://github.com/openvswitch/ovs/commit/ecc7744bcd1559c71acd0cb5f40fbcb947028f71
Author: Gurucharan Shetty <guru at ovn.org>
Date: 2018-09-20 (Thu, 20 Sep 2018)
Changed paths:
M utilities/ovs-ofctl.8.in
Log Message:
-----------
ovs-ofctl.8: Fix reference to 'ip_frag'.
The description of 'ip_frag' is now available
in 'man ovs-fields'
Signed-off-by: Gurucharan Shetty <guru at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Commit: b37f8c15ca6ee079541b0c02ee77ce9d392b18fc
https://github.com/openvswitch/ovs/commit/b37f8c15ca6ee079541b0c02ee77ce9d392b18fc
Author: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
Date: 2018-09-21 (Fri, 21 Sep 2018)
Changed paths:
M ovn/utilities/ovn-trace.8.xml
M ovn/utilities/ovn-trace.c
Log Message:
-----------
OVN: add CT_LB action to ovn-trace
Add CT_LB action to ovn-trace utility in order to fix the
following ovn-trace error if a load balancer rule is added to
OVN configuration
ct_next(ct_state=est|trk /* default (use --ct to customize) */) {
*** ct_lb action not implemented;
};
Add '--lb_dst' option in order to specify the ip address to use
in VIP pool. If --lb_dst is not provided the destination ip will be
randomly choosen
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 2f355bffcd9d465dea86f1dd415a24b9dbe42791
https://github.com/openvswitch/ovs/commit/2f355bffcd9d465dea86f1dd415a24b9dbe42791
Author: Yi-Hung Wei <yihung.wei at gmail.com>
Date: 2018-09-21 (Fri, 21 Sep 2018)
Changed paths:
M ofproto/ofproto-dpif-xlate.c
M ofproto/ofproto-dpif-xlate.h
M ofproto/ofproto-dpif.c
M tests/ofproto-dpif.at
Log Message:
-----------
ofproto-dpif: Fix NXT_RESUME flow stats
Currently, OVS does not update the flow stats after a packet is
restarted by NXT_RESUME message. This patch fixes the aforementioned
issue and adds an unit test to prevent regression.
Fixes: 77ab5fd2a95b ("Implement serializing the state of packet traversal in "continuations".")
VMware-BZ: #2198435
Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 348f1f67326da085316f45b385f359e3da73b3f4
https://github.com/openvswitch/ovs/commit/348f1f67326da085316f45b385f359e3da73b3f4
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-09-21 (Fri, 21 Sep 2018)
Changed paths:
M tests/system-traffic.at
Log Message:
-----------
tests: Fix broken test of 'truncate and output to gre tunnel'
The test 'truncate and output to gre tunnel' is broken on certain kernels
where OVS kernel module and upstream GRE module can't co-exist. This
patch creates a test that doesn't depend on upstream GRE module but
provides the same testing.
The replaced test is skipped on problematic kernel versions.
On centos, this test may fail due to the default rules of iptables.
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Tested-by: Greg Rose <gvrose8192 at gmail.com>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>
Commit: 333ea340a0bb539016235820f88d1f6fdd2cbfbd
https://github.com/openvswitch/ovs/commit/333ea340a0bb539016235820f88d1f6fdd2cbfbd
Author: James Page <james.page at ubuntu.com>
Date: 2018-09-21 (Fri, 21 Sep 2018)
Changed paths:
M utilities/ovs-kmod-ctl.in
Log Message:
-----------
ovs-kmod-ctl: source ovs-lib dynamically
Determine installation location of ovs-lib using runtime location
of script, rather than build-time parameters.
Signed-off-by: James Page <james.page at ubuntu.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 97bc5b232699e16cc3acbe10148fd60a3b029384
https://github.com/openvswitch/ovs/commit/97bc5b232699e16cc3acbe10148fd60a3b029384
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-21 (Fri, 21 Sep 2018)
Changed paths:
M lib/flow.c
Log Message:
-----------
flow: Fix uninitialized flow fields in IPv6 error case.
When parse_ipv6_ext_hdrs__() returned false, half a 64-bit word had been
pushed into the miniflow and the second half was left uninitialized. This
commit fixes the problem.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10518
Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Commit: 4c7e176644cf03c3ea5539b359158df8de9f85d8
https://github.com/openvswitch/ovs/commit/4c7e176644cf03c3ea5539b359158df8de9f85d8
Author: Flavio Leitner <fbl at sysclose.org>
Date: 2018-09-25 (Tue, 25 Sep 2018)
Changed paths:
M configure.ac
M include/sparse/bits/floatn.h
Log Message:
-----------
sparse: check if floatn-common.h is available.
This skip including floatn-common.h if it's not available since it
was introduced in glibc 2.27 and OVS doesn't not actually require
that to work with previous glibc version.
Fixes: 07aec2ac1 sparse: Support newer GCC/glibc versions.
Signed-off-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 83cf865ef868af55e9ab23d7b814d53501c345d9
https://github.com/openvswitch/ovs/commit/83cf865ef868af55e9ab23d7b814d53501c345d9
Author: Zak Whittington <zwhitt.vmware at gmail.com>
Date: 2018-09-25 (Tue, 25 Sep 2018)
Changed paths:
M utilities/ovs-save
Log Message:
-----------
ovs-save: save and restore groups on restart
VMware-BZ: 2192560
Signed-off-by: Zak Whittington <zwhitt.vmware at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 69c51582ff786a68fc325c1c50624715482bc460
https://github.com/openvswitch/ovs/commit/69c51582ff786a68fc325c1c50624715482bc460
Author: Matteo Croce <mcroce at redhat.com>
Date: 2018-09-25 (Tue, 25 Sep 2018)
Changed paths:
M lib/dpif-netlink.c
Log Message:
-----------
dpif-netlink: don't allocate per thread netlink sockets
When using the kernel datapath, OVS allocates a pool of sockets to handle
netlink events. The number of sockets is: ports * n-handler-threads, where
n-handler-threads is user configurable and defaults to 3/4*number of cores.
This because vswitchd starts n-handler-threads threads, each one with a
netlink socket for every port of the switch. Every thread then, starts
listening on events on its set of sockets with epoll().
On setup with lot of CPUs and ports, the number of sockets easily hits
the process file descriptor limit, and ovs-vswitchd will exit with -EMFILE.
Change the number of allocated sockets to just one per port by moving
the socket array from a per handler structure to a per datapath one,
and let all the handlers share the same sockets by using EPOLLEXCLUSIVE
epoll flag which avoids duplicate events, on systems that support it.
The patch was tested on a 56 core machine running Linux 4.18 and latest
Open vSwitch. A bridge was created with 2000+ ports, some of them being
veth interfaces with the peer outside the bridge. The latency of the upcall
is measured by setting a single 'action=controller,local' OpenFlow rule to
force all the packets going to the slow path and then to the local port.
A tool[1] injects some packets to the veth outside the bridge, and measures
the delay until the packet is captured on the local port. The rx timestamp
is get from the socket ancillary data in the attribute SO_TIMESTAMPNS, to
avoid having the scheduler delay in the measured time.
The first test measures the average latency for an upcall generated from
a single port. To measure it 100k packets, one every msec, are sent to a
single port and the latencies are measured.
The second test is meant to check latency fairness among ports, namely if
latency is equal between ports or if some ports have lower priority.
The previous test is repeated for every port, the average of the average
latencies and the standard deviation between averages is measured.
The third test serves to measure responsiveness under load. Heavy traffic
is sent through all ports, latency and packet loss is measured
on a single idle port.
The fourth test is all about fairness. Heavy traffic is injected in all
ports but one, latency and packet loss is measured on the single idle port.
This is the test setup:
# nproc
56
# ovs-vsctl show |grep -c Port
2223
# ovs-ofctl dump-flows ovs_upc_br
cookie=0x0, duration=4.827s, table=0, n_packets=0, n_bytes=0, actions=CONTROLLER:65535,LOCAL
# uname -a
Linux fc28 4.18.7-200.fc28.x86_64 #1 SMP Mon Sep 10 15:44:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
And these are the results of the tests:
Stock OVS Patched
netlink sockets
in use by vswitchd
lsof -p $(pidof ovs-vswitchd) \
|grep -c GENERIC 91187 2227
Test 1
one port latency
min/avg/max/mdev (us) 2.7/6.6/238.7/1.8 1.6/6.8/160.6/1.7
Test 2
all port
avg latency/mdev (us) 6.51/0.97 6.86/0.17
Test 3
single port latency
under load
avg/mdev (us) 7.5/5.9 3.8/4.8
packet loss 95 % 62 %
Test 4
idle port latency
under load
min/avg/max/mdev (us) 0.8/1.5/210.5/0.9 1.0/2.1/344.5/1.2
packet loss 94 % 4 %
CPU and RAM usage seems not to be affected, the resource usage of vswitchd
idle with 2000+ ports is unchanged:
# ps u $(pidof ovs-vswitchd)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
openvsw+ 5430 54.3 0.3 4263964 510968 pts/1 RLl+ 16:20 0:50 ovs-vswitchd
Additionally, to check if vswitchd is thread safe with this patch, the
following test was run for circa 48 hours: on a 56 core machine, a
bridge with kernel datapath is filled with 2200 dummy interfaces and 22
veth, then 22 traffic generators are run in parallel piping traffic into
the veths peers outside the bridge.
To generate as many upcalls as possible, all packets were forced to the
slowpath with an openflow rule like 'action=controller,local' and packet
size was set to 64 byte. Also, to avoid overflowing the FDB early and
slowing down the upcall processing, generated mac addresses were restricted
to a small interval. vswitchd ran without problems for 48+ hours,
obviously with all the handler threads with almost 99% CPU usage.
[1] https://github.com/teknoraver/network-tools/blob/master/weed.c
Signed-off-by: Matteo Croce <mcroce at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Flavio Leitner <fbl at sysclose.org>
Commit: 8821b212df5450799dfae8e9b4058b2cdacc49f0
https://github.com/openvswitch/ovs/commit/8821b212df5450799dfae8e9b4058b2cdacc49f0
Author: Martin Xu <martinxu9.ovs at gmail.com>
Date: 2018-09-25 (Tue, 25 Sep 2018)
Changed paths:
M rhel/openvswitch-kmod-fedora.spec.in
Log Message:
-----------
rhel: use _datadir as path prefix for ovs-kmod-manage.sh, fedora
This patch fixes the path for ovs-kmod-manage.sh script in the
openvswitch-kmod RPM in fedora spec file. Currently the path prefix is
hard coded to /usr/share. Use %{_datadir} instead.
Fixes: 22c33c303932 (rhel: support kmod build against mulitple kernel versions, fedora)
Signed-off-by: Martin Xu <martinxu9.ovs at gmail.com>
CC: Greg Rose <gvrose8192 at gmail.com>
CC: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Flavio Leitner <fbl at sysclose.org>
Commit: 4c1e8cb9423df8dfd53b0e8ffe58a3d4a9c5148a
https://github.com/openvswitch/ovs/commit/4c1e8cb9423df8dfd53b0e8ffe58a3d4a9c5148a
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M acinclude.m4
Log Message:
-----------
acinclude.m4: Really check whether GCC support -Wno-null-pointer-arithmetic.
I've noticed recently an annoying quantity of error messages like the
following in builds in various places:
gcc: error: unrecognized command line option ‘-Wunknown-warning-option’
This didn't really make sense because OVS checks whether the compiler
supports warning options before it uses them. Looking closer, the GCC
manual has a note that explains the issue:
When an unrecognized warning option is requested (e.g.,
'-Wunknown-warning'), GCC emits a diagnostic stating that the
option is not recognized. However, if the '-Wno-' form is used,
the behavior is slightly different: no diagnostic is produced for
'-Wno-unknown-warning' unless other diagnostics are being
produced. This allows the use of new '-Wno-' options with old
compilers, but if something goes wrong, the compiler warns that
an unrecognized option is present.
Thus, we can properly check only for the *positive* version of a warning
option, so this commit makes the OVS tests do that.
Fixes: a7021b08b0d5 ("configure: Disable -Wnull-pointer-arithmetic Clang warning.")
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Aaron Conole <aconole at redhat.com>
Commit: 2f114c7e11679bcc5c43bc64286c54be61981894
https://github.com/openvswitch/ovs/commit/2f114c7e11679bcc5c43bc64286c54be61981894
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M lib/ovsdb-data.c
Log Message:
-----------
ovsdb-data: Drop redundant initialization from ovsdb_datum_apply_diff().
The call to ovsdb_datum_diff() initializes 'new', so it's not necessary to
also do it in ovsdb_datum_apply_diff().
Found by inspection.
Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Commit: 24ea309555383162cb858c8a78eaf4e06c68cfc8
https://github.com/openvswitch/ovs/commit/24ea309555383162cb858c8a78eaf4e06c68cfc8
Author: Martin Xu <martinxu9.ovs at gmail.com>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M rhel/openvswitch-kmod-fedora.spec.in
Log Message:
-----------
rhel: fix wrong condition check for ovs-kmod-manage.sh, fedora
In post-install in kmod fedora spec file, the variables storing
different parts of kernel version numbers are renamed. The condition
check to run ovs-kmod-manage.sh for RHEL 7.2 and 7.4 uses the older
variables.
Fixes: c3570519ecaf (rhel: add 4.4 kernel in kmod build with mulitple versions, fedora)
Signed-off-by: Martin Xu <martinxu9.ovs at gmail.com>
CC: Greg Rose <gvrose8192 at gmail.com>
CC: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: ffe6cea89667a7e6d4ac0396f85acdcb3c64ce0e
https://github.com/openvswitch/ovs/commit/ffe6cea89667a7e6d4ac0396f85acdcb3c64ce0e
Author: Bhargava Shastry <bshastry at sec.t-labs.tu-berlin.de>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M tests/test-ovn.c
Log Message:
-----------
test-ovn: Fixes memory leak.
Fixes memory leaked by call to ovn_extend_table_init that is missing a
corresponding ovn_extend_table_destroy in test-ovn.c. This fixes leaks for
the group_table and meter_table objects.
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: f836888d28ec89565f87609e06f48becb49e5079
https://github.com/openvswitch/ovs/commit/f836888d28ec89565f87609e06f48becb49e5079
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M include/openvswitch/ofp-group.h
M include/openvswitch/ofp-monitor.h
M lib/ofp-bundle.c
M lib/ofp-group.c
M lib/ofp-monitor.c
M ofproto/ofproto.c
M ovn/controller/ofctrl.c
M utilities/ovs-ofctl.c
Log Message:
-----------
ofproto: Handle OpenFlow version mismatch for requestforward with groups.
OpenFlow 1.4+ supports a feature called requestforward. When a controller
enables this feature, the switch sends that controller a copy of other
controllers' group and meter modification requests. OpenFlow 1.5 supports
some group features not in OpenFlow 1.4. When OVS attempted to forward
such requests to an OpenFlow 1.4 controller, it reported an error and
exited. This commit fixes the problem by making OVS properly translate the
messages to OpenFlow 1.4 format.
Reported-by: Pierre Cregut <pierre.cregut at orange.com>
Tested-by: Pierre Cregut <pierre.cregut at orange.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-September/047453.html
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 991f1f63f5803ce42bf9c11ee7d2d74f086a481b
https://github.com/openvswitch/ovs/commit/991f1f63f5803ce42bf9c11ee7d2d74f086a481b
Author: Anju Thomas <anju.thomas at ericsson.com>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M ofproto/ofproto-dpif-xlate.c
M tests/mpls-xlate.at
Log Message:
-----------
ofproto-dpif-xlate: Fix load balancing for select groups with MPLS.
Before this commit, OVS did not do load balancing for select group buckets
in case of mpls tagged packets. After an MPLS pop action, the expectation
is to trigger recirculation. This recirculation will ensure an RSS
re-computation which will ensure load balancing in case of select group
bucket. Due to a missing return statement before bucket selection, the
bucket selection in case of select group happens before the recirculation
and hence no load balancing is achieved.
Signed-off-by: Anju Thomas <anju.thomas at ericsson.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 769b50349f28c5f9e4bff102bc61dadcb9b99c37
https://github.com/openvswitch/ovs/commit/769b50349f28c5f9e4bff102bc61dadcb9b99c37
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M lib/dpif-netlink.c
M lib/dpif-provider.h
M lib/dpif.c
M lib/dpif.h
M ofproto/ofproto-dpif-upcall.c
M ofproto/ofproto-dpif-xlate.c
Log Message:
-----------
dpif: Remove support for multiple queues per port.
Commit 69c51582ff78 ("dpif-netlink: don't allocate per thread netlink
sockets") removed dpif-netlink support for multiple queues per port.
No remaining dpif provider supports multiple queues per port, so
remove infrastructure for the feature.
CC: Matteo Croce <mcroce at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Tested-by: Yifeng Sun <pkusunyifeng at gmail.com>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Commit: 07706c500dd5cba48ec08580fcb3c59274445c18
https://github.com/openvswitch/ovs/commit/07706c500dd5cba48ec08580fcb3c59274445c18
Author: Yi-Hung Wei <yihung.wei at gmail.com>
Date: 2018-09-26 (Wed, 26 Sep 2018)
Changed paths:
M ofproto/ofproto-dpif-xlate.c
M tests/ofproto-dpif.at
Log Message:
-----------
ofproto-dpif-xlate: Fix conntrack fields on NXT_RESUME
This patch addresses the issue that the conntrack fields associated
with a packet are missing after a packet is resumed by NXT_RESUME.
For example, the last rule in the following OpenFlow pipeline is not
working without this patch.
table=0, arp,in_port=1 action=2
table=0, arp,in_port=2 action=1
table=0, in_port=2 icmp action=output:1
table=0, in_port=1 icmp action=ct(table=1)
table=1, icmp action=controller(pause) resubmit(,2)
table=2, in_port=1 icmp ct_state=+trk+new action=output:2
A unit test is added to prevent regression.
Fixes: 77ab5fd2a95b ("Implement serializing the state of packet traversal in "continuations".")
VMware-BZ: #2202764
Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: d31ac3b3797ab7be727bf5da39f098af619c61d8
https://github.com/openvswitch/ovs/commit/d31ac3b3797ab7be727bf5da39f098af619c61d8
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M ofproto/ofproto.c
Log Message:
-----------
ofproto: Fix build with some GCC versions.
GCC 4.8.x and possibly other versions don't like a designated initializer
for an anonymous struct, see e.g.
https://travis-ci.org/openvswitch/ovs/jobs/433747674
Fixes: f836888d28ec ("ofproto: Handle OpenFlow version mismatch for requestforward with groups.")
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>
Commit: 420632af322e2f519b098b1d4a0504c9eaebd07a
https://github.com/openvswitch/ovs/commit/420632af322e2f519b098b1d4a0504c9eaebd07a
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M datapath-windows/ovsext/IpFragment.c
M datapath-windows/ovsext/IpFragment.h
M ovn/controller/pinctrl.c
M tests/ofproto-dpif.at
Log Message:
-----------
treewide: Fix spelling of "receive".
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>
Commit: 49fd74c27ce8e3d02cf65f5814404f7e109dfcbf
https://github.com/openvswitch/ovs/commit/49fd74c27ce8e3d02cf65f5814404f7e109dfcbf
Author: zhangkaiheb <zhangkaiheb at 126.com>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M Documentation/topics/datapath.rst
Log Message:
-----------
doc:6 is the TCP protocol number
Signed-off-by: kai zhang <zhangkaiheb at 126.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 5c6590ecbe00af7df1e66b879382b3b1c70d3516
https://github.com/openvswitch/ovs/commit/5c6590ecbe00af7df1e66b879382b3b1c70d3516
Author: Justin Pettit <jpettit at ovn.org>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M ofproto/ofproto-dpif-sflow.c
Log Message:
-----------
sflow: Set agent address properly based on collector address.
If an agent address is not provided, OVS tries to choose a source
address based on the source IP that would be used to connect to the
sFlow collector. The code previously set the agent address to the
collector's address instead of using the calculated source address.
This patch properly uses the source address.
Reported-by: Neil McKee <neil.mckee at inmon.com>
Signed-off-by: Justin Pettit <jpettit at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Commit: dc2c9ce38748c506ac67e1adfe52eef154e6fda2
https://github.com/openvswitch/ovs/commit/dc2c9ce38748c506ac67e1adfe52eef154e6fda2
Author: Justin Pettit <jpettit at ovn.org>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M ofproto/ofproto-dpif-xlate.c
Log Message:
-----------
ofproto-dpif-xlate.c: Fix uninitialized variable warning.
With gcc 7.3.0 a warning is given about two variables possibly being
uninitialized in compose_sample_action(). The code path only allows the
variables to be used if they've been initialized, so this warning is
incorrect. However, this change allows a clean build.
Signed-off-by: Justin Pettit <jpettit at ovn.org>
Acked-by: Flavio Leitner <fbl at sysclose.org>
Commit: 2eb91827486cf340fcdf2eeb912c96d5cbeef112
https://github.com/openvswitch/ovs/commit/2eb91827486cf340fcdf2eeb912c96d5cbeef112
Author: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M tests/oss-fuzz/automake.mk
A tests/oss-fuzz/config/expr.dict
A tests/oss-fuzz/config/expr_parse_target.options
A tests/oss-fuzz/expr_parse_target.c
Log Message:
-----------
oss-fuzz: Add fuzzing target for OVN
The fuzzer target, expr_parse_target.c, comprises test cases adapted
from test-ovn.c.
In addition, this patch contains configuration files for oss-fuzz,
including a dictionary, expr.dict, to aid quick path discovery and a
fuzzer configuration file that customises fuzzing for this target.
Prominently, the patch sets the maximum length of fuzzed input
(the string accepted by lexer/expression parser) to be up to 100
characters long not containing a newline character.
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 0d5450a2ae14dcb98ad9f2546fc956910c9b8f54
https://github.com/openvswitch/ovs/commit/0d5450a2ae14dcb98ad9f2546fc956910c9b8f54
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-09-27 (Thu, 27 Sep 2018)
Changed paths:
M ovsdb/ovsdb-client.c
Log Message:
-----------
ovsdb-client: Fix a bug that uses wrong index
This patch fixes the incorrect index to argv.
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 13efe4209b6ab3671c3afadbc10c9136d6cce221
https://github.com/openvswitch/ovs/commit/13efe4209b6ab3671c3afadbc10c9136d6cce221
Author: Sairam Venugopal <vsairam at vmware.com>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M datapath-windows/ovsext/IpHelper.c
M datapath-windows/ovsext/IpHelper.h
Log Message:
-----------
datapath-windows: Move OVS_IPHELPER_INSTANCE to IpHelper.h
Move the IPHelper Instance to the main header file and update the usage to
explicitly point to POVS_IPHELPER_INSTANCE instead of PVOID. Also rename
the ipn->context to ipn->instance to make it more readable.
Found by inspection.
Signed-off-by: Sairam Venugopal <vsairam at vmware.com>
Acked-by: Alin Gabriel Serdean <aserdean at ovn.org>
Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
Commit: b5967cb747416cc377a2b6f3073d270eab5c1291
https://github.com/openvswitch/ovs/commit/b5967cb747416cc377a2b6f3073d270eab5c1291
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M ovn/lib/lex.c
Log Message:
-----------
lex: Fix buffer overrun parsing overlong hexadecimal constants.
In previous code, if hexit == 0, then the boundary for 'out' is
not checked. This patch fixes it.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10710
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 84ddf96ce026620082d5ce05d42a6419476ffbe1
https://github.com/openvswitch/ovs/commit/84ddf96ce026620082d5ce05d42a6419476ffbe1
Author: Martin Xu <martinxu9.ovs at gmail.com>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M NEWS
M include/openflow/nicira-ext.h
M lib/bundle.c
M lib/flow.c
M lib/flow.h
M lib/multipath.c
M tests/bundle.at
M tests/multipath.at
M tests/oss-fuzz/flow_extract_target.c
M tests/ovs-ofctl.at
M utilities/ovs-ofctl.8.in
Log Message:
-----------
bundle: add symmetric_l3 hash method for multipath
Add a symmetric_l3 hash method that uses both network destination
address and network source address.
VMware-BZ: #2112940
Signed-off-by: Martin Xu <martinxu9.ovs at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: b7a3d73a26c4a9e1176e668d32bdda5fc9a221a7
https://github.com/openvswitch/ovs/commit/b7a3d73a26c4a9e1176e668d32bdda5fc9a221a7
Author: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M tests/oss-fuzz/config/expr_parse_target.options
Log Message:
-----------
ossfuzz: Fix minor bug in expr_parse_target.options
oss-fuzz options file must begin with a [libfuzzer] header.
This was missing in the expr_parse_target.options file which this
patch fixes.
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 516f62f7947ea5dd9c40d99170a6e8a1637e7b64
https://github.com/openvswitch/ovs/commit/516f62f7947ea5dd9c40d99170a6e8a1637e7b64
Author: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M tests/oss-fuzz/config/expr_parse_target.options
Log Message:
-----------
ossfuzz: Remove max_len=100 option
The max_len field, which stipulates the maximum length of
fuzzed input to feed a fuzzer target, was set to 100 for
the ovn expr_parse_target.
In discussions with Ben, this was deemed too restrictive.
Google folks also suggested the removal of this option
since it cannot be uniformly passed on to all fuzzer
engines behind oss-fuzz.
For the future, the suggested way to limit the length of
fuzzed input is in the C code of the test harness itself.
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 6b4d0211e84ad668cf4089b0d8d3c6cbd04e53bf
https://github.com/openvswitch/ovs/commit/6b4d0211e84ad668cf4089b0d8d3c6cbd04e53bf
Author: Eelco Chaudron <echaudro at redhat.com>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M vswitchd/bridge.c
Log Message:
-----------
bridge: Fix ovs-appctl qos/show repeated queue information
The patch below would stop qos/show to repeat information from the previous queues.
See below an example before and after the fix:
Before:
$ ovs-appctl qos/show p5p2
QoS: p5p2 linux-htb
max-rate: 2428800
Default:
burst: 12512
min-rate: 12000
max-rate: 2428800
tx_packets: 0
tx_bytes: 0
tx_errors: 0
Queue 20:
burst: 12512
burst: 12512
min-rate: 12000
min-rate: 12000
max-rate: 607200
max-rate: 2428800
tx_packets: 28780
tx_bytes: 43572920
tx_errors: 17611
Queue 10:
burst: 12512
burst: 12512
burst: 12512
max-rate: 2428800
max-rate: 607200
max-rate: 2428800
min-rate: 12000
min-rate: 12000
min-rate: 12000
tx_packets: 71751
tx_bytes: 108631014
tx_errors: 18503
After:
$ ovs-appctl qos/show p5p2
QoS: p5p2 linux-htb
max-rate: 2428800
Default:
burst: 12512
min-rate: 12000
max-rate: 2428800
tx_packets: 0
tx_bytes: 0
tx_errors: 0
Queue 20:
burst: 12512
min-rate: 12000
max-rate: 607200
tx_packets: 28780
tx_bytes: 43572920
tx_errors: 17611
Queue 10:
burst: 12512
min-rate: 12000
max-rate: 2428800
tx_packets: 71751
tx_bytes: 108631014
tx_errors: 18503
Signed-off-by: Eelco Chaudron <echaudro at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: b24751fff849e74510ec60968db17fc3dfb31499
https://github.com/openvswitch/ovs/commit/b24751fff849e74510ec60968db17fc3dfb31499
Author: Andre McCurdy <armccurdy at gmail.com>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M lib/netdev-linux.c
Log Message:
-----------
netdev-linux: use unsigned int for ifi_flags temporary variables
ifi_flags in struct netdev_linux is an unsigned int, therefore use
unsigned int for variables which will hold ifi_flags values.
Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
Commit: 5e932acead6b9efe2ba514402edf5910d5b86a43
https://github.com/openvswitch/ovs/commit/5e932acead6b9efe2ba514402edf5910d5b86a43
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-02 (Tue, 02 Oct 2018)
Changed paths:
M AUTHORS.rst
Log Message:
-----------
AUTHORS: Add Andre McCurdy.
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 63cf14cd7ad27089131eb012f3ff08369583c308
https://github.com/openvswitch/ovs/commit/63cf14cd7ad27089131eb012f3ff08369583c308
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M lib/netdev.c
Log Message:
-----------
netdev: Properly clear 'details' when iterating in NETDEV_QOS_FOR_EACH.
The function comment for netdev_queue_dump_next() said that it cleared its
'detail' argument, but it didn't actually do that, which meant that details
could be incorrectly carried along from one queue to the next.
Reported-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Eelco Chaudron <echaudro at redhat.com>
Acked-by: Flavio Leitner <fbl at sysclose.org>
Commit: 90ddb3aa7a023e89540f48d444436937f3953402
https://github.com/openvswitch/ovs/commit/90ddb3aa7a023e89540f48d444436937f3953402
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M vswitchd/bridge.c
Log Message:
-----------
Revert "bridge: Fix ovs-appctl qos/show repeated queue information"
This reverts commit 6b4d0211e84a ("bridge: Fix ovs-appctl qos/show
repeated queue information"), which is no longer necessary now that
commit 65f3c34c7417 ("netdev: Properly clear 'details' when iterating
in NETDEV_QOS_FOR_EACH.") has been applied. The former commit fixed
a symptom of the root cause fixed by the latter.
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Eelco Chaudron <echaudro at redhat.com>
Acked-by: Flavio Leitner <fbl at sysclose.org>
Commit: 7837818b27c5d55dd1ef4309e3ca83089980459a
https://github.com/openvswitch/ovs/commit/7837818b27c5d55dd1ef4309e3ca83089980459a
Author: Andre McCurdy <armccurdy at gmail.com>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M m4/openvswitch.m4
Log Message:
-----------
m4: handle configuring with PYTHON="/usr/bin/env python" etc
It may sometimes be desirable to have the python path determined at
run time, ie by setting PYTHON="/usr/bin/env python" etc.
Unfortunately that currently fails as $ovs_cv_python2 and
$ovs_cv_python3 are not always quoted and therefore fail to parse
correctly if PYTHON / PYTHON2 / PYTHON3 are set to values containing
spaces.
Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
Commit: ea43b024a8a03f6648d0e06589137a4fbfea9f5a
https://github.com/openvswitch/ovs/commit/ea43b024a8a03f6648d0e06589137a4fbfea9f5a
Author: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M tests/oss-fuzz/automake.mk
A tests/oss-fuzz/config/odp.dict
A tests/oss-fuzz/config/odp_target.options
A tests/oss-fuzz/odp_target.c
Log Message:
-----------
ossfuzz: Additions for new ODP parser target
This patch adds a new oss-fuzz target for the ODP
parser. The target harness has been adapted from test-odp.c. Prominently, it
leaves out "parse_filter" due to an unresolvable bug in that code at the
time of writing.
It also includes the following:
- a fuzzing dictionary
- fuzzing config
- some automake additions for the new target
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 2ccd0d2f0b63052408b5500e22c5254e8374e996
https://github.com/openvswitch/ovs/commit/2ccd0d2f0b63052408b5500e22c5254e8374e996
Author: Han Zhou <hzhou8 at ebay.com>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M lib/bfd.c
M lib/flow.h
Log Message:
-----------
bfd: Make the tp_dst masking megaflow-friendly.
When there are tunnel ports with BFD enabled, all UDP flows will have
dst port as match condition in datapath, which causes unnecessarily
high flow miss for all UDP traffic, and results in latency increase.
This patch solves the problem by masking tp_dst only for a single
bit that is enough to tell the mismatch when it is not BFD traffic.
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-September/047360.html
Signed-off-by: Han Zhou <hzhou8 at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 000b4a3df0b0ce1ffa2cd7f832de8042fa7c0578
https://github.com/openvswitch/ovs/commit/000b4a3df0b0ce1ffa2cd7f832de8042fa7c0578
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M AUTHORS.rst
Log Message:
-----------
AUTHORS: Update or remove all Nicira email addresses.
nicira.com email addresses stopped working long ago. For folks still at
VMware, this updates them. (Also for Martin, because I feel like it.)
For everyone else, this deletes the addresses.
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>
Commit: 64ed99ffbc4298f8a298b20f503e188b35398546
https://github.com/openvswitch/ovs/commit/64ed99ffbc4298f8a298b20f503e188b35398546
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M acinclude.m4
M configure.ac
M lib/netdev-linux.c
Log Message:
-----------
netdev-linux: Don't include <net/if_packet.h>.
This header only defines sockaddr_pkt, which this source file doesn't use.
This was the only user of net/if_packet.h, so also remove the
configure-time test for it (which netdev-linux wasn't using anyway).
Reported-by: Andre McCurdy <armccurdy at gmail.com>
Reported-at: https://github.com/openvswitch/ovs/pull/253
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: fcaba95e26d695f59379cd1b930d8243d5b551c0
https://github.com/openvswitch/ovs/commit/fcaba95e26d695f59379cd1b930d8243d5b551c0
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M ovsdb/condition.c
M tests/ovsdb-condition.at
Log Message:
-----------
condition: Fix ==, !=, includes, excludes on optional scalars.
Open vSwitch 2.4 introduced an OVSDB extension in which a column with
type optional integer or real could be compared with the operators <,
<=, >, and >=. At the same time, it broke the implementation of the
operators ==, !=, includes, and excludes on columns with the same types.
This fixes the problem.
Reported-by: Hans Ole Rafaelsen <hrafaelsen at gmail.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-September/047356.html
CC: Terry Wilson <twilson at redhat.com>
Fixes: 09e256031a62 ("ovsdb: Allow comparison on optional scalar types")
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>
Commit: 64107d596747179436cb7a4bd6ab31ba277d136b
https://github.com/openvswitch/ovs/commit/64107d596747179436cb7a4bd6ab31ba277d136b
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M Documentation/ref/ovsdb-server.7.rst
M ovsdb/condition.c
M tests/ovsdb-condition.at
Log Message:
-----------
condition: Reject <, <=, >=, > with optional scalar against empty set.
When relational comparisons against optional scalars were introduced, it
was meant to work only when the right-hand side of the comparison was a
scalar, not the empty set. The implementation wasn't that picky. This
commit fixes the problem.
CC: Terry Wilson <twilson at redhat.com>
Fixes: 09e256031a62 ("ovsdb: Allow comparison on optional scalar types")
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>
Commit: bc9bbc4ea2645e5bbb3c02d986f26fdc83283d72
https://github.com/openvswitch/ovs/commit/bc9bbc4ea2645e5bbb3c02d986f26fdc83283d72
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-03 (Wed, 03 Oct 2018)
Changed paths:
M lib/ovsdb-data.c
M tests/ovsdb-condition.at
Log Message:
-----------
ovsdb-data: Improve grammar in error message.
"must have exactly one member" is much better than "must have 1 to 1
members".
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>
Commit: 5e07b8f93f036e5502a045777372435b81361bea
https://github.com/openvswitch/ovs/commit/5e07b8f93f036e5502a045777372435b81361bea
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-04 (Thu, 04 Oct 2018)
Changed paths:
M lib/ovsdb-idl.c
M lib/ovsdb-idl.h
Log Message:
-----------
ovsdb-idl: New function ovsdb_idl_create_unconnected().
This new function makes it possible to create an instance of the IDL
without connecting it to a remote OVSDB server. The caller can then
connect and disconnect using ovsdb_idl_set_remote(); the ability to
disconnect is a new feature.
With this patch, the ovsdb_idl 'session' member can be null whereas
previously it was always nonnull. The scattered changes throughout
ovsdb-idl are to cope with this new possibility.
An upcoming patch will introduce the first user of this new feature.
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: f827c57486fc76f7b02fcd908640f63e0ffdf22a
https://github.com/openvswitch/ovs/commit/f827c57486fc76f7b02fcd908640f63e0ffdf22a
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-04 (Thu, 04 Oct 2018)
Changed paths:
M ovn/controller/ovn-controller.c
Log Message:
-----------
ovn-controller: Honor updates to SSL configuration while waiting for SB DB.
At startup time, ovn-controller connects to the OVS database and retrieves
a pointer to the southbound database, then connects to the southbound
database and retrieves a snapshot. Until now, however, it didn't pay
attention to changes in the OVS database while trying to retrieve the
southbound database, which meant that if the SSL settings changed,
ovn-controller would continue to use the old ones, which probably wouldn't
work.
Also honor changes to the remote for the southbound database while waiting
to connect to it.
Most of the changes in this commit are whitespace only indentation changes,
so passing -w to "git show" (etc.) make it easier to understand.
Reported-by: Dan Williams <dcbw at redhat.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/144
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: f70ac90db00cf1fcf0471f277468cd6bdc67a1d7
https://github.com/openvswitch/ovs/commit/f70ac90db00cf1fcf0471f277468cd6bdc67a1d7
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-10-04 (Thu, 04 Oct 2018)
Changed paths:
M lib/ovsdb-types.h
Log Message:
-----------
ovsdb-types: Refactor structs so as to comply with C++ standard
C++ standard only accepts anonymous struct inside
anonymous union. This patch re-organized the structs so
that this header file can be used in C++ source files.
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: f192ba279e9c7d378f348017281b14f1585e0eaa
https://github.com/openvswitch/ovs/commit/f192ba279e9c7d378f348017281b14f1585e0eaa
Author: Lucas Alvares Gomes <lucasagomes at gmail.com>
Date: 2018-10-05 (Fri, 05 Oct 2018)
Changed paths:
M python/ovs/db/idl.py
Log Message:
-----------
Python: Make Row's __getattr__ less error prone
Calling getattr() on a Row object after invoking delkey() with a value
that does not exist in the object will cause getattr() to fail with a
KeyError error. For example:
Oct 05 14:59:28 neutron-server[28435]: File
"/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/connection.py",
line 122, in run
Oct 05 14:59:28 neutron-server[28435]:
txn.results.put(txn.do_commit())
Oct 05 14:59:28 neutron-server[28435]: File
"/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py",
line 86, in do_commit
Oct 05 14:59:28 neutron-server[28435]: command.run_idl(txn)
Oct 05 14:59:28 neutron-server[28435]: File
"/usr/local/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/command.py",
line 299, in run_idl
Oct 05 14:59:28 neutron-server[28435]: if
isinstance(getattr(record, self.column), dict):
Oct 05 14:59:28 neutron-server[28435]: File
"/usr/local/lib/python2.7/dist-packages/ovs/db/idl.py", line 843, in
__getattr__
Oct 05 14:59:28 neutron-server[28435]: del dmap[key]
Oct 05 14:59:28 neutron-server[28435]: KeyError: 'bogusvalue'
This patch is replacing the "del dmap[key]" instruction with a
"dmap.pop(key, None)" instruction instead because a pop() (with a
default value) will not raise an exception in case the key does not
exist in the object in the first place, it will just ignore it.
Signed-off-by: Lucas Alvares Gomes <lucasagomes at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 2b2532dd4cec6175973aeb34e6e445d59812c1ab
https://github.com/openvswitch/ovs/commit/2b2532dd4cec6175973aeb34e6e445d59812c1ab
Author: Mark Michelson <mmichels at redhat.com>
Date: 2018-10-05 (Fri, 05 Oct 2018)
Changed paths:
M utilities/ovs-pcap.in
Log Message:
-----------
ovs-pcap: Support nanosecond resolution pcap files.
pcap files with nanosecond resolution use a different magic number in
the pcap header than those with microsecond resolution.
Signed-off-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: b6e840aed03e3f6d1aa726b482140d895f60f90f
https://github.com/openvswitch/ovs/commit/b6e840aed03e3f6d1aa726b482140d895f60f90f
Author: Mark Michelson <mmichels at redhat.com>
Date: 2018-10-05 (Fri, 05 Oct 2018)
Changed paths:
M lib/netdev-dummy.c
M lib/pcap-file.c
M lib/pcap-file.h
M tests/test-conntrack.c
M tests/test-flows.c
M utilities/ovs-ofctl.c
Log Message:
-----------
pcap-file: Add nanosecond resolution pcap support.
PCAP header magic numbers are different for microsecond and nanosecond
resolution timestamps. This patch adds support for understanding the
difference and reporting the time correctly with ovs_pcap_read().
When writing pcap files, OVS will always use microsecond resolution, so
no new calculations were added to those functions.
Signed-off-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 790a437229744270bebf7e707e298910e102254f
https://github.com/openvswitch/ovs/commit/790a437229744270bebf7e707e298910e102254f
Author: Matteo Croce <mcroce at redhat.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M lib/dpif-netlink.c
Log Message:
-----------
dpif-netlink: Fix null pointer.
In dpif_netlink_port_add__(), socksp could be NULL, because
vport_socksp_to_pids() would allocate a new array and return a single
zero element.
Following vport_socksp_to_pids() removal, a NULL pointer can happen when
dpif_netlink_port_add__() is called and dpif->handlers is 0.
Restore the old behaviour of using a zero pid when dpif->handlers is 0.
Fixes: 69c51582f ("dpif-netlink: don't allocate per thread netlink sockets")
Reported-by: Flavio Leitner <fbl at redhat.com>
Reported-by: Guru Shetty <guru at ovn.org>
Signed-off-by: Matteo Croce <mcroce at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 2e5cdb4b13924e275ca0776ca0f4147bf5ff7885
https://github.com/openvswitch/ovs/commit/2e5cdb4b13924e275ca0776ca0f4147bf5ff7885
Author: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M ovn/controller/pinctrl.c
M tests/ovn.at
Log Message:
-----------
OVN: add buffering support for ip packets
Add buffering support for IPv4/IPv6 packets that will be processed
by arp{}/nd_ns{} action when L2 address is not discovered yet since
otherwise the packet will be substituted with an ARP/Neighbor
Solicitation frame and this will result in the lost of the first
packet of the connection.
Moreover fix following automatic tests broken by ip-buffering support
since now original ip packets are transmitted by OVN logical
router:
- ovn -- 3 HVs, 3 LS, 3 lports/LS, 1 LR
- ovn -- /32 router IP address
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: bed941ba0f14854683c241fa9bff3d49dd2efeee
https://github.com/openvswitch/ovs/commit/bed941ba0f14854683c241fa9bff3d49dd2efeee
Author: Yi-Hung Wei <yihung.wei at gmail.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M lib/ofp-packet.c
M tests/system-traffic.at
Log Message:
-----------
ofp-packet: Fix NXT_RESUME with geneve tunnel metadata
The patch address vswitchd crash when it receives NXT_RESUME with geneve
tunnel metadata. The crash is due to segmentation fault with the
following stack trace, and it is observed only in kernel datapath.
A test is added to prevent regression.
Thread 1 "ovs-vswitchd" received signal SIGSEGV, Segmentation fault.
0 0x00007fcffd0c5412 in tun_metadata_to_geneve__ (flow=flow at entry=0x7ffcb7106680, b=b at entry=0x7ffcb70eb5a8, crit_opt=crit_opt at entry=0x7ffcb70eb287)
at lib/tun-metadata.c:676
1 0x00007fcffd0c6858 in tun_metadata_to_geneve_nlattr_flow (b=0x7ffcb70eb5a8, flow=0x7ffcb7106638) at lib/tun-metadata.c:706
2 tun_metadata_to_geneve_nlattr (tun=tun at entry=0x7ffcb7106638, flow=flow at entry=0x7ffcb7106638, key=key at entry=0x0, b=b at entry=0x7ffcb70eb5a8)
at lib/tun-metadata.c:810
3 0x00007fcffd048464 in tun_key_to_attr (a=a at entry=0x7ffcb70eb5a8, tun_key=tun_key at entry=0x7ffcb7106638, tun_flow_key=tun_flow_key at entry=0x7ffcb7106638,
key_buf=key_buf at entry=0x0, tnl_type=<optimized out>, tnl_type at entry=0x0) at lib/odp-util.c:2886
4 0x00007fcffd0551cf in odp_key_from_dp_packet (buf=buf at entry=0x7ffcb70eb5a8, packet=0x7ffcb7106590) at lib/odp-util.c:5909
5 0x00007fcffd0d7870 in dpif_netlink_encode_execute (buf=0x7ffcb70eb5a8, d_exec=0x7ffcb7106428, dp_ifindex=<optimized out>) at lib/dpif-netlink.c:1873
6 dpif_netlink_operate__ (dpif=dpif at entry=0xe65e00, ops=ops at entry=0x7ffcb7106418, n_ops=n_ops at entry=1) at lib/dpif-netlink.c:1959
7 0x00007fcffd0d842e in dpif_netlink_operate_chunks (n_ops=1, ops=0x7ffcb7106418, dpif=<optimized out>) at lib/dpif-netlink.c:2258
8 dpif_netlink_operate (dpif_=0xe65e00, ops=<optimized out>, n_ops=<optimized out>) at lib/dpif-netlink.c:2294
9 0x00007fcffd014680 in dpif_operate (dpif=<optimized out>, ops=<optimized out>, ops at entry=0x7ffcb7106418, n_ops=n_ops at entry=1) at lib/dpif.c:1359
10 0x00007fcffd014c58 in dpif_execute (dpif=<optimized out>, execute=execute at entry=0x7ffcb71064e0) at lib/dpif.c:1324
11 0x00007fcffd40d3e6 in nxt_resume (ofproto_=0xe6af50, pin=0x7ffcb7107150) at ofproto/ofproto-dpif.c:4885
12 0x00007fcffd3f88c3 in handle_nxt_resume (ofconn=ofconn at entry=0xf8c8f0, oh=oh at entry=0xf7ebd0) at ofproto/ofproto.c:3612
13 0x00007fcffd404a3b in handle_openflow__ (msg=0xeac460, ofconn=0xf8c8f0) at ofproto/ofproto.c:8137
14 handle_openflow (ofconn=0xf8c8f0, ofp_msg=0xeac460) at ofproto/ofproto.c:8258
15 0x00007fcffd3f4653 in ofconn_run (handle_openflow=0x7fcffd4046f0 <handle_openflow>, ofconn=0xf8c8f0) at ofproto/connmgr.c:1432
16 connmgr_run (mgr=0xe422f0, handle_openflow=handle_openflow at entry=0x7fcffd4046f0 <handle_openflow>) at ofproto/connmgr.c:363
17 0x00007fcffd3fdc76 in ofproto_run (p=0xe6af50) at ofproto/ofproto.c:1821
18 0x000000000040ca94 in bridge_run__ () at vswitchd/bridge.c:2939
19 0x0000000000411d44 in bridge_run () at vswitchd/bridge.c:2997
20 0x00000000004094fd in main (argc=12, argv=0x7ffcb71085b8) at vswitchd/ovs-vswitchd.c:119
VMWare-BZ: #2210216
Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 2c022949efff7f135686bd9007fffaaa6147f935
https://github.com/openvswitch/ovs/commit/2c022949efff7f135686bd9007fffaaa6147f935
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M lib/odp-util.c
Log Message:
-----------
odp-util: Fix a use-after-free bug.
After ofpbuf_put, actions may have been reallocated and
key will point to invalid memory address.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10796
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10802
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: e7fc91d7d5fcd98a9784901b7befe6d0e6dda5d7
https://github.com/openvswitch/ovs/commit/e7fc91d7d5fcd98a9784901b7befe6d0e6dda5d7
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M ovn/lib/extend-table.c
Log Message:
-----------
extend-table: Fix a bug that iterates wrong table
This seems to be a copy and paste bug that iterates and frees
the wrong table. This commit fixes that.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10730
Co-authored-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: ca545a787ac03fdfd36fd5bef4e6986624250cf3
https://github.com/openvswitch/ovs/commit/ca545a787ac03fdfd36fd5bef4e6986624250cf3
Author: Han Zhou <hzhou8 at ebay.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M lib/ovsdb-idl.c
Log Message:
-----------
ovsdb-idl.c: Increase seqno for change-tracking of table references.
This fixes the change-tracking feature. The seqno change is needed so that
the change-tracking helper function ..._is_new() can work properly.
Fixes: 102781cc02c6 ("ovsdb-idl: Track changes for table references.")
Signed-off-by: Han Zhou <hzhou8 at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 298115b94b881146fb82abc4e64d0e4f668d20e4
https://github.com/openvswitch/ovs/commit/298115b94b881146fb82abc4e64d0e4f668d20e4
Author: Han Zhou <hzhou8 at ebay.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M utilities/ovs-ctl.in
Log Message:
-----------
ovs-ctl: Add new option to use short hostname.
Current ovs-ctl forces to set full hostname in external-ids. In
some situation users may want to set short hostname. For example,
in OpenStack - OVN integration, Neutron uses the host-id provided
by Nova, which is usually short hostname, to set "requested-chassis"
in OVN. The mismatch in hypervisor's external-ids:hostname setting
causes OVN port binding failure. It can be overridden to short name
but a openvswitch restart using ovs-ctl would again set it to full
hostname. This patch ensures in such use cases --no-full-hostname
can be specified to ovs-ctl to set short hostname instead.
Signed-off-by: Han Zhou <hzhou8 at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 41179399ac5898bd8988d8d13c7291c877ebde7c
https://github.com/openvswitch/ovs/commit/41179399ac5898bd8988d8d13c7291c877ebde7c
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M lib/flow.c
Log Message:
-----------
flow: Clear ovs_nsh_key's context data when nsh's type can't be handled
In the default case when nsh's md_type is not recognized by nsh parser,
uninitialized data in key->context can sneak into miniflow. This
patch fixes it.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10519
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: b2b3f8ce30b03673a8fbd6678a8aa431cc3b402c
https://github.com/openvswitch/ovs/commit/b2b3f8ce30b03673a8fbd6678a8aa431cc3b402c
Author: Gurucharan Shetty <guru at ovn.org>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M utilities/ovs-save
Log Message:
-----------
ovs-save: Parse geneve tlv map correctly.
We now have an extra space in the o/p of `ovs-ofctl dump-tlv-map`.
Fixes: 5a0e4aec1af (treewide: Convert leading tabs to spaces.)
Signed-off-by: Gurucharan Shetty <guru at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Commit: d9cf9b2d8bda4b97fd72ef1420085e4193f81deb
https://github.com/openvswitch/ovs/commit/d9cf9b2d8bda4b97fd72ef1420085e4193f81deb
Author: Mark Michelson <mmichels at redhat.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M lib/table.c
M lib/table.h
M ovn/utilities/ovn-nbctl.c
M tests/ovn-nbctl.at
Log Message:
-----------
table: Create method for resetting table formatting.
Table formatting has a local static integer that is intended to insert
line breaks between tables. This works exactly as intended, as long as
each call to table_format() is done as a single unit within the run of a
process.
When ovn-nbctl is run in daemon mode, it is a long-running process that
makes multiple calls to table_format() throughout its lifetime. After
the first call, this results in an unexpected newline prepended to table
output on each subsequent ovn-nbctl invocation.
The solution is to introduce a function to reset table formatting. This
way, the first time after resetting table formatting, no newline is
prepended.
Signed-off-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: d348d03e671dfdbc1ab04d241453e00b0c3cd118
https://github.com/openvswitch/ovs/commit/d348d03e671dfdbc1ab04d241453e00b0c3cd118
Author: Mark Michelson <mmichels at redhat.com>
Date: 2018-10-08 (Mon, 08 Oct 2018)
Changed paths:
M ovn/utilities/ovn-nbctl.c
M tests/ovn-nbctl.at
Log Message:
-----------
ovn-nbctl: Don't parse table-formatting options in nbctl_client
When ovn-nbctl is running in daemon mode, nbctl_client attempts to parse
table formatting options. The problem is that this then removes the table
formatting options from the array of options passed to the server loop. The
server loop resets the table formatting options to the defaults and then
attempts again to parse table formatting options. Unfortunately, they aren't
present any longer. The result is that tables are always formatted with
the default style.
This patch solves the issue by not parsing the table formatting options
in nbctl_client. Instead, the table formatting options are passed to the
server loop and parsed there instead.
Signed-off-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 35fe9efb2f02b89f3c5d7ac1ef4608464e4f1541
https://github.com/openvswitch/ovs/commit/35fe9efb2f02b89f3c5d7ac1ef4608464e4f1541
Author: Ilya Maximets <i.maximets at samsung.com>
Date: 2018-10-09 (Tue, 09 Oct 2018)
Changed paths:
M lib/dpif-netdev.c
Log Message:
-----------
dpif-netdev: Add vlan to mask for flow_put operation.
Datapath flows in dpif-netdev classifier always has exact match
mask set for vlan. We have to enable it for flow_put operation
too in order to avoid flow modification failure due to
classifier lookup with wrong hash.
Found by OFtest.
CC: Jan Scheurich <jan.scheurich at ericsson.com>
Fixes: beb75a40fdc2 ("userspace: Switching of L3 packets in L2 pipeline")
Reported-by: Ben Pfaff <blp at ovn.org>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2018-September/352579.html
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 937cdd85c8280c17dbf61bf80bb5588ac24d53a1
https://github.com/openvswitch/ovs/commit/937cdd85c8280c17dbf61bf80bb5588ac24d53a1
Author: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Date: 2018-10-10 (Wed, 10 Oct 2018)
Changed paths:
M tests/oss-fuzz/expr_parse_target.c
M tests/oss-fuzz/odp_target.c
Log Message:
-----------
ossfuzz: Bug fix in odp and expr parse targets
This patch fixes a bug in the following test harnesses
- odp_target.c
- expr_parse_target.c
The bug is as follows:
We expect the fuzzed input to be a C string that does not contain a new
line character. This is because, the test code in OvS is built on
expecting string to not have a newline character (see for instance,
calls to ds_get_line() in test-odp.c etc.).
The way we ensure fuzzed data is such a C string is as follows:
- Check size > 1 AND
- Check data[size - 1] is '\0' (NUL termination) AND
- Check that there is no '\n' in the C string that starts at data
The third check is implemented using strchr. Our earlier logic was that,
were the C string to contain '\n', strchr would have a non-zero return
that can then be used to bail out early.
The problem with this logic is that it does not consider the corner case
when data actually points to two or more C strings, like so:
\x01\x00\x0a\0x00
For this data sequence, strchr correctly returns "there is no newline
character" (in the first C string that is part of the sequence).
But the data that is eventually passed to the fuzzed API
is the entire sequence of strings that may contain a new line in
between.
This patch fixes the bug by adding an additional check:
- Check length of C string pointed to by data is actually equal to one
less than (due to NUL termination) size.
This ensures that we are passing one and only one C string not
containing new line character to the fuzzed APIs.
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 1adcbcee8f4c2adcd0594d986edd7d8940318d87
https://github.com/openvswitch/ovs/commit/1adcbcee8f4c2adcd0594d986edd7d8940318d87
Author: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Date: 2018-10-10 (Wed, 10 Oct 2018)
Changed paths:
M tests/oss-fuzz/automake.mk
A tests/oss-fuzz/config/miniflow_target.options
M tests/oss-fuzz/flow_extract_target.c
A tests/oss-fuzz/miniflow_target.c
Log Message:
-----------
ossfuzz: Break flow test target into two targets to speed up fuzzing.
The biggest motivation is a massive (7-10x) increase in fuzzing
speed. Prior to the refactoring, we were doing roughly 900 executions
per second on flow_extract_target. Now, we are doing roughly 6000
executions per second on the flow_extract_target and roughly 9000
executions per second on the new miniflow_target.
Moving forward, creating micro fuzz targets that are really fast is a
better strategy. Since all these micro targets can be scheduled in
parallel by oss-fuzz, the test throughput increases by a non-trivial
amount.
Signed-off-by: Bhargava Shastry <bshastry at sect.tu-berlin.de>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 22e506d3b686d654239c381a8c4166803fd00692
https://github.com/openvswitch/ovs/commit/22e506d3b686d654239c381a8c4166803fd00692
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-10-10 (Wed, 10 Oct 2018)
Changed paths:
M ovn/controller/ofctrl.c
M ovn/controller/ofctrl.h
M ovn/controller/physical.c
M ovn/lib/logical-fields.h
M tests/ovn.at
Log Message:
-----------
ovn: Fix IPv6 DAD failure for container ports
When a container port is created inside a VM, the below kernel message
is seen and IPv6 doesn't work on that interface.
[ 138.000753] IPv6: vlan4: IPv6 duplicate address <IPv6 LLA> detected!
When a container port sends a ethernet broadcast packet, OVN delivers the same
packet back to the child port (and hence the DAD check fails).
This is because
- 'MLF_ALLOW_LOOPBACK_BIT' is set in REG10 in table 0 for the packets received
from any child port.
- for ethernet broadcast packets, Table 33 (OFTABLE_LOCAL_OUTPUT) clones the
packet for every local port 'P' which belongs to the same datapath i.e
'P'->REG15, resubmit(,34)
- If REG14 and REG15 are same, Table 34 (OFTABLE_CHECK_LOOPBACK) drops the packet
if 'MLF_ALLOW_LOOPBACK_BIT' is not set.
- But in the case of container ports, this bit will be set and hence doesn't gets
dropped and eventually gets delivered to the source container port.
- The VM's kernel thinks its a DAD packet. The latest kernels (4.19) implements
the RFC -7527 (enhanced DAD), but it is still a problem for older kernels.
This patch fixes the issue by using a new register bit (MLF_NESTED_CONTAINER_BIT)
instead of 'MLF_ALLOW_LOOPBACK_BIT' and sets it in REG10 for the packets received
from child ports so that Table 34 drops the packet for the source port.
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Gurucharan Shetty <guru at ovn.org>
Commit: 474756fcbbf7b90d6691bdc516ec58d6faaf9f65
https://github.com/openvswitch/ovs/commit/474756fcbbf7b90d6691bdc516ec58d6faaf9f65
Author: Yifeng Sun <pkusunyifeng at gmail.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/lib/expr.c
M tests/ovn.at
Log Message:
-----------
expr: Set a limit on the depth of nested parentheses
This patch checks the depth of nested parentheses to prevent
stack overflow. Since is_chassis_resident doesn't allow
nested parentheses, its following parentheses are not taken
into acount in the parentheses-depth context.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10714
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Suggested-by: Ben Pfaff <blp at ovn.org>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 2e5fceb0fd0f63d32367c18ee1b76d8988c0259e
https://github.com/openvswitch/ovs/commit/2e5fceb0fd0f63d32367c18ee1b76d8988c0259e
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/controller/pinctrl.c
M ovn/lib/ovn-l7.h
M tests/ovn.at
Log Message:
-----------
ovn-controller: Support processing DHCPv6 information request message type
When 'dhcpv6_stateless' is configured on the logical router ports,
the client will send DHCPv6 information request message type (using
dhclient -6 -S) to get additional options like dns-server. This
patch supports this option. Ideally we should have supported this
option when the DHCPv6 support was added.
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: f54c5e5986cf8192c8741d5f482ab5d11ec55455
https://github.com/openvswitch/ovs/commit/f54c5e5986cf8192c8741d5f482ab5d11ec55455
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/lib/expr.c
M tests/ovn.at
Log Message:
-----------
expr: Disallow < <= >= > comparisons against empty value set.
OVN expression syntax does not allow a literal empty value set, like {}.
Rather, any literal value set has to have at least one value. However,
value sets that originate from address sets or from port groups can be
empty. In such a case, == and != comparisons are allowed but < <= >= >
should be errors. The actual implementation failed to properly disallow
the latter and instead tried to access the first element of the value set,
a bad read. This fixes the problem.
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10731
Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10767
Signed-off-by: Ben Pfaff <blp at ovn.org>
Reviewed-by: Yifeng Sun <pkusunyifeng at gmail.com>
Commit: b7e435f9af9290e3d0a13650715fc115cebdddac
https://github.com/openvswitch/ovs/commit/b7e435f9af9290e3d0a13650715fc115cebdddac
Author: aginwala <amginwal at gmail.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/utilities/ovn-ctl
M ovn/utilities/ovn-ctl.8.xml
Log Message:
-----------
ovn-ctl: Allow passing ssl certs when starting OVN DBs in ssl mode.
For OVN DBs to work with SSL in HA, we need to have capability to pass ssl
certs when starting OVN DBs. Say when starting OVN DBs in active passive mode,
in order for the standby DBs to sync from master node, it cannot sync
because the required ssl certs are not passed when standby DBs are initialized.
Hence, we need to have this option.
e.g. start nb db with ssl certs as below:
/usr/share/openvswitch/scripts/ovn-ctl --ovn-nb-db-ssl-key=/etc/openvswitch/ovnnb-privkey.pem \
--ovn-nb-db-ssl-cert=/etc/openvswitch/ovnnb-cert.pem \
--ovn-nb-db-ssl-ca-cert=/etc/openvswitch/cacert.pem \
--db-nb-create-insecure-remote=no start_nb_ovsdb
When certs are passed in the command line, it will read certs from the path
mentioned instead of default db configs.
Certs can be generated based on ovs ssl docs:
http://docs.openvswitch.org/en/latest/howto/ssl/
Signed-off-by: aginwala <aginwala at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Han Zhou <hzhou8 at ebay.com>
Commit: 262d72417d1ff04a18b813d7b262b8444d4401ee
https://github.com/openvswitch/ovs/commit/262d72417d1ff04a18b813d7b262b8444d4401ee
Author: aginwala <amginwal at gmail.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/utilities/ovndb-servers.ocf
Log Message:
-----------
ovndb-servers.ocf: Add ssl support for managing OVN DB resources with pacemaker using LB VIP.
When starting OVN DBs in HA using pacemaker with ssl, we need to pass ssl
certs for starting standby DBs. Hence, we need this change.
Signed-off-by: aginwala <aginwala at ebay.com>
Acked-by: Han Zhou <hzhou8 at ebay.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Numan Siddique <nusiddiq at redhat.com>
Commit: 2d661a2733010d7e94560c624edbe7f192952b3d
https://github.com/openvswitch/ovs/commit/2d661a2733010d7e94560c624edbe7f192952b3d
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/controller/bfd.c
M ovn/controller/bfd.h
M ovn/controller/ovn-controller.c
M ovn/northd/ovn-northd.c
M ovn/ovn-nb.ovsschema
M ovn/ovn-nb.xml
M ovn/ovn-sb.ovsschema
M ovn/ovn-sb.xml
M tests/ovn.at
Log Message:
-----------
ovn: Support configuring the BFD params for the tunnel interfaces
With this commit the users can override the default values of
the BFD params - min_rx, min_tx, decay_min_rx and mult if desired.
This can be useful to debug any issues related to BFD (like
frequent BFD state changes).
A new column 'options' is added in NB_Global and SB_Global tables
of OVN_Northbound and OVN_Southbound schemas respectively. CMS
can define the options 'bfd-min-rx', 'bfd-min-tx',
'bfd-decay-min-rx' and 'bfd-mult' in the options column of
NB_Global table row. ovn-northd copies these options from
NB_Global to SB_Global. ovn-controller configures these
options to the tunnel interfaces when enabling BFD.
When BFD is disabled, this patch now clears the 'bfd' column
of the interface row, instead of setting 'enable=false'.
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: b8a4821389df34ec5ccb8d34bcbc42608936760a
https://github.com/openvswitch/ovs/commit/b8a4821389df34ec5ccb8d34bcbc42608936760a
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/utilities/ovn-trace.c
Log Message:
-----------
ovn-trace: Fix tracing when ip.dst has to go via a gateway router
ovn-trace does not trace past an l3gateway port type. This patch
fixes it.
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1626080
Suggested-by: Dan Williams <dcbw at redhat.com>
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Mark Michelson <mmichels at redhat.com>
Commit: 87e816e207776fb24e23555afff942721e3b16bd
https://github.com/openvswitch/ovs/commit/87e816e207776fb24e23555afff942721e3b16bd
Author: Numan Siddique <nusiddiq at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/utilities/ovn-ctl
Log Message:
-----------
ovn-ctl: Fix the wrong pidfile argument passed to ovsdb-servers
When OVN db servers are started usinb ovn-ctl, if the pid files
(/var/run/openvswitch/ovnnb_db.pid for example) are already
present, then ovn-ctl passes "--pidfile=123" if the pid file has
'123' stored in it. Later on when OVN pacemaker RA script calls
status_ovnnb/status_ovnsb() functions, these returns "not running".
The shell function 'pidfile_is_running()' stores the contents of
the pid file as "pid=`cat "$pidfile"`". If the caller also
uses the same variable "pid" to store the file name, it gets
overriden.
This patch fixes this issue by renaming the local variable "pid"
in the "start_ovsdb__()" shell function to "db_file_name".
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 39cc92aa651e209e246d6e1547662ba0cafb9f1d
https://github.com/openvswitch/ovs/commit/39cc92aa651e209e246d6e1547662ba0cafb9f1d
Author: Mark Michelson <mmichels at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M ovn/utilities/ovn-nbctl.8.xml
M ovn/utilities/ovn-nbctl.c
M tests/ovn-nbctl.at
Log Message:
-----------
ovn-nbctl: Add basic port group commands.
This adds the following commands:
pg-add: Add a new port group, optionally adding switch ports at
creation.
pg-set-ports: Sets the logical switch ports on a port group
pg-del: Remove a port group.
The main motivation for these commands is that it allows for adding
logical switch ports by name rather than UUID.
Signed-off-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: a7be68a4d77791bbe02c37f7ad8ae60b02e5679e
https://github.com/openvswitch/ovs/commit/a7be68a4d77791bbe02c37f7ad8ae60b02e5679e
Author: Terry Wilson <twilson at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M python/automake.mk
M python/ovs/json.py
M tests/atlocal.in
M tests/json.at
M tests/ovsdb-idl.at
M tests/ovsdb.at
M tests/test-json.py
M tests/test-ovsdb.py
Log Message:
-----------
Test the Python C JSON extension
The C JSON parser was added quite a while ago, but unless you
configure with --enable-shared and have the Python 2/3 development
libraries installed, and the resulting python-ovs module installed,
'make check' won't actually test it.
This patch changes Python-based tests to run from the
$builddir/python directory and makes the tests configurable to use
both JSON backends. There are some unicode failures in the C JSON
extension that I left unfixed in this patch to make it easy to
show run the new tests on broken code. The next patch in this set
works around the issue.
Signed-off-by: Terry Wilson <twilson at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Lucas Alvares Gomes <lucasagomes at gmail.com>
Commit: 4617d1f6bd24c543f533f6485b42ebca6b0a8371
https://github.com/openvswitch/ovs/commit/4617d1f6bd24c543f533f6485b42ebca6b0a8371
Author: Terry Wilson <twilson at redhat.com>
Date: 2018-10-11 (Thu, 11 Oct 2018)
Changed paths:
M python/ovs/jsonrpc.py
Log Message:
-----------
Work around Python/C JSON unicode differences
The OVS C-based JSON parser operates on bytes, so the parser_feed
function returns the number of bytes that are processed. The pure
Python JSON parser currently operates on unicode, so it expects
that Parser.feed() returns a number of characters. This difference
leads to parsing errors when unicode characters are passed to the
C JSON parser from Python.
Signed-off-by: Terry Wilson <twilson at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Lucas Alvares Gomes <lucasagomes at gmail.com>
Commit: e52ad72157c181d1dbc423e85f37b701b5eda6a6
https://github.com/openvswitch/ovs/commit/e52ad72157c181d1dbc423e85f37b701b5eda6a6
Author: Flavio Leitner <fbl at sysclose.org>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M lib/dp-packet.h
Log Message:
-----------
dp-packet.h: move funcs to be within cond block
There is already an ifdef DPDK_NETDEV block, so instead of checking
on each and every function, move them to the right block.
No functional change.
Signed-off-by: Flavio Leitner <fbl at sysclose.org>
Acked-by: Tiago Lam <tiago.lam at intel.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: 771fcec248d651795d0b254fbc78f5f624488f29
https://github.com/openvswitch/ovs/commit/771fcec248d651795d0b254fbc78f5f624488f29
Author: Ilya Maximets <i.maximets at samsung.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M lib/dpif-netdev-unixctl.man
Log Message:
-----------
dpif-netdev-unixctl: Change 'masked' to 'megaflow'.
In the review process of the original patch 'masked hits' stat
was renamed to 'megaflow hits', but the man page wasn't updated.
Fixes: 6553d06bd179 ("dpif-netdev: Add dpif-netdev/pmd-stats-*
appctl commands.")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: 21e9b77b885d4a147d8e04bdcb0e560a7258abdd
https://github.com/openvswitch/ovs/commit/21e9b77b885d4a147d8e04bdcb0e560a7258abdd
Author: Ilya Maximets <i.maximets at samsung.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M lib/dpif-netdev-perf.c
M lib/dpif-netdev-perf.h
M lib/dpif-netdev-unixctl.man
Log Message:
-----------
dpif-netdev-perf: Print SMC statistics.
Printing of the SMC hits missed in the 'dpif-netdev/pmd-perf-show'
appctl command.
CC: Yipeng Wang <yipeng1.wang at intel.com>
Fixes: 60d8ccae135f ("dpif-netdev: Add SMC cache after EMC cache")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Acked-by: Yipeng Wang <yipeng1.wang at intel.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: 6794be1deea818f21eae0a6b24c96ec5650ba758
https://github.com/openvswitch/ovs/commit/6794be1deea818f21eae0a6b24c96ec5650ba758
Author: Ilya Maximets <i.maximets at samsung.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M lib/dpif-netdev-perf.c
M lib/dpif-netdev-unixctl.man
M manpages.mk
M vswitchd/ovs-vswitchd.8.in
Log Message:
-----------
dpif-netdev-perf: Clarify frequency number.
'dpif-netdev/pmd-perf-show' command prints the frequency number
calculated from the total number of cycles spent for iterations
for the measured period. This number could be confusing, because
users may think that it should be equal to CPU frequency, especially
on non-x86 systems where TSC frequency likely does not match with
CPU one.
Moreover, counted TSC cycles could differ from the HW TSC cycles
in case of a large number of PMD reloads, because cycles spent
outside of the main polling loop are not taken into account anywhere.
In this case the frequency will not match even TSC frequency.
Let's clarify the meaning in order to avoid this misunderstanding.
'Cycles' replaced with 'Used TSC cycles', which describes how many TSC
cycles consumed by the main polling loop. % of the total TSC cycles
now printed instead of GHz frequency, because GHz is unclear for
understanding, especially without knowing the exact TSC frequency.
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: a01786b4e768c57d5ab9888d119ccbee4836204b
https://github.com/openvswitch/ovs/commit/a01786b4e768c57d5ab9888d119ccbee4836204b
Author: Aaron Conole <aconole at redhat.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M Documentation/topics/testing.rst
M tests/system-dpdk-macros.at
M tests/system-dpdk.at
Log Message:
-----------
system-dpdk: Update test suite for non-phy testing
This allows a system that doesn't have a dedicated DPDK nic to
execute some DPDK tests. In this fashion, tests that operate on
virtual ports (such as dpdkvhostuserclient) can be executed in
a wider set of environments.
Signed-off-by: Aaron Conole <aconole at redhat.com>
Co-authored-by: Bala Sankaran <bsankara at redhat.com>
Signed-off-by: Bala Sankaran <bsankara at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: f9e1eba94806267b6c3287f3df1e479166b910ea
https://github.com/openvswitch/ovs/commit/f9e1eba94806267b6c3287f3df1e479166b910ea
Author: Bala Sankaran <bsankara at redhat.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M Documentation/topics/testing.rst
M tests/system-dpdk-macros.at
M tests/system-dpdk.at
Log Message:
-----------
system-dpdk: Skip all tests if there are no hugepages
A failure is quite harsh in this scenario. It's better to
simply skip all the tests and let the user look at the logs
to understand the missing hugepages.
Signed-off-by: Bala Sankaran <bsankara at redhat.com>
Co-authored-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: b042ea2a18983729fa7ca759a904f895529815e7
https://github.com/openvswitch/ovs/commit/b042ea2a18983729fa7ca759a904f895529815e7
Author: Aaron Conole <aconole at redhat.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M tests/system-dpdk.at
Log Message:
-----------
system-dpdk: Allow running the dpdk tests from a VM
Some VM configurations result in CPU flags that cause warnings to be issued by
the DPDK libraries. When these warnings are issued, the tests will fail.
This commit adds the unreliable tsc warning to the list of ignored warnings.
Signed-off-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: 322e49a6f3f7362e8ef6556f3cf68d04734d9886
https://github.com/openvswitch/ovs/commit/322e49a6f3f7362e8ef6556f3cf68d04734d9886
Author: Aaron Conole <aconole at redhat.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M tests/system-dpdk.at
Log Message:
-----------
system-dpdk: Use a different character marker for sed commands
The default marker for sed commands according to the manual is /, but this
is inconvenient when working with paths. The solution is either to escape
all instances of / or use sed's \cREGEXc feature.
Signed-off-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: 7d897046268f9be1409ace222648a0d81a8e0c1a
https://github.com/openvswitch/ovs/commit/7d897046268f9be1409ace222648a0d81a8e0c1a
Author: Bala Sankaran <bsankara at redhat.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M tests/system-dpdk.at
Log Message:
-----------
system-dpdk: Convert /tmp to use OVS_RUNDIR
When multiple users run the DPDK testsuite their dependence on /tmp
will cause conflicts. Use the RUNDIR as a dynamic path to overcome
this.
NOTE: This still doesn't solve the dependency on /var/run that
DPDK requires.
Signed-off-by: Bala Sankaran <bsankara at redhat.com>
Co-authored-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: c92ccb42bdb544dc5a9fde1fa59826563905e09b
https://github.com/openvswitch/ovs/commit/c92ccb42bdb544dc5a9fde1fa59826563905e09b
Author: Bala Sankaran <bsankara at redhat.com>
Date: 2018-10-12 (Fri, 12 Oct 2018)
Changed paths:
M tests/system-dpdk.at
Log Message:
-----------
system-dpdk: Connect network namespaces via dpdkvhostuser ports
This adds a few unit tests to the 'check-dpdk' subsystem that will
exercise allocations of two network namespaces, PMDs, and the
vhost-user and vhost-user-client code path(separate tests).
As part of the tests, userspace bridge is added and attached to OVS.
Also, the tap devices created are added to the network namespaces.
The ultimatum is to connect the two network namespaces by pinging them.
Signed-off-by: Bala Sankaran <bsankara at redhat.com>
Co-authored-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Aaron Conole <aconole at redhat.com>
Acked-by: Tiago Lam <tiago.lam at intel.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
Commit: efc93e66139150fb3836460d436c6f81f46cc72e
https://github.com/openvswitch/ovs/commit/efc93e66139150fb3836460d436c6f81f46cc72e
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-15 (Mon, 15 Oct 2018)
Changed paths:
M ofproto/ofproto-dpif-xlate.c
Log Message:
-----------
ofproto-dpif-xlate: Avoid deadlock on multicast snooping recursion.
Until now, OVS did multicast snooping outputs holding the read-lock on
the mcast_snooping object. This could recurse via a patch port to try to
take the write-lock on the same object, which deadlocked. This patch fixes
the problem, by releasing the read-lock before doing any outputs.
It would probably be better to use RCU for mcast_snooping. That would be
a bigger patch and less suitable for backporting.
Reported-by: Sameh Elsharkawy
Reported-at: https://github.com/openvswitch/ovs-issues/issues/153
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: e6703555e56e42e9e21313cfee7091e511447299
https://github.com/openvswitch/ovs/commit/e6703555e56e42e9e21313cfee7091e511447299
Author: Ilya Maximets <i.maximets at samsung.com>
Date: 2018-10-15 (Mon, 15 Oct 2018)
Changed paths:
M python/automake.mk
M python/ovs/json.py
M python/ovs/jsonrpc.py
M tests/atlocal.in
M tests/json.at
M tests/ovsdb-idl.at
M tests/ovsdb.at
M tests/test-json.py
M tests/test-ovsdb.py
Log Message:
-----------
Revert "Test the Python C JSON extension"
This reverts commit a7be68a4d77791bbe02c37f7ad8ae60b02e5679e
and a subsequent commit 4617d1f6bd24c543f533f6485b42ebca6b0a8371.
There are too many issues with these patches. It's better to revert
them for now and make a separate fixed versions later if needed.
List of issues (maybe not full):
1. 'make clean' removes entire 'python' directory.
2. Fully broken Travis-CI testsuite build:
building 'ovs._json' extension
creating build/temp.linux-x86_64-2.7
error: could not create 'build/temp.linux-x86_64-2.7': \
Permission denied
https://travis-ci.org/openvswitch/ovs/jobs/440693765
3. Broken local testsuite build on Ubuntu 18.04:
running build_ext
building 'ovs._json' extension
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/ovs
<...>
/usr/bin/ld: .libs/libopenvswitch.a(util.o): \
relocation R_X86_64_TPOFF32 against `var.7749' can not be \
used when making a shared object; recompile with -fPIC
<...>
collect2: error: ld returned 1 exit status
4. Fedora build failure because of 'setuptools' ('distutils')
hard dependency on 'redhat-rpm-config' package:
building 'ovs._json' extension
<...>
gcc: error: <...>/redhat-hardened-cc1: No such file or directory
5. Looks like 'setuptools' also could download and install
unwanted python modules during package build.
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 1556fcca676676acefab53bf46c156842ea8cf4f
https://github.com/openvswitch/ovs/commit/1556fcca676676acefab53bf46c156842ea8cf4f
Author: Yi-Hung Wei <yihung.wei at gmail.com>
Date: 2018-10-15 (Mon, 15 Oct 2018)
Changed paths:
M datapath/compat.h
Log Message:
-----------
datapath: compat: Fix compilation issue with grsecurity patch
Grsecurity patch enables GCC's constify plugin so that it will
automatically constify a class of type that contains only function
pointers. However, if the type is also specified by __read_mostly, it
will put the constify object into the read_mostly section that results
in compilation error. This patch works around the compilation issue by
disabling __ready_mostly when grsecurity patch is applied.
Tested with 4.14.33 kernel with grsecurity patch.
Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Tested-by: Greg Rose <gvrose8192 at gmail.com>
Reviewed-by: Greg Rose <gvrose8192 at gmail.com>
Commit: 3c02b733f77d77a7c237151b9ca30aa204adaf78
https://github.com/openvswitch/ovs/commit/3c02b733f77d77a7c237151b9ca30aa204adaf78
Author: Ben Pfaff <blp at ovn.org>
Date: 2018-10-15 (Mon, 15 Oct 2018)
Changed paths:
M ovn/controller/pinctrl.c
M tests/ovn.at
Log Message:
-----------
Revert "OVN: add buffering support for ip packets"
This reverts commit 2e5cdb4b13924e275ca0776ca0f4147bf5ff7885. With the
commit applied, testing with only a single CPU core, e.g. by running "make
check" under "taskset -c 2", test '2649: ovn -- 3 HVs, 3 LS, 3 lports/LS, 1
LR' fails, apparently reliably.
The commit should be re-applied once the issue with the test is worked out.
Reported-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Commit: 5e63eaa969a3a6c07ca9c6a9ccb10522c1f7e1e6
https://github.com/openvswitch/ovs/commit/5e63eaa969a3a6c07ca9c6a9ccb10522c1f7e1e6
Author: Eli Britstein <elibr at mellanox.com>
Date: 2018-10-16 (Tue, 16 Oct 2018)
Changed paths:
M lib/netdev-vport.c
Log Message:
-----------
netdev-vport: Make gre netdev type to use TC rules
The offload api functions already assigned to every tunnel class.
For gre tunnel class only need to also assign the get_ifindex function.
Signed-off-by: Eli Britstein <elibr at mellanox.com>
Reviewed-by: Roi Dayan <roid at mellanox.com>
Signed-off-by: Simon Horman <simon.horman at netronome.com>
Commit: d9677a1f0eaf6352c44af3ba3a4c2faf76a2a39b
https://github.com/openvswitch/ovs/commit/d9677a1f0eaf6352c44af3ba3a4c2faf76a2a39b
Author: Eli Britstein <elibr at mellanox.com>
Date: 2018-10-16 (Tue, 16 Oct 2018)
Changed paths:
M lib/dpif-netlink.c
M lib/netdev-tc-offloads.c
M lib/netdev.h
M lib/tc.c
M lib/tc.h
Log Message:
-----------
netdev-tc-offloads: TC csum option is not matched with tunnel configuration
Tunnels (gre, geneve, vxlan) support 'csum' option (true/false), default is false.
Generated encap TC rule will now be configured as the tunnel configuration.
Signed-off-by: Eli Britstein <elibr at mellanox.com>
Reviewed-by: Roi Dayan <roid at mellanox.com>
Signed-off-by: Simon Horman <simon.horman at netronome.com>
Commit: 72713c651da36e8d0029ee734a1ae8049646ea3f
https://github.com/openvswitch/ovs/commit/72713c651da36e8d0029ee734a1ae8049646ea3f
Author: Ilya Maximets <i.maximets at samsung.com>
Date: 2018-10-17 (Wed, 17 Oct 2018)
Changed paths:
M lib/netdev-bsd.c
Log Message:
-----------
netdev-bsd: Fix build failure because of undefined NO_OFFLOAD_API.
NO_OFFLOAD_API was removed while netdev classes initialization
refactoring, but netdev-bsd still uses it. Instead of
redefining it, I just refactored the BSD classes to be same
as other netdevs.
CC: Ben Pfaff <blp at ovn.org>
Fixes: 89c09c1cd1f0 ("netdev: Clean up class initialization.")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
Compare: https://github.com/openvswitch/ovs/compare/949758946767...72713c651da3
**NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/
Functionality will be removed from GitHub.com on January 31st, 2019.
More information about the git
mailing list