From: Flavio Leitner <f...@sysclose.org>

upstream patch:

commit fa7e428c6b7ed3281610511a2b2ec716d9894be8
Author: Flavio Leitner <f...@sysclose.org>
Date:   Mon Mar 25 15:58:31 2019 -0300

    openvswitch: add seqadj extension when NAT is used.

    When the conntrack is initialized, there is no helper attached
    yet so the nat info initialization (nf_nat_setup_info) skips
    adding the seqadj ext.

    A helper is attached later when the conntrack is not confirmed
    but is going to be committed. In this case, if NAT is needed then
    adds the seqadj ext as well.

    Fixes: 16ec3d4fbb96 ("openvswitch: Fix cached ct with helper.")
    Signed-off-by: Flavio Leitner <f...@sysclose.org>
    Acked-by: Pravin B Shelar <pshe...@ovn.org>
    Signed-off-by: David S. Miller <da...@davemloft.net>

Signed-off-by: Yi-Hung Wei <yihung....@gmail.com>
Reviewed-by: Yifeng Sun <pkusunyif...@gmail.com>
---
 datapath/conntrack.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/datapath/conntrack.c b/datapath/conntrack.c
index 291d4f4723d9..1b345a03e704 100644
--- a/datapath/conntrack.c
+++ b/datapath/conntrack.c
@@ -1063,6 +1063,12 @@ static int __ovs_ct_lookup(struct net *net, struct 
sw_flow_key *key,
                                                            GFP_ATOMIC);
                        if (err)
                                return err;
+
+                       /* helper installed, add seqadj if NAT is required */
+                       if (info->nat && !nfct_seqadj(ct)) {
+                               if (!nfct_seqadj_ext_add(ct))
+                                       return -EINVAL;
+                       }
                }
 
                /* Call the helper only if:
-- 
2.7.4

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

Reply via email to