Date: Wed, 19 Feb 2020 16:33:10 +0000 From: "neel_neelc.org (Neel Chauhan)" <phabric-noreply@FreeBSD.org> To: Phabricator <phabric-noreply@FreeBSD.org> Cc: freebsd-net@freebsd.org Subject: [Differential] D23737: nat64: Get the IPv4 address from a NAT64 address when comparing addresses in a ICMP translate Message-ID: <85fbe0e7db6a779f9e3862df7cba8cd4@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-s3egeuka5skf4yqccitk-req@reviews.freebsd.org> References: <differential-rev-PHID-DREV-s3egeuka5skf4yqccitk-req@reviews.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] 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 [-- Attachment #2 --] 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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?85fbe0e7db6a779f9e3862df7cba8cd4>
