From: supeng <sup...@cmss.chinamobile.com>

Inbound direction, sad_lookup function will call cmp_sa_key to compare packet 
outer ip info with local sa.  Local sa src ip should equal packet dst ip,  
Local sa dst ip should  equal src ip.
---
 examples/ipsec-secgw/sad.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/examples/ipsec-secgw/sad.h b/examples/ipsec-secgw/sad.h
index 3224b6252c..e1fa8a26f6 100644
--- a/examples/ipsec-secgw/sad.h
+++ b/examples/ipsec-secgw/sad.h
@@ -33,12 +33,12 @@ cmp_sa_key(struct ipsec_sa *sa, int is_v4, struct 
rte_ipv4_hdr *ipv4,
        if ((sa_type == TRANSPORT) ||
                        /* IPv4 check */
                        (is_v4 && (sa_type == IP4_TUNNEL) &&
-                       (sa->src.ip.ip4 == ipv4->src_addr) &&
-                       (sa->dst.ip.ip4 == ipv4->dst_addr)) ||
+                       (sa->src.ip.ip4 == ipv4->dst_addr) &&
+                       (sa->dst.ip.ip4 == ipv4->src_addr)) ||
                        /* IPv6 check */
                        (!is_v4 && (sa_type == IP6_TUNNEL) &&
-                       (!memcmp(sa->src.ip.ip6.ip6, ipv6->src_addr, 16)) &&
-                       (!memcmp(sa->dst.ip.ip6.ip6, ipv6->dst_addr, 16))))
+                       (!memcmp(sa->src.ip.ip6.ip6, ipv6->dst_addr, 16)) &&
+                       (!memcmp(sa->dst.ip.ip6.ip6, ipv6->src_addr, 16))))
                return 1;
 
        return 0;
-- 
2.34.1

Reply via email to