Re: [ovs-dev] [patch v13 8/8] Userspace datapath: Add fragmentation handling.

2019-02-14 Thread Ben Pfaff
Thanks for the series.  I applied this to master.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [patch v13 8/8] Userspace datapath: Add fragmentation handling.

2019-02-14 Thread Darrell Ball
I folded in the following incremental locally:

--- a/lib/ipf.c
+++ b/lib/ipf.c
@@ -533,8 +533,6 @@ ipf_list_state_transition(struct ipf *ipf, struct
ipf_list *ipf_list,
 case IPF_LIST_STATE_LAST_SEEN:
 if (ff) {
 next_state = IPF_LIST_STATE_FIRST_LAST_SEEN;
-} else if (lf) {
-next_state = IPF_LIST_STATE_LAST_SEEN;
 } else {
 next_state = IPF_LIST_STATE_LAST_SEEN;
 }
@@ -768,7 +766,7 @@ ipf_list_key_eq(const struct ipf_list_key *key1,
 static struct ipf_list *
 ipf_list_key_lookup(struct ipf *ipf, const struct ipf_list_key *key,
 uint32_t hash)
-/* OVS_REQUIRES(ipf->ipf_lock) */
+OVS_REQUIRES(ipf->ipf_lock)
 {
 struct ipf_list *ipf_list;
 HMAP_FOR_EACH_WITH_HASH (ipf_list, node, hash, >frag_lists) {

On Wed, Feb 13, 2019 at 3:34 PM Darrell Ball  wrote:

> Fragmentation handling is added for supporting conntrack.
> Both v4 and v6 are supported.
>
> After discussion with several people, I decided to not store
> configuration state in the database to be more consistent with
> the kernel in future, similarity with other conntrack configuration
> which will not be in the database as well and overall simplicity.
> Accordingly, fragmentation handling is enabled by default.
>
> This patch enables fragmentation tests for the userspace datapath.
>
> Signed-off-by: Darrell Ball 
> ---
>  Documentation/faq/releases.rst   |   51 +-
>  NEWS |   10 +-
>  include/sparse/netinet/ip6.h |1 +
>  lib/automake.mk  |4 +-
>  lib/conntrack.c  |   22 +-
>  lib/conntrack.h  |4 +
>  lib/ct-dpif.c|   58 +-
>  lib/ct-dpif.h|   12 +-
>  lib/dpctl.c  |  215 +-
>  lib/dpctl.man|   36 +
>  lib/dpif-netdev.c|   65 +-
>  lib/dpif-netlink.c   |9 +-
>  lib/dpif-provider.h  |   53 +-
>  lib/ipf.c| 1528
> ++
>  lib/ipf.h|   63 ++
>  tests/system-kmod-macros.at  |   46 +-
>  tests/system-traffic.at  |   51 +-
>  tests/system-userspace-macros.at |  186 -
>  18 files changed, 2332 insertions(+), 82 deletions(-)
>  create mode 100644 lib/ipf.c
>  create mode 100644 lib/ipf.h
>
> diff --git a/Documentation/faq/releases.rst
> b/Documentation/faq/releases.rst
> index cd7254b..a78152b 100644
> --- a/Documentation/faq/releases.rst
> +++ b/Documentation/faq/releases.rst
> @@ -105,31 +105,32 @@ Q: Are all features available with all datapaths?
>  The following table lists the datapath supported features from an Open
>  vSwitch user's perspective.
>
> -= == == = ===
> -Feature   Linux upstream Linux OVS tree Userspace Hyper-V
> -= == == = ===
> -NAT   4.6YESYes   NO
> -Connection tracking   4.3YESPARTIAL   PARTIAL
> -Tunnel - LISP NO YESNONO
> -Tunnel - STT  NO YESNOYES
> -Tunnel - GRE  3.11   YESYES   YES
> -Tunnel - VXLAN3.12   YESYES   YES
> -Tunnel - Geneve   3.18   YESYES   YES
> -Tunnel - GRE-IPv6 4.18   YESYES   NO
> -Tunnel - VXLAN-IPv6   4.3YESYES   NO
> -Tunnel - Geneve-IPv6  4.4YESYES   NO
> -Tunnel - ERSPAN   4.18   YESYES   NO
> -Tunnel - ERSPAN-IPv6  4.18   YESYES   NO
> -QoS - PolicingYESYESYES   NO
> -QoS - Shaping YESYESNONO
> -sFlow YESYESYES   NO
> -IPFIX 3.10   YESYES   NO
> -Set actionYESYESYES   PARTIAL
> -NIC Bonding   YESYESYES   YES
> -Multiple VTEPsYESYESYES   YES
> -Meters4.15   YESYES   NO
> -Conntrack zone limit  4.18   YESNONO
> -= == == = ===
> +== == == =
> ===
> +FeatureLinux upstream Linux OVS tree Userspace
> Hyper-V
> +== == == =
> ===
> +Connection tracking 4.3YES  YES
> YES
> +Conntrack Fragment Reass.   4.3YES 

[ovs-dev] [patch v13 8/8] Userspace datapath: Add fragmentation handling.

2019-02-13 Thread Darrell Ball
Fragmentation handling is added for supporting conntrack.
Both v4 and v6 are supported.

After discussion with several people, I decided to not store
configuration state in the database to be more consistent with
the kernel in future, similarity with other conntrack configuration
which will not be in the database as well and overall simplicity.
Accordingly, fragmentation handling is enabled by default.

This patch enables fragmentation tests for the userspace datapath.

Signed-off-by: Darrell Ball 
---
 Documentation/faq/releases.rst   |   51 +-
 NEWS |   10 +-
 include/sparse/netinet/ip6.h |1 +
 lib/automake.mk  |4 +-
 lib/conntrack.c  |   22 +-
 lib/conntrack.h  |4 +
 lib/ct-dpif.c|   58 +-
 lib/ct-dpif.h|   12 +-
 lib/dpctl.c  |  215 +-
 lib/dpctl.man|   36 +
 lib/dpif-netdev.c|   65 +-
 lib/dpif-netlink.c   |9 +-
 lib/dpif-provider.h  |   53 +-
 lib/ipf.c| 1528 ++
 lib/ipf.h|   63 ++
 tests/system-kmod-macros.at  |   46 +-
 tests/system-traffic.at  |   51 +-
 tests/system-userspace-macros.at |  186 -
 18 files changed, 2332 insertions(+), 82 deletions(-)
 create mode 100644 lib/ipf.c
 create mode 100644 lib/ipf.h

diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index cd7254b..a78152b 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -105,31 +105,32 @@ Q: Are all features available with all datapaths?
 The following table lists the datapath supported features from an Open
 vSwitch user's perspective.
 
-= == == = ===
-Feature   Linux upstream Linux OVS tree Userspace Hyper-V
-= == == = ===
-NAT   4.6YESYes   NO
-Connection tracking   4.3YESPARTIAL   PARTIAL
-Tunnel - LISP NO YESNONO
-Tunnel - STT  NO YESNOYES
-Tunnel - GRE  3.11   YESYES   YES
-Tunnel - VXLAN3.12   YESYES   YES
-Tunnel - Geneve   3.18   YESYES   YES
-Tunnel - GRE-IPv6 4.18   YESYES   NO
-Tunnel - VXLAN-IPv6   4.3YESYES   NO
-Tunnel - Geneve-IPv6  4.4YESYES   NO
-Tunnel - ERSPAN   4.18   YESYES   NO
-Tunnel - ERSPAN-IPv6  4.18   YESYES   NO
-QoS - PolicingYESYESYES   NO
-QoS - Shaping YESYESNONO
-sFlow YESYESYES   NO
-IPFIX 3.10   YESYES   NO
-Set actionYESYESYES   PARTIAL
-NIC Bonding   YESYESYES   YES
-Multiple VTEPsYESYESYES   YES
-Meters4.15   YESYES   NO
-Conntrack zone limit  4.18   YESNONO
-= == == = ===
+== == == = ===
+FeatureLinux upstream Linux OVS tree Userspace Hyper-V
+== == == = ===
+Connection tracking 4.3YES  YES  YES
+Conntrack Fragment Reass.   4.3YES  YES  YES
+NAT 4.6YES  YES  NO
+Conntrack zone limit4.18   YES  NO   NO
+Tunnel - LISP   NO YES  NO   NO
+Tunnel - STTNO YES  NO   YES
+Tunnel - GRE3.11   YES  YES  YES
+Tunnel - VXLAN  3.12   YES  YES  YES
+Tunnel - Geneve 3.18   YES  YES  YES
+Tunnel - GRE-IPv6   NO NO   YES  NO
+Tunnel - VXLAN-IPv6 4.3YES  YES  NO
+Tunnel - Geneve-IPv64.4YES  YES  NO
+Tunnel - ERSPAN 4.18   YES  YES  NO
+Tunnel - ERSPAN-IPv64.18   YES  YES  NO
+QoS - Policing  YESYES  YES