[ovs-dev] [PATCH v2 04/12] datapath: add seqadj extension when NAT is used.

Yi-Hung Wei yihung.wei at gmail.com
Tue Oct 15 17:27:45 UTC 2019


From: Flavio Leitner <fbl at sysclose.org>

upstream patch:

commit fa7e428c6b7ed3281610511a2b2ec716d9894be8
Author: Flavio Leitner <fbl at 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 <fbl at sysclose.org>
    Acked-by: Pravin B Shelar <pshelar at ovn.org>
    Signed-off-by: David S. Miller <davem at davemloft.net>

Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
Reviewed-by: Yifeng Sun <pkusunyifeng at 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



More information about the dev mailing list