From owner-svn-src-projects@FreeBSD.ORG Fri Jan 16 11:42:43 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 63AC6ACF; Fri, 16 Jan 2015 11:42:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 384315EC; Fri, 16 Jan 2015 11:42:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t0GBghF9014753; Fri, 16 Jan 2015 11:42:43 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t0GBghRG014752; Fri, 16 Jan 2015 11:42:43 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201501161142.t0GBghRG014752@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 16 Jan 2015 11:42:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r277242 - projects/ifnet/sys/net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jan 2015 11:42:43 -0000 Author: glebius Date: Fri Jan 16 11:42:42 2015 New Revision: 277242 URL: https://svnweb.freebsd.org/changeset/base/277242 Log: Make the loopback always capenabled to RXCSUM/TXCSUM. Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/net/if_loop.c Modified: projects/ifnet/sys/net/if_loop.c ============================================================================== --- projects/ifnet/sys/net/if_loop.c Fri Jan 16 11:17:30 2015 (r277241) +++ projects/ifnet/sys/net/if_loop.c Fri Jan 16 11:42:42 2015 (r277242) @@ -238,30 +238,15 @@ looutput(if_t ifp, struct mbuf *m, const else af = dst->sa_family; -#if 1 /* XXX */ switch (af) { case AF_INET: - if (if_get(ifp, IF_CAPENABLE) & IFCAP_RXCSUM) { - m->m_pkthdr.csum_data = 0xffff; - m->m_pkthdr.csum_flags = LO_CSUM_SET; - } + m->m_pkthdr.csum_data = 0xffff; + m->m_pkthdr.csum_flags = LO_CSUM_SET; m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES; break; case AF_INET6: -#if 0 - /* - * XXX-BZ for now always claim the checksum is good despite - * any interface flags. This is a workaround for 9.1-R and - * a proper solution ought to be sought later. - */ - if (ifp->if_capenable & IFCAP_RXCSUM_IPV6) { - m->m_pkthdr.csum_data = 0xffff; - m->m_pkthdr.csum_flags = LO_CSUM_SET; - } -#else m->m_pkthdr.csum_data = 0xffff; m->m_pkthdr.csum_flags = LO_CSUM_SET; -#endif m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES6; break; default: @@ -269,7 +254,6 @@ looutput(if_t ifp, struct mbuf *m, const m_freem(m); return (EAFNOSUPPORT); } -#endif return (if_simloop(ifp, m, af, 0)); } @@ -362,7 +346,7 @@ int loioctl(if_t ifp, u_long cmd, void *data, struct thread *td) { struct ifreq *ifr = (struct ifreq *)data; - int error = 0, mask; + int error = 0; switch (cmd) { case SIOCSIFADDR: @@ -396,43 +380,9 @@ loioctl(if_t ifp, u_long cmd, void *dat break; case SIOCSIFMTU: - if_set(ifp, IF_MTU, ifr->ifr_mtu); - break; - case SIOCSIFFLAGS: break; - case SIOCSIFCAP: - mask = if_get(ifp, IF_CAPENABLE) ^ ifr->ifr_reqcap; - if ((mask & IFCAP_RXCSUM) != 0) - if_xorflags(ifp, IF_CAPENABLE, IFCAP_RXCSUM); - if ((mask & IFCAP_TXCSUM) != 0) - if_xorflags(ifp, IF_CAPENABLE, IFCAP_TXCSUM); - if ((mask & IFCAP_RXCSUM_IPV6) != 0) { -#if 0 - if_xorflags(ifp, IF_CAPENABLE, IFCAP_RXCSUM_IPV6); -#else - error = EOPNOTSUPP; - break; -#endif - } - if ((mask & IFCAP_TXCSUM_IPV6) != 0) { -#if 0 - if_xorflags(ifp, IF_CAPENABLE, IFCAP_TXCSUM_IPV6); -#else - error = EOPNOTSUPP; - break; -#endif - } - if_set(ifp, IF_HWASSIST, 0); - if (if_get(ifp, IF_CAPENABLE) & IFCAP_TXCSUM) - if_set(ifp, IF_HWASSIST, LO_CSUM_FEATURES); -#if 0 - if (if_get(ifp, IF_CAPENABLE) & IFCAP_TXCSUM_IPV6) - if_addflags(ifp, IF_HWASSIST, LO_CSUM_FEATURES6); -#endif - break; - default: error = EINVAL; }