aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2019-12-02 20:58:55 +0000
committerCy Schubert <cy@FreeBSD.org>2019-12-02 20:58:55 +0000
commit01d19d3342f547351a424d8be841c0f1577fd7da (patch)
tree62119c53df666c3af1c350891b7f76633f925493 /sys/contrib
parent337c56fb6df99b7f793b361b97d4b67695ead3f0 (diff)
downloadsrc-01d19d3342f547351a424d8be841c0f1577fd7da.tar.gz
src-01d19d3342f547351a424d8be841c0f1577fd7da.zip
MFC r355142:
Move ipf_pcksum6() to its rightful place, in ip_fil_freebsd.c. This FreeBSD-only function should live in the O/S specific source file. This essentially reverts r349929 Now that ipftest and ipfreplay are disabled in FreeBSD 11-stable.
Notes
Notes: svn path=/stable/11/; revision=355305
Diffstat (limited to 'sys/contrib')
-rw-r--r--sys/contrib/ipfilter/netinet/fil.c45
-rw-r--r--sys/contrib/ipfilter/netinet/ip_fil.h4
-rw-r--r--sys/contrib/ipfilter/netinet/ip_fil_freebsd.c45
3 files changed, 49 insertions, 45 deletions
diff --git a/sys/contrib/ipfilter/netinet/fil.c b/sys/contrib/ipfilter/netinet/fil.c
index e70dd4d46231..1b6752d4e51f 100644
--- a/sys/contrib/ipfilter/netinet/fil.c
+++ b/sys/contrib/ipfilter/netinet/fil.c
@@ -179,10 +179,6 @@ static int ipf_updateipid __P((fr_info_t *));
static int ipf_settimeout __P((struct ipf_main_softc_s *,
struct ipftuneable *,
ipftuneval_t *));
-#ifdef USE_INET6
-static u_int ipf_pcksum6 __P((fr_info_t *, ip6_t *,
- u_int32_t, u_int32_t));
-#endif
#if !defined(_KERNEL) || SOLARIS
static int ppsratecheck(struct timeval *, int *, int);
#endif
@@ -10278,45 +10274,4 @@ ipf_inet6_mask_del(bits, mask, mtab)
mtab->imt6_max--;
ASSERT(mtab->imt6_max >= 0);
}
-
-static u_int
-ipf_pcksum6(fin, ip6, off, len)
- fr_info_t *fin;
- ip6_t *ip6;
- u_int32_t off;
- u_int32_t len;
-{
-#ifdef _KERNEL
- struct mbuf *m;
-
- m = fin->fin_m;
- if (m->m_len < sizeof(struct ip6_hdr)) {
- return 0xffff;
- }
-
- return(in6_cksum(m, ip6->ip6_nxt, off, len));
-#else
- u_short *sp;
- u_int sum;
-
- sp = (u_short *)&ip6->ip6_src;
- sum = *sp++; /* ip6_src */
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++; /* ip6_dst */
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- sum += *sp++;
- return(ipf_pcksum(fin, off, sum));
-#endif
-}
#endif
diff --git a/sys/contrib/ipfilter/netinet/ip_fil.h b/sys/contrib/ipfilter/netinet/ip_fil.h
index 81906af7c2e9..3f4e63e405bb 100644
--- a/sys/contrib/ipfilter/netinet/ip_fil.h
+++ b/sys/contrib/ipfilter/netinet/ip_fil.h
@@ -1839,6 +1839,10 @@ extern int ipf_matchicmpqueryreply __P((int, icmpinfo_t *,
struct icmp *, int));
extern u_32_t ipf_newisn __P((fr_info_t *));
extern u_int ipf_pcksum __P((fr_info_t *, int, u_int));
+#ifdef USE_INET6
+extern u_int ipf_pcksum6 __P((fr_info_t *, ip6_t *,
+ u_int32_t, u_int32_t));
+#endif
extern void ipf_rule_expire __P((ipf_main_softc_t *));
extern int ipf_scanlist __P((fr_info_t *, u_32_t));
extern frentry_t *ipf_srcgrpmap __P((fr_info_t *, u_32_t *));
diff --git a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
index a2b403c053d0..96b8cf8ae031 100644
--- a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
+++ b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
@@ -1447,3 +1447,48 @@ ipf_pcksum(fin, hlen, sum)
sum2 = ~sum & 0xffff;
return sum2;
}
+
+#ifdef USE_INET6
+u_int
+ipf_pcksum6(fin, ip6, off, len)
+ fr_info_t *fin;
+ ip6_t *ip6;
+ u_int32_t off;
+ u_int32_t len;
+{
+#ifdef _KERNEL
+ struct mbuf *m;
+ int sum;
+
+ m = fin->fin_m;
+ if (m->m_len < sizeof(struct ip6_hdr)) {
+ return 0xffff;
+ }
+
+ sum = in6_cksum(m, ip6->ip6_nxt, off, len);
+ return(sum);
+#else
+ u_short *sp;
+ u_int sum;
+
+ sp = (u_short *)&ip6->ip6_src;
+ sum = *sp++; /* ip6_src */
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++; /* ip6_dst */
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ sum += *sp++;
+ return(ipf_pcksum(fin, off, sum));
+#endif
+}
+#endif