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. MFC after: 3 days
This commit is contained in:
parent
c21bae587d
commit
9b7459d396
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=355142
@ -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
|
||||
|
@ -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 *));
|
||||
|
@ -1453,3 +1453,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
|
||||
|
Loading…
Reference in New Issue
Block a user