From owner-cvs-all@FreeBSD.ORG Thu Mar 25 00:46:27 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A00AE16A4CE; Thu, 25 Mar 2004 00:46:27 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9AD3343D2D; Thu, 25 Mar 2004 00:46:27 -0800 (PST) (envelope-from ru@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i2P8kRGe047819; Thu, 25 Mar 2004 00:46:27 -0800 (PST) (envelope-from ru@repoman.freebsd.org) Received: (from ru@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i2P8kRHx047818; Thu, 25 Mar 2004 00:46:27 -0800 (PST) (envelope-from ru) Message-Id: <200403250846.i2P8kRHx047818@repoman.freebsd.org> From: Ruslan Ermilov Date: Thu, 25 Mar 2004 00:46:27 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/netinet ip_output.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Mar 2004 08:46:27 -0000 ru 2004/03/25 00:46:27 PST FreeBSD src repository Modified files: sys/netinet ip_output.c Log: Untangle IP multicast routing interaction with delayed payload checksums. Compute the payload checksum for a locally originated IP multicast where God intended, in ip_mloopback(), rather than doing it in ip_output() and only when multicast router is active. This is more correct as we do not fool ip_input() that the packet has the correct payload checksum when in fact it does not (when multicast router is inactive). This is also more efficient if we don't join the multicast group we send to, thus allowing the hardware to checksum the payload. Revision Changes Path 1.212 +3 -13 src/sys/netinet/ip_output.c