neel_neelc.org updated this revision to Diff 68545.
neel_neelc.org added a comment.


  I decided to use the existing function nat64_extract_ip4() to extract the 
IPv4 and removed my nat64_get_ip4().
  
  I'm new to the FreeBSD TCP/IP stack, sorry.

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D23737?vs=68489&id=68545

CHANGES SINCE LAST ACTION
  https://reviews.freebsd.org/D23737/new/

REVISION DETAIL
  https://reviews.freebsd.org/D23737

AFFECTED FILES
  sys/netpfil/ipfw/nat64/nat64_translate.c

CHANGE DETAILS

diff --git a/sys/netpfil/ipfw/nat64/nat64_translate.c 
b/sys/netpfil/ipfw/nat64/nat64_translate.c
--- a/sys/netpfil/ipfw/nat64/nat64_translate.c
+++ b/sys/netpfil/ipfw/nat64/nat64_translate.c
@@ -1061,19 +1061,16 @@
                    m->m_pkthdr.len);
                goto freeit;
        }
-#if 0
        /*
         * Check that inner source matches the outer destination.
-        * XXX: We need some method to convert IPv4 into IPv6 address here,
-        *      and compare IPv6 addresses.
         */
-       if (ip.ip_src.s_addr != nat64_get_ip4(&ip6->ip6_dst)) {
-               DPRINTF(DP_GENERIC, "Inner source doesn't match destination ",
+       if (ip.ip_src.s_addr !=
+           nat64_extract_ip4(&ip6->ip6_dst, cfg->plat_plen)) {
+               DPRINTF(DP_GENERIC, "Inner source doesn't match destination: "
                    "%04x vs %04x", ip.ip_src.s_addr,
-                   nat64_get_ip4(&ip6->ip6_dst));
+                   nat64_extract_ip4(&ip6->ip6_dst, cfg->plat_plen));
                goto freeit;
        }
-#endif
        /*
         * Create new mbuf for ICMPv6 datagram.
         * NOTE: len is data length just after inner IP header.



EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: neel_neelc.org, ae
Cc: imp, ae, melifaro, #contributor_reviews_base, freebsd-net-list, mmacy, 
kpraveen.lkml_gmail.com, marcnarc_gmail.com, simonvella_gmail.com, 
novice_techie.com, tommi.pernila_iki.fi
diff --git a/sys/netpfil/ipfw/nat64/nat64_translate.c b/sys/netpfil/ipfw/nat64/nat64_translate.c
--- a/sys/netpfil/ipfw/nat64/nat64_translate.c
+++ b/sys/netpfil/ipfw/nat64/nat64_translate.c
@@ -1061,19 +1061,16 @@
 		    m->m_pkthdr.len);
 		goto freeit;
 	}
-#if 0
 	/*
 	 * Check that inner source matches the outer destination.
-	 * XXX: We need some method to convert IPv4 into IPv6 address here,
-	 *	and compare IPv6 addresses.
 	 */
-	if (ip.ip_src.s_addr != nat64_get_ip4(&ip6->ip6_dst)) {
-		DPRINTF(DP_GENERIC, "Inner source doesn't match destination ",
+	if (ip.ip_src.s_addr !=
+	    nat64_extract_ip4(&ip6->ip6_dst, cfg->plat_plen)) {
+		DPRINTF(DP_GENERIC, "Inner source doesn't match destination: "
 		    "%04x vs %04x", ip.ip_src.s_addr,
-		    nat64_get_ip4(&ip6->ip6_dst));
+		    nat64_extract_ip4(&ip6->ip6_dst, cfg->plat_plen));
 		goto freeit;
 	}
-#endif
 	/*
 	 * Create new mbuf for ICMPv6 datagram.
 	 * NOTE: len is data length just after inner IP header.

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to