svn commit: r257087 - user/ae/inet6/sys/netinet6
Andrey V. Elsukov
ae at FreeBSD.org
Fri Oct 25 01:49:09 UTC 2013
Author: ae
Date: Fri Oct 25 01:49:08 2013
New Revision: 257087
URL: http://svnweb.freebsd.org/changeset/base/257087
Log:
Don't adjust checksum, since addresses don't contain scope id anymore.
Modified:
user/ae/inet6/sys/netinet6/in6_cksum.c
Modified: user/ae/inet6/sys/netinet6/in6_cksum.c
==============================================================================
--- user/ae/inet6/sys/netinet6/in6_cksum.c Fri Oct 25 01:47:02 2013 (r257086)
+++ user/ae/inet6/sys/netinet6/in6_cksum.c Fri Oct 25 01:49:08 2013 (r257087)
@@ -68,7 +68,6 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <netinet/in.h>
#include <netinet/ip6.h>
-#include <netinet6/scope6_var.h>
/*
* Checksum routine for Internet Protocol family headers (Portable Version).
@@ -84,7 +83,7 @@ static int
_in6_cksum_pseudo(struct ip6_hdr *ip6, uint32_t len, uint8_t nxt, uint16_t csum)
{
int sum;
- uint16_t scope, *w;
+ uint16_t *w;
union {
u_int16_t phs[4];
struct {
@@ -108,20 +107,14 @@ _in6_cksum_pseudo(struct ip6_hdr *ip6, u
sum += uph.phs[2]; sum += uph.phs[3];
/* IPv6 source address. */
- scope = in6_getscope(&ip6->ip6_src);
w = (u_int16_t *)&ip6->ip6_src;
sum += w[0]; sum += w[1]; sum += w[2]; sum += w[3];
sum += w[4]; sum += w[5]; sum += w[6]; sum += w[7];
- if (scope != 0)
- sum -= scope;
/* IPv6 destination address. */
- scope = in6_getscope(&ip6->ip6_dst);
w = (u_int16_t *)&ip6->ip6_dst;
sum += w[0]; sum += w[1]; sum += w[2]; sum += w[3];
sum += w[4]; sum += w[5]; sum += w[6]; sum += w[7];
- if (scope != 0)
- sum -= scope;
return (sum);
}
@@ -150,7 +143,7 @@ int
in6_cksum(struct mbuf *m, u_int8_t nxt, u_int32_t off, u_int32_t len)
{
struct ip6_hdr *ip6;
- u_int16_t *w, scope;
+ u_int16_t *w;
int byte_swapped, mlen;
int sum;
union {
@@ -188,20 +181,14 @@ in6_cksum(struct mbuf *m, u_int8_t nxt,
ip6 = mtod(m, struct ip6_hdr *);
/* IPv6 source address. */
- scope = in6_getscope(&ip6->ip6_src);
w = (u_int16_t *)&ip6->ip6_src;
sum += w[0]; sum += w[1]; sum += w[2]; sum += w[3];
sum += w[4]; sum += w[5]; sum += w[6]; sum += w[7];
- if (scope != 0)
- sum -= scope;
/* IPv6 destination address. */
- scope = in6_getscope(&ip6->ip6_dst);
w = (u_int16_t *)&ip6->ip6_dst;
sum += w[0]; sum += w[1]; sum += w[2]; sum += w[3];
sum += w[4]; sum += w[5]; sum += w[6]; sum += w[7];
- if (scope != 0)
- sum -= scope;
/*
* Secondly calculate a summary of the first mbuf excluding offset.
More information about the svn-src-user
mailing list