Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 02:21:08 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r185823 - user/kmacy/head_arpv2/sys/net
Message-ID:  <200812100221.mBA2L8RA009363@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Wed Dec 10 02:21:08 2008
New Revision: 185823
URL: http://svn.freebsd.org/changeset/base/185823

Log:
  merge fix for loopback connections

Modified:
  user/kmacy/head_arpv2/sys/net/if_ethersubr.c

Modified: user/kmacy/head_arpv2/sys/net/if_ethersubr.c
==============================================================================
--- user/kmacy/head_arpv2/sys/net/if_ethersubr.c	Wed Dec 10 02:20:58 2008	(r185822)
+++ user/kmacy/head_arpv2/sys/net/if_ethersubr.c	Wed Dec 10 02:21:08 2008	(r185823)
@@ -290,8 +290,16 @@ ether_output(struct ifnet *ifp, struct m
 		senderr(EAFNOSUPPORT);
 	}
 
-	if (lle && (lle->la_flags & LLE_IFADDR) && useloopback)
+	if (lle && (lle->la_flags & LLE_IFADDR) && useloopback) {
+		int csum_flags = 0;
+		if (m->m_pkthdr.csum_flags & CSUM_IP)
+			csum_flags |= (CSUM_IP_CHECKED|CSUM_IP_VALID);
+		if (m->m_pkthdr.csum_flags & CSUM_DELAY_DATA)
+			csum_flags |= (CSUM_DATA_VALID|CSUM_PSEUDO_HDR);
+		m->m_pkthdr.csum_flags |= csum_flags;
+		m->m_pkthdr.csum_data = 0xffff;
 		return (if_simloop(ifp, m, dst->sa_family, 0));
+	}
 
 	/*
 	 * Add local net header.  If no space in first mbuf,



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