Anyway, all code forwarding packets on NetBSD must explicitly set
csum_flags to 0 after receive because of this.
Though I don't understand codes in ip_mroute.c very well, attached
patch might be things make better. (Not tested since I don't have
testing environment now, hoping it could test in this month.)
--
Takahiro Kambe <taca%back-street.net@localhost>
Index: sys/netinet/ip_mroute.c
===================================================================
RCS file: /cvs/src-4/sys/netinet/ip_mroute.c,v
retrieving revision 1.1.1.1
diff -u -p -d -d -u -p -r1.1.1.1 ip_mroute.c
--- sys/netinet/ip_mroute.c 7 Feb 2007 01:50:26 -0000 1.1.1.1
+++ sys/netinet/ip_mroute.c 6 May 2008 04:51:24 -0000
@@ -1425,6 +1425,11 @@ ip_mforward(struct mbuf *m, struct ifnet
return (1);
}
+ /*
+ * Clear any in-bound checksum flags for this packet.
+ */
+ m->m_pkthdr.csum_flags = 0;
+
#ifdef RSVP_ISI
if (imo && ((vifi = imo->imo_multicast_vif) < numvifs)) {
if (ip->ip_ttl < MAXTTL)