Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Oct 2013 01:49:09 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r257087 - user/ae/inet6/sys/netinet6
Message-ID:  <201310250149.r9P1n9aE032288@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310250149.r9P1n9aE032288>