From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 12:37:14 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AF5A216A41B for ; Sun, 7 Oct 2007 12:37:14 +0000 (UTC) (envelope-from randy@psg.com) Received: from rip.psg.com (rip.psg.com [147.28.0.39]) by mx1.freebsd.org (Postfix) with ESMTP id 7BE9F13C4A7 for ; Sun, 7 Oct 2007 12:37:14 +0000 (UTC) (envelope-from randy@psg.com) Received: from [202.214.86.181] by rip.psg.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.67 (FreeBSD)) (envelope-from ) id 1IeVNg-000K4y-TI for freebsd-net@freebsd.org; Sun, 07 Oct 2007 12:37:13 +0000 Message-ID: <4708D2EE.4010405@psg.com> Date: Sun, 07 Oct 2007 21:37:02 +0900 From: Randy Bush User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: FreeBSD Net X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 12:37:14 -0000 i386 current # grep -n nat /etc/ipfw.rules 33:add nat 42 all from any to any 34:add nat 42 config if vr0 same_ports unreg_only # ipfw -q /etc/ipfw.rules Line 33: getsockopt(IP_FW_ADD): Invalid argument kernel has options IPFIREWALL options IPFIREWALL_VERBOSE #enable logging to syslogd(8) options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity options IPDIVERT options LIBALIAS # kldstat Id Refs Address Size Name 1 3 0xc0400000 38b278 kernel 2 1 0xc27d8000 8000 if_bridge.ko 3 1 0xc27e0000 5000 bridgestp.ko whack me with a clue bat, please randy From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 13:17:08 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9FF216A41B for ; Sun, 7 Oct 2007 13:17:08 +0000 (UTC) (envelope-from piso@southcross.wired.org) Received: from mail.oltrelinux.com (krisma.oltrelinux.com [194.242.226.43]) by mx1.freebsd.org (Postfix) with ESMTP id 9C9CC13C458 for ; Sun, 7 Oct 2007 13:17:08 +0000 (UTC) (envelope-from piso@southcross.wired.org) Received: from southcross.wired.org (host-84-221-83-187.cust-adsl.tiscali.it [84.221.83.187]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.oltrelinux.com (Postfix) with ESMTP id 6F89711AE43 for ; Sun, 7 Oct 2007 14:45:50 +0200 (CEST) Received: (from piso@localhost) by southcross.wired.org (8.14.1/8.14.1/Submit) id l97CjsJl005693 for freebsd-net@freebsd.org; Sun, 7 Oct 2007 14:45:54 +0200 (CEST) (envelope-from piso) Date: Sun, 7 Oct 2007 14:45:54 +0200 From: Paolo Pisati To: FreeBSD Net Message-ID: <20071007124554.GB5636@tin.it> References: <4708D2EE.4010405@psg.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4708D2EE.4010405@psg.com> User-Agent: Mutt/1.5.16 (2007-06-09) X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at krisma.oltrelinux.com Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 13:17:08 -0000 On Sun, Oct 07, 2007 at 09:37:02PM +0900, Randy Bush wrote: > kernel has > options IPFIREWALL > options IPFIREWALL_VERBOSE #enable logging to syslogd(8) > options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity > options IPDIVERT > options LIBALIAS options IPFIREWALL_NAT #ipfw kernel nat support see sys/conf/NOTES for details. bye, P. From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 14:24:00 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C078716A46E for ; Sun, 7 Oct 2007 14:24:00 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from webmail30.mail.yandex.net (webmail30.mail.yandex.net [213.180.200.154]) by mx1.freebsd.org (Postfix) with ESMTP id 1F8CA13C4C2 for ; Sun, 7 Oct 2007 14:24:00 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from YAMAIL (webmail30) by mail.yandex.ru id S4645201AbXJGMyt for ; Sun, 7 Oct 2007 16:54:49 +0400 X-Yandex-Spam: 1 Received: from [77.72.136.70] ([77.72.136.70]) by mail.yandex.ru with HTTP; Sun, 07 Oct 2007 16:54:49 +0400 From: "Andrey V. Elsukov" To: randy@psg.com In-Reply-To: 1550000000223575699 References: 1550000000223575699 MIME-Version: 1.0 Message-Id: <654641191761689@webmail30.yandex.ru> Date: Sun, 07 Oct 2007 16:54:49 +0400 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain Cc: freebsd-net@freebsd.org Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 14:24:00 -0000 > i386 current > # grep -n nat /etc/ipfw.rules > 33:add nat 42 all from any to any > 34:add nat 42 config if vr0 same_ports unreg_only > # ipfw -q /etc/ipfw.rules > Line 33: getsockopt(IP_FW_ADD): Invalid argument > kernel has > options IPFIREWALL > options IPFIREWALL_VERBOSE #enable logging to syslogd(8) > options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity > options IPDIVERT > options LIBALIAS You need also: options IPFIREWALL_NAT #ipfw kernel nat support -- WBR, Andrey V. Elsukov From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 20:16:42 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2444616A46D for ; Sun, 7 Oct 2007 20:16:42 +0000 (UTC) (envelope-from randy@psg.com) Received: from rip.psg.com (rip.psg.com [147.28.0.39]) by mx1.freebsd.org (Postfix) with ESMTP id EE8BF13C45A for ; Sun, 7 Oct 2007 20:16:41 +0000 (UTC) (envelope-from randy@psg.com) Received: from [202.214.86.181] by rip.psg.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.67 (FreeBSD)) (envelope-from ) id 1IecYK-000N9y-4p; Sun, 07 Oct 2007 20:16:40 +0000 Message-ID: <47093E9E.5060207@psg.com> Date: Mon, 08 Oct 2007 05:16:30 +0900 From: Randy Bush User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: "Andrey V. Elsukov" References: 1550000000223575699 <654641191761689@webmail30.yandex.ru> In-Reply-To: <654641191761689@webmail30.yandex.ru> X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 20:16:42 -0000 > options IPFIREWALL_NAT #ipfw kernel nat support thank you. apologies for missing it. randy From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 21:58:56 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B17B16A418 for ; Sun, 7 Oct 2007 21:58:56 +0000 (UTC) (envelope-from freebsd-net@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.freebsd.org (Postfix) with ESMTP id 4C10213C447 for ; Sun, 7 Oct 2007 21:58:55 +0000 (UTC) (envelope-from freebsd-net@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Iee9B-0002dv-9b for freebsd-net@freebsd.org; Sun, 07 Oct 2007 21:58:49 +0000 Received: from 78-1-114-229.adsl.net.t-com.hr ([78.1.114.229]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 07 Oct 2007 21:58:49 +0000 Received: from ivoras by 78-1-114-229.adsl.net.t-com.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 07 Oct 2007 21:58:49 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-net@freebsd.org From: Ivan Voras Date: Sun, 07 Oct 2007 23:58:32 +0200 Lines: 35 Message-ID: References: <46FBE818.3020800@FreeBSD.org> <9bbcef730709271054k5cbda605wcfd44adede05614f@mail.gmail.com> <46FBF101.6080402@FreeBSD.org> <9bbcef730709271208t74938933p704b554625f443ba@mail.gmail.com> <46FC019F.60900@FreeBSD.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig65D9D838AE7ABF66BBCF8501" X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: 78-1-114-229.adsl.net.t-com.hr User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) In-Reply-To: X-Enigmail-Version: 0.95.3 Sender: news Subject: Re: Panic in rt_check X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 21:58:56 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig65D9D838AE7ABF66BBCF8501 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Ivan Voras wrote: > Ivan Voras wrote: >=20 >> Apparently, this was patched 4 days ago so I'll try two things: 1) bui= ld >> with the new (patched) version and=20 >=20 > Interesting development - the machine is stable now for 5 days (before > this, it would panic within 48 hours). It looks like the problem might > be fixed by the commit to if_stf.c (or something else in the recent > -CURRENT). I'll keep monitoring it closely. Still no luck, it still panics at the same place, though more rarely. --------------enig65D9D838AE7ABF66BBCF8501 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHCVaNldnAQVacBcgRAn3kAJ9X86JB072ppcDJZPM/4NqiBP0GMQCeIhku croOK9H8f+eg5ioE+UUgOpQ= =XBDe -----END PGP SIGNATURE----- --------------enig65D9D838AE7ABF66BBCF8501-- From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 22:25:23 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F110A16A41B; Sun, 7 Oct 2007 22:25:23 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx1.freebsd.org (Postfix) with ESMTP id 4853C13C457; Sun, 7 Oct 2007 22:25:23 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <47095CD3.2040701@FreeBSD.org> Date: Mon, 08 Oct 2007 00:25:23 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Ivan Voras References: <46FBE818.3020800@FreeBSD.org> <9bbcef730709271054k5cbda605wcfd44adede05614f@mail.gmail.com> <46FBF101.6080402@FreeBSD.org> <9bbcef730709271208t74938933p704b554625f443ba@mail.gmail.com> <46FC019F.60900@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: Panic in rt_check X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 22:25:24 -0000 Ivan Voras wrote: > Ivan Voras wrote: >> Ivan Voras wrote: >> >>> Apparently, this was patched 4 days ago so I'll try two things: 1) build >>> with the new (patched) version and >> Interesting development - the machine is stable now for 5 days (before >> this, it would panic within 48 hours). It looks like the problem might >> be fixed by the commit to if_stf.c (or something else in the recent >> -CURRENT). I'll keep monitoring it closely. > > Still no luck, it still panics at the same place, though more rarely. > Well yeah, if you're not using if_stf that's not going to fix it :) Kris From owner-freebsd-net@FreeBSD.ORG Sun Oct 7 22:34:46 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D259116A41B for ; Sun, 7 Oct 2007 22:34:46 +0000 (UTC) (envelope-from ivoras@gmail.com) Received: from rv-out-0910.google.com (rv-out-0910.google.com [209.85.198.187]) by mx1.freebsd.org (Postfix) with ESMTP id 9917313C474 for ; Sun, 7 Oct 2007 22:34:46 +0000 (UTC) (envelope-from ivoras@gmail.com) Received: by rv-out-0910.google.com with SMTP id l15so520233rvb for ; Sun, 07 Oct 2007 15:34:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; bh=8uCuhGL5q7VPMGDY8u2BCTqyS/qOgkO3N/h9gJndmF4=; b=t8l6i8Pd7j4t2G4vXdXNBHmQt/4ovZnYKxbjwn7yPaRBLHFprEEipC060j4zggGyCOSrEdXrmywtUMvBm1Kr4qw6eAJQtp3as1+cnT1WtSRKHNgYf1fHIGAl8bTlNnXDSUnENR+824Z1FcOOi/LA2+n6szE1ox7IKiPh89plLaU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=FcLUT7VscVH0IWPUuHb0FCtu3JTrplirfaYWo/f0zLZFRH+NivXGHHXgrLCv0AWLiBuit/qFSkKzqZR7jTaa/P8Lsg3lPMDo+ARaQ6XFklPtC0ej1h0GkbQdZWiEjT4wfNOAS+aXgntlYBWpsbvxaUuEStTS1BPfGrAXwhtBbJ4= Received: by 10.141.137.8 with SMTP id p8mr379214rvn.1191796486114; Sun, 07 Oct 2007 15:34:46 -0700 (PDT) Received: by 10.141.211.5 with HTTP; Sun, 7 Oct 2007 15:34:46 -0700 (PDT) Message-ID: <9bbcef730710071534q41313712jdf5b36ecd7c9deb3@mail.gmail.com> Date: Mon, 8 Oct 2007 00:34:46 +0200 From: "Ivan Voras" Sender: ivoras@gmail.com To: "Kris Kennaway" In-Reply-To: <47095CD3.2040701@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <46FBE818.3020800@FreeBSD.org> <9bbcef730709271054k5cbda605wcfd44adede05614f@mail.gmail.com> <46FBF101.6080402@FreeBSD.org> <9bbcef730709271208t74938933p704b554625f443ba@mail.gmail.com> <46FC019F.60900@FreeBSD.org> <47095CD3.2040701@FreeBSD.org> X-Google-Sender-Auth: fee66249e03420e6 Cc: freebsd-net@freebsd.org Subject: Re: Panic in rt_check X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Oct 2007 22:34:46 -0000 On 08/10/2007, Kris Kennaway wrote: > Well yeah, if you're not using if_stf that's not going to fix it :) Are you sure? I'm not actually sure how it works but I supposed it might be triggered because some hosts advertise IPv6 and some don't (the network in general and its routers don't speak IPv6 so it's useless). I see IPv6 addresses tied to some of my NICs. If the kernel still panics without IPv6 in it, I'll move on to other possible solutions (Doug's first). From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 00:54:06 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A86C216A418; Mon, 8 Oct 2007 00:54:06 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 7950B13C465; Mon, 8 Oct 2007 00:54:06 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l980s6u7050908; Mon, 8 Oct 2007 00:54:06 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l980s6p3050904; Mon, 8 Oct 2007 00:54:06 GMT (envelope-from linimon) Date: Mon, 8 Oct 2007 00:54:06 GMT Message-Id: <200710080054.l980s6p3050904@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-i386@FreeBSD.org, freebsd-net@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: kern/116747: [ndis] FreeBSD 7.0-CURRENT crash with Dell TrueMobile 1400 wireless card X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 00:54:06 -0000 Old Synopsis: FreeBSD 7.0-CURRENT crash New Synopsis: [ndis] FreeBSD 7.0-CURRENT crash with Dell TrueMobile 1400 wireless card Responsible-Changed-From-To: freebsd-i386->freebsd-net Responsible-Changed-By: linimon Responsible-Changed-When: Mon Oct 8 00:53:16 UTC 2007 Responsible-Changed-Why: Reclassify. http://www.freebsd.org/cgi/query-pr.cgi?pr=116747 From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 06:55:25 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 72C6F16A418 for ; Mon, 8 Oct 2007 06:55:25 +0000 (UTC) (envelope-from randy@psg.com) Received: from rip.psg.com (rip.psg.com [147.28.0.39]) by mx1.freebsd.org (Postfix) with ESMTP id 4707C13C455 for ; Mon, 8 Oct 2007 06:55:25 +0000 (UTC) (envelope-from randy@psg.com) Received: from [202.214.86.181] by rip.psg.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.67 (FreeBSD)) (envelope-from ) id 1IemWR-0004rZ-H5 for freebsd-net@freebsd.org; Mon, 08 Oct 2007 06:55:24 +0000 Message-ID: <4709D44E.5050305@psg.com> Date: Mon, 08 Oct 2007 15:55:10 +0900 From: Randy Bush User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: FreeBSD Net References: <4708D2EE.4010405@psg.com> In-Reply-To: <4708D2EE.4010405@psg.com> X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 06:55:25 -0000 i386 current kernel has options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=100 options IPDIVERT options IPFIREWALL_NAT #thanks to paulo and andrey options LIBALIAS # ipfw -q /etc/ipfw.rules Line 34: unrecognised option [-1] config # grep -n nat /etc/ipfw.rules 33:add nat 123 all from any to any 34:add nat 123 config if vr0 more clue bat, please randy From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 07:14:35 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A947916A417 for ; Mon, 8 Oct 2007 07:14:35 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from smtp1.yandex.ru (smtp1.yandex.ru [213.180.223.87]) by mx1.freebsd.org (Postfix) with ESMTP id 0E04C13C4A7 for ; Mon, 8 Oct 2007 07:14:33 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from mail.kirov.so-cdu.ru ([77.72.136.145]:57324 "EHLO [127.0.0.1]" smtp-auth: "bu7cher" TLS-CIPHER: "DHE-RSA-AES256-SHA keybits 256/256 version TLSv1/SSLv3" TLS-PEER-CN1: ) by mail.yandex.ru with ESMTP id S8372746AbXJHHDn (ORCPT ); Mon, 8 Oct 2007 11:03:43 +0400 X-Comment: RFC 2476 MSA function at smtp1.yandex.ru logged sender identity as: bu7cher Message-ID: <4709D647.1050803@yandex.ru> Date: Mon, 08 Oct 2007 11:03:35 +0400 From: "Andrey V. Elsukov" User-Agent: Mozilla Thunderbird 1.5 (FreeBSD/20051231) MIME-Version: 1.0 To: Randy Bush References: <4708D2EE.4010405@psg.com> <4709D44E.5050305@psg.com> In-Reply-To: <4709D44E.5050305@psg.com> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: FreeBSD Net Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 07:14:35 -0000 Randy Bush wrote: > # grep -n nat /etc/ipfw.rules > 33:add nat 123 all from any to any > 34:add nat 123 config if vr0 ^^^^^^^^ - add is not needed here. -- WBR, Andrey V. Elsukov From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 08:22:51 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9EB4616A417 for ; Mon, 8 Oct 2007 08:22:51 +0000 (UTC) (envelope-from piso@southcross.wired.org) Received: from mail.oltrelinux.com (krisma.oltrelinux.com [194.242.226.43]) by mx1.freebsd.org (Postfix) with ESMTP id 562FB13C461 for ; Mon, 8 Oct 2007 08:22:50 +0000 (UTC) (envelope-from piso@southcross.wired.org) Received: from southcross.wired.org (host-84-221-83-187.cust-adsl.tiscali.it [84.221.83.187]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.oltrelinux.com (Postfix) with ESMTP id CD24B11AE43; Mon, 8 Oct 2007 10:22:49 +0200 (CEST) Received: (from piso@localhost) by southcross.wired.org (8.14.1/8.14.1/Submit) id l988MvvS009231; Mon, 8 Oct 2007 10:22:57 +0200 (CEST) (envelope-from piso) Date: Mon, 8 Oct 2007 10:22:56 +0200 From: Paolo Pisati To: "Andrey V. Elsukov" Message-ID: <20071008082256.GA9098@tin.it> References: <4708D2EE.4010405@psg.com> <4709D44E.5050305@psg.com> <4709D647.1050803@yandex.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4709D647.1050803@yandex.ru> User-Agent: Mutt/1.5.16 (2007-06-09) X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at krisma.oltrelinux.com Cc: Randy Bush , FreeBSD Net Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 08:22:51 -0000 On Mon, Oct 08, 2007 at 11:03:35AM +0400, Andrey V. Elsukov wrote: > Randy Bush wrote: >> # grep -n nat /etc/ipfw.rules >> 33:add nat 123 all from any to any >> 34:add nat 123 config if vr0 > ^^^^^^^^ - add is not needed here. ipfw nat crash course: echo "net.inet.ip.fw.one_pass=0" >> /etc/sysctl.conf and manually add: ipfw nat 123 config if $IF log ipfw add nat 123 ip4 from any to any via $IF or substisute natd_enable/natd_interface in rc.conf with: firewall_nat_enable="yes" firewall_nat_interface="$IF" Done. bye, P. From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 11:08:32 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8923B16A47D for ; Mon, 8 Oct 2007 11:08:32 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 6605E13C46A for ; Mon, 8 Oct 2007 11:08:32 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l98B8WfS083381 for ; Mon, 8 Oct 2007 11:08:32 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l98B8UKt083378 for freebsd-net@FreeBSD.org; Mon, 8 Oct 2007 11:08:30 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 8 Oct 2007 11:08:30 GMT Message-Id: <200710081108.l98B8UKt083378@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-net@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 11:08:32 -0000 Current FreeBSD problem reports Critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/115360 net [ipv6] IPv6 address and if_bridge don't play well toge 1 problem total. Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- s kern/21998 net [socket] [patch] ident only for outgoing connections a kern/38554 net changing interface ipaddress doesn't seem to work s kern/39937 net ipstealth issue s kern/81147 net [net] [patch] em0 reinitialization while adding aliase o kern/92552 net A serious bug in most network drivers from 5.X to 6.X s kern/95665 net [if_tun] "ping: sendto: No buffer space available" wit s kern/105943 net Network stack may modify read-only mbuf chain copies o kern/106316 net [dummynet] dummynet with multipass ipfw drops packets o kern/108542 net [bce]: Huge network latencies with 6.2-RELEASE / STABL o kern/109406 net [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work wi o kern/110959 net [ipsec] Filtering incoming packets with enc0 does not o kern/112528 net [nfs] NFS over TCP under load hangs with "impossible p o kern/112686 net [patm] patm driver freezes System (FreeBSD 6.2-p4) i38 o kern/112722 net IP v4 udp fragmented packet reject o kern/113457 net [ipv6] deadlock occurs if a tunnel goes down while the o kern/113842 net [ipv6] PF_INET6 proto domain state can't be cleared wi o kern/114714 net [gre][patch] gre(4) is not MPSAFE and does not support o kern/114839 net [fxp] fxp looses ability to speak with traffic o kern/115239 net [ipnat] panic with 'kmem_map too small' using ipnat o kern/116077 net 6.2-STABLE panic during use of multi-cast networking c o kern/116172 net Network / ipv6 recursive mutex panic o kern/116185 net if_iwi driver leads system to reboot o kern/116186 net can not set wi channel on current o kern/116328 net [bge]: Solid hang with bge interface o kern/116747 net [ndis] FreeBSD 7.0-CURRENT crash with Dell TrueMobile o kern/116837 net ifconfig tunX destroy: panic 26 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o conf/23063 net [PATCH] for static ARP tables in rc.network s bin/41647 net ifconfig(8) doesn't accept lladdr along with inet addr o kern/54383 net [nfs] [patch] NFS root configurations without dynamic s kern/60293 net FreeBSD arp poison patch o kern/95267 net packet drops periodically appear f kern/95277 net [netinet] [patch] IP Encapsulation mask_match() return o kern/100519 net [netisr] suggestion to fix suboptimal network polling o kern/102035 net [plip] plip networking disables parallel port printing o conf/102502 net [patch] ifconfig name does't rename netgraph node in n o kern/103253 net inconsistent behaviour in arp reply of a bridge o conf/107035 net [patch] bridge interface given in rc.conf not taking a o kern/112654 net [pcn] Kernel panic upon if_pcn module load on a Netfin o kern/114095 net [carp] carp+pf delay with high state limit o kern/114915 net [patch] [pcn] pcn (sys/pci/if_pcn.c) ethernet driver f o bin/116643 net [patch] fstat(1): add INET/INET6 socket details as in 15 problems total. From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 11:12:16 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 100E916A420 for ; Mon, 8 Oct 2007 11:12:16 +0000 (UTC) (envelope-from randy@psg.com) Received: from rip.psg.com (rip.psg.com [147.28.0.39]) by mx1.freebsd.org (Postfix) with ESMTP id D790613C458 for ; Mon, 8 Oct 2007 11:12:15 +0000 (UTC) (envelope-from randy@psg.com) Received: from [202.214.86.181] by rip.psg.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.67 (FreeBSD)) (envelope-from ) id 1IeqX0-0005Dt-5j; Mon, 08 Oct 2007 11:12:14 +0000 Message-ID: <470A107C.9000509@psg.com> Date: Mon, 08 Oct 2007 20:11:56 +0900 From: Randy Bush User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: Paolo Pisati References: <4708D2EE.4010405@psg.com> <4709D44E.5050305@psg.com> <4709D647.1050803@yandex.ru> <20071008082256.GA9098@tin.it> In-Reply-To: <20071008082256.GA9098@tin.it> X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: FreeBSD Net , "Andrey V. Elsukov" Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 11:12:16 -0000 >>> # grep -n nat /etc/ipfw.rules >>> 33:add nat 123 all from any to any >>> 34:add nat 123 config if vr0 >> ^^^^^^^^ - add is not needed here. thanks andrey > ipfw nat crash course: > echo "net.inet.ip.fw.one_pass=0" >> /etc/sysctl.conf > and manually add: > ipfw nat 123 config if $IF log > ipfw add nat 123 ip4 from any to any via $IF hmmm. did that. see below > or substisute natd_enable/natd_interface in rc.conf with: > firewall_nat_enable="yes" > firewall_nat_interface="$IF" aha! that stuff is not in /etc/defaults/rc.conf extracted from /etc/rc.conf ifconfig_vr0=DHCP ifconfig_ath0="192.168.0.1 channel 4 ssid foo mediaopt hostap up" gateway_enable=YES # grep nat /etc/ipfw.rules nat 42 config if vr0 log add nat 42 ip4 from any to any via vr0 # sysctl net.inet.ip.fw.one_pass net.inet.ip.fw.one_pass: 0 system boots and vr0 gets a dhcp address successfully dhcpd is running wireless client successfully associates with ath0, but can not get dhcp address Oct 8 11:05:33 soek0 dhcpd: DHCPDISCOVER from 00:18:de:21:76:c9 via ath0 Oct 8 11:05:33 soek0 dhcpd: DHCPOFFER on 192.168.0.10 to 00:18:de:21:76:c9 via ath0 using wireshark on the client, i see the request but not the response. randy From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 17:34:36 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5513316A41A for ; Mon, 8 Oct 2007 17:34:36 +0000 (UTC) (envelope-from wawa@yandex-team.ru) Received: from cmail.yandex.ru (cmail.yandex.ru [213.180.193.1]) by mx1.freebsd.org (Postfix) with ESMTP id CBC5513C455 for ; Mon, 8 Oct 2007 17:34:35 +0000 (UTC) (envelope-from wawa@yandex-team.ru) Received: from [87.250.250.1] (wawa.yandex.ru [87.250.250.1]) by cmail.yandex.ru (8.14.1/8.14.1) with ESMTP id l98HYKS0014246; Mon, 8 Oct 2007 21:34:21 +0400 (MSD) (envelope-from wawa@yandex-team.ru) Message-ID: <470A6A1D.9070104@yandex-team.ru> Date: Mon, 08 Oct 2007 21:34:21 +0400 From: Vladimir Ivanov Organization: Yandex LLC User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.13pre) Gecko/20070505 Iceape/1.0.9 (Debian-1.0.10~pre070720-0etch3+lenny1) MIME-Version: 1.0 To: d@delphij.net References: <46B07931.3080300@yandex-team.ru> <2a41acea0708010923m7b21095ajc2ee84c37e0d5354@mail.gmail.com> <470280F6.9070009@yandex-team.ru> <20071003111737.U14276@delplex.bde.org> <47037246.2070400@yandex-team.ru> <47040D83.9010706@delphij.net> In-Reply-To: <47040D83.9010706@delphij.net> Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms030202000805060704050806" Cc: "freebsd-net@freebsd.org" , Jack Vogel Subject: Re: SMPable version of EM driver X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 17:34:36 -0000 This is a cryptographically signed message in MIME format. --------------ms030202000805060704050806 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, LI Xin wrote: > Hi Valdimir and Jack, > > I have ported Valdimir's 1.16 revision of their driver to -CURRENT code > as of today, but I don't have a box that is suitable for testing right > now as I just moved, and the server I used to do FreeBSD coding stuff is > located several thousand miles away :-) > > I hope that this would be useful for adoption to the official em(4) > driver, and thanks Valdimir and Yandex for their work on this. > > Cheers, > Jack has commited version 6.6.6 to RELENG_6. It seems to be very close to CURRENT version. I've merged it to our revision (http://people.yandex-team.ru/~wawa/em-6.6.6-yandex-1.18.tar.gz). Be careful: it is fresh (today) code. Regards, -- Vladimir Ivanov Network Operations Center OOO "Yandex" t: +7 495 739-7000 f: +7 495 739-7070 @: noc@yandex.net (corporate) wawa@yandex-team.ru (personal) www: www.yandex.ru -- --------------ms030202000805060704050806 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGJzCC AuAwggJJoAMCAQICEA2B08GbcpEEl6Da/kpOht8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA3MDcwNDE1MTM0NVoX DTA4MDcwMzE1MTM0NVowRTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEiMCAG CSqGSIb3DQEJARYTd2F3YUB5YW5kZXgtdGVhbS5ydTCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBANuooNgTWqT0D35N7rdbZAAje8iyZcELUHy3Dgh6Pymm+s7RIeP8EoxTnn1o YQMFkZdthNT/j+MXl61O0zBshti+34/9m0rQzntCHDboJf9yTeA0bOqL43EdnEMlUWTEaf00 dcOySQ3fpTKiiQKqFASI1MUPDCfQQuu6ansTCpddG8fOu+zaE570aH6hoy/NRGhH8SCbcARY QxjjiddCUknclX2gz4ak+wVB4IapHNSdtRG3APj5GZY9VK7sAwjOqodcNwbQEG/Gj6j99fU3 7GYAL+x3bz9wve9YGEJ7TUPLpd582tZtiiakqurnluId4Ix1B/HSyAZnPAr5WYJZrwcCAwEA AaMwMC4wHgYDVR0RBBcwFYETd2F3YUB5YW5kZXgtdGVhbS5ydTAMBgNVHRMBAf8EAjAAMA0G CSqGSIb3DQEBBQUAA4GBABzUVmJvH3Cr++WFtTFVewG2cLZo3geMNRuT+wIPULXt59LPuSg7 ZnK04wXNC2Am5UKilWxvDS6gs6pW2ZIDHw8YttQzej7z7+Scujr9uyfxMcTxHfk826UAdadz eKYGHEvb41wokW/lZR6fMLqRzfjHLDTZM46GiXQFVSMtqCT0MIIDPzCCAqigAwIBAgIBDTAN BgkqhkiG9w0BAQUFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTES MBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UE CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBl cnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0 aGF3dGUuY29tMB4XDTAzMDcxNzAwMDAwMFoXDTEzMDcxNjIzNTk1OVowYjELMAkGA1UEBhMC WkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1Ro YXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GN ADCBiQKBgQDEpjxVc1X7TrnKmVoeaMB1BHCd3+n/ox7svc31W/Iadr1/DDph8r9RzgHU5VAK MNcCY1osiRVwjt3J8CuFWqo/cVbLrzwLB+fxH5E2JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTX p6a7n2XRxSpUhQ9IBH+nttE8YQRAHmQZcmC3+wIDAQABo4GUMIGRMBIGA1UdEwEB/wQIMAYB Af8CAQAwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVBl cnNvbmFsRnJlZW1haWxDQS5jcmwwCwYDVR0PBAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYD VQQDExFQcml2YXRlTGFiZWwyLTEzODANBgkqhkiG9w0BAQUFAAOBgQBIjNFQg+oLLswNo2as Zw9/r6y+whehQ5aUnX9MIbj4Nh+qLZ82L8D0HFAgk3A8/a3hYWLD2ToZfoSxmRsAxRoLgnSe JVCUYsfbJ3FXJY3dqZw5jowgT2Vfldr394fWxghOrvbqNOUQGls1TXfjViF4gtwhGTXeJLHT HUb/XV9lTzGCAlEwggJNAgEBMHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBD b25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFp bCBJc3N1aW5nIENBAhANgdPBm3KRBJeg2v5KTobfMAkGBSsOAwIaBQCggbEwGAYJKoZIhvcN AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcxMDA4MTczNDIxWjAjBgkqhkiG 9w0BCQQxFgQU0kaAjHsfcgKPK7xxZZFTpfG22VkwUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG 9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN AwICASgwDQYJKoZIhvcNAQEBBQAEggEAVL+btnDe9rhzeaMDmFx8wQ8PSaXUWKJBshOlVmxr Zo65OPZXACPNyq6dtZ4zGHx9d4UP6e5bkusNNWop/VJaVya4IqFaEjoSknu+nHE/3RqC8Z+Z Ie9BbawW/A4WR4Cf7UrHJYWCX+IlqQQECSDKKX6gvwfyEzqZwEOQGCgs4RVUDubwjaWNdmy0 3skXL1e1Bj4CsJ+aBjWfQXEPsJU2xkZHQ8jNMYCvpaA8vFqxFcEluqoC045ImmdPCdsjhFl0 RD7E3YEOj5gPz7E4g6lGZSqEOrdoCDPnwgD5B9JjP2qogW/kDx3Lg4jJjcMFU5oY3hgQ/Sz1 OtsIrU2Ev4FBKwAAAAAAAA== --------------ms030202000805060704050806-- From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 17:46:45 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 72A8716A41B for ; Mon, 8 Oct 2007 17:46:45 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [210.51.165.229]) by mx1.freebsd.org (Postfix) with ESMTP id 2889E13C48D for ; Mon, 8 Oct 2007 17:46:44 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from localhost (tarsier.geekcn.org [210.51.165.229]) by tarsier.geekcn.org (Postfix) with ESMTP id E1C93EB90E4; Tue, 9 Oct 2007 01:46:43 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([210.51.165.229]) by localhost (mail.geekcn.org [210.51.165.229]) (amavisd-new, port 10024) with ESMTP id aJNVu9hLEax7; Tue, 9 Oct 2007 01:46:32 +0800 (CST) Received: from LI-Xins-MacBook.local (71.5.7.139.ptr.us.xo.net [71.5.7.139]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTP id 80206EB92F7; Tue, 9 Oct 2007 01:46:30 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:cc:subject:references:in-reply-to: x-enigmail-version:openpgp:content-type; b=WBzcbFm7qWy1QsWHE1zHqBO2jUlMsP8ocBNHw9ExACWuK2nKUqnroC3cYx0X/pKV3 LYukY5XAu29OCq1gaG+YA== Message-ID: <470A6CEB.8040303@delphij.net> Date: Mon, 08 Oct 2007 10:46:19 -0700 From: LI Xin Organization: The FreeBSD Project User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Vladimir Ivanov References: <46B07931.3080300@yandex-team.ru> <2a41acea0708010923m7b21095ajc2ee84c37e0d5354@mail.gmail.com> <470280F6.9070009@yandex-team.ru> <20071003111737.U14276@delplex.bde.org> <47037246.2070400@yandex-team.ru> <47040D83.9010706@delphij.net> <470A6A1D.9070104@yandex-team.ru> In-Reply-To: <470A6A1D.9070104@yandex-team.ru> X-Enigmail-Version: 0.95.3 OpenPGP: url=http://www.delphij.net/delphij.asc Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enig07261B0F771C4446A40E106E" Cc: "freebsd-net@freebsd.org" , d@delphij.net, Jack Vogel Subject: Re: SMPable version of EM driver X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 17:46:45 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig07261B0F771C4446A40E106E Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Vladimir Ivanov wrote: > Hi, >=20 > LI Xin wrote: >> Hi Valdimir and Jack, >> >> I have ported Valdimir's 1.16 revision of their driver to -CURRENT cod= e >> as of today, but I don't have a box that is suitable for testing right= >> now as I just moved, and the server I used to do FreeBSD coding stuff = is >> located several thousand miles away :-) >> >> I hope that this would be useful for adoption to the official em(4) >> driver, and thanks Valdimir and Yandex for their work on this. >> >> Cheers, >> =20 > Jack has commited version 6.6.6 to RELENG_6. It seems to be very close > to CURRENT version. > I've merged it to our revision > (http://people.yandex-team.ru/~wawa/em-6.6.6-yandex-1.18.tar.gz). Be > careful: it is fresh (today) code. Yes, as Jack said 6.6.6 was the tested version at Intel (thanks to Jack and Intel :) and will became the -CURRENT version for FreeBSD. Thanks for the work! Cheers, --=20 Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! --------------enig07261B0F771C4446A40E106E Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHCmzsOfuToMruuMARCv7iAJoCKyBgjTW/MlmikFcBlMs3v7VufwCaAlPp n0z6tMbBd4OjVtbEDGimoko= =ujjY -----END PGP SIGNATURE----- --------------enig07261B0F771C4446A40E106E-- From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 22:27:37 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9EEF16A417 for ; Mon, 8 Oct 2007 22:27:37 +0000 (UTC) (envelope-from piso@southcross.wired.org) Received: from mail.oltrelinux.com (krisma.oltrelinux.com [194.242.226.43]) by mx1.freebsd.org (Postfix) with ESMTP id 5A70313C448 for ; Mon, 8 Oct 2007 22:27:37 +0000 (UTC) (envelope-from piso@southcross.wired.org) Received: from southcross.wired.org (host-84-221-193-59.cust-adsl.tiscali.it [84.221.193.59]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.oltrelinux.com (Postfix) with ESMTP id 1274511AE50; Tue, 9 Oct 2007 00:27:36 +0200 (CEST) Received: (from piso@localhost) by southcross.wired.org (8.14.1/8.14.1/Submit) id l98MRgZE011773; Tue, 9 Oct 2007 00:27:42 +0200 (CEST) (envelope-from piso) Date: Tue, 9 Oct 2007 00:27:42 +0200 From: Paolo Pisati To: Randy Bush Message-ID: <20071008222742.GC10716@tin.it> References: <4708D2EE.4010405@psg.com> <4709D44E.5050305@psg.com> <4709D647.1050803@yandex.ru> <20071008082256.GA9098@tin.it> <470A107C.9000509@psg.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <470A107C.9000509@psg.com> User-Agent: Mutt/1.5.16 (2007-06-09) X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at krisma.oltrelinux.com Cc: FreeBSD Net , "Andrey V. Elsukov" , Paolo Pisati Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 22:27:37 -0000 On Mon, Oct 08, 2007 at 08:11:56PM +0900, Randy Bush wrote: > > or substisute natd_enable/natd_interface in rc.conf with: > > firewall_nat_enable="yes" > > firewall_nat_interface="$IF" > > aha! that stuff is not in /etc/defaults/rc.conf ops... forgot to commit it... :P > extracted from /etc/rc.conf > > ifconfig_vr0=DHCP > ifconfig_ath0="192.168.0.1 channel 4 ssid foo mediaopt hostap up" > gateway_enable=YES > > # grep nat /etc/ipfw.rules > nat 42 config if vr0 log > add nat 42 ip4 from any to any via vr0 > > # sysctl net.inet.ip.fw.one_pass > net.inet.ip.fw.one_pass: 0 > > system boots and vr0 gets a dhcp address successfully > > dhcpd is running > > wireless client successfully associates with ath0, but can not get dhcp > address is your ruleset/config ok? can you post it? try to substitute the "nat 42 ip4 from any to any via vr0" rule with a divert rule, and config & start natd: does it config work as expected? bye, P. From owner-freebsd-net@FreeBSD.ORG Mon Oct 8 22:48:51 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 90C4C16A418; Mon, 8 Oct 2007 22:48:51 +0000 (UTC) (envelope-from randy@psg.com) Received: from rip.psg.com (rip.psg.com [147.28.0.39]) by mx1.freebsd.org (Postfix) with ESMTP id 6DF8613C461; Mon, 8 Oct 2007 22:48:51 +0000 (UTC) (envelope-from randy@psg.com) Received: from [202.214.86.181] by rip.psg.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.67 (FreeBSD)) (envelope-from ) id 1If1P7-00076F-Kn; Mon, 08 Oct 2007 22:48:49 +0000 Message-ID: <470AB3C3.1030508@psg.com> Date: Tue, 09 Oct 2007 07:48:35 +0900 From: Randy Bush User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: Paolo Pisati References: <4708D2EE.4010405@psg.com> <4709D44E.5050305@psg.com> <4709D647.1050803@yandex.ru> <20071008082256.GA9098@tin.it> <470A107C.9000509@psg.com> <20071008222742.GC10716@tin.it> In-Reply-To: <20071008222742.GC10716@tin.it> X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: FreeBSD Net , "Andrey V. Elsukov" Subject: Re: ipfw nat befuddlement X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Oct 2007 22:48:51 -0000 > is your ruleset/config ok? can you post it? appended, with one ip address obscured > try to substitute the "nat 42 ip4 from any to any via vr0" rule with a > divert rule, and config & start natd: does it config work as expected? i hope to try this later today randy -- # ipfw list 00100 deny log logamount 100 ip from any to any ipoptions ssrr,lsrr,rr 00200 allow ip from any to any via lo0 00300 deny log logamount 100 ip from 127.0.0.0/8 to any 00400 deny log logamount 100 ip from any to 127.0.0.0/8 00500 allow tcp from 147.42.0.666 to any dst-port 25 00600 allow tcp from any to 147.42.0.666 dst-port 25 00700 allow tcp from me to any dst-port 25 00800 allow tcp from any to me dst-port 25 00900 deny log logamount 100 tcp from any to any dst-port 25 01000 deny ip from any to me dst-port 113 01100 nat 42 ip4 from any to any via vr0 01200 allow ip from any to any 65535 deny ip from any to any From owner-freebsd-net@FreeBSD.ORG Tue Oct 9 23:03:19 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B491416A476 for ; Tue, 9 Oct 2007 23:03:19 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.186]) by mx1.freebsd.org (Postfix) with ESMTP id 1CFB913C494 for ; Tue, 9 Oct 2007 23:03:18 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so16084nfb for ; Tue, 09 Oct 2007 16:03:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=kS25b+sCGfmYEBBX9u7+1DAM0KJnMz04ZLmcgZ9H2dE=; b=n963B/ILsCtk1/vSbrVC49bVGFuP96DyaksMYAeWrW2v/2Lt+XM3IamKXNmK8pzGTpvqxSqRSkHlPMjzFaGVGjnq4SMG9tKrdGeyGPkHLDwGp6M/0qMoAdgmgE8nJlQHcZwTj1R+bzTww14622qUBm3dQ+rBaPQZXqyVxbYVbeQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type; b=Vz3vTaK/Z7osEmpJzQy9mznguNMg+UmpI2+SQvxUiYfTZ6oM0vg/RbWPoc50g8121q3OfmN1kBDWTsO31kSCTeZhu0fLPONEn35q0OPEk3umoxFOQcOdNRBVCYyXyR1wJKWjvSLA4ZI+/cu9oeXx/AmzTvKFtbYwkCk/T2AR9Kw= Received: by 10.86.89.4 with SMTP id m4mr12153fgb.1191970997660; Tue, 09 Oct 2007 16:03:17 -0700 (PDT) Received: by 10.86.100.19 with HTTP; Tue, 9 Oct 2007 16:03:17 -0700 (PDT) Message-ID: <2a41acea0710091603u7b87d6fdsdaaadf4cafbea2d9@mail.gmail.com> Date: Tue, 9 Oct 2007 16:03:17 -0700 From: "Jack Vogel" To: "Mike Tancsa" , "freebsd-net@freebsd.org" , "FreeBSD Current" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_3294_26294460.1191970997630" Cc: Subject: Patch to add EEPROM dump X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Oct 2007 23:03:19 -0000 ------=_Part_3294_26294460.1191970997630 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Mike, This is a patch against my 6.6.6 driver that adds a new value to the debug sysctl, you would give the command 'sysctl dev.em.0.debug=2' and it will dump out the first 32 16-bit words of the prom. Mike, go to e1000.sourceforge.net/wiki and look under issues, you will find one talking about 82573, that will show you the word that gets patched, and you can look at your own with this patch. I was wondering what the general reaction to this is, it may be useful at some points in helping debug things. Comments? Jack ------=_Part_3294_26294460.1191970997630 Content-Type: application/octet-stream; name=eeprom-dump.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f7l0m8f3 Content-Disposition: attachment; filename=eeprom-dump.patch LS0tIGlmX2VtLmMJRnJpIE9jdCAgNSAwOToyMzo1MCAyMDA3CisrKyAvdG1wL2lmX2VtLmVlcHJv bS5jCVR1ZSBPY3QgIDkgMTU6NTM6NDAgMjAwNwpAQCAtMjc5LDYgKzI3OSw3IEBACiAJCSAgICBz dHJ1Y3QgZW1fZG1hX2FsbG9jICosIGludCk7CiBzdGF0aWMgdm9pZAllbV9kbWFfZnJlZShzdHJ1 Y3QgYWRhcHRlciAqLCBzdHJ1Y3QgZW1fZG1hX2FsbG9jICopOwogc3RhdGljIHZvaWQJZW1fcHJp bnRfZGVidWdfaW5mbyhzdHJ1Y3QgYWRhcHRlciAqKTsKK3N0YXRpYyB2b2lkCWVtX3ByaW50X252 bV9pbmZvKHN0cnVjdCBhZGFwdGVyICopOwogc3RhdGljIGludCAJZW1faXNfdmFsaWRfZXRoZXJf YWRkcih1aW50OF90ICopOwogc3RhdGljIGludAllbV9zeXNjdGxfc3RhdHMoU1lTQ1RMX0hBTkRM RVJfQVJHUyk7CiBzdGF0aWMgaW50CWVtX3N5c2N0bF9kZWJ1Z19pbmZvKFNZU0NUTF9IQU5ETEVS X0FSR1MpOwpAQCAtNDQ3LDcgKzQ0OCw3IEBACiAJLyogU1lTQ1RMIHN0dWZmICovCiAJU1lTQ1RM X0FERF9QUk9DKGRldmljZV9nZXRfc3lzY3RsX2N0eChkZXYpLAogCSAgICBTWVNDVExfQ0hJTERS RU4oZGV2aWNlX2dldF9zeXNjdGxfdHJlZShkZXYpKSwKLQkgICAgT0lEX0FVVE8sICJkZWJ1Z19p bmZvIiwgQ1RMVFlQRV9JTlR8Q1RMRkxBR19SVywgYWRhcHRlciwgMCwKKwkgICAgT0lEX0FVVE8s ICJkZWJ1ZyIsIENUTFRZUEVfSU5UfENUTEZMQUdfUlcsIGFkYXB0ZXIsIDAsCiAJICAgIGVtX3N5 c2N0bF9kZWJ1Z19pbmZvLCAiSSIsICJEZWJ1ZyBJbmZvcm1hdGlvbiIpOwogCiAJU1lTQ1RMX0FE RF9QUk9DKGRldmljZV9nZXRfc3lzY3RsX2N0eChkZXYpLApAQCAtNTA5OSw2ICs1MTAwLDMzIEBA CiAJICAgIChsb25nIGxvbmcpYWRhcHRlci0+c3RhdHMudHNjdGZjKTsKIH0KIAorLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqCisgKiAgVGhpcyByb3V0aW5lIHByb3ZpZGVzIGEgd2F5IHRvIGR1bXAgb3V0IHRo ZSBhZGFwdGVyIGVlcHJvbSwKKyAqICBvZnRlbiBhIHVzZWZ1bCBkZWJ1Zy9zZXJ2aWNlIHRvb2wu IFRoaXMgb25seSBkdW1wcyB0aGUgZmlyc3QKKyAqICAzMiB3b3Jkcywgc3R1ZmYgdGhhdCBtYXR0 ZXJzIGlzIGluIHRoYXQgZXh0ZW50LgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQK K2VtX3ByaW50X252bV9pbmZvKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQoreworCXUxNgllZXBy b21fZGF0YTsKKwlpbnQJaSwgaiwgcm93ID0gMDsKKworCS8qIEl0cyBhIGJpdCBjcnVkZSwgYnV0 IGl0IGdldHMgdGhlIGpvYiBkb25lICovCisJcHJpbnRmKCJcbkludGVyZmFjZSBFRVBST00gRHVt cDpcbiIpOworCXByaW50ZigiT2Zmc2V0XG4weDAwMDAgICIpOworCWZvciAoaSA9IDAsIGogPSAw OyBpIDwgMzI7IGkrKywgaisrKSB7CisJCWlmIChqID09IDgpIHsgLyogTWFrZSB0aGUgb2Zmc2V0 IGJsb2NrICovCisJCQlqID0gMDsgKytyb3c7CisJCQlwcmludGYoIlxuMHgwMCV4MCAgIixyb3cp OworCQl9CisJCWUxMDAwX3JlYWRfbnZtKCZhZGFwdGVyLT5odywgaSwgMSwgJmVlcHJvbV9kYXRh KTsKKwkJcHJpbnRmKCIlMDR4ICIsIGVlcHJvbV9kYXRhKTsKKwl9CisJcHJpbnRmKCJcbiIpOwor fQorCiBzdGF0aWMgaW50CiBlbV9zeXNjdGxfZGVidWdfaW5mbyhTWVNDVExfSEFORExFUl9BUkdT KQogewpAQCAtNTExNSw2ICs1MTQzLDE1IEBACiAJaWYgKHJlc3VsdCA9PSAxKSB7CiAJCWFkYXB0 ZXIgPSAoc3RydWN0IGFkYXB0ZXIgKilhcmcxOwogCQllbV9wcmludF9kZWJ1Z19pbmZvKGFkYXB0 ZXIpOworCX0KKwkvKgorCSAqIFRoaXMgdmFsdWUgd2lsbCBjYXVzZSBhIGhleCBkdW1wIG9mIHRo ZQorCSAqIGZpcnN0IDMyIDE2LWJpdCB3b3JkcyBvZiB0aGUgRUVQUk9NIHRvCisJICogdGhlIHNj cmVlbi4KKwkgKi8KKwlpZiAocmVzdWx0ID09IDIpIHsKKwkJYWRhcHRlciA9IChzdHJ1Y3QgYWRh cHRlciAqKWFyZzE7CisJCWVtX3ByaW50X252bV9pbmZvKGFkYXB0ZXIpOwogCX0KIAogCXJldHVy biAoZXJyb3IpOwo= ------=_Part_3294_26294460.1191970997630-- From owner-freebsd-net@FreeBSD.ORG Tue Oct 9 23:45:43 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CEB0D16A417 for ; Tue, 9 Oct 2007 23:45:43 +0000 (UTC) (envelope-from dyeske@gmail.com) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.180]) by mx1.freebsd.org (Postfix) with ESMTP id 6B30613C45B for ; Tue, 9 Oct 2007 23:45:43 +0000 (UTC) (envelope-from dyeske@gmail.com) Received: by py-out-1112.google.com with SMTP id u77so53919pyb for ; Tue, 09 Oct 2007 16:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition; bh=q+HPr+uLyiJAJazJ9imc8RH1Xyq2/cMenRXyPh4rSKs=; b=g9+W75P8cQ+9XDZDsmxqjjqjyiy+5qRUF+yJOngNWlMsalQTbhdaoHGp6Z/NlaY0X2DQwf5LDXWAZ1hSDhSZ5UaAiCwaXpY+XWtLl/7/gskykOtRodDNuR+c5b5Lp3l7GgJaD94vMTvXlQM2MNyzsGBLAqrvthoggkbUgVgOmQw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition; b=BV/RFyRQTfVeoOsPmPaxecCd7RFuYuDKUIUUlo/lBmdzsmPCSBTC7v91wlDSSmoGozfU7tLNd0EPpUa6hl6f/D3FCZ7vZFCtVdPifXK1rhoNwySPRl+3IZXxHSfApYsAhzOQByEuZ0KIq1wHZJ81pkjHSLTM+tfTuCjWL5K3hNI= Received: by 10.35.86.19 with SMTP id o19mr63914pyl.1191971903811; Tue, 09 Oct 2007 16:18:23 -0700 (PDT) Received: by 10.35.112.2 with HTTP; Tue, 9 Oct 2007 16:18:23 -0700 (PDT) Message-ID: <85bdae4e0710091618n64029f3bjce1102629465c5fa@mail.gmail.com> Date: Tue, 9 Oct 2007 19:18:23 -0400 From: "David Yeske" To: freebsd-net@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: freebsd-stable@freebsd.org Subject: problems bridging on RELENG_6 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Oct 2007 23:45:43 -0000 I have a machine running FreeBSD stable that I am trying to bridge for use with openvpn. I am able to use the older bridge interface by running the following. sysctl net.link.ether.bridge.enable=1 sysctl net.link.ether.bridge.config=fxp0,tap0 When I try and use the new if_bridge interface my packets don't appear to make it through the bridge. Here is what I am running ifconfig bridge0 create ifconfig bridge0 addm fxp0 addm tap0 up Here is the output of uname -a on my machine. FreeBSD nfs 6.2-STABLE FreeBSD 6.2-STABLE #1: Sun Sep 9 02:01:33 EDT 2007 root@nfs:/usr/obj/usr/src/sys/NFS i386 I have used the if_bridge interface on a FreeBSD current machine to bridge nfe0 and ath0 without problems. Has anyone had problems with the if_bridge interface on RELENG_6? I also noticed the following weird messages coming from dmesg on the local machine. arp: unknown hardware address format (0x0000) Any suggestions or help is greatly appreciated. Regards, David Yeske From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 02:05:28 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD5E416A417 for ; Wed, 10 Oct 2007 02:05:28 +0000 (UTC) (envelope-from lstewart@room52.net) Received: from swin.edu.au (gpo4.cc.swin.edu.au [136.186.1.224]) by mx1.freebsd.org (Postfix) with ESMTP id 0844913C44B for ; Wed, 10 Oct 2007 02:05:27 +0000 (UTC) (envelope-from lstewart@room52.net) Received: from [136.186.229.95] (lstewart.caia.swin.edu.au [136.186.229.95]) by swin.edu.au (8.13.6.20060614/8.13.1) with ESMTP id l9A1gLlm018646; Wed, 10 Oct 2007 11:42:22 +1000 Message-ID: <470C2DFD.20109@room52.net> Date: Wed, 10 Oct 2007 11:42:21 +1000 From: Lawrence Stewart User-Agent: Thunderbird 1.5.0.9 (X11/20070123) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=3.1.9 X-Spam-Checker-Version: SpamAssassin 3.1.9 (2007-02-13) on gpo4.cc.swin.edu.au Cc: James Healy Subject: Software for FreeBSD TCP R&D: SIFTR v1.1.4 and DPD v1.0 released X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 02:05:28 -0000 Hi All, Just a quick heads up regarding the availability of a new SIFTR (Statistical Information for TCP Research) version and the debut release of DPD (Deterministic Packet Discard). SIFTR v1.1.4 addresses a couple of issues, one of which is applicable to users of SIFTR in FreeBSD 7-CURRENT. Read the changelog and readme for more information. DPD is a new FreeBSD kernel module we developed to further aid us in our ongoing TCP research. It allows for the deterministic dropping of TCP packets from within the FreeBSD kernel via a simple sysctl interface. This is particularly useful for anyone that is interested in observing TCP reacting to packet loss events (e.g. congestion control researchers). Being able to drop the same packet(s) across multiple tests allows for simpler comparisons of TCP behaviour. We've found it particularly useful in evaluating and observing the behaviour of different congestion control mechanisms, and hope it may be of use to others out there. Please refer to the DPD readme for more in-depth information. The software and documentation is freely available under a BSD licence from: http://caia.swin.edu.au/urp/newtcp/tools.html We would be very happy to hear from anyone regarding bugs and suggestions as well. Cheers, Lawrence http://caia.swin.edu.au From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 02:14:47 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33D0D16A418 for ; Wed, 10 Oct 2007 02:14:47 +0000 (UTC) (envelope-from doconnor@gsoft.com.au) Received: from cain.gsoft.com.au (cain.gsoft.com.au [203.31.81.10]) by mx1.freebsd.org (Postfix) with ESMTP id 2F3B513C455 for ; Wed, 10 Oct 2007 02:14:45 +0000 (UTC) (envelope-from doconnor@gsoft.com.au) Received: from inchoate.gsoft.com.au (ppp121-45-150-53.lns11.adl6.internode.on.net [121.45.150.53]) (authenticated bits=0) by cain.gsoft.com.au (8.13.8/8.13.8) with ESMTP id l9A1kYcS018065 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Oct 2007 11:16:36 +0930 (CST) (envelope-from doconnor@gsoft.com.au) From: "Daniel O'Connor" To: freebsd-stable@freebsd.org Date: Wed, 10 Oct 2007 11:16:22 +0930 User-Agent: KMail/1.9.7 References: <85bdae4e0710091618n64029f3bjce1102629465c5fa@mail.gmail.com> In-Reply-To: <85bdae4e0710091618n64029f3bjce1102629465c5fa@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1867084.NStCzbTkFQ"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200710101116.33978.doconnor@gsoft.com.au> X-Spam-Score: -2.312 () BAYES_00 X-Scanned-By: MIMEDefang 2.58 on 203.31.81.10 Cc: freebsd-net@freebsd.org, David Yeske Subject: Re: problems bridging on RELENG_6 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 02:14:47 -0000 --nextPart1867084.NStCzbTkFQ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Wed, 10 Oct 2007, David Yeske wrote: > I have used the if_bridge interface on a FreeBSD current machine to > bridge nfe0 and ath0 without problems. Has anyone had problems with > the if_bridge interface on RELENG_6? I also noticed the following > weird messages coming from dmesg on the local machine. > > arp: unknown hardware address format (0x0000) I have used bridging between bge & tap on RELENG_6.. =46reeBSD cain.gsoft.com.au 6.2-STABLE FreeBSD 6.2-STABLE #0: Fri Feb 2 17= :35:07 CST 2007 root@new-cain.gsoft.com.au:/usr/obj/usr/src/sys/GENERIC= amd64 bge0: flags=3D8943 mtu 1500 options=3D18 ether 00:30:48:89:be:54 media: Ethernet autoselect (1000baseTX ) status: active bridge0: flags=3D8843 mtu 1500 inet 203.31.81.10 netmask 0xffffffc0 broadcast 203.31.81.63 inet 203.31.81.6 netmask 0xffffffff broadcast 203.31.81.6 inet 203.31.81.11 netmask 0xffffffff broadcast 203.31.81.11 ether 6a:5c:63:99:30:6c id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto stp maxaddr 100 timeout 1200 root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0 member: tap1 flags=3D143 member: tap0 flags=3D143 member: bge0 flags=3D143 tap0: flags=3D8942 mtu 1500 ether 00:bd:2d:73:00:00 Opened by PID 994 tap1: flags=3D8942 mtu 1500 ether 00:bd:63:73:00:01 Opened by PID 1007 =2D-=20 Daniel O'Connor software and network engineer for Genesis Software - http://www.gsoft.com.au "The nice thing about standards is that there are so many of them to choose from." -- Andrew Tanenbaum GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C --nextPart1867084.NStCzbTkFQ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQBHDC755ZPcIHs/zowRAqTEAKCE7nQ1Po1eAa4hsPxRKNfPokQbXgCeIMyX uPc/Fdj6N5qvXeMZjGfEEO4= =pBKp -----END PGP SIGNATURE----- --nextPart1867084.NStCzbTkFQ-- From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 08:57:13 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7BDBA16A419 for ; Wed, 10 Oct 2007 08:57:13 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) Received: from izb.knu.ac.kr (izb.knu.ac.kr [155.230.157.93]) by mx1.freebsd.org (Postfix) with ESMTP id 3D15C13C49D for ; Wed, 10 Oct 2007 08:57:13 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) Received: by draba.izb.knu.ac.kr (Postfix, from userid 59) id D93153EA4; Wed, 10 Oct 2007 17:56:56 +0900 (KST) X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on draba.izb.knu.ac.kr X-Spam-Level: X-Spam-Status: No, score=-46.7 required=15.1 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VERIFIED autolearn=disabled version=3.2.3 Received: from izb.knu.ac.kr (localhost.izb.knu.ac.kr [127.0.0.1]) by draba.izb.knu.ac.kr (Postfix) with ESMTP id 5235D3EA3; Wed, 10 Oct 2007 17:56:55 +0900 (KST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=izb.knu.ac.kr; h=subject: from:reply-to:to:cc:in-reply-to:references:content-type: content-transfer-encoding:date:message-id:mime-version; q= dns/txt; s=s1024; bh=8bke3CPoIkquBkLoMh0QaUMzGko=; b=H6qMYJ4+eJO HcFIiYIAPnIlJPQIL327WzD52BHUhyXr9mT3gN0d9Z6PdMLgai4Bma+MNinDnmeT euolmjjSdp5FbIY2VPQv+TAUBz4/cDDOdwBI2+2ymusKwIJ7rJrl+XBmRmf7QT/x rbeIzSmQw/e3pA0I6IPu/di3zZGqaTXw= Received: from viola.izb.knu.ac.kr (viola.izb.knu.ac.kr [IPv6:2002:9be6:9d5d:3::3]) by draba.izb.knu.ac.kr (Postfix) with ESMTP id 3D57C3EA1; Wed, 10 Oct 2007 17:56:55 +0900 (KST) Received: by viola.izb.knu.ac.kr (Postfix, from userid 1001) id 9AD765DFF; Wed, 10 Oct 2007 17:56:56 +0900 (KST) From: Byung-Hee HWANG To: Lawrence Stewart In-Reply-To: <470C2DFD.20109@room52.net> References: <470C2DFD.20109@room52.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: InZealBomb Date: Wed, 10 Oct 2007 17:56:56 +0900 Message-Id: <1192006616.6441.16.camel@viola.izb.knu.ac.kr> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1.1 FreeBSD GNOME Team Port Cc: James Healy , freebsd-net@freebsd.org Subject: Re: Software for FreeBSD TCP R&D: SIFTR v1.1.4 and DPD v1.0 released X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: bh@izb.knu.ac.kr List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 08:57:13 -0000 On Wed, 2007-10-10 at 11:42 +1000, Lawrence Stewart wrote: > Hi All, > > Just a quick heads up regarding the availability of a new SIFTR > (Statistical Information for TCP Research) version and the debut release > of DPD (Deterministic Packet Discard). > > SIFTR v1.1.4 addresses a couple of issues, one of which is applicable to > users of SIFTR in FreeBSD 7-CURRENT. Read the changelog and readme for > more information. > > DPD is a new FreeBSD kernel module we developed to further aid us in our > ongoing TCP research. It allows for the deterministic dropping of TCP > packets from within the FreeBSD kernel via a simple sysctl interface. > This is particularly useful for anyone that is interested in observing > TCP reacting to packet loss events (e.g. congestion control > researchers). Being able to drop the same packet(s) across multiple > tests allows for simpler comparisons of TCP behaviour. We've found it > particularly useful in evaluating and observing the behaviour of > different congestion control mechanisms, and hope it may be of use to > others out there. Please refer to the DPD readme for more in-depth > information. > > The software and documentation is freely available under a BSD licence from: > > http://caia.swin.edu.au/urp/newtcp/tools.html > > We would be very happy to hear from anyone regarding bugs and > suggestions as well. First of all, I would like to thank you for your good efforts. Its almost feature seems like PF(4), however, it's useful to me, maybe. Are you willing to support IPv6 for both SIFTR and DPD? -- Byung-Hee HWANG "Now I want you to follow my orders." -- Vito Corleone, "Chapter 1", page 39 From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 09:26:34 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2B6FA16A41B for ; Wed, 10 Oct 2007 09:26:34 +0000 (UTC) (envelope-from mike@sentex.net) Received: from smarthost2.sentex.ca (smarthost2.sentex.ca [205.211.164.50]) by mx1.freebsd.org (Postfix) with ESMTP id E67D513C465 for ; Wed, 10 Oct 2007 09:26:33 +0000 (UTC) (envelope-from mike@sentex.net) Received: from lava.sentex.ca (pyroxene.sentex.ca [199.212.134.18]) by smarthost2.sentex.ca (8.14.1/8.13.8) with ESMTP id l9A9QWE9092486; Wed, 10 Oct 2007 05:26:32 -0400 (EDT) (envelope-from mike@sentex.net) Received: from mdt-xp.sentex.net (simeon.sentex.ca [192.168.43.27]) by lava.sentex.ca (8.13.8/8.13.3) with ESMTP id l9A9QVmo052657 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Oct 2007 05:26:32 -0400 (EDT) (envelope-from mike@sentex.net) Message-Id: <200710100926.l9A9QVmo052657@lava.sentex.ca> X-Mailer: QUALCOMM Windows Eudora Version 7.1.0.9 Date: Wed, 10 Oct 2007 05:27:06 -0400 To: "Jack Vogel" , "freebsd-net@freebsd.org" , "FreeBSD Current" From: Mike Tancsa In-Reply-To: <2a41acea0710091603u7b87d6fdsdaaadf4cafbea2d9@mail.gmail.co m> References: <2a41acea0710091603u7b87d6fdsdaaadf4cafbea2d9@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Cc: Subject: Re: Patch to add EEPROM dump X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 09:26:34 -0000 At 07:03 PM 10/9/2007, Jack Vogel wrote: >Mike, > > This is a patch against my 6.6.6 driver that adds a new value to the >debug sysctl, you would give the command 'sysctl dev.em.0.debug=2' >and it will dump out the first 32 16-bit words of the prom. Hi, Yes, I think this would be helpful indeed. I tried it on a few boxes at HQ Interface EEPROM Dump: Offset 0x0000 3000 8f48 8b3e 0d20 f746 0057 ffff ffff 0x0010 ffff ffff 026b 109a 15d9 109a 8086 80df 0x0020 0000 2000 7e54 0000 1000 00da 0004 2700 0x0030 6cc9 3150 0732 040b 2984 0000 c000 0706 Interface EEPROM Dump: Offset 0x0000 3000 8f48 8a3e 0d30 f746 00f4 ffff ffff 0x0010 ffff ffff 026b 108c 15d9 108c 8086 83df 0x0020 0008 2000 7e14 0048 1000 00d8 0000 2700 0x0030 6cc9 3150 0722 040b 0984 0000 c000 0706 em0@pci13:0:0: class=0x020000 card=0x108c15d9 chip=0x108c8086 rev=0x03 hdr=0x00 vendor = 'Intel Corporation' device = 'PRO/1000 PM' class = network subclass = ethernet cap 01[c8] = powerspec 2 supports D0 D3 current D0 cap 05[d0] = MSI supports 1 message, 64 bit cap 10[e0] = PCI-Express 1 endpoint em1@pci14:0:0: class=0x020000 card=0x109a15d9 chip=0x109a8086 rev=0x00 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet cap 01[c8] = powerspec 2 supports D0 D3 current D0 cap 05[d0] = MSI supports 1 message, 64 bit cap 10[e0] = PCI-Express 1 endpoint >I was wondering what the general reaction to this is, it may be useful >at some points in helping debug things. Yes, if anything to better identify a NIC and rev. Thanks for the addition! ---Mike >Comments? > >Jack > >Content-Type: application/octet-stream; name=eeprom-dump.patch >X-Attachment-Id: f_f7l0m8f3 >Content-Disposition: attachment; filename=eeprom-dump.patch > >_______________________________________________ >freebsd-current@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-current >To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 14:34:09 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF35D16A469 for ; Wed, 10 Oct 2007 14:34:09 +0000 (UTC) (envelope-from subscr1024@mail.ru) Received: from mx4.mail.ru (fallback.mail.ru [194.67.57.14]) by mx1.freebsd.org (Postfix) with ESMTP id 0673F13C469 for ; Wed, 10 Oct 2007 14:34:08 +0000 (UTC) (envelope-from subscr1024@mail.ru) Received: from mx34.mail.ru (mx38.mail.ru [194.67.23.34]) by mx4.mail.ru (mPOP.Fallback_MX) with ESMTP id D8114AB682E for ; Wed, 10 Oct 2007 14:40:29 +0400 (MSD) Received: from [212.46.20.218] (port=14961 helo=c2.home) by mx34.mail.ru with asmtp id 1IfYxp-000LYJ-00 for freebsd-net@freebsd.org; Wed, 10 Oct 2007 14:38:53 +0400 Message-ID: <470CAC9B.1050409@mail.ru> Date: Wed, 10 Oct 2007 14:42:35 +0400 From: Subscriber User-Agent: Thunderbird 2.0.0.6 (X11/20070803) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: 7bit Subject: Samba with AD support not compile X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 14:34:10 -0000 Hi I just tried to install net/samba3 (samba-3.0.26a_1,1) on new server and have an error. Error occurs only when I enable "ADS" option in port config dialog. Then I try to compile port with gcc-4.2.2 instead of default system compiler and has the same result. Does anybody know, how to solve this problem? -------- uname -a -------- FreeBSD server0.xxx.xxxxx.xx 6.2-RELEASE-p8 FreeBSD 6.2-RELEASE-p8 #0: Tue Oct 9 15:13:49 MSD 2007 xxxxx@server0.xxx.xxxxx.xx:/usr/obj/usr/src/sys/SERVER0 i386 --------------- installed ports --------------- apache-2.2.6_2 Version 2.2 of Apache web server with prefork MPM. autoconf-2.61_2 Automatically configure source code on many Un*x platforms autoconf-wrapper-20070404 Wrapper script for GNU autoconf bison-1.75_2,1 A parser generator from FSF, (mostly) compatible with Yacc cpuid-3.3_3 CPU identification utility cups-base-1.3.3 Common UNIX Printing System cvsup-without-gui-16.1h_3 General network file distribution system optimized for CVS cyrus-sasl-2.1.22 RFC 2222 SASL (Simple Authentication and Security Layer) cyrus-sasl-saslauthd-2.1.22 SASL authentication server for cyrus-sasl2 db41-4.1.25_4 The Berkeley DB package, revision 4.1 db44-4.4.20.4 The Berkeley DB package, revision 4.4 e2fsprogs-libuuid-1.40.2 UUID library from e2fsprogs package expat-2.0.0_1 XML 1.0 parser written in C gamin-0.1.9 A file and directory monitoring system gettext-0.16.1_3 GNU gettext package glib-2.12.13 Some useful routines of C programming (current stable versi gmake-3.81_2 GNU version of 'make' utility gnutls-1.6.3 GNU Transport Layer Security library heimdal-1.0.1 A popular BSD-licensed implementation of Kerberos 5 help2man-1.36.4_1 Automatically generating simple manual pages from program o jpeg-6b_4 IJG's jpeg compression utilities libexecinfo-1.1_1 A library for inspecting program's backtrace libgcrypt-1.2.4_1 General purpose crypto library based on code used in GnuPG libgmp-4.2.2 A free library for arbitrary precision arithmetic libgpg-error-1.5 Common error values for all GnuPG components libiconv-1.9.2_2 A character set conversion library libiodbc-3.52.5 An ODBC 3.x driver manager, for universal data source acces libltdl-1.5.24 System independent dlopen wrapper libtool-1.5.24 Generic shared library support script libxml2-2.6.30 XML parser library for GNOME m4-1.4.9,1 GNU m4 mpfr-2.3.0 A library for multiple-precision floating-point computation openldap-sasl-client-2.3.38 Open source LDAP client implementation with SASL2 support openldap-server-2.3.38 Open source LDAP server implementation openssl-stable-0.9.7m SSL and crypto library p5-gettext-1.05_1 Message handling functions p7zip-4.55 File archiver with high compression ratio pcre-7.3 Perl Compatible Regular Expressions library perl-5.8.8 Practical Extraction and Report Language php5-5.2.4_1 PHP Scripting Language pkg-config-0.22 A utility to retrieve information about installed libraries png-1.2.18 Library for manipulating PNG images popt-1.7_4 A getopt(3) like library with a number of enhancements, fro portupgrade-2.3.1,2 FreeBSD ports/packages administration and management tool s postgresql-client-8.2.5 PostgreSQL database (client) postgresql-server-8.2.5_1 The most advanced open-source database available anywhere ruby-1.8.6_2,1 An object-oriented interpreted scripting language ruby18-bdb-0.6.2 Ruby interface to Sleepycat's Berkeley DB revision 2 or lat samba-3.0.26a_1,1 A free SMB and CIFS client and server for UNIX screen-4.0.3 A multi-screen window manager sendmail+tls+sasl2+ldap-8.14.1 Reliable, highly configurable mail transfer agent with util tiff-3.8.2_1 Tools and library routines for working with TIFF images unzip-5.52_3 List, test and extract compressed files in a ZIP archive zip-2.32 Create/update ZIP files compatible with pkzip ------------------------- make configure | grep krb ------------------------- configure: WARNING: netinet/ip.h: present but cannot be compiled configure: WARNING: netinet/ip.h: check for missing prerequisite headers? configure: WARNING: netinet/ip.h: see the Autoconf documentation configure: WARNING: netinet/ip.h: section "Present But Cannot Be Compiled" configure: WARNING: netinet/ip.h: proceeding with the preprocessor's result configure: WARNING: netinet/ip.h: in the future, the compiler will take precedence configure: WARNING: sys/mount.h: present but cannot be compiled configure: WARNING: sys/mount.h: check for missing prerequisite headers? configure: WARNING: sys/mount.h: see the Autoconf documentation configure: WARNING: sys/mount.h: section "Present But Cannot Be Compiled" configure: WARNING: sys/mount.h: proceeding with the preprocessor's result configure: WARNING: sys/mount.h: in the future, the compiler will take precedence configure: WARNING: execinfo.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: execinfo.h: proceeding with the compiler's result checking for Active Directory and krb5 support... yes checking for krb5-config... /usr/bin/krb5-config checking for working krb5-config... yes checking krb5.h usability... yes checking krb5.h presence... yes checking for krb5.h... yes checking krb5/locate_plugin.h usability... yes checking krb5/locate_plugin.h presence... yes checking for krb5/locate_plugin.h... yes checking for krb5_encrypt_data in -lk5crypto... no checking for krb5_mk_req_extended in -lkrb5... yes checking for krb5_kt_compare in -lkrb5... yes checking for krb5_set_real_time... no checking for krb5_set_default_in_tkt_etypes... yes checking for krb5_set_default_tgs_enctypes... no checking for krb5_set_default_tgs_ktypes... no checking for krb5_principal2salt... no checking for krb5_use_enctype... no checking for krb5_string_to_key... yes checking for krb5_get_pw_salt... yes checking for krb5_string_to_key_salt... yes checking for krb5_auth_con_setkey... yes checking for krb5_auth_con_setuseruserkey... no checking for krb5_locate_kdc... no checking for krb5_get_permitted_enctypes... no checking for krb5_get_default_in_tkt_etypes... yes checking for krb5_free_data_contents... yes checking for krb5_principal_get_comp_string... yes checking for krb5_free_unparsed_name... no checking for krb5_free_keytab_entry_contents... no checking for krb5_kt_free_entry... yes checking for krb5_krbhst_init... yes checking for krb5_krbhst_get_addrinfo... yes checking for krb5_c_enctype_compare... no checking for krb5_enctypes_compatible_keys... yes checking for krb5_crypto_init... yes checking for krb5_crypto_destroy... yes checking for krb5_decode_ap_req... yes checking for krb5_verify_checksum... yes checking for krb5_c_verify_checksum... no checking for krb5_principal_compare_any_realm... yes checking for krb5_parse_name_norealm... no checking for krb5_princ_size... no checking for krb5_get_init_creds_opt_set_pac_request... no checking for krb5_get_renewed_creds... no checking for krb5_get_kdc_cred... yes checking for krb5_free_error_contents... yes checking for initialize_krb5_error_table... yes checking for krb5_get_init_creds_opt_alloc... no checking for krb5_get_init_creds_opt_free... no checking whether krb5_ticket contains kvno and enctype... no checking whether krb5_get_init_creds_opt_free takes a context argument... yes checking whether krb5_verify_checksum takes 7 arguments... 6 checking for checksum in krb5_checksum... yes checking for ticket pointer in krb5_ap_req... no checking for e_data pointer in krb5_error... yes checking for krb5_crypto type... yes checking for krb5_encrypt_block type... no checking for addrtype in krb5_address... no checking for addr_type in krb5_address... yes checking for enc_part2 in krb5_ticket... no checking for keyblock in krb5_creds... no checking for session in krb5_creds... yes checking for keyvalue in krb5_keyblock... yes checking for the krb5_princ_component macro... no checking for key in krb5_keytab_entry... no checking for keyblock in krb5_keytab_entry... yes checking for magic in krb5_address... no checking for krb5_princ_realm returns krb5_realm or krb5_data... yes checking for krb5_addresses type... yes checking whether krb5_mk_error takes 3 arguments MIT or 9 Heimdal... no checking whether Active Directory and krb5 support is used... yes KRB5_LIBS = -lgssapi -lkrb5 -lasn1 -lcrypto -lroken -lcrypt -lcom_err ---- make ---- ===> Building for samba-3.0.26a_1,1 cd /usr/ports/net/samba3/work/samba-3.0.26a/source && make pch Generating smbd/build_options.c Building include/proto.h creating /usr/ports/net/samba3/work/samba-3.0.26a/source/include/proto.h Building include/build_env.h creating /usr/ports/net/samba3/work/samba-3.0.26a/source/nsswitch/winbindd_proto.h creating /usr/ports/net/samba3/work/samba-3.0.26a/source/web/swat_proto.h creating /usr/ports/net/samba3/work/samba-3.0.26a/source/client/client_proto.h creating /usr/ports/net/samba3/work/samba-3.0.26a/source/utils/net_proto.h creating /usr/ports/net/samba3/work/samba-3.0.26a/source/utils/ntlm_auth_proto.h rm -f /usr/ports/net/samba3/work/samba-3.0.26a/source/include/includes.h.gch cc -I. -I/usr/ports/net/samba3/work/samba-3.0.26a/source -O2 -pipe -march=prescott -D_SAMBA_BUILD_=3 -I/usr/local/include -I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src -Iinclude -I./include -I. -I. -I./lib/replace -I./lib/talloc -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H -I/usr/local/include -DLDAP_DEPRECATED -I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 -fPIC -DPIC -c /usr/ports/net/samba3/work/samba-3.0.26a/source/include/includes.h -o /usr/ports/net/samba3/work/samba-3.0.26a/source/include/includes.h.gch Using FLAGS = -O2 -pipe -march=prescott -D_SAMBA_BUILD_=3 -I/usr/local/include -I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src -Iinclude -I./include -I. -I. -I./lib/replace -I./lib/talloc -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H -I/usr/local/include -DLDAP_DEPRECATED -I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 PICFLAG = -fPIC -DPIC LIBS = -lcrypt -lexecinfo -liconv LDFLAGS = -pie -Wl,-R/usr/local/lib -L/usr/local/lib -L/usr/local/lib DYNEXP = -Wl,--export-dynamic LDSHFLAGS = -shared -Wl,-R/usr/local/lib -L/usr/local/lib -L/usr/local/lib SHLIBEXT = so SONAMEFLAG = -Wl,-soname, Compiling dynconfig.c Compiling param/loadparm.c Compiling param/params.c Compiling lib/sharesec.c Compiling smbd/files.c Compiling smbd/chgpasswd.c Compiling smbd/connection.c Compiling smbd/utmp.c Compiling smbd/session.c Compiling smbd/map_username.c Compiling smbd/dfree.c Compiling smbd/dir.c Compiling smbd/password.c Compiling smbd/conn.c Compiling smbd/share_access.c Compiling smbd/fileio.c Compiling smbd/ipc.c Compiling smbd/lanman.c Compiling smbd/negprot.c Compiling smbd/message.c Compiling smbd/nttrans.c Compiling smbd/pipes.c Compiling smbd/reply.c Compiling smbd/sesssetup.c Compiling smbd/trans2.c Compiling smbd/uid.c Compiling smbd/dosmode.c Compiling smbd/filename.c Compiling smbd/open.c Compiling smbd/close.c Compiling smbd/blocking.c Compiling smbd/sec_ctx.c Compiling smbd/srvstr.c Compiling smbd/vfs.c Compiling smbd/statcache.c Compiling smbd/posix_acls.c Compiling lib/sysacls.c Compiling lib/server_mutex.c Compiling smbd/process.c Compiling smbd/service.c Compiling smbd/error.c Compiling printing/printfsp.c Compiling lib/sysquotas.c Compiling lib/sysquotas_linux.c Compiling lib/sysquotas_xfs.c Compiling lib/sysquotas_4A.c Compiling smbd/change_trust_pw.c Compiling smbd/fake_file.c Compiling smbd/quotas.c Compiling smbd/ntquotas.c Compiling lib/afs.c Compiling smbd/msdfs.c Compiling lib/afs_settoken.c Compiling smbd/aio.c Compiling smbd/statvfs.c Compiling smbd/dmapi.c Compiling smbd/mangle.c Compiling smbd/mangle_hash.c Compiling smbd/mangle_map.c Compiling smbd/mangle_hash2.c Compiling modules/vfs_default.c Compiling modules/vfs_posixacl.c Compiling libsmb/clientgen.c Compiling libsmb/cliconnect.c Compiling libsmb/clifile.c Compiling libsmb/clikrb5.c libsmb/clikrb5.c: In function `krb5_set_real_time': libsmb/clikrb5.c:128: error: dereferencing pointer to incomplete type libsmb/clikrb5.c:129: error: dereferencing pointer to incomplete type The following command failed: cc -I. -I/usr/ports/net/samba3/work/samba-3.0.26a/source -O2 -pipe -march=prescott -D_SAMBA_BUILD_=3 -I/usr/local/include -I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src -Iinclude -I./include -I. -I. -I./lib/replace -I./lib/talloc -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H -I/usr/local/include -DLDAP_DEPRECATED -I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 -fPIC -DPIC -c libsmb/clikrb5.c -o libsmb/clikrb5.o *** Error code 1 Stop in /usr/ports/net/samba3/work/samba-3.0.26a/source. *** Error code 1 Stop in /usr/ports/net/samba3. *** Error code 1 Stop in /usr/ports/net/samba3. From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 15:16:59 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FA4A16A41B for ; Wed, 10 Oct 2007 15:16:59 +0000 (UTC) (envelope-from emaste@phaedrus.sandvine.ca) Received: from gw.sandvine.com (gw.sandvine.com [199.243.201.138]) by mx1.freebsd.org (Postfix) with ESMTP id DBECF13C457 for ; Wed, 10 Oct 2007 15:16:58 +0000 (UTC) (envelope-from emaste@phaedrus.sandvine.ca) Received: from labgw2.phaedrus.sandvine.com ([192.168.3.11]) by gw.sandvine.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Oct 2007 10:54:54 -0400 Received: by labgw2.phaedrus.sandvine.com (Postfix, from userid 12627) id 0AA741171B; Wed, 10 Oct 2007 10:54:54 -0400 (EDT) Date: Wed, 10 Oct 2007 10:54:53 -0400 From: Ed Maste To: Michael DeMan Message-ID: <20071010145453.GA54106@sandvine.com> References: <4703F9C3.2060601@net.utcluj.ro> <4532.192.168.2.137.1191451931.squirrel@www.codeangels.com> <470535D6.7020601@net.utcluj.ro> <0D18E826-52EA-4BEC-9404-1C98BFCDD418@staff.openaccess.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0D18E826-52EA-4BEC-9404-1C98BFCDD418@staff.openaccess.org> User-Agent: Mutt/1.4.2.1i X-OriginalArrivalTime: 10 Oct 2007 14:54:54.0287 (UTC) FILETIME=[84777DF0:01C80B4D] Cc: freebsd-net@freebsd.org, Cristian KLEIN , lists@codeangels.com Subject: Re: FreeBSD as a gigabit router X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 15:16:59 -0000 On Thu, Oct 04, 2007 at 12:02:56PM -0700, Michael DeMan wrote: > Also, we've noticed at least on FBSD 6.x that there seem to be very > few advantages in using polling on network interfaces. We still run > it, so that we have responsive SSH/BGP/OSPF processes on the > machines, but my testing has shown that for sheer throughput, there > is basically no difference. I'd be curious if anybody knows the > scoop on this. The polling mechanism includes a feedback mechanism that attempts to keep a certain amount of CPU time available for userland. It works well at keeping the system usable under high load, but it doesn't perform so well if you want to dedicate most of the CPU time to polling in order to get near the maximum throughput. I have some prototype code that addresses this, and the the throughput with the new polling algorithm beat the non-polling kernel perf. by a small margin. This won't make it into RELENG_7, but I plan to bring it to HEAD at some point. -Ed From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 16:12:23 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1EF5516A418 for ; Wed, 10 Oct 2007 16:12:23 +0000 (UTC) (envelope-from wawa@yandex-team.ru) Received: from cmail.yandex.ru (cmail.yandex.ru [213.180.193.1]) by mx1.freebsd.org (Postfix) with ESMTP id 88CD113C465 for ; Wed, 10 Oct 2007 16:12:22 +0000 (UTC) (envelope-from wawa@yandex-team.ru) Received: from [87.250.250.1] (wawa.yandex.ru [87.250.250.1]) by cmail.yandex.ru (8.14.1/8.14.1) with ESMTP id l9AGBeih023863; Wed, 10 Oct 2007 20:11:40 +0400 (MSD) (envelope-from wawa@yandex-team.ru) Message-ID: <470CF9BB.5090704@yandex-team.ru> Date: Wed, 10 Oct 2007 20:11:39 +0400 From: Vladimir Ivanov Organization: Yandex LLC User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.13pre) Gecko/20070505 Iceape/1.0.9 (Debian-1.0.10~pre070720-0etch3+lenny1) MIME-Version: 1.0 To: Ed Maste References: <4703F9C3.2060601@net.utcluj.ro> <4532.192.168.2.137.1191451931.squirrel@www.codeangels.com> <470535D6.7020601@net.utcluj.ro> <0D18E826-52EA-4BEC-9404-1C98BFCDD418@staff.openaccess.org> <20071010145453.GA54106@sandvine.com> In-Reply-To: <20071010145453.GA54106@sandvine.com> Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms000606070108030807040806" Cc: freebsd-net@freebsd.org, Cristian KLEIN , lists@codeangels.com Subject: Re: FreeBSD as a gigabit router X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 16:12:23 -0000 This is a cryptographically signed message in MIME format. --------------ms000606070108030807040806 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Ed Maste wrote: > On Thu, Oct 04, 2007 at 12:02:56PM -0700, Michael DeMan wrote: > > >> Also, we've noticed at least on FBSD 6.x that there seem to be very >> few advantages in using polling on network interfaces. We still run >> it, so that we have responsive SSH/BGP/OSPF processes on the >> machines, but my testing has shown that for sheer throughput, there >> is basically no difference. I'd be curious if anybody knows the >> scoop on this. >> The polling mechanism includes a feedback mechanism that attempts to >> keep a certain amount of CPU time available for userland. It works >> well at keeping the system usable under high load, but it doesn't >> perform so well if you want to dedicate most of the CPU time to polling >> in order to get near the maximum throughput. >> >> JFYI: We've used another trick. Yandex's driver allows to alter RX' threads priority. Also, it disables interrupts if driver busy (and works like a polling). This combination seems to be very stable under heavy load. Also, I seem it more intuitive for tuning. > I have some prototype code that addresses this, and the the throughput > with the new polling algorithm beat the non-polling kernel perf. by a > small margin. This won't make it into RELENG_7, but I plan to bring > it to HEAD at some point. > > -Ed > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > WBR, -- Vladimir Ivanov Network Operations Center OOO "Yandex" t: +7 495 739-7000 f: +7 495 739-7070 @: noc@yandex.net (corporate) wawa@yandex-team.ru (personal) www: www.yandex.ru -- --------------ms000606070108030807040806 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGJzCC AuAwggJJoAMCAQICEA2B08GbcpEEl6Da/kpOht8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA3MDcwNDE1MTM0NVoX DTA4MDcwMzE1MTM0NVowRTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEiMCAG CSqGSIb3DQEJARYTd2F3YUB5YW5kZXgtdGVhbS5ydTCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBANuooNgTWqT0D35N7rdbZAAje8iyZcELUHy3Dgh6Pymm+s7RIeP8EoxTnn1o YQMFkZdthNT/j+MXl61O0zBshti+34/9m0rQzntCHDboJf9yTeA0bOqL43EdnEMlUWTEaf00 dcOySQ3fpTKiiQKqFASI1MUPDCfQQuu6ansTCpddG8fOu+zaE570aH6hoy/NRGhH8SCbcARY QxjjiddCUknclX2gz4ak+wVB4IapHNSdtRG3APj5GZY9VK7sAwjOqodcNwbQEG/Gj6j99fU3 7GYAL+x3bz9wve9YGEJ7TUPLpd582tZtiiakqurnluId4Ix1B/HSyAZnPAr5WYJZrwcCAwEA AaMwMC4wHgYDVR0RBBcwFYETd2F3YUB5YW5kZXgtdGVhbS5ydTAMBgNVHRMBAf8EAjAAMA0G CSqGSIb3DQEBBQUAA4GBABzUVmJvH3Cr++WFtTFVewG2cLZo3geMNRuT+wIPULXt59LPuSg7 ZnK04wXNC2Am5UKilWxvDS6gs6pW2ZIDHw8YttQzej7z7+Scujr9uyfxMcTxHfk826UAdadz eKYGHEvb41wokW/lZR6fMLqRzfjHLDTZM46GiXQFVSMtqCT0MIIDPzCCAqigAwIBAgIBDTAN BgkqhkiG9w0BAQUFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTES MBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UE CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBl cnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0 aGF3dGUuY29tMB4XDTAzMDcxNzAwMDAwMFoXDTEzMDcxNjIzNTk1OVowYjELMAkGA1UEBhMC WkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1Ro YXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GN ADCBiQKBgQDEpjxVc1X7TrnKmVoeaMB1BHCd3+n/ox7svc31W/Iadr1/DDph8r9RzgHU5VAK MNcCY1osiRVwjt3J8CuFWqo/cVbLrzwLB+fxH5E2JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTX p6a7n2XRxSpUhQ9IBH+nttE8YQRAHmQZcmC3+wIDAQABo4GUMIGRMBIGA1UdEwEB/wQIMAYB Af8CAQAwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVBl cnNvbmFsRnJlZW1haWxDQS5jcmwwCwYDVR0PBAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYD VQQDExFQcml2YXRlTGFiZWwyLTEzODANBgkqhkiG9w0BAQUFAAOBgQBIjNFQg+oLLswNo2as Zw9/r6y+whehQ5aUnX9MIbj4Nh+qLZ82L8D0HFAgk3A8/a3hYWLD2ToZfoSxmRsAxRoLgnSe JVCUYsfbJ3FXJY3dqZw5jowgT2Vfldr394fWxghOrvbqNOUQGls1TXfjViF4gtwhGTXeJLHT HUb/XV9lTzGCAlEwggJNAgEBMHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBD b25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFp bCBJc3N1aW5nIENBAhANgdPBm3KRBJeg2v5KTobfMAkGBSsOAwIaBQCggbEwGAYJKoZIhvcN AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcxMDEwMTYxMTM5WjAjBgkqhkiG 9w0BCQQxFgQUn5wigTVBi1IX0+z1dboxvEKzJC0wUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG 9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN AwICASgwDQYJKoZIhvcNAQEBBQAEggEAxrmps1oTCu1P68HYL/H2+1ZG0P3bQcMGCaG8GT9f gEFytPr0CQOD1ubY3LtsmdvhwHNQeAqPwP+iFI2E5JVl1ZoPhyS/VEBSvsJFmhTPNMq9yqBF 9u9rVHtQvMR80UU6WzmdzmCldpRqV9IG2kAkLOAIKD2zL5TvWIXcwITP4wfMXtDEsDGjR2f1 Zmv/7zplGHnFIvz652QCzC1J1hbXA8C2Pnp7pDXkUP0/lq/4lDljakeHiirA1DJbfw3xjaVl oQk87gZ9j1qS2+C69JtEq38n45X3qty5eQXnYJu59vNnyWQDx5jWDrHe47LRhPLVWm5/Y2rz LntkiJQHc4mDagAAAAAAAA== --------------ms000606070108030807040806-- From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 17:07:41 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50EF616A420 for ; Wed, 10 Oct 2007 17:07:41 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from s200aog11.obsmtp.com (s200aog11.obsmtp.com [207.126.144.125]) by mx1.freebsd.org (Postfix) with SMTP id ACA2D13C468 for ; Wed, 10 Oct 2007 17:07:39 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from source ([217.206.187.80]) by eu1sys200aob011.postini.com ([207.126.147.11]) with SMTP; Wed, 10 Oct 2007 17:07:38 UTC Received: from [10.0.0.89] (bill.mintel.co.uk [10.0.0.89]) by rodney.mintel.co.uk (Postfix) with ESMTP id 576CD181503; Wed, 10 Oct 2007 18:07:38 +0100 (BST) Message-ID: <470D06D9.6090001@tomjudge.com> Date: Wed, 10 Oct 2007 18:07:37 +0100 From: Tom Judge User-Agent: Thunderbird 1.5.0.12 (X11/20070604) MIME-Version: 1.0 To: Subscriber References: <470CAC9B.1050409@mail.ru> In-Reply-To: <470CAC9B.1050409@mail.ru> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: Samba with AD support not compile X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 17:07:41 -0000 Subscriber wrote: > Hi > > I just tried to install net/samba3 (samba-3.0.26a_1,1) on new server and > have an error. Error occurs only when I enable "ADS" option in port > config dialog. Then I try to compile port with gcc-4.2.2 instead of > default system compiler and has the same result. > > Does anybody know, how to solve this problem? > > Hi, When we compile samba with AD support we always use the security/krb5 port to provide the kerberos library. This is the build process that we use: cd /usr/ports/security/krb5 make install cd /usr/ports/net/samba3 make KRB5_HOME=/usr/local make install You should do a make clean in net/samba3 before trying this. I'm not sure why but after significant testing with all 3 kerberos implementations (base, security/krb5, security/heidemal) we came to the conclusion that the krb5 port provided the most stable integration with windows 2000 AD Controllers. Tom > > -------- > uname -a > -------- > > FreeBSD server0.xxx.xxxxx.xx 6.2-RELEASE-p8 FreeBSD 6.2-RELEASE-p8 #0: > Tue Oct 9 15:13:49 MSD 2007 > xxxxx@server0.xxx.xxxxx.xx:/usr/obj/usr/src/sys/SERVER0 i386 > > > > --------------- > installed ports > --------------- > > apache-2.2.6_2 Version 2.2 of Apache web server with prefork MPM. > autoconf-2.61_2 Automatically configure source code on many Un*x > platforms > autoconf-wrapper-20070404 Wrapper script for GNU autoconf > bison-1.75_2,1 A parser generator from FSF, (mostly) compatible > with Yacc > cpuid-3.3_3 CPU identification utility > cups-base-1.3.3 Common UNIX Printing System > cvsup-without-gui-16.1h_3 General network file distribution system > optimized for CVS > cyrus-sasl-2.1.22 RFC 2222 SASL (Simple Authentication and Security Layer) > cyrus-sasl-saslauthd-2.1.22 SASL authentication server for cyrus-sasl2 > db41-4.1.25_4 The Berkeley DB package, revision 4.1 > db44-4.4.20.4 The Berkeley DB package, revision 4.4 > e2fsprogs-libuuid-1.40.2 UUID library from e2fsprogs package > expat-2.0.0_1 XML 1.0 parser written in C > gamin-0.1.9 A file and directory monitoring system > gettext-0.16.1_3 GNU gettext package > glib-2.12.13 Some useful routines of C programming (current > stable versi > gmake-3.81_2 GNU version of 'make' utility > gnutls-1.6.3 GNU Transport Layer Security library > heimdal-1.0.1 A popular BSD-licensed implementation of Kerberos 5 > help2man-1.36.4_1 Automatically generating simple manual pages from > program o > jpeg-6b_4 IJG's jpeg compression utilities > libexecinfo-1.1_1 A library for inspecting program's backtrace > libgcrypt-1.2.4_1 General purpose crypto library based on code used in > GnuPG > libgmp-4.2.2 A free library for arbitrary precision arithmetic > libgpg-error-1.5 Common error values for all GnuPG components > libiconv-1.9.2_2 A character set conversion library > libiodbc-3.52.5 An ODBC 3.x driver manager, for universal data > source acces > libltdl-1.5.24 System independent dlopen wrapper > libtool-1.5.24 Generic shared library support script > libxml2-2.6.30 XML parser library for GNOME > m4-1.4.9,1 GNU m4 > mpfr-2.3.0 A library for multiple-precision floating-point > computation > openldap-sasl-client-2.3.38 Open source LDAP client implementation with > SASL2 support > openldap-server-2.3.38 Open source LDAP server implementation > openssl-stable-0.9.7m SSL and crypto library > p5-gettext-1.05_1 Message handling functions > p7zip-4.55 File archiver with high compression ratio > pcre-7.3 Perl Compatible Regular Expressions library > perl-5.8.8 Practical Extraction and Report Language > php5-5.2.4_1 PHP Scripting Language > pkg-config-0.22 A utility to retrieve information about installed > libraries > png-1.2.18 Library for manipulating PNG images > popt-1.7_4 A getopt(3) like library with a number of > enhancements, fro > portupgrade-2.3.1,2 FreeBSD ports/packages administration and management > tool s > postgresql-client-8.2.5 PostgreSQL database (client) > postgresql-server-8.2.5_1 The most advanced open-source database > available anywhere > ruby-1.8.6_2,1 An object-oriented interpreted scripting language > ruby18-bdb-0.6.2 Ruby interface to Sleepycat's Berkeley DB revision 2 > or lat > samba-3.0.26a_1,1 A free SMB and CIFS client and server for UNIX > screen-4.0.3 A multi-screen window manager > sendmail+tls+sasl2+ldap-8.14.1 Reliable, highly configurable mail > transfer agent with util > tiff-3.8.2_1 Tools and library routines for working with TIFF images > unzip-5.52_3 List, test and extract compressed files in a ZIP archive > zip-2.32 Create/update ZIP files compatible with pkzip > > > > ------------------------- > make configure | grep krb > ------------------------- > > configure: WARNING: netinet/ip.h: present but cannot be compiled > configure: WARNING: netinet/ip.h: check for missing prerequisite > headers? > configure: WARNING: netinet/ip.h: see the Autoconf documentation > configure: WARNING: netinet/ip.h: section "Present But Cannot Be > Compiled" > configure: WARNING: netinet/ip.h: proceeding with the preprocessor's result > configure: WARNING: netinet/ip.h: in the future, the compiler will take > precedence > configure: WARNING: sys/mount.h: present but cannot be compiled > configure: WARNING: sys/mount.h: check for missing prerequisite headers? > configure: WARNING: sys/mount.h: see the Autoconf documentation > configure: WARNING: sys/mount.h: section "Present But Cannot Be > Compiled" > configure: WARNING: sys/mount.h: proceeding with the preprocessor's result > configure: WARNING: sys/mount.h: in the future, the compiler will take > precedence > configure: WARNING: execinfo.h: accepted by the compiler, rejected by > the preprocessor! > configure: WARNING: execinfo.h: proceeding with the compiler's result > checking for Active Directory and krb5 support... yes > checking for krb5-config... /usr/bin/krb5-config > checking for working krb5-config... yes > checking krb5.h usability... yes > checking krb5.h presence... yes > checking for krb5.h... yes > checking krb5/locate_plugin.h usability... yes > checking krb5/locate_plugin.h presence... yes > checking for krb5/locate_plugin.h... yes > checking for krb5_encrypt_data in -lk5crypto... no > checking for krb5_mk_req_extended in -lkrb5... yes > checking for krb5_kt_compare in -lkrb5... yes > checking for krb5_set_real_time... no > checking for krb5_set_default_in_tkt_etypes... yes > checking for krb5_set_default_tgs_enctypes... no > checking for krb5_set_default_tgs_ktypes... no > checking for krb5_principal2salt... no > checking for krb5_use_enctype... no > checking for krb5_string_to_key... yes > checking for krb5_get_pw_salt... yes > checking for krb5_string_to_key_salt... yes > checking for krb5_auth_con_setkey... yes > checking for krb5_auth_con_setuseruserkey... no > checking for krb5_locate_kdc... no > checking for krb5_get_permitted_enctypes... no > checking for krb5_get_default_in_tkt_etypes... yes > checking for krb5_free_data_contents... yes > checking for krb5_principal_get_comp_string... yes > checking for krb5_free_unparsed_name... no > checking for krb5_free_keytab_entry_contents... no > checking for krb5_kt_free_entry... yes > checking for krb5_krbhst_init... yes > checking for krb5_krbhst_get_addrinfo... yes > checking for krb5_c_enctype_compare... no > checking for krb5_enctypes_compatible_keys... yes > checking for krb5_crypto_init... yes > checking for krb5_crypto_destroy... yes > checking for krb5_decode_ap_req... yes > checking for krb5_verify_checksum... yes > checking for krb5_c_verify_checksum... no > checking for krb5_principal_compare_any_realm... yes > checking for krb5_parse_name_norealm... no > checking for krb5_princ_size... no > checking for krb5_get_init_creds_opt_set_pac_request... no > checking for krb5_get_renewed_creds... no > checking for krb5_get_kdc_cred... yes > checking for krb5_free_error_contents... yes > checking for initialize_krb5_error_table... yes > checking for krb5_get_init_creds_opt_alloc... no > checking for krb5_get_init_creds_opt_free... no > checking whether krb5_ticket contains kvno and enctype... no > checking whether krb5_get_init_creds_opt_free takes a context > argument... yes > checking whether krb5_verify_checksum takes 7 arguments... 6 > checking for checksum in krb5_checksum... yes > checking for ticket pointer in krb5_ap_req... no > checking for e_data pointer in krb5_error... yes > checking for krb5_crypto type... yes > checking for krb5_encrypt_block type... no > checking for addrtype in krb5_address... no > checking for addr_type in krb5_address... yes > checking for enc_part2 in krb5_ticket... no > checking for keyblock in krb5_creds... no > checking for session in krb5_creds... yes > checking for keyvalue in krb5_keyblock... yes > checking for the krb5_princ_component macro... no > checking for key in krb5_keytab_entry... no > checking for keyblock in krb5_keytab_entry... yes > checking for magic in krb5_address... no > checking for krb5_princ_realm returns krb5_realm or krb5_data... yes > checking for krb5_addresses type... yes > checking whether krb5_mk_error takes 3 arguments MIT or 9 Heimdal... no > checking whether Active Directory and krb5 support is used... yes > KRB5_LIBS = -lgssapi -lkrb5 -lasn1 -lcrypto -lroken -lcrypt -lcom_err > > > > ---- > make > ---- > > ===> Building for samba-3.0.26a_1,1 > cd /usr/ports/net/samba3/work/samba-3.0.26a/source && make pch > Generating smbd/build_options.c > Building include/proto.h > creating /usr/ports/net/samba3/work/samba-3.0.26a/source/include/proto.h > Building include/build_env.h > creating > /usr/ports/net/samba3/work/samba-3.0.26a/source/nsswitch/winbindd_proto.h > creating /usr/ports/net/samba3/work/samba-3.0.26a/source/web/swat_proto.h > creating > /usr/ports/net/samba3/work/samba-3.0.26a/source/client/client_proto.h > creating /usr/ports/net/samba3/work/samba-3.0.26a/source/utils/net_proto.h > creating > /usr/ports/net/samba3/work/samba-3.0.26a/source/utils/ntlm_auth_proto.h > rm -f /usr/ports/net/samba3/work/samba-3.0.26a/source/include/includes.h.gch > cc -I. -I/usr/ports/net/samba3/work/samba-3.0.26a/source -O2 -pipe > -march=prescott -D_SAMBA_BUILD_=3 -I/usr/local/include > -I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src > -Iinclude -I./include -I. -I. -I./lib/replace -I./lib/talloc > -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H > -I/usr/local/include -DLDAP_DEPRECATED > -I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 > -fPIC -DPIC -c > /usr/ports/net/samba3/work/samba-3.0.26a/source/include/includes.h -o > /usr/ports/net/samba3/work/samba-3.0.26a/source/include/includes.h.gch > Using FLAGS = -O2 -pipe -march=prescott -D_SAMBA_BUILD_=3 > -I/usr/local/include > -I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src > -Iinclude -I./include -I. -I. -I./lib/replace -I./lib/talloc > -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H > -I/usr/local/include -DLDAP_DEPRECATED > -I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 > PICFLAG = -fPIC -DPIC > LIBS = -lcrypt -lexecinfo -liconv > LDFLAGS = -pie -Wl,-R/usr/local/lib -L/usr/local/lib > -L/usr/local/lib > DYNEXP = -Wl,--export-dynamic > LDSHFLAGS = -shared -Wl,-R/usr/local/lib -L/usr/local/lib > -L/usr/local/lib > SHLIBEXT = so > SONAMEFLAG = -Wl,-soname, > Compiling dynconfig.c > Compiling param/loadparm.c > Compiling param/params.c > Compiling lib/sharesec.c > Compiling smbd/files.c > Compiling smbd/chgpasswd.c > Compiling smbd/connection.c > Compiling smbd/utmp.c > Compiling smbd/session.c > Compiling smbd/map_username.c > Compiling smbd/dfree.c > Compiling smbd/dir.c > Compiling smbd/password.c > Compiling smbd/conn.c > Compiling smbd/share_access.c > Compiling smbd/fileio.c > Compiling smbd/ipc.c > Compiling smbd/lanman.c > Compiling smbd/negprot.c > Compiling smbd/message.c > Compiling smbd/nttrans.c > Compiling smbd/pipes.c > Compiling smbd/reply.c > Compiling smbd/sesssetup.c > Compiling smbd/trans2.c > Compiling smbd/uid.c > Compiling smbd/dosmode.c > Compiling smbd/filename.c > Compiling smbd/open.c > Compiling smbd/close.c > Compiling smbd/blocking.c > Compiling smbd/sec_ctx.c > Compiling smbd/srvstr.c > Compiling smbd/vfs.c > Compiling smbd/statcache.c > Compiling smbd/posix_acls.c > Compiling lib/sysacls.c > Compiling lib/server_mutex.c > Compiling smbd/process.c > Compiling smbd/service.c > Compiling smbd/error.c > Compiling printing/printfsp.c > Compiling lib/sysquotas.c > Compiling lib/sysquotas_linux.c > Compiling lib/sysquotas_xfs.c > Compiling lib/sysquotas_4A.c > Compiling smbd/change_trust_pw.c > Compiling smbd/fake_file.c > Compiling smbd/quotas.c > Compiling smbd/ntquotas.c > Compiling lib/afs.c > Compiling smbd/msdfs.c > Compiling lib/afs_settoken.c > Compiling smbd/aio.c > Compiling smbd/statvfs.c > Compiling smbd/dmapi.c > Compiling smbd/mangle.c > Compiling smbd/mangle_hash.c > Compiling smbd/mangle_map.c > Compiling smbd/mangle_hash2.c > Compiling modules/vfs_default.c > Compiling modules/vfs_posixacl.c > Compiling libsmb/clientgen.c > Compiling libsmb/cliconnect.c > Compiling libsmb/clifile.c > Compiling libsmb/clikrb5.c > libsmb/clikrb5.c: In function `krb5_set_real_time': > libsmb/clikrb5.c:128: error: dereferencing pointer to incomplete type > libsmb/clikrb5.c:129: error: dereferencing pointer to incomplete type > The following command failed: > cc -I. -I/usr/ports/net/samba3/work/samba-3.0.26a/source -O2 -pipe > -march=prescott -D_SAMBA_BUILD_=3 -I/usr/local/include > -I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src > -Iinclude -I./include -I. -I. -I./lib/replace -I./lib/talloc > -I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H > -I/usr/local/include -DLDAP_DEPRECATED > -I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3 > -fPIC -DPIC -c libsmb/clikrb5.c -o libsmb/clikrb5.o > *** Error code 1 > > Stop in /usr/ports/net/samba3/work/samba-3.0.26a/source. > *** Error code 1 > > Stop in /usr/ports/net/samba3. > *** Error code 1 > > Stop in /usr/ports/net/samba3. > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 20:18:50 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 86A2016A46E for ; Wed, 10 Oct 2007 20:18:50 +0000 (UTC) (envelope-from subscr1024@mail.ru) Received: from mx34.mail.ru (mx34.mail.ru [194.67.23.200]) by mx1.freebsd.org (Postfix) with ESMTP id 38B9E13C467 for ; Wed, 10 Oct 2007 20:18:50 +0000 (UTC) (envelope-from subscr1024@mail.ru) Received: from [87.240.12.144] (port=40268 helo=c2.home) by mx34.mail.ru with asmtp id 1Ifi12-000ADq-00 for freebsd-net@freebsd.org; Thu, 11 Oct 2007 00:18:48 +0400 Message-ID: <470D342D.8090106@mail.ru> Date: Thu, 11 Oct 2007 00:21:01 +0400 From: Subscriber User-Agent: Thunderbird 2.0.0.6 (X11/20070803) MIME-Version: 1.0 CC: freebsd-net@freebsd.org References: <470CAC9B.1050409@mail.ru> <470D06D9.6090001@tomjudge.com> In-Reply-To: <470D06D9.6090001@tomjudge.com> Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: quoted-printable Subject: Re: Samba with AD support not compile X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 20:18:50 -0000 Thank you very much, Tom. It works! Cache. Tom Judge =EF=E8=F8=E5=F2: > Subscriber wrote: >> Hi >> >> I just tried to install net/samba3 (samba-3.0.26a_1,1) on new server a= nd >> have an error. Error occurs only when I enable "ADS" option in port >> config dialog. Then I try to compile port with gcc-4.2.2 instead of >> default system compiler and has the same result. >> >> Does anybody know, how to solve this problem? >> >> >=20 > Hi, >=20 > When we compile samba with AD support we always use the security/krb5 > port to provide the kerberos library. >=20 > This is the build process that we use: >=20 > cd /usr/ports/security/krb5 > make install > cd /usr/ports/net/samba3 > make KRB5_HOME=3D/usr/local > make install >=20 >=20 > You should do a make clean in net/samba3 before trying this. >=20 > I'm not sure why but after significant testing with all 3 kerberos > implementations (base, security/krb5, security/heidemal) we came to the= > conclusion that the krb5 port provided the most stable integration with= > windows 2000 AD Controllers. >=20 > Tom From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 20:37:35 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF68916A418; Wed, 10 Oct 2007 20:37:34 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail6.speedfactory.net [66.23.216.219]) by mx1.freebsd.org (Postfix) with ESMTP id 7B37313C465; Wed, 10 Oct 2007 20:37:34 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.8p) with ESMTP id 213848287-1834499 for multiple; Wed, 10 Oct 2007 16:19:26 -0400 Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.8/8.13.8) with ESMTP id l9AKL3aX017064; Wed, 10 Oct 2007 16:21:20 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-current@freebsd.org, pyunyh@gmail.com Date: Wed, 10 Oct 2007 15:51:25 -0400 User-Agent: KMail/1.9.6 References: <20070827201809.0367616A418@hub.freebsd.org> <20070828010310.GA85263@cdnetworks.co.kr> In-Reply-To: <20070828010310.GA85263@cdnetworks.co.kr> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710101551.26081.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Wed, 10 Oct 2007 16:21:20 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/4523/Wed Oct 10 14:30:26 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: Bill Paul , freebsd-net@freebsd.org Subject: Re: Bug in vr(4) driver X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 20:37:35 -0000 On Monday 27 August 2007 09:03:10 pm Pyun YongHyeon wrote: > On Mon, Aug 27, 2007 at 08:18:08PM +0000, Bill Paul wrote: > > > > I recently started writing a driver for the Via Rhine family of chips > > for VxWorks (they turn up on various x86-based single board systems, > > and I figured it'd be nice to actually support them out of the box), > > and along the way, I noticed a subtle bug in the FreeBSD vr(4) driver. > > > > The vr_attach() routine unconditionally does this for all supported > > chips: > > > > /* > > * Windows may put the chip in suspend mode when it > > * shuts down. Be sure to kick it in the head to wake it > > * up again. > > */ > > VR_CLRBIT(sc, VR_STICKHW, (VR_STICKHW_DS0|VR_STICKHW_DS1)); > > > > The problem is, the VR_STICKHW register is not valid on all Rhine > > devices. The VT86C100A chip, which is present on the D-Link DFE-530TX > > boards, doesn't support power management, and its register space is > > only 128 bytes wide. The VR_STICKHW register offset falls outside this > > range. This may go unnoticed in most scenarios, but if you happen to have > > another PCI device in your system which is assigned the register > > space immediately after that of the Rhine, the vr(4) driver will > > incorrectly stomp it. In my case, the BIOS on my test board decided > > to put the register space for my PRO/100 ethernet board right next > > to the Rhine, and the Rhine driver ended up clobbering the IMR register > > of the PRO/100 device. (Long story short: the board kept locking up on > > boot. Took me the better part of the morning suss out why.) > > > > The strictly correct thing to do would be to check the PCI config space > > to make sure the device supports the power management capability and only > > write to the VR_STICKHW register if it does. A less strictly correct > > but equally effective thing to do would be: > > > > /* > > * Windows may put the chips that support power management into > > * suspend mode when it shuts down. Be sure to kick it in the > > * head to wake it up again. > > */ > > if (pci_get_device(dev) != VIA_DEVICEID_RHINE) > > VR_CLRBIT(sc, VR_STICKHW, (VR_STICKHW_DS0|VR_STICKHW_DS1)); > > > > This is basically the fix I put into my VxWorks driver. I suggest someone > > update the FreeBSD driver as well. > > > > Hi, > > I don't have vr(4) hardwares(if I had I would have converted vr(4) > to use bus_dma(9)). Would you review/test the attached patch? Pyun, I'd say to go ahead and commit the patch. -- John Baldwin From owner-freebsd-net@FreeBSD.ORG Wed Oct 10 20:40:46 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B21716A417 for ; Wed, 10 Oct 2007 20:40:46 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from smtp802.mail.ird.yahoo.com (smtp802.mail.ird.yahoo.com [217.146.188.62]) by mx1.freebsd.org (Postfix) with SMTP id 5ED5013C474 for ; Wed, 10 Oct 2007 20:40:44 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: (qmail 77070 invoked from network); 10 Oct 2007 20:40:34 -0000 Received: from unknown (HELO ?192.168.1.2?) (thomasjudge@btinternet.com@86.144.151.117 with plain) by smtp802.mail.ird.yahoo.com with SMTP; 10 Oct 2007 20:40:34 -0000 X-YMail-OSG: OXXm.RQVM1n2aN0z1GumOK5Kewed9XQK4K_YcXGNBLh7WOejiHDCdQwMMMymrWD3gXkQ0t7ijx1BXpQent4OM0yqzEFP6Ccnwg-- Message-ID: <470D480C.60305@tomjudge.com> Date: Wed, 10 Oct 2007 22:45:48 +0100 From: Tom Judge User-Agent: Thunderbird 1.5.0.13 (X11/20070824) MIME-Version: 1.0 To: Subscriber References: <470CAC9B.1050409@mail.ru> <470D06D9.6090001@tomjudge.com> <470D342D.8090106@mail.ru> In-Reply-To: <470D342D.8090106@mail.ru> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 8bit Cc: freebsd-net@freebsd.org Subject: Re: Samba with AD support not compile X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Oct 2007 20:40:46 -0000 Subscriber wrote: > Thank you very much, Tom. It works! > > Cache. > One thing that you should note is that if you plan to "make buildworld" you have to deinstall security/krb5 otherwise the buildworld will fail. Tom > > Tom Judge ïèøåò: >> Subscriber wrote: >>> Hi >>> >>> I just tried to install net/samba3 (samba-3.0.26a_1,1) on new server and >>> have an error. Error occurs only when I enable "ADS" option in port >>> config dialog. Then I try to compile port with gcc-4.2.2 instead of >>> default system compiler and has the same result. >>> >>> Does anybody know, how to solve this problem? >>> >>> >> Hi, >> >> When we compile samba with AD support we always use the security/krb5 >> port to provide the kerberos library. >> >> This is the build process that we use: >> >> cd /usr/ports/security/krb5 >> make install >> cd /usr/ports/net/samba3 >> make KRB5_HOME=/usr/local >> make install >> >> >> You should do a make clean in net/samba3 before trying this. >> >> I'm not sure why but after significant testing with all 3 kerberos >> implementations (base, security/krb5, security/heidemal) we came to the >> conclusion that the krb5 port provided the most stable integration with >> windows 2000 AD Controllers. >> >> Tom > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 02:22:32 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0388C16A419 for ; Thu, 11 Oct 2007 02:22:32 +0000 (UTC) (envelope-from lstewart@room52.net) Received: from swin.edu.au (gpo5.cc.swin.edu.au [136.186.1.225]) by mx1.freebsd.org (Postfix) with ESMTP id 8706413C45D for ; Thu, 11 Oct 2007 02:22:30 +0000 (UTC) (envelope-from lstewart@room52.net) Received: from [136.186.229.95] (lstewart.caia.swin.edu.au [136.186.229.95]) by swin.edu.au (8.13.6.20060614/8.13.1) with ESMTP id l9B2MQW9005130; Thu, 11 Oct 2007 12:22:28 +1000 Message-ID: <470D88E2.5070707@room52.net> Date: Thu, 11 Oct 2007 12:22:26 +1000 From: Lawrence Stewart User-Agent: Thunderbird 1.5.0.9 (X11/20070123) MIME-Version: 1.0 To: bh@izb.knu.ac.kr References: <470C2DFD.20109@room52.net> <1192006616.6441.16.camel@viola.izb.knu.ac.kr> In-Reply-To: <1192006616.6441.16.camel@viola.izb.knu.ac.kr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=3.1.9 X-Spam-Checker-Version: SpamAssassin 3.1.9 (2007-02-13) on gpo5.cc.swin.edu.au Cc: James Healy , freebsd-net@freebsd.org Subject: Re: Software for FreeBSD TCP R&D: SIFTR v1.1.4 and DPD v1.0 released X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 02:22:32 -0000 Hi Byung-Hee, Byung-Hee HWANG wrote: > On Wed, 2007-10-10 at 11:42 +1000, Lawrence Stewart wrote: > >> Hi All, >> >> Just a quick heads up regarding the availability of a new SIFTR >> (Statistical Information for TCP Research) version and the debut release >> of DPD (Deterministic Packet Discard). >> >> SIFTR v1.1.4 addresses a couple of issues, one of which is applicable to >> users of SIFTR in FreeBSD 7-CURRENT. Read the changelog and readme for >> more information. >> >> DPD is a new FreeBSD kernel module we developed to further aid us in our >> ongoing TCP research. It allows for the deterministic dropping of TCP >> packets from within the FreeBSD kernel via a simple sysctl interface. >> This is particularly useful for anyone that is interested in observing >> TCP reacting to packet loss events (e.g. congestion control >> researchers). Being able to drop the same packet(s) across multiple >> tests allows for simpler comparisons of TCP behaviour. We've found it >> particularly useful in evaluating and observing the behaviour of >> different congestion control mechanisms, and hope it may be of use to >> others out there. Please refer to the DPD readme for more in-depth >> information. >> >> The software and documentation is freely available under a BSD licence from: >> >> http://caia.swin.edu.au/urp/newtcp/tools.html >> >> We would be very happy to hear from anyone regarding bugs and >> suggestions as well. >> > > First of all, I would like to thank you for your good efforts. Its > almost feature seems like PF(4), however, it's useful to me, maybe. > Thanks! w.r.t. PF, as far as I'm aware, it does not allow the user to drop arbitrary packets identified by number within a TCP flow. Dummynet with its uniform packet loss pipe configuration is about the closest thing to DPD that I know of. The problem with Dummynet's uniform packet loss is that you have no control over which packets get dropped, which makes analysing TCP behaviour very difficult indeed. That said, I could simply be blissfully unaware that such functionality exists in PF. > Are you willing to support IPv6 for both SIFTR and DPD? > In the short term, our research does not entail the use of IPv6 and there is currently insufficient time available for implementing functionality that is not immediately useful to us. That said, it should be fairly straight-forward work to add IPv6 support, and I'd be more than happy to give you all the pointers and tips required to carry out the modifications if you were so inclined. Cheers, Lawrence From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 12:55:54 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EDC0E16A417 for ; Thu, 11 Oct 2007 12:55:54 +0000 (UTC) (envelope-from freebsd-net@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.freebsd.org (Postfix) with ESMTP id AF49F13C459 for ; Thu, 11 Oct 2007 12:55:54 +0000 (UTC) (envelope-from freebsd-net@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1IfxXo-0007fQ-9F for freebsd-net@freebsd.org; Thu, 11 Oct 2007 12:53:40 +0000 Received: from lara.cc.fer.hr ([161.53.72.113]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Oct 2007 12:53:40 +0000 Received: from ivoras by lara.cc.fer.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Oct 2007 12:53:40 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-net@freebsd.org From: Ivan Voras Date: Thu, 11 Oct 2007 14:53:37 +0200 Lines: 7 Message-ID: References: <46FBE818.3020800@FreeBSD.org> <9bbcef730709271054k5cbda605wcfd44adede05614f@mail.gmail.com> <46FBF101.6080402@FreeBSD.org> <9bbcef730709271208t74938933p704b554625f443ba@mail.gmail.com> <46FC019F.60900@FreeBSD.org> <47095CD3.2040701@FreeBSD.org> <9bbcef730710071534q41313712jdf5b36ecd7c9deb3@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: lara.cc.fer.hr User-Agent: Thunderbird 2.0.0.6 (X11/20070801) In-Reply-To: <9bbcef730710071534q41313712jdf5b36ecd7c9deb3@mail.gmail.com> Sender: news Subject: Re: Panic in rt_check X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 12:55:55 -0000 Ivan Voras wrote: > If the kernel still panics without IPv6 in it, I'll move on to other > possible solutions (Doug's first). The kernel without IPv6 is running stable for the 7th day in a row. I'll postpone trying Doug's patch for when I can afford some downtime. From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 14:34:58 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBAF016A419 for ; Thu, 11 Oct 2007 14:34:58 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) Received: from izb.knu.ac.kr (unknown [IPv6:2002:9be6:9d5d:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 453D213C44B for ; Thu, 11 Oct 2007 14:34:57 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) Received: by draba.izb.knu.ac.kr (Postfix, from userid 59) id 75ECE3EA5; Thu, 11 Oct 2007 23:34:55 +0900 (KST) X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on draba.izb.knu.ac.kr X-Spam-Level: X-Spam-Status: No, score=-46.7 required=15.1 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VERIFIED autolearn=disabled version=3.2.3 X-Spam-DKIM-Comments: Signing and Verifying with Mail-DKIM and DKIM Proxy ; DKIM? See http://www.google.com/search?btnI&q=DomainKeys+Identified+Mail Received: from izb.knu.ac.kr (localhost.izb.knu.ac.kr [127.0.0.1]) by draba.izb.knu.ac.kr (Postfix) with ESMTP id A49B33EA4; Thu, 11 Oct 2007 23:34:53 +0900 (KST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=izb.knu.ac.kr; h=subject: from:reply-to:to:cc:in-reply-to:references:content-type: content-transfer-encoding:date:message-id:mime-version; q= dns/txt; s=s1024; bh=VqCypxjshnMTKK9I6dyJQNjQyFc=; b=Ectf+jXBtxQ YsVISZ+5twQwgxwDMM08QSnBvH0NAw43X+2XWlttM+g+NuPqf9Ctst/LKTojJUGw sukhLbTrSJ4CKdjiE8v8IbI1/l+GvOKGebLzIbvpvtTIbKyAmTY5FspNFGMdY//q mVC/s1pVAhpyNJiXwxu4LltecbBvbWGk= Received: from viola.izb.knu.ac.kr (viola.izb.knu.ac.kr [IPv6:2002:9be6:9d5d:3::3]) by draba.izb.knu.ac.kr (Postfix) with ESMTP id 8D1AA3EA3; Thu, 11 Oct 2007 23:34:53 +0900 (KST) Received: by viola.izb.knu.ac.kr (Postfix, from userid 1001) id C2ABE5DFF; Thu, 11 Oct 2007 23:34:53 +0900 (KST) From: Byung-Hee HWANG To: Lawrence Stewart In-Reply-To: <470D88E2.5070707@room52.net> References: <470C2DFD.20109@room52.net> <1192006616.6441.16.camel@viola.izb.knu.ac.kr> <470D88E2.5070707@room52.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: InZealBomb Date: Thu, 11 Oct 2007 23:34:53 +0900 Message-Id: <1192113293.8383.15.camel@viola.izb.knu.ac.kr> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1.1 FreeBSD GNOME Team Port Cc: James Healy , freebsd-net@freebsd.org Subject: Re: Software for FreeBSD TCP R&D: SIFTR v1.1.4 and DPD v1.0 released X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: bh@izb.knu.ac.kr List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 14:34:58 -0000 On Thu, 2007-10-11 at 12:22 +1000, Lawrence Stewart wrote: > Hi Byung-Hee, > > Byung-Hee HWANG wrote: > > On Wed, 2007-10-10 at 11:42 +1000, Lawrence Stewart wrote: > > > >> Hi All, > >> > >> Just a quick heads up regarding the availability of a new SIFTR > >> (Statistical Information for TCP Research) version and the debut release > >> of DPD (Deterministic Packet Discard). > >> > >> SIFTR v1.1.4 addresses a couple of issues, one of which is applicable to > >> users of SIFTR in FreeBSD 7-CURRENT. Read the changelog and readme for > >> more information. > >> > >> DPD is a new FreeBSD kernel module we developed to further aid us in our > >> ongoing TCP research. It allows for the deterministic dropping of TCP > >> packets from within the FreeBSD kernel via a simple sysctl interface. > >> This is particularly useful for anyone that is interested in observing > >> TCP reacting to packet loss events (e.g. congestion control > >> researchers). Being able to drop the same packet(s) across multiple > >> tests allows for simpler comparisons of TCP behaviour. We've found it > >> particularly useful in evaluating and observing the behaviour of > >> different congestion control mechanisms, and hope it may be of use to > >> others out there. Please refer to the DPD readme for more in-depth > >> information. > >> > >> The software and documentation is freely available under a BSD licence from: > >> > >> http://caia.swin.edu.au/urp/newtcp/tools.html > >> > >> We would be very happy to hear from anyone regarding bugs and > >> suggestions as well. > >> > > > > First of all, I would like to thank you for your good efforts. Its > > almost feature seems like PF(4), however, it's useful to me, maybe. > > > > Thanks! > > w.r.t. PF, as far as I'm aware, it does not allow the user to drop > arbitrary packets identified by number within a TCP flow. Dummynet with > its uniform packet loss pipe configuration is about the closest thing to > DPD that I know of. The problem with Dummynet's uniform packet loss is > that you have no control over which packets get dropped, which makes > analysing TCP behaviour very difficult indeed. That said, I could simply > be blissfully unaware that such functionality exists in PF. > > > Are you willing to support IPv6 for both SIFTR and DPD? > > > In the short term, our research does not entail the use of IPv6 and > there is currently insufficient time available for implementing > functionality that is not immediately useful to us. > > That said, it should be fairly straight-forward work to add IPv6 > support, and I'd be more than happy to give you all the pointers and > tips required to carry out the modifications if you were so inclined. I don't want that my comment can force your thinking for implementing. IPv6 support, it was just my wish list for your software. So never mind. And if I encounter strange problems, then I'll give you email;; Thanks, -- Byung-Hee HWANG "Michael, it's not true, please say it's not true." -- Kay Adams, "Chapter 31", page 434 From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 14:52:52 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 172BB16A419 for ; Thu, 11 Oct 2007 14:52:52 +0000 (UTC) (envelope-from freebsd-net@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.freebsd.org (Postfix) with ESMTP id D0C3813C45D for ; Thu, 11 Oct 2007 14:52:51 +0000 (UTC) (envelope-from freebsd-net@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1IfzNJ-0007YV-3p for freebsd-net@freebsd.org; Thu, 11 Oct 2007 14:50:57 +0000 Received: from lara.cc.fer.hr ([161.53.72.113]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Oct 2007 14:50:57 +0000 Received: from ivoras by lara.cc.fer.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 11 Oct 2007 14:50:57 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-net@freebsd.org From: Ivan Voras Date: Thu, 11 Oct 2007 16:29:51 +0200 Lines: 11 Message-ID: References: <46FBE818.3020800@FreeBSD.org> <9bbcef730709271054k5cbda605wcfd44adede05614f@mail.gmail.com> <46FBF101.6080402@FreeBSD.org> <9bbcef730709271208t74938933p704b554625f443ba@mail.gmail.com> <46FC019F.60900@FreeBSD.org> <47095CD3.2040701@FreeBSD.org> <9bbcef730710071534q41313712jdf5b36ecd7c9deb3@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: lara.cc.fer.hr User-Agent: Thunderbird 2.0.0.6 (X11/20070801) In-Reply-To: Sender: news Subject: Re: Panic in rt_check X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 14:52:52 -0000 Ivan Voras wrote: > Ivan Voras wrote: > >> If the kernel still panics without IPv6 in it, I'll move on to other >> possible solutions (Doug's first). > > The kernel without IPv6 is running stable for the 7th day in a row. I'll > postpone trying Doug's patch for when I can afford some downtime. I spoke too soon - it crashed again about an hour after I sent this message. On to Doug's patch. From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 19:42:18 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F24516A417 for ; Thu, 11 Oct 2007 19:42:18 +0000 (UTC) (envelope-from jon.otterholm@ide.resurscentrum.se) Received: from mail1.cil.se (mail1.cil.se [217.197.56.125]) by mx1.freebsd.org (Postfix) with ESMTP id D808513C457 for ; Thu, 11 Oct 2007 19:42:17 +0000 (UTC) (envelope-from jon.otterholm@ide.resurscentrum.se) Received: from [192.168.98.91] ([192.168.44.2]) by mail1.cil.se with Microsoft SMTPSVC(6.0.3790.1830); Thu, 11 Oct 2007 21:42:15 +0200 Message-ID: <470E7C97.3080804@ide.resurscentrum.se> Date: Thu, 11 Oct 2007 21:42:15 +0200 From: Jon Otterholm User-Agent: Thunderbird 2.0.0.6 (X11/20070804) MIME-Version: 1.0 To: freebsd-net@freebsd.org X-Enigmail-Version: 0.95.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 11 Oct 2007 19:42:15.0793 (UTC) FILETIME=[D39E4610:01C80C3E] Subject: if_bridge on a vlan-trunk X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 19:42:18 -0000 Hi. Does anyone know if it is possible to put a transparent bridge on a vlan-trunk? A working solution is to create a bridge for each vlan, but I would prefer to have one bridge instead of several hundreds of them. Is this doable? In my lab environment I use a dual em(4) nic. What would the drawbacks be if I create ~1500 if_bridge and attached each vlan-sub-if from each physical interface to their own bridge? Would this work? //Jon From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 19:46:54 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C7B2F16A41B for ; Thu, 11 Oct 2007 19:46:54 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from heff.fud.org.nz (203-109-251-39.static.bliink.ihug.co.nz [203.109.251.39]) by mx1.freebsd.org (Postfix) with ESMTP id 6FB7C13C45A for ; Thu, 11 Oct 2007 19:46:54 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: by heff.fud.org.nz (Postfix, from userid 1001) id 67C5E1CC58; Fri, 12 Oct 2007 08:46:53 +1300 (NZDT) Date: Fri, 12 Oct 2007 08:46:53 +1300 From: Andrew Thompson To: Jon Otterholm Message-ID: <20071011194653.GB40950@heff.fud.org.nz> References: <470E7C97.3080804@ide.resurscentrum.se> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <470E7C97.3080804@ide.resurscentrum.se> User-Agent: Mutt/1.5.13 (2006-08-11) Cc: freebsd-net@freebsd.org Subject: Re: if_bridge on a vlan-trunk X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 19:46:54 -0000 On Thu, Oct 11, 2007 at 09:42:15PM +0200, Jon Otterholm wrote: > Hi. > > Does anyone know if it is possible to put a transparent bridge on a > vlan-trunk? As from rev1.100 of if_bridge back in June it will correctly use the vlan number if the forwarding table so it is now possible to bridge a vlan trunk. Is this all you need? (7+ only, it wont be in 6-stable) > A working solution is to create a bridge for each vlan, but I would > prefer to have one bridge instead of several hundreds of them. > > Is this doable? > > In my lab environment I use a dual em(4) nic. > > What would the drawbacks be if I create ~1500 if_bridge and attached > each vlan-sub-if from each physical interface to their own bridge? Would > this work? > > //Jon > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 20:46:20 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54DAD16A418 for ; Thu, 11 Oct 2007 20:46:20 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.190]) by mx1.freebsd.org (Postfix) with ESMTP id CC28B13C447 for ; Thu, 11 Oct 2007 20:46:19 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so581688nfb for ; Thu, 11 Oct 2007 13:46:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=uTSGHygq3isuppVV5Ix6SzI5jwxjHOBiv2mPA+hXvnQ=; b=RlBnJel7R4uJxZxfVnSyFoQjRUnlobnkKamZkLyvinEhNKP9E6mZwDnCBnmaCfclLR//9IOdy92JNbH5tWzvU+527Qp7HpMjYnMWBc2iW/4mTOEzryZ0G4Xx+v+6kRGVvM28DqBdw5jDocO2xllWQP5rif78nddOSKabuggXCg8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=apvmBFbhoUGp6277jg6Htle4kjmgXqRswysXZgPZ0F9s13r/wlpUViU2OTCVan9rMnFNqowSfE8+VV0rgsCh66C3hrFw7eDerx73h8mIUWD/g3iJ415pojgQq1VzsLgg5gnm0BcZ8bUELxaLQWhzDghqRiBUcruM+1VqFHxv2Nw= Received: by 10.86.100.7 with SMTP id x7mr1750479fgb.1192135578672; Thu, 11 Oct 2007 13:46:18 -0700 (PDT) Received: by 10.86.100.19 with HTTP; Thu, 11 Oct 2007 13:46:18 -0700 (PDT) Message-ID: <2a41acea0710111346w2cc9f72dg8d3d77b079d3c8e2@mail.gmail.com> Date: Thu, 11 Oct 2007 13:46:18 -0700 From: "Jack Vogel" To: "freebsd-net@freebsd.org" , "FreeBSD Stable List" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Subject: Using the latest em with 6.2 RELEASE X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 20:46:20 -0000 I realize now that I need to explain doing this. I just did a checkin that will allow the latest em code to work on 6.2, BUT, it will NOT work integrated into the RELEASE kernel tree, and I am not going to support that :) To do that would mean changing conf/files and so forth. Therefore, if you want to do this you need to prepare a standalone driver build directory, build the driver in that and then have that load for you. If you try and drop it into your /usr/src/sys tree it will BREAK your build, so don't go blaming me :) Anyone that has questions or needs help send me private email. Jack From owner-freebsd-net@FreeBSD.ORG Thu Oct 11 21:11:53 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7223316A501 for ; Thu, 11 Oct 2007 21:11:53 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outI.internet-mail-service.net (outI.internet-mail-service.net [216.240.47.232]) by mx1.freebsd.org (Postfix) with ESMTP id 4DB1B13C465 for ; Thu, 11 Oct 2007 21:11:52 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.40) with ESMTP; Thu, 11 Oct 2007 14:11:52 -0700 X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (nat.ironport.com [63.251.108.100]) by idiom.com (Postfix) with ESMTP id C4F26126653; Thu, 11 Oct 2007 14:11:51 -0700 (PDT) Message-ID: <470E91A3.3060406@elischer.org> Date: Thu, 11 Oct 2007 14:12:03 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Jon Otterholm References: <470E7C97.3080804@ide.resurscentrum.se> In-Reply-To: <470E7C97.3080804@ide.resurscentrum.se> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: if_bridge on a vlan-trunk X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2007 21:11:53 -0000 Jon Otterholm wrote: > Hi. > > Does anyone know if it is possible to put a transparent bridge on a > vlan-trunk? > > A working solution is to create a bridge for each vlan, but I would > prefer to have one bridge instead of several hundreds of them. > > Is this doable? > it is using netgraph.. > In my lab environment I use a dual em(4) nic. > > What would the drawbacks be if I create ~1500 if_bridge and attached > each vlan-sub-if from each physical interface to their own bridge? Would > this work? > > //Jon > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 01:34:44 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6F2F16A41A for ; Fri, 12 Oct 2007 01:34:44 +0000 (UTC) (envelope-from freebsd@hub.org) Received: from hub.org (hub.org [200.46.204.220]) by mx1.freebsd.org (Postfix) with ESMTP id 6752F13C44B for ; Fri, 12 Oct 2007 01:34:44 +0000 (UTC) (envelope-from freebsd@hub.org) Received: from localhost (unknown [200.46.204.187]) by hub.org (Postfix) with ESMTP id EA811B471D6 for ; Thu, 11 Oct 2007 22:19:11 -0300 (ADT) Received: from hub.org ([200.46.204.220]) by localhost (mx1.hub.org [200.46.204.187]) (amavisd-maia, port 10024) with ESMTP id 68716-03 for ; Thu, 11 Oct 2007 22:19:05 -0300 (ADT) Received: from fserv.hub.org (blk-89-241-126.eastlink.ca [24.89.241.126]) by hub.org (Postfix) with ESMTP id 88AE6B47198 for ; Thu, 11 Oct 2007 22:19:11 -0300 (ADT) Received: from [192.168.1.2] (unknown [192.168.1.2]) by fserv.hub.org (Postfix) with ESMTP id 26869EB6C3 for ; Thu, 11 Oct 2007 22:19:16 -0300 (ADT) Date: Thu, 11 Oct 2007 22:18:34 -0300 From: "Marc G. Fournier" To: freebsd-net@freebsd.org Message-ID: <20011EE14844381044655F4D@ganymede.hub.org> X-Mailer: Mulberry/4.0.8 (Linux/x86) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: wireless recommendations ... X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 01:34:44 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I'm looking to do some consulting on a project that will involve wireless networks ... since, if it goes forward, I'm going to be the "Unix person", so, of course, the unix side will be FreeBSD ... ... but, I haven't used wireless at all under FreeBSD ... what do we support *well*? The machine(s) are going to be remote, so I'd like to go with something that is generally felt to be 'consistently reliable' vs 'cheap' ... or, at least, somewhere in the middle ground would be nice :) - ---- Marc G. Fournier Hub.Org Networking Services (http://www.hub.org) Email . scrappy@hub.org MSN . scrappy@hub.org Yahoo . yscrappy Skype: hub.org ICQ . 7615664 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQFHDstq4QvfyHIvDvMRAv53AJ9EErGuuWQN4QZNWHrQ0zt7Qw9O4gCfVZSt 0t0f+CdyKvNtdlZnEJcRVYY= =5B0B -----END PGP SIGNATURE----- From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 01:49:53 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7553216A419 for ; Fri, 12 Oct 2007 01:49:53 +0000 (UTC) (envelope-from wilkinsa@obelix.dsto.defence.gov.au) Received: from digger1.defence.gov.au (digger1.defence.gov.au [203.5.217.4]) by mx1.freebsd.org (Postfix) with ESMTP id C594E13C47E for ; Fri, 12 Oct 2007 01:49:52 +0000 (UTC) (envelope-from wilkinsa@obelix.dsto.defence.gov.au) Received: from ednmsw510.dsto.defence.gov.au (ednmsw510.dsto.defence.gov.au [131.185.68.11]) by digger1.defence.gov.au (8.13.8/8.13.8) with ESMTP id l9C1bxD0025182 for ; Fri, 12 Oct 2007 11:07:59 +0930 (CST) Received: from fmbex510.dsto.defence.gov.au (fmbex510.dsto.defence.gov.au) by ednmsw510.dsto.defence.gov.au (Clearswift SMTPRS 5.2.9) with ESMTP id for ; Fri, 12 Oct 2007 11:19:43 +0930 Received: from stlex510.dsto.defence.gov.au ([203.6.60.184]) by fmbex510.dsto.defence.gov.au with Microsoft SMTPSVC(6.0.3790.1830); Fri, 12 Oct 2007 11:49:43 +1000 Received: from obelix.dsto.defence.gov.au ([203.6.60.208]) by stlex510.dsto.defence.gov.au with Microsoft SMTPSVC(6.0.3790.1830); Fri, 12 Oct 2007 09:49:42 +0800 Received: from obelix.dsto.defence.gov.au (localhost [127.0.0.1]) by obelix.dsto.defence.gov.au (8.14.1/8.14.1) with ESMTP id l9C1ngI5090533 for ; Fri, 12 Oct 2007 09:49:42 +0800 (WST) (envelope-from wilkinsa@obelix.dsto.defence.gov.au) Received: (from wilkinsa@localhost) by obelix.dsto.defence.gov.au (8.14.1/8.14.1/Submit) id l9C1ngCi090532 for freebsd-net@freebsd.org; Fri, 12 Oct 2007 09:49:42 +0800 (WST) (envelope-from wilkinsa) Date: Fri, 12 Oct 2007 09:49:42 +0800 From: "Wilkinson, Alex" To: freebsd-net@freebsd.org Message-ID: <20071012014941.GO84433@obelix.dsto.defence.gov.au> Mail-Followup-To: freebsd-net@freebsd.org References: <20011EE14844381044655F4D@ganymede.hub.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20011EE14844381044655F4D@ganymede.hub.org> Organisation: Defence Science Technology Organisation User-Agent: Mutt/1.5.16 (2007-06-09) X-OriginalArrivalTime: 12 Oct 2007 01:49:42.0404 (UTC) FILETIME=[286C2440:01C80C72] X-TM-AS-Product-Ver: SMEX-7.0.0.1526-5.0.1023-15478.000 X-TM-AS-Result: No--1.451100-0.000000-31 Content-Transfer-Encoding: 7bit Subject: Re: wireless recommendations ... X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 01:49:53 -0000 0n Thu, Oct 11, 2007 at 10:18:34PM -0300, Marc G. Fournier wrote: >... but, I haven't used wireless at all under FreeBSD ... what do we support >*well*? The machine(s) are going to be remote, so I'd like to go with >something that is generally felt to be 'consistently reliable' vs 'cheap' ... >or, at least, somewhere in the middle ground would be nice :) Atheros Chipsets are the way to go i.e. ath(4) driver. Netgate specialise in selling Atheros based chipset WiFi NICs [http://www.netgate.com/]. -aW IMPORTANT: This email remains the property of the Australian Defence Organisation and is subject to the jurisdiction of section 70 of the CRIMES ACT 1914. If you have received this email in error, you are requested to contact the sender and delete the email. From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 03:44:08 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 968A916A41A; Fri, 12 Oct 2007 03:44:08 +0000 (UTC) (envelope-from max@love2party.net) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by mx1.freebsd.org (Postfix) with ESMTP id 082BD13C467; Fri, 12 Oct 2007 03:44:07 +0000 (UTC) (envelope-from max@love2party.net) Received: from amd64.laiers.local (dslb-088-066-018-083.pools.arcor-ip.net [88.66.18.83]) by mrelayeu.kundenserver.de (node=mrelayeu7) with ESMTP (Nemesis) id 0ML2xA-1IgBRW1kNB-0001gs; Fri, 12 Oct 2007 05:44:06 +0200 From: Max Laier Organization: FreeBSD To: freebsd-net@freebsd.org Date: Fri, 12 Oct 2007 05:43:54 +0200 User-Agent: KMail/1.9.7 References: <200709302232.34505.max@love2party.net> <200710020356.10429.max@love2party.net> In-Reply-To: <200710020356.10429.max@love2party.net> X-Face: ,,8R(x[kmU]tKN@>gtH1yQE4aslGdu+2]; R]*pL,U>^H?)gW@49@wdJ`H<=?utf-8?q?=25=7D*=5FBD=0A=09U=5For=3D=5CmOZf764=26nYj=3DJYbR1PW0ud?=>|!~,,CPC.1-D$FG@0h3#'5"k{V]a~.<=?utf-8?q?mZ=7D44=23Se=7Em=0A=09Fe=7E=5C=5DX5B=5D=5Fxj?=(ykz9QKMw_l0C2AQ]}Ym8)fU MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart8339406.YbBDa69ZZZ"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200710120544.04157.max@love2party.net> X-Provags-ID: V01U2FsdGVkX1/3Gu/jctK19UjdVqPFoe84OkjLQ1O/kHPAyUb kBMNESmA/+DJFC59V1nq4CGp1V6yddAHdux6Smkubgimq+I6Sg qJEtUQwQ23q8IFPxTHkK6jJQU5iOHE8sE3IPxTfwEA= Cc: freebsd-current@freebsd.org Subject: Re: libpcap/tcpdump update X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 03:44:08 -0000 --nextPart8339406.YbBDa69ZZZ Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Tuesday 02 October 2007, Max Laier wrote: > On Sunday 30 September 2007, Max Laier wrote: > > Hi, > > > > I'd like to get some eyes on > > http://people.freebsd.org/~mlaier/tcpdump/ in order to get $subj into > > the tree. Let me know if you find any problems. Thanks. > > > > This should also take care of bin/116610, by the way. > > Please refresh - the first version didn't get through buildworld - > sorry! I plan to do this really soon now with the HEAD freeze lifted. Did anyone= =20 get to test it? Any objections? =2D-=20 /"\ Best regards, | mlaier@freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier@EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News --nextPart8339406.YbBDa69ZZZ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQBHDu2EXyyEoT62BG0RAo2yAJ9lN//JsU+CMJrNFsxemBXlWU+vkgCffn2u NmerHcJ6Q7ftCygrBwKOmII= =qMU4 -----END PGP SIGNATURE----- --nextPart8339406.YbBDa69ZZZ-- From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 03:44:39 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A52DF16A41B for ; Fri, 12 Oct 2007 03:44:39 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.180]) by mx1.freebsd.org (Postfix) with ESMTP id 5610E13C46E for ; Fri, 12 Oct 2007 03:44:39 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: by wa-out-1112.google.com with SMTP id k17so884162waf for ; Thu, 11 Oct 2007 20:44:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:received:received:date:from:to:cc:subject:message-id:reply-to:references:mime-version:content-type:content-disposition:in-reply-to:user-agent; bh=/EeDRBjxb5OtF1nTfctrNQyt9w8Go+tHjXnhPAqnV1E=; b=aFg6s6qvvjhKpTHd73+5HwEUndOrujDkL0hNTgw7eh+6nujsUmKuJUtvgPxH/GAiIPYTd7xXMa1hTaAcfvCxaaouDZ8/g6ll6140Bkpw7HqHPfQDNAmcJ5ImkaKBaUKze/rgQu49YGZ5luVfuRevnWqyquAlpaxDlnpgKEutChM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:date:from:to:cc:subject:message-id:reply-to:references:mime-version:content-type:content-disposition:in-reply-to:user-agent; b=l1NQ9CtBtdjlktAYIDnJQ4XGm3ZrBiFXcHeOP7bh9uOv5Xfj05M8ab27e7FsqJzTc6ciz9HJJgF/ImTBDjRja33iWLZY7BusyCxV71wZFcRgpbzN0hh2IlV6cBCOLhp4pTwTdvJIKTJoPynHSJ1IvZGaplOe4BqjgyMl+VAcy0k= Received: by 10.114.103.1 with SMTP id a1mr3010699wac.1192160678907; Thu, 11 Oct 2007 20:44:38 -0700 (PDT) Received: from michelle.cdnetworks.co.kr ( [211.53.35.84]) by mx.google.com with ESMTPS id n37sm302305wag.2007.10.11.20.44.35 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 11 Oct 2007 20:44:37 -0700 (PDT) Received: from michelle.cdnetworks.co.kr (localhost.cdnetworks.co.kr [127.0.0.1]) by michelle.cdnetworks.co.kr (8.13.5/8.13.5) with ESMTP id l9C3evRG064211 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 12 Oct 2007 12:40:57 +0900 (KST) (envelope-from pyunyh@gmail.com) Received: (from yongari@localhost) by michelle.cdnetworks.co.kr (8.13.5/8.13.5/Submit) id l9C3evVc064210; Fri, 12 Oct 2007 12:40:57 +0900 (KST) (envelope-from pyunyh@gmail.com) Date: Fri, 12 Oct 2007 12:40:57 +0900 From: Pyun YongHyeon To: John Baldwin Message-ID: <20071012034057.GA63854@cdnetworks.co.kr> References: <20070827201809.0367616A418@hub.freebsd.org> <20070828010310.GA85263@cdnetworks.co.kr> <200710101551.26081.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200710101551.26081.jhb@freebsd.org> User-Agent: Mutt/1.4.2.1i Cc: Bill Paul , freebsd-current@freebsd.org, freebsd-net@freebsd.org Subject: Re: Bug in vr(4) driver X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: pyunyh@gmail.com List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 03:44:39 -0000 On Wed, Oct 10, 2007 at 03:51:25PM -0400, John Baldwin wrote: > On Monday 27 August 2007 09:03:10 pm Pyun YongHyeon wrote: > > On Mon, Aug 27, 2007 at 08:18:08PM +0000, Bill Paul wrote: > > > > > > I recently started writing a driver for the Via Rhine family of chips > > > for VxWorks (they turn up on various x86-based single board systems, > > > and I figured it'd be nice to actually support them out of the box), > > > and along the way, I noticed a subtle bug in the FreeBSD vr(4) driver. > > > > > > The vr_attach() routine unconditionally does this for all supported > > > chips: > > > > > > /* > > > * Windows may put the chip in suspend mode when it > > > * shuts down. Be sure to kick it in the head to wake it > > > * up again. > > > */ > > > VR_CLRBIT(sc, VR_STICKHW, (VR_STICKHW_DS0|VR_STICKHW_DS1)); > > > > > > The problem is, the VR_STICKHW register is not valid on all Rhine > > > devices. The VT86C100A chip, which is present on the D-Link DFE-530TX > > > boards, doesn't support power management, and its register space is > > > only 128 bytes wide. The VR_STICKHW register offset falls outside this > > > range. This may go unnoticed in most scenarios, but if you happen to have > > > another PCI device in your system which is assigned the register > > > space immediately after that of the Rhine, the vr(4) driver will > > > incorrectly stomp it. In my case, the BIOS on my test board decided > > > to put the register space for my PRO/100 ethernet board right next > > > to the Rhine, and the Rhine driver ended up clobbering the IMR register > > > of the PRO/100 device. (Long story short: the board kept locking up on > > > boot. Took me the better part of the morning suss out why.) > > > > > > The strictly correct thing to do would be to check the PCI config space > > > to make sure the device supports the power management capability and only > > > write to the VR_STICKHW register if it does. A less strictly correct > > > but equally effective thing to do would be: > > > > > > /* > > > * Windows may put the chips that support power management into > > > * suspend mode when it shuts down. Be sure to kick it in the > > > * head to wake it up again. > > > */ > > > if (pci_get_device(dev) != VIA_DEVICEID_RHINE) > > > VR_CLRBIT(sc, VR_STICKHW, (VR_STICKHW_DS0|VR_STICKHW_DS1)); > > > > > > This is basically the fix I put into my VxWorks driver. I suggest someone > > > update the FreeBSD driver as well. > > > > > > > Hi, > > > > I don't have vr(4) hardwares(if I had I would have converted vr(4) > > to use bus_dma(9)). Would you review/test the attached patch? > > Pyun, > > I'd say to go ahead and commit the patch. > For a record, I've commited the patch to CURRENT/RELENG_7. -- Regards, Pyun YongHyeon From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 06:47:15 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E506016A417 for ; Fri, 12 Oct 2007 06:47:15 +0000 (UTC) (envelope-from cristi@net.utcluj.ro) Received: from bavaria.utcluj.ro (unknown [IPv6:2001:b30:5000:2:20e:cff:fe4b:ca01]) by mx1.freebsd.org (Postfix) with ESMTP id 293F313C45D for ; Fri, 12 Oct 2007 06:47:15 +0000 (UTC) (envelope-from cristi@net.utcluj.ro) Received: from localhost (localhost [127.0.0.1]) by bavaria.utcluj.ro (Postfix) with ESMTP id 7933C5083F; Fri, 12 Oct 2007 09:47:13 +0300 (EEST) X-Virus-Scanned: by the daemon playing with your mail on local.mail.utcluj.ro Received: from bavaria.utcluj.ro ([127.0.0.1]) by localhost (bavaria.utcluj.ro [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DCo1nahtEnMm; Fri, 12 Oct 2007 09:47:07 +0300 (EEST) Received: from [10.132.2.248] (hades.eduroam.int.utcluj.ro [10.132.2.248]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by bavaria.utcluj.ro (Postfix) with ESMTP id 329095083D; Fri, 12 Oct 2007 09:47:07 +0300 (EEST) Message-ID: <470F1869.5070803@net.utcluj.ro> Date: Fri, 12 Oct 2007 09:47:05 +0300 From: Cristian KLEIN User-Agent: Thunderbird 1.5.0.13 (X11/20070824) MIME-Version: 1.0 To: "Marc G. Fournier" References: <20011EE14844381044655F4D@ganymede.hub.org> In-Reply-To: <20011EE14844381044655F4D@ganymede.hub.org> X-Enigmail-Version: 0.94.2.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: wireless recommendations ... X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 06:47:16 -0000 Marc G. Fournier wrote: > > I'm looking to do some consulting on a project that will involve wireless > networks ... since, if it goes forward, I'm going to be the "Unix person", so, > of course, the unix side will be FreeBSD ... > > ... but, I haven't used wireless at all under FreeBSD ... what do we support > *well*? The machine(s) are going to be remote, so I'd like to go with > something that is generally felt to be 'consistently reliable' vs 'cheap' ... > or, at least, somewhere in the middle ground would be nice :) FreeBSD works very well with Intel PRO/Wireless 2200BG. However, many people consider these rather low-end wireless cards. From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 09:54:17 2007 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5CAE516A418; Fri, 12 Oct 2007 09:54:17 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) Received: from izb.knu.ac.kr (unknown [IPv6:2002:9be6:9d5d:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 118EF13C45D; Fri, 12 Oct 2007 09:54:17 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) Received: by draba.izb.knu.ac.kr (Postfix, from userid 59) id CB3A73EA4; Fri, 12 Oct 2007 18:54:13 +0900 (KST) X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on draba.izb.knu.ac.kr X-Spam-Level: X-Spam-Status: No, score=-46.7 required=15.1 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VERIFIED autolearn=disabled version=3.2.3 X-Spam-Comment: DKIM? See http://www.google.com/search?btnI&q=RFC+4871 Received: from izb.knu.ac.kr (localhost.izb.knu.ac.kr [127.0.0.1]) by draba.izb.knu.ac.kr (Postfix) with ESMTP id EBBB53EA0; Fri, 12 Oct 2007 18:54:10 +0900 (KST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=izb.knu.ac.kr; h=subject: from:reply-to:to:cc:content-type:content-transfer-encoding:date: message-id:mime-version; q=dns/txt; s=s1024; bh=DQ5IdVFErtFhl4S6 uu5zVFNDToE=; b=j/Di0FuBV/VM2lem/SP9fpZpAE9A+6IIoocNGbbQAZBF0aIm nQa/G9P2rI7LwVxy86cMEihDmknZpU9IrHAAT9BjO6iCvzFtMWIL18qjvtu4XobL Mxt/OjQ8yYT7iZlBw1UMwAcuZCJhhRRGv7Luu+z4nz4Swpl9ZUUMETGQxGA= Received: from viola.izb.knu.ac.kr (viola.izb.knu.ac.kr [IPv6:2002:9be6:9d5d:3::3]) by draba.izb.knu.ac.kr (Postfix) with ESMTP id CBFC43E9D; Fri, 12 Oct 2007 18:54:10 +0900 (KST) Received: by viola.izb.knu.ac.kr (Postfix, from userid 1001) id 81E145DFF; Fri, 12 Oct 2007 18:54:12 +0900 (KST) From: Byung-Hee HWANG To: net@freebsd.org Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: InZealBomb Date: Fri, 12 Oct 2007 18:54:11 +0900 Message-Id: <1192182851.13642.37.camel@viola.izb.knu.ac.kr> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1.1 FreeBSD GNOME Team Port Cc: postmaster@freebsd.org Subject: unknown problem with mx1.freebsd.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: bh@izb.knu.ac.kr List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 09:54:17 -0000 Hi there, Let me say this.. I just like all stuff around IPv6. And now I need one native IPv6 address for my FreeBSD box, which is email gateway. There was unknown problem related to IPv6 area between my FreeBSD box [2002:9be6:9d5d:1::1] and mx1.freebsd.org [2001:4f8:fff6::34]. Here is the shot obtained from my email header: (see 'unknown' string) --- the shot begins here --- Received: from izb.knu.ac.kr (unknown [IPv6:2002:9be6:9d5d:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 51F7B13C459 for ; Fri, 12 Oct 2007 09:17:41 +0000 (UTC) (envelope-from bh@izb.knu.ac.kr) --- the shot ends here --- Sometimes, it brought about time out error on MX routing between my FreeBSD box and mx1.freebsd.org. And now here are two questions for the *radical* solution: [1] Is it possible to obtain native IPv6 address? [2] If it is possible, how can I obtain the native IPv6 address? Or I would like to listen to any comments;; Thanks, -- Byung-Hee HWANG "And I ain't gonna change." -- Nino Valenti, "Chapter 13", page 184 From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 12:43:15 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE02316A5CA for ; Fri, 12 Oct 2007 12:43:15 +0000 (UTC) (envelope-from patrick.bihan-faou@mindstep.com) Received: from postfix2-g20.free.fr (postfix2-g20.free.fr [212.27.60.43]) by mx1.freebsd.org (Postfix) with ESMTP id 8952E13C455 for ; Fri, 12 Oct 2007 12:43:10 +0000 (UTC) (envelope-from patrick.bihan-faou@mindstep.com) Received: from smtp8-g19.free.fr (smtp8-g19.free.fr [212.27.42.65]) by postfix2-g20.free.fr (Postfix) with ESMTP id 53F6E1BB1227 for ; Fri, 12 Oct 2007 12:18:33 +0200 (CEST) Received: from smtp8-g19.free.fr (localhost [127.0.0.1]) by smtp8-g19.free.fr (Postfix) with ESMTP id 4A57D17F525; Fri, 12 Oct 2007 14:19:33 +0200 (CEST) Received: from crest.mindstep.com (kawa.mindstep.com [88.167.204.204]) by smtp8-g19.free.fr (Postfix) with ESMTP id 9DC4317F513; Fri, 12 Oct 2007 14:19:32 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by kawa.mindstep.fr (Postfix) with ESMTP id E0FB91FE7B; Fri, 12 Oct 2007 14:19:31 +0200 (CEST) (envelope-from patrick.bihan-faou@mindstep.com) X-Virus-Scanned: by amavisd-new on ZunoBox at kawa.mindstep.fr Received: from kawa.mindstep.fr ([127.0.0.1]) by localhost (kawa.mindstep.fr [127.0.0.1]) (amavisd-new, port 10024) with LMTP id WHOsS2GdtaBQ; Fri, 12 Oct 2007 14:19:31 +0200 (CEST) Received: from [192.168.0.248] (ALyon-156-1-33-126.w86-216.abo.wanadoo.fr [86.216.56.126]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by kawa.mindstep.fr (Postfix) with ESMTP id B4A4F1FE78; Fri, 12 Oct 2007 14:19:30 +0200 (CEST) (envelope-from patrick.bihan-faou@mindstep.com) Message-ID: <470F650E.7010300@mindstep.com> Date: Fri, 12 Oct 2007 14:14:06 +0200 From: Patrick Bihan-Faou Organization: MindStep User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: "Marc G. Fournier" References: <20011EE14844381044655F4D@ganymede.hub.org> <470F1869.5070803@net.utcluj.ro> In-Reply-To: <470F1869.5070803@net.utcluj.ro> X-Enigmail-Version: 0.95.3 OpenPGP: id=DADA6685 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: freebsd-net@freebsd.org Subject: Re: wireless recommendations ... X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 12:43:15 -0000 Cristian KLEIN a écrit : > Marc G. Fournier wrote: > >> I'm looking to do some consulting on a project that will involve wireless >> networks ... since, if it goes forward, I'm going to be the "Unix person", so, >> of course, the unix side will be FreeBSD ... >> >> ... but, I haven't used wireless at all under FreeBSD ... what do we support >> *well*? The machine(s) are going to be remote, so I'd like to go with >> something that is generally felt to be 'consistently reliable' vs 'cheap' ... >> or, at least, somewhere in the middle ground would be nice :) >> > > Go with ralink or atheros based cards. They are available under various names from a bunch of vendors. They work well and can be used to build access points. If you choose a ralink based card, and use freebsd 6, update the driver to include support for the latest chipsets are these are the ones that are usually available. Patrick. From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 15:04:54 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8854216A419 for ; Fri, 12 Oct 2007 15:04:54 +0000 (UTC) (envelope-from liujiusheng@gmail.com) Received: from nz-out-0506.google.com (nz-out-0506.google.com [64.233.162.229]) by mx1.freebsd.org (Postfix) with ESMTP id 42CD113C461 for ; Fri, 12 Oct 2007 15:04:54 +0000 (UTC) (envelope-from liujiusheng@gmail.com) Received: by nz-out-0506.google.com with SMTP id l8so658031nzf for ; Fri, 12 Oct 2007 08:04:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=J+huHDvrAGyZHeedeA/D5MJphvyCqdvVESioealAZWk=; b=MHeqp/fUfuw+O1cVtlnd8Ued4R6lC9MaMrgGLL35k5VnESSomQ87xYicKUgfmFblnPQ3xDqk2/CBuo9XjBf9IfpS9ayGUV4i8A0zpt4uq7HTgt2fcWhjnqwca13dMv7EdLTDjtJ4aZZdlAT56gWfzg0M35KfL6EuDQaeIZ85Jyg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=FwgmthDAlx+/GS0gvf47deyKIBo9DEB3m6B/o7gGN8+WU7NE2CYn+FAnn0kqxkEPPn7ErP8P3aOnTsiEMmSUXVsWFyn+wipDL/gGlI3cJ04VCwazfQ1rjfQLF3ICvxsMSTb8FlzTdpokw1++NJk9tEFlIXPnflLHtae+O+ihgnA= Received: by 10.142.203.13 with SMTP id a13mr992154wfg.1192199884844; Fri, 12 Oct 2007 07:38:04 -0700 (PDT) Received: by 10.142.88.19 with HTTP; Fri, 12 Oct 2007 07:38:04 -0700 (PDT) Message-ID: Date: Fri, 12 Oct 2007 22:38:04 +0800 From: "Jiusheng Liu" To: freebsd-net@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: When interface becomes down, ipv6 direct routes are not deleted X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 15:04:54 -0000 When I make the interface down by ifconfig, all the direct routes are not deleted. And the addresses state are not changed. And I can even ping those address in this interface. Is this correct, or a bug? I test it in vmware virtual machine. This is my first post to this mailing list, and I don't know if it is the right place. Any ideas are appreciated, thank you in advance. From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 18:25:15 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2589316A469 for ; Fri, 12 Oct 2007 18:25:15 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx1.freebsd.org (Postfix) with ESMTP id 00AA613C442; Fri, 12 Oct 2007 18:25:12 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <470FBC05.6010601@FreeBSD.org> Date: Fri, 12 Oct 2007 20:25:09 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Jack Vogel , freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: em driver sending bad packet lengths X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 18:25:15 -0000 I am seeing the em driver on 7.0 sending packets with bad UDP (and apparently sometimes IP) packet length fields. This is from UDP NFS traffic (90MB/sec over gige). These packets are dropped on reception by the kernel and counted. Here is a tcpdump trace showing some bad packets: 17:50:27.912629 IP bad-len 0 17:50:27.912748 IP bad-len 0 17:50:27.912764 IP bad-len 0 I havent yet caught a better tcpdump of the UDP bad packets but they are logged by netstat -s hydra1# netstat -s -p udp udp: 120091992 datagrams received 0 with incomplete header 1775 with bad data length field ^^^^ 14840 with bad checksum 0 with no checksum 16 dropped due to no socket 258 broadcast/multicast datagrams undelivered 0 dropped due to full socket buffers 0 not for hashed pcb 120075103 delivered 120190737 datagrams output 0 times multicast source filter matched Disabling txcsum and rxcsum didnt help. em0: port 0x2000-0x201f mem 0xd8a00000-0xd8a1ffff irq 18 at device 0.0 on pci4 em0: Ethernet address: 00:30:48:33:54:ca em0: [FILTER] em0@pci4:0:0: class=0x020000 card=0x000015d9 chip=0x10968086 rev=0x01 hdr=0x00 vendor = 'Intel Corporation' device = 'PRO/1000 EB Network Connection' class = network subclass = ethernet em0: port 0x4000-0x401f mem 0xe1000000-0xe101ffff irq 16 at device 0.0 on pci18 em0: Ethernet address: 00:30:48:8f:55:48 em0: [FILTER] em0@pci18:0:0: class=0x020000 card=0x108c15d9 chip=0x108c8086 rev=0x03 hdr=0x00 vendor = 'Intel Corporation' device = 'PRO/1000 PM' class = network subclass = ethernet The second-order effect from this is that our NFS client currently misbehaves when UDP packets are dropped, and this leads to data corruption. Kris From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 19:21:30 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E688916A417 for ; Fri, 12 Oct 2007 19:21:30 +0000 (UTC) (envelope-from jhall@vandaliamo.net) Received: from trueband.net (director.trueband.net [216.163.120.8]) by mx1.freebsd.org (Postfix) with SMTP id 8A62113C442 for ; Fri, 12 Oct 2007 19:21:30 +0000 (UTC) (envelope-from jhall@vandaliamo.net) Received: (qmail 8889 invoked by uid 1006); 12 Oct 2007 18:54:49 -0000 Received: from jhall@vandaliamo.net by rs0 by uid 1003 with qmail-scanner-1.16 (spamassassin: 3.1.4. Clear:SA:0(-1.4/100.0):. Processed in 0.854793 secs); 12 Oct 2007 18:54:49 -0000 X-Spam-Status: No, hits=-1.4 required=100.0 X-Spam-Level: Received: from unknown (HELO trueband.net) (172.16.0.14) by -v with SMTP; 12 Oct 2007 18:54:48 -0000 Received: (qmail 14341 invoked from network); 12 Oct 2007 18:54:48 -0000 Received: from unknown (HELO admintool.trueband.net) (127.0.0.1) by -v with SMTP; 12 Oct 2007 18:54:48 -0000 Received: from 65.117.48.155 (SquirrelMail authenticated user jhall@vandaliamo.net) by admintool.trueband.net with HTTP; Fri, 12 Oct 2007 18:54:48 -0000 (GMT) Message-ID: <1598.65.117.48.155.1192215288.squirrel@admintool.trueband.net> Date: Fri, 12 Oct 2007 18:54:48 -0000 (GMT) From: jhall@vandaliamo.net To: freebsd-net@freebsd.org User-Agent: SquirrelMail/1.4.4 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal Subject: NAT Questions X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 19:21:31 -0000 I originally posted this to the FreeBSD questions mailing list, but did not receive any responses. If you are reading this for the second time, please accept my apologies. My ISP insists on handing all http traffic off to me on a separate IP address. Following is my configuration. External Interface------->Internal Interface--------> Rest of network 1.2.3.4/24 10.129.10.40/24 1.2.3.5/32 Alias 1.2.3.5/24 is the IP address all http traffic will come in on. 1.2.3.4/32 is the IP address all other traffic will come in on. Both of these addresses reside on a single NIC with 1.2.3.5 being an alias. ipnat.rules rdr 1.2.3.5/32 port 80 -> 10.129.10.49 port 80 map em1 10.129.10.0/24 -> 0.0.0.0/32 10.129.10.49 has 10.129.10.40 (my firewall) listed as its default gateway. When it responds to a request that has been forwarded, how will the firewall return the response? Will it return the request on 1.2.3.5? Thanks for your help and if any additional information is needed, please let me know. Jay From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 19:54:28 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8857D16A477 for ; Fri, 12 Oct 2007 19:54:28 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.187]) by mx1.freebsd.org (Postfix) with ESMTP id 1EAC713C481 for ; Fri, 12 Oct 2007 19:54:27 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so839694nfb for ; Fri, 12 Oct 2007 12:54:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=1I7ph1X+iyd6YktSDnHsP7FlgbQDE6HozpImpWzHNaU=; b=mh/8bLvizs6q0t3wIInsL9fqSrX9uyn7zZ719RI+6pZOi29NUH35Io81PgPnQnSz8peZrnONB7h/WRu5kxbp/H0y1TKqso5W1MVYcPaRxYhfQKEoi5PoTuC09JbdVElc/nrG4kXX/QpJ1qA/V+hM9reTEG1xTrVHDuivPBwEPJU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ukJZVucNkrUygn5SbwrcDMYUdXYec6/lqk5r1xYG4sfDpUxKLbQiGJ1njQiFK1FL72F0rlRsmRQKQ2rIiSqdFLsG4+uB8VY7oVnoPQL+Mkeucf/54coF+Pe/RxGvR1zgqFrD+yhOtAPMEbMmOfUjOMyVef9LREX6unO78iWPTlk= Received: by 10.86.80.5 with SMTP id d5mr2631131fgb.1192218866801; Fri, 12 Oct 2007 12:54:26 -0700 (PDT) Received: by 10.86.100.19 with HTTP; Fri, 12 Oct 2007 12:54:26 -0700 (PDT) Message-ID: <2a41acea0710121254j14fbecbcs213f353165f2c197@mail.gmail.com> Date: Fri, 12 Oct 2007 12:54:26 -0700 From: "Jack Vogel" To: "Kris Kennaway" In-Reply-To: <470FBC05.6010601@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <470FBC05.6010601@FreeBSD.org> Cc: freebsd-net@freebsd.org Subject: Re: em driver sending bad packet lengths X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 19:54:28 -0000 You should a couple different adapters below, are you saying that its just one of them, can you try different ones to see if its specific. Also, would you be able to test my latest driver to see if it still happens? Cheers, Jack On 10/12/07, Kris Kennaway wrote: > I am seeing the em driver on 7.0 sending packets with bad UDP (and > apparently sometimes IP) packet length fields. This is from UDP NFS > traffic (90MB/sec over gige). These packets are dropped on reception by > the kernel and counted. > > Here is a tcpdump trace showing some bad packets: > > 17:50:27.912629 IP bad-len 0 > 17:50:27.912748 IP bad-len 0 > 17:50:27.912764 IP bad-len 0 > > I havent yet caught a better tcpdump of the UDP bad packets but they are > logged by netstat -s > > hydra1# netstat -s -p udp > udp: > 120091992 datagrams received > 0 with incomplete header > 1775 with bad data length field > ^^^^ > 14840 with bad checksum > 0 with no checksum > 16 dropped due to no socket > 258 broadcast/multicast datagrams undelivered > 0 dropped due to full socket buffers > 0 not for hashed pcb > 120075103 delivered > 120190737 datagrams output > 0 times multicast source filter matched > > Disabling txcsum and rxcsum didnt help. > > em0: port > 0x2000-0x201f mem 0xd8a00000-0xd8a1ffff irq 18 at device 0.0 on pci4 > em0: Ethernet address: 00:30:48:33:54:ca > em0: [FILTER] > > em0@pci4:0:0: class=0x020000 card=0x000015d9 chip=0x10968086 rev=0x01 > hdr=0x00 > vendor = 'Intel Corporation' > device = 'PRO/1000 EB Network Connection' > class = network > subclass = ethernet > > em0: port > 0x4000-0x401f mem 0xe1000000-0xe101ffff irq 16 at device 0.0 on pci18 > em0: Ethernet address: 00:30:48:8f:55:48 > em0: [FILTER] > > em0@pci18:0:0: class=0x020000 card=0x108c15d9 chip=0x108c8086 rev=0x03 > hdr=0x00 > vendor = 'Intel Corporation' > device = 'PRO/1000 PM' > class = network > subclass = ethernet > > The second-order effect from this is that our NFS client currently > misbehaves when UDP packets are dropped, and this leads to data corruption. > > Kris > From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 19:55:42 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A06A16A417 for ; Fri, 12 Oct 2007 19:55:42 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.184]) by mx1.freebsd.org (Postfix) with ESMTP id C71E513C4AC for ; Fri, 12 Oct 2007 19:55:41 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so839889nfb for ; Fri, 12 Oct 2007 12:55:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=YWFqgihLFqjiHChUekGBsP8q3Np7phz0f6kMi52fe+M=; b=bC53Gw3kscvTskWCqjaasA3HYpvUUNgIIg2UEvBG2y4rOxWNWubbFMV47N8IhW6NUGIMcE2T2lA4hVYYuxhObud50WN4AdOaq4hBDAYbX4WIk5zX8D2/FXMwSGsCsqVy/h7mOPxc8y6raX2rUFMo4vL7bMfoxqCjf7xscwkDT9E= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=dh3lPfVx0vlZp7mIuPN7nfPQmgh/iSGQ9hP8MEgjLJsypJ5XHuENmM/8H+FseoJXcbsgA8tU2Yx+6u7OIObPYq22z88IN0iN9I3LF36ZghVS53LknEq0oflV+5QOvAR2ivbjm+5NkWwTiPrIB+26y33fjlvDLAU3lmbLMQl0cYc= Received: by 10.86.99.9 with SMTP id w9mr2623837fgb.1192218940616; Fri, 12 Oct 2007 12:55:40 -0700 (PDT) Received: by 10.86.100.19 with HTTP; Fri, 12 Oct 2007 12:55:40 -0700 (PDT) Message-ID: <2a41acea0710121255h54d93645ybd97ffd557af47ce@mail.gmail.com> Date: Fri, 12 Oct 2007 12:55:40 -0700 From: "Jack Vogel" To: "Kris Kennaway" In-Reply-To: <2a41acea0710121254j14fbecbcs213f353165f2c197@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <470FBC05.6010601@FreeBSD.org> <2a41acea0710121254j14fbecbcs213f353165f2c197@mail.gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: em driver sending bad packet lengths X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 19:55:42 -0000 On 10/12/07, Jack Vogel wrote: > You should a couple different adapters below, are you saying that > its just one of them, can you try different ones to see if its specific. > > Also, would you be able to test my latest driver to see if it still > happens? > > Cheers, > > Jack LOL, in the midst of a couple of other internal firedrills, can you tell ? :) What I meant to say is you 'list a couple different adapters" Jack From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 20:00:32 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3FDF16A46D for ; Fri, 12 Oct 2007 20:00:31 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx1.freebsd.org (Postfix) with ESMTP id 577AD13C461; Fri, 12 Oct 2007 20:00:27 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <470FD257.2090103@FreeBSD.org> Date: Fri, 12 Oct 2007 22:00:23 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Jack Vogel References: <470FBC05.6010601@FreeBSD.org> <2a41acea0710121254j14fbecbcs213f353165f2c197@mail.gmail.com> In-Reply-To: <2a41acea0710121254j14fbecbcs213f353165f2c197@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: em driver sending bad packet lengths X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 20:00:32 -0000 Jack Vogel wrote: > You should a couple different adapters below, are you saying that > its just one of them, can you try different ones to see if its specific. They're both showing the problem. > Also, would you be able to test my latest driver to see if it still > happens? Where is it? Kris From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 20:16:34 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBD0F16A418; Fri, 12 Oct 2007 20:16:34 +0000 (UTC) (envelope-from erik@cepheid.org) Received: from mail.cepheid.org (aleph.cepheid.org [72.232.60.94]) by mx1.freebsd.org (Postfix) with ESMTP id A072613C447; Fri, 12 Oct 2007 20:16:34 +0000 (UTC) (envelope-from erik@cepheid.org) Received: by mail.cepheid.org (Postfix, from userid 1006) id A88A59B4048; Fri, 12 Oct 2007 14:59:44 -0500 (CDT) Date: Fri, 12 Oct 2007 14:59:44 -0500 From: Erik Osterholm To: Andrew Thompson Message-ID: <20071012195944.GA77625@aleph.cepheid.org> Mail-Followup-To: Erik Osterholm , Andrew Thompson , Jon Otterholm , freebsd-net@freebsd.org References: <470E7C97.3080804@ide.resurscentrum.se> <20071011194653.GB40950@heff.fud.org.nz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071011194653.GB40950@heff.fud.org.nz> User-Agent: Mutt/1.4.2.3i Cc: freebsd-net@freebsd.org, Jon Otterholm Subject: Re: if_bridge on a vlan-trunk X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 20:16:34 -0000 On Fri, Oct 12, 2007 at 08:46:53AM +1300, Andrew Thompson wrote: > On Thu, Oct 11, 2007 at 09:42:15PM +0200, Jon Otterholm wrote: > > Hi. > > > > Does anyone know if it is possible to put a transparent bridge on a > > vlan-trunk? > > As from rev1.100 of if_bridge back in June it will correctly use the > vlan number if the forwarding table so it is now possible to bridge a > vlan trunk. Is this all you need? (7+ only, it wont be in 6-stable) Does anything special need to be done in order for this to work? I've got a machine running a recent snapshot (7.0-CURRENT-200709) where it simply isn't bridging the trunk. It looks like ARP isn't getting passed. If I remove the FreeBSD box from the line, everything works. If I explicitly create VLANs interfaces on the FreeBSD box and just bridge the VLAN interfaces, it works. em0: flags=8943 metric 0 mtu 1500 options=88 ether 00:30:48:43:7e:dc media: Ethernet autoselect (100baseTX ) status: active em1: flags=8943 metric 0 mtu 1500 options=88 ether 00:30:48:43:7e:dd media: Ethernet autoselect (1000baseTX ) status: active plip0: flags=108810 metric 0 mtu 1500 lo0: flags=8049 metric 0 mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 bridge0: flags=8843 metric 0 mtu 1500 ether 2e:8d:bb:a9:15:94 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: em1 flags=143 member: em0 flags=143 FreeBSD 7.0-CURRENT-200709 FreeBSD 7.0-CURRENT-200709 #0: Tue Sep 11 04:44:48 UTC 2007 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 Thanks, Erik From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 20:46:03 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C61916A419; Fri, 12 Oct 2007 20:46:03 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx1.freebsd.org (Postfix) with ESMTP id 8924913C461; Fri, 12 Oct 2007 20:46:00 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <470FDD06.4090904@FreeBSD.org> Date: Fri, 12 Oct 2007 22:45:58 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Mohan Srinivasan References: <200710121912.l9CJCLeI085992@repoman.freebsd.org> In-Reply-To: <200710121912.l9CJCLeI085992@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org, cvs-src@FreeBSD.org Subject: Re: cvs commit: src/sys/nfsclient nfs.h nfs_socket.c nfs_subs.c nfsmount.h X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 20:46:03 -0000 Mohan Srinivasan wrote: > mohans 2007-10-12 19:12:21 UTC > > FreeBSD src repository > > Modified files: > sys/nfsclient nfs.h nfs_socket.c nfs_subs.c nfsmount.h > Log: > NFS MP scaling changes. > - Eliminate the hideous nfs_sndlock that serialized NFS/TCP request senders > thru the sndlock. > - Institute a new nfs_connectlock that serializes NFS/TCP reconnects. Add > logic to wait for pending request senders to finish sending before > reconnecting. Dial down the sb_timeo for NFS/TCP sockets to 1 sec. > - Break out the nfs xid manipulation under a new nfs xid lock, rather than > over loading the nfs request lock for this purpose. > - Fix some of the locking in nfs_request. > Many thanks to Kris Kennaway for his help with this and for initiating the > MP scaling analysis and work. Kris also tested this patch thorougly. > Approved by: re@ (Ken Smith) For the benefit of others: this change improved throughput by about 10% at high I/O loads with a dual core client, and by a factor of 10 on an 8 core client (this was mostly the home-brew nfs_sndlock, which mohan correctly describes :-). Mohan's previous commit that increases the nfs server socket buffer size is also very important for NFS performance. Without it I was only getting 1-2MB/sec throughput over 10Gb ethernet with UDP mounts, because the minuscule 32kb socket buffer was constantly filling up and forcing retransmits. With the new default of 256KB I still get full buffers with 10ge, so you may need to increase this further to eliminate this problem. It might be OK for gige speeds, although I was still seeing some buffer full events, so maybe we should consider increasing the default sockbuf size to 512KB or so if this is widespread. As a side comment there is a bug in either the nfs client or server that corrupts I/O when there is packet loss with UDP mounts (the default). TCP mounts handle this at the TCP layer. Kris From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 20:46:14 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 360D516A500 for ; Fri, 12 Oct 2007 20:46:14 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from heff.fud.org.nz (203-109-251-39.static.bliink.ihug.co.nz [203.109.251.39]) by mx1.freebsd.org (Postfix) with ESMTP id D76DE13C47E for ; Fri, 12 Oct 2007 20:46:13 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: by heff.fud.org.nz (Postfix, from userid 1001) id 2C4201CC58; Sat, 13 Oct 2007 09:46:12 +1300 (NZDT) Date: Sat, 13 Oct 2007 09:46:12 +1300 From: Andrew Thompson To: Erik Osterholm , Jon Otterholm , freebsd-net@freebsd.org Message-ID: <20071012204612.GC78305@heff.fud.org.nz> References: <470E7C97.3080804@ide.resurscentrum.se> <20071011194653.GB40950@heff.fud.org.nz> <20071012195944.GA77625@aleph.cepheid.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071012195944.GA77625@aleph.cepheid.org> User-Agent: Mutt/1.5.13 (2006-08-11) Cc: Subject: Re: if_bridge on a vlan-trunk X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 20:46:14 -0000 On Fri, Oct 12, 2007 at 02:59:44PM -0500, Erik Osterholm wrote: > On Fri, Oct 12, 2007 at 08:46:53AM +1300, Andrew Thompson wrote: > > On Thu, Oct 11, 2007 at 09:42:15PM +0200, Jon Otterholm wrote: > > > Hi. > > > > > > Does anyone know if it is possible to put a transparent bridge on a > > > vlan-trunk? > > > > As from rev1.100 of if_bridge back in June it will correctly use the > > vlan number if the forwarding table so it is now possible to bridge a > > vlan trunk. Is this all you need? (7+ only, it wont be in 6-stable) > > Does anything special need to be done in order for this to work? I've > got a machine running a recent snapshot (7.0-CURRENT-200709) where it > simply isn't bridging the trunk. It looks like ARP isn't getting > passed. If I remove the FreeBSD box from the line, everything works. > If I explicitly create VLANs interfaces on the FreeBSD box and just > bridge the VLAN interfaces, it works. > It doesnt need anything special to work. If you go 'ifconfig bridge0 addr' it should show the forwarding table with the correct vlan. 00:11:bb:48:ca:02 Vlana100 em0 1200 flags=0<> Can you tcpdump on em0, em1 and bridge0 to see where the arp is being dropped. cheers, Andrew From owner-freebsd-net@FreeBSD.ORG Fri Oct 12 20:55:44 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ECB6A16A417 for ; Fri, 12 Oct 2007 20:55:44 +0000 (UTC) (envelope-from SRS0=8507e75c47956b65f75d1f4b9b9648bf9c757d4e=486=es.net=oberman@es.net) Received: from postal1.es.net (postal3.es.net [IPv6:2001:400:14:3::8]) by mx1.freebsd.org (Postfix) with ESMTP id 819FE13C461 for ; Fri, 12 Oct 2007 20:55:44 +0000 (UTC) (envelope-from SRS0=8507e75c47956b65f75d1f4b9b9648bf9c757d4e=486=es.net=oberman@es.net) Received: from ptavv.es.net (ptavv.es.net [198.128.4.29]) by postal3.es.net (Postal Node 3) with ESMTP (SSL) id REP06443; Fri, 12 Oct 2007 13:55:43 -0700 Received: from ptavv.es.net (ptavv.es.net [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id 248944500E; Fri, 12 Oct 2007 13:55:42 -0700 (PDT) To: "Jiusheng Liu" In-Reply-To: Your message of "Fri, 12 Oct 2007 22:38:04 +0800." Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1192222542_15222P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Fri, 12 Oct 2007 13:55:42 -0700 From: "Kevin Oberman" Message-Id: <20071012205542.248944500E@ptavv.es.net> X-Sender-IP: 198.128.4.29 X-Sender-Domain: es.net X-Recipent: ;; X-Sender: X-To_Name: Jiusheng Liu X-To_Domain: gmail.com X-To: "Jiusheng Liu" X-To_Email: liujiusheng@gmail.com X-To_Alias: liujiusheng Cc: freebsd-net@freebsd.org Subject: Re: When interface becomes down, ipv6 direct routes are not deleted X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2007 20:55:45 -0000 --==_Exmh_1192222542_15222P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Date: Fri, 12 Oct 2007 22:38:04 +0800 > From: "Jiusheng Liu" > Sender: owner-freebsd-net@freebsd.org > > When I make the interface down by ifconfig, all the direct routes are > not deleted. And the addresses state are not changed. And I can even > ping those address in this interface. > Is this correct, or a bug? I test it in vmware virtual machine. > > This is my first post to this mailing list, and I don't know if it is > the right place. > Any ideas are appreciated, thank you in advance. Looks like the right place to me. There has been some discussion about the deletion of routes whan an interface is configured DOWN, but there are several problems that this causes. Basically, ifconfig should not touch routing information. I'm not sure whet you mean by "the addresses state". The address of an interface should certainly not be changed by setting it DOWN. It should retain the address since it should not need reconfiguration when it is set to UP. (DHCP assigned addresses are an exception to this.) You should not be able to ping the down interface. If you really are, something is broken, although it may have to do with the vmware operation. I don't know much detail about how they network between host and client system. If they are really using the loopback, then things pings would work. And putting an entry in /etc/hosts for the local system name that points to 127.0.0.1 is fairly common and is required for many software things to work right. An external system should not be able to ping that interface. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751 --==_Exmh_1192222542_15222P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFHD99Okn3rs5h7N1ERAhJeAJwLW/mGdnJb4j4bud+2EDBoVflm7wCaAth7 8Va9BiMQ8NM1YyVeCUTaqIE= =UX43 -----END PGP SIGNATURE----- --==_Exmh_1192222542_15222P-- From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 01:29:09 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C1B116A41A; Sat, 13 Oct 2007 01:29:09 +0000 (UTC) (envelope-from rees@citi.umich.edu) Received: from citi.umich.edu (unknown [IPv6:2001:468:e9c:3060::4]) by mx1.freebsd.org (Postfix) with ESMTP id 4EA2213C459; Sat, 13 Oct 2007 01:29:09 +0000 (UTC) (envelope-from rees@citi.umich.edu) Received: from citi.umich.edu (dsl093-001-248.det1.dsl.speakeasy.net [66.93.1.248]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "Jim Rees", Issuer "CITI Production KCA" (verified OK)) by citi.umich.edu (Postfix) with ESMTP id 84A2644AE; Fri, 12 Oct 2007 21:29:08 -0400 (EDT) Date: Fri, 12 Oct 2007 21:29:07 -0400 From: Jim Rees To: Kris Kennaway Message-ID: <20071013012907.GA11606@citi.umich.edu> References: <200710121912.l9CJCLeI085992@repoman.freebsd.org> <470FDD06.4090904@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <470FDD06.4090904@FreeBSD.org> Cc: freebsd-net@FreeBSD.org, Mohan Srinivasan Subject: Re: cvs commit: src/sys/nfsclient nfs.h nfs_socket.c nfs_subs.c nfsmount.h X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 01:29:09 -0000 Kris Kennaway wrote: Mohan's previous commit that increases the nfs server socket buffer size is also very important for NFS performance. Without it I was only getting 1-2MB/sec throughput over 10Gb ethernet with UDP mounts You're trying to use nfs/udp at 10G? I wouldn't expect that to work. I've recently been trying to get good performance from nfs at 10Gbps (on linux). The required window is 150MB for a transatlantic link. From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 09:30:04 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1B0316A41A for ; Sat, 13 Oct 2007 09:30:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id C725213C478 for ; Sat, 13 Oct 2007 09:30:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9D9U4vI071594 for ; Sat, 13 Oct 2007 09:30:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9D9U4VV071591; Sat, 13 Oct 2007 09:30:04 GMT (envelope-from gnats) Date: Sat, 13 Oct 2007 09:30:04 GMT Message-Id: <200710130930.l9D9U4VV071591@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: "Adrian Punga" Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Adrian Punga List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 09:30:04 -0000 The following reply was made to PR kern/109406; it has been noted by GNATS. From: "Adrian Punga" To: bug-followup@freebsd.org, darkvincentdude@yahoo.com Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen Date: Sat, 13 Oct 2007 11:58:06 +0300 I've added the missing method (IoGetDeviceObjectPointer) but it seems the problem is not related to that method as I got the following: ndis0: mem 0xf4000000-0xf4003fff irq 17 at device 0.0 on pci16 ndis0: NDIS API version: 5.1 Fatal trap 12: page fault while in kernel mode fault virtual address = 0x0 fault code = supervisor read, page not present instruction pointer = 0x20:0xc450f12f stack pointer = 0x28:0xd4038c64 frame pointer = 0x28:0xd4038c78 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 11 (swi4: clock sio) trap number = 12 panic: page fault Continuing to search the root of the problem... Adrian Punga From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 10:00:06 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8754F16A473 for ; Sat, 13 Oct 2007 10:00:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 7B3A313C457 for ; Sat, 13 Oct 2007 10:00:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9DA06Sh074082 for ; Sat, 13 Oct 2007 10:00:06 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9DA061e074074; Sat, 13 Oct 2007 10:00:06 GMT (envelope-from gnats) Date: Sat, 13 Oct 2007 10:00:06 GMT Message-Id: <200710131000.l9DA061e074074@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: "Adrian Punga" Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Adrian Punga List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 10:00:06 -0000 The following reply was made to PR kern/109406; it has been noted by GNATS. From: "Adrian Punga" To: bug-followup@freebsd.org, darkvincentdude@yahoo.com Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen Date: Sat, 13 Oct 2007 12:51:15 +0300 OK kgdb gave me the following from the core dump: kgdb: kvm_nlist(_stopped_cpus): kgdb: kvm_nlist(_stoppcbs): [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd". Unread portion of the kernel message buffer: ndis0: mem 0xf4000000-0xf4003fff irq 17 at device 0.0 on pci16 ndis0: NDIS API version: 5.1 Fatal trap 12: page fault while in kernel mode fault virtual address = 0x0 fault code = supervisor read, page not present instruction pointer = 0x20:0xc444712f stack pointer = 0x28:0xd4038c64 frame pointer = 0x28:0xd4038c78 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 11 (swi4: clock sio) trap number = 12 panic: page fault Uptime: 5m12s Dumping 503 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 503MB (128720 pages) 487 471 455 439 423 407 391 375 359 343 327 311 295 279 263 247 231 215 199 183 167 151 135 119 103 87 71 55 39 23 7 #0 doadump () at pcpu.h:165 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); The last line belongs to __curthread which is aliased by a define as curthread and used in a lot of places in the ndis and if_ndis modules: [root@pcbsd /usr/src]# grep -R -e "curthread" * | grep ndis sys/compat/ndis/kern_ndis.c: tsleep(curthread->td_proc, PWAIT, "ndwait", hz); sys/compat/ndis/kern_windrv.c: t = &my_tids[curthread->td_oncpu]; sys/compat/ndis/kern_windrv.c: t->tid_cpu = curthread->td_oncpu; sys/compat/ndis/kern_windrv.c: if (t->tid_cpu != curthread->td_oncpu) sys/compat/ndis/kern_windrv.c: t = curthread; sys/compat/ndis/kern_windrv.c: t = curthread; sys/compat/ndis/subr_hal.c: if (mtx_owned(&disp_lock[curthread->td_oncpu])) sys/compat/ndis/subr_hal.c: mtx_lock(&disp_lock[curthread->td_oncpu]); sys/compat/ndis/subr_hal.c: mtx_unlock(&disp_lock[curthread->td_oncpu]); sys/compat/ndis/subr_ndis.c: struct thread *td = curthread; sys/compat/ndis/subr_ndis.c: struct thread *td = curthread; sys/compat/ndis/subr_ndis.c: struct thread *td = curthread; sys/compat/ndis/subr_ntoskrnl.c: struct thread *td = curthread; sys/compat/ndis/subr_ntoskrnl.c: ntoskrnl_satisfy_wait(obj, curthread); sys/compat/ndis/subr_ntoskrnl.c: struct thread *td = curthread; sys/compat/ndis/subr_ntoskrnl.c: kq->kq_td = curthread; sys/compat/ndis/subr_ntoskrnl.c: if (kmutex->km_ownerthread != curthread) { sys/compat/ndis/subr_ntoskrnl.c: if (nr->no_obj != curthread->td_proc) sys/compat/ndis/subr_ntoskrnl.c: kq->kq_td = curthread; sys/compat/ndis/subr_ntoskrnl.c: sched_bind(curthread, kq->kq_cpu); sys/compat/ndis/subr_ntoskrnl.c: sched_prio(curthread, PRI_MIN_KERN); sys/compat/ndis/subr_ntoskrnl.c: curthread->td_base_pri = PRI_MIN_KERN; sys/compat/ndis/subr_ntoskrnl.c: kq += curthread->td_oncpu; sys/compat/ndis/subr_ntoskrnl.c: return((uint32_t)curthread->td_oncpu); sys/dev/if_ndis/if_ndis.c: if ((error = suser(curthread))) sys/dev/if_ndis/if_ndis.c: if ((error = suser(curthread))) sys/dev/if_ndis/if_ndis.c: if ((error = suser(curthread))) sys/dev/if_ndis/if_ndis.c: error = suser(curthread); sys/dev/if_ndis/if_ndis.c: error = suser(curthread); I can't figure out where the call was made from as kgdb didn't gave me the full call stack. Anybody, any ideas? Adrian Punga From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 12:12:02 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 334A516A41A; Sat, 13 Oct 2007 12:12:02 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from weak.local (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx1.freebsd.org (Postfix) with ESMTP id 5881F13C45D; Sat, 13 Oct 2007 12:12:01 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <4710B60E.3020102@FreeBSD.org> Date: Sat, 13 Oct 2007 14:11:58 +0200 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Jim Rees References: <200710121912.l9CJCLeI085992@repoman.freebsd.org> <470FDD06.4090904@FreeBSD.org> <20071013012907.GA11606@citi.umich.edu> In-Reply-To: <20071013012907.GA11606@citi.umich.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@FreeBSD.org, Mohan Srinivasan Subject: Re: cvs commit: src/sys/nfsclient nfs.h nfs_socket.c nfs_subs.c nfsmount.h X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 12:12:02 -0000 Jim Rees wrote: > Kris Kennaway wrote: > > Mohan's previous commit that increases the nfs server socket buffer size > is also very important for NFS performance. Without it I was only > getting 1-2MB/sec throughput over 10Gb ethernet with UDP mounts > > You're trying to use nfs/udp at 10G? I wouldn't expect that to work. Well there some corruption issues, yes. These happen even at 1ge though, and seem to be due to packet loss (e.g. one problem is that the ID number is 16 bits so if we are doing fragment reassembly with a dropped packet it can easily roll over and assemble a corrupted packet before the correct one is retransmitted). Depending on what workload I use I see up to about 300 MB/sec throughput before it is limited by the nfsd. > I've recently been trying to get good performance from nfs at 10Gbps (on > linux). The required window is 150MB for a transatlantic link. Heh, that probably has its own challenges :) Kris From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 13:00:04 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE7A016A419 for ; Sat, 13 Oct 2007 13:00:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B7BA413C46E for ; Sat, 13 Oct 2007 13:00:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9DD04bO084075 for ; Sat, 13 Oct 2007 13:00:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9DD04wu084074; Sat, 13 Oct 2007 13:00:04 GMT (envelope-from gnats) Date: Sat, 13 Oct 2007 13:00:04 GMT Message-Id: <200710131300.l9DD04wu084074@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: "Adrian Punga" Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Adrian Punga List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 13:00:04 -0000 The following reply was made to PR kern/109406; it has been noted by GNATS. From: "Adrian Punga" To: bug-followup@freebsd.org, darkvincentdude@yahoo.com Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen Date: Sat, 13 Oct 2007 15:58:27 +0300 Without anymore nice ideas I got brutal and identified the call to curthread by classic print-debug and it seems a piece of "goofy" code in kern_ndis.c was calling it: /* * This may look really goofy, but apparently it is possible * to halt a miniport too soon after it's been initialized. * After MiniportInitialize() finishes, pause for 1 second * to give the chip a chance to handle any short-lived timers * that were set in motion. If we call MiniportHalt() too soon, * some of the timers may not be cancelled, because the driver * expects them to fire before the halt is called. */ tsleep(curthread->td_proc, PWAIT, "ndwait", hz); After commenting the tsleep call which seems to affect only some cards I got a little bit further: ndis0: mem 0xf4000000-0xf4003fff irq 17 at device 0.0 on pci16 ndis0: NDIS API version: 5.1 ndis0: Ethernet address: 00:14:a5:f0:fa:c1 Fatal trap 12: page fault while in kernel mode fault virtual address = 0x8 fault code = supervisor read, page not present instruction pointer = 0x20:0xc4362da5 stack pointer = 0x28:0xd53cdaf0 frame pointer = 0x28:0xd53cdaf8 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 2283 (kldload) trap number = 12 panic: page fault I'm suspecting an uninitialized pointer returned as the current thread in some conditions. Continuing with print-debug ;) as it seems I'm not far from a solution. Adrian Punga From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 14:00:03 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8A8316A419 for ; Sat, 13 Oct 2007 14:00:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id A604113C447 for ; Sat, 13 Oct 2007 14:00:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9DE03Fp087999 for ; Sat, 13 Oct 2007 14:00:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9DE03OZ087998; Sat, 13 Oct 2007 14:00:03 GMT (envelope-from gnats) Date: Sat, 13 Oct 2007 14:00:03 GMT Message-Id: <200710131400.l9DE03OZ087998@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: "Adrian Punga" Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Adrian Punga List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 14:00:03 -0000 The following reply was made to PR kern/109406; it has been noted by GNATS. From: "Adrian Punga" To: bug-followup@freebsd.org, darkvincentdude@yahoo.com Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen Date: Sat, 13 Oct 2007 16:59:15 +0300 Huraaay! Problem fixed and now writing this reply through bcm43xx NDIS from PCBSD running kernel FreeBSD-6.2-STABLE :) It seems tsleep had a too small value for Broadcom 43XX. When trying to debug if curthread was NULL I added a device_printf before and one after the tsleep and the page fault didn't occur anymore. I'll now clean up all the mess, find out what value is suitable and submit a patch for this. Adrian Punga From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 14:52:44 2007 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 541EB16A41A for ; Sat, 13 Oct 2007 14:52:44 +0000 (UTC) (envelope-from adrian.punga@gmail.com) Received: from fk-out-0910.google.com (fk-out-0910.google.com [209.85.128.186]) by mx1.freebsd.org (Postfix) with ESMTP id C607113C457 for ; Sat, 13 Oct 2007 14:52:43 +0000 (UTC) (envelope-from adrian.punga@gmail.com) Received: by fk-out-0910.google.com with SMTP id b27so1191511fka for ; Sat, 13 Oct 2007 07:52:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=s28XsJpK45T5gUdRav4j0AE01DQSBoWJiKGIPXhFIhw=; b=YUokHs4wQVIcnYpIgBEIdjFPtF9ZkQ/kdW04mhD7/Qf2PgF0jboBW9InzWkaEdHuDDFZmwiSL5LS9F2/L3zYe2TFY/tcdOcipwF6/UrpD32kjo0u4tcJ3Cxauz5ClyT3rmkGd1/OLa9gS9XCt2JjsFDr12mvqlOJOSa71f2uJG0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=jF9Hxj93c2II9KH1fOuFqPViF21+cZxa5IjnVkioosik33R2s46Qx5GWpWqsjpxdFaHIiu3MthCeKOMKYkLTBGpr+oPdUClabrTVhWpC2dBu5qAPgvPt36FPvYq5d/JPlNyWK1rAdekQo4+oFX3bZrZ5Ke89E1nT96tBzyDO/eQ= Received: by 10.82.134.12 with SMTP id h12mr8432756bud.1192285419838; Sat, 13 Oct 2007 07:23:39 -0700 (PDT) Received: by 10.82.166.18 with HTTP; Sat, 13 Oct 2007 07:23:39 -0700 (PDT) Message-ID: <54d97b2d0710130723s227bb2fel20444dad1bdac98@mail.gmail.com> Date: Sat, 13 Oct 2007 17:23:39 +0300 From: "Adrian Punga" To: freebsd-net@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Subject: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 14:52:44 -0000 Hi, I found the fix for the problem 109406. How can I submit the patch? Greetings, Adrian Punga From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 17:10:02 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88BDA16A419 for ; Sat, 13 Oct 2007 17:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 770F413C46A for ; Sat, 13 Oct 2007 17:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9DHA21R017938 for ; Sat, 13 Oct 2007 17:10:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9DHA2Ya017937; Sat, 13 Oct 2007 17:10:02 GMT (envelope-from gnats) Date: Sat, 13 Oct 2007 17:10:02 GMT Message-Id: <200710131710.l9DHA2Ya017937@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: "Adrian Punga" Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Adrian Punga List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 17:10:02 -0000 The following reply was made to PR kern/109406; it has been noted by GNATS. From: "Adrian Punga" To: bug-followup@freebsd.org, darkvincentdude@yahoo.com Cc: Subject: Re: kern/109406: [ndis] Broadcom WLAN driver 4.100.15.5 doesn't work with Ndisgen Date: Sat, 13 Oct 2007 20:02:47 +0300 ------=_Part_33602_10365694.1192294967344 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Attached are the sources of the modified parts of the kernel to make it work. I still didn't realized what makes it work (it's a delay but which I'm not sure). There are 5 delays and all due to device_printf in certain positions. Increasing the time for tsleep to 2 seconds doesn't work. For now I'm happy it works and maybe some of you can look at this code and come up with an explanation. On the other hand you might just want to use it and in that case just copy the files into the kernel source and recompile and it should work. Have a nice weekend everyone! Adrian Punga ------=_Part_33602_10365694.1192294967344 Content-Type: application/x-gzip; name="bcm43xx.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bcm43xx.tar.gz" X-Attachment-Id: file0 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 ------=_Part_33602_10365694.1192294967344-- From owner-freebsd-net@FreeBSD.ORG Sat Oct 13 19:10:02 2007 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7D9A16A540 for ; Sat, 13 Oct 2007 19:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id D57BF13C45B for ; Sat, 13 Oct 2007 19:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9DJA2K4023592 for ; Sat, 13 Oct 2007 19:10:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9DJA2wH023591; Sat, 13 Oct 2007 19:10:02 GMT (envelope-from gnats) Date: Sat, 13 Oct 2007 19:10:02 GMT Message-Id: <200710131910.l9DJA2wH023591@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: Norbert Papke Cc: Subject: Re: kern/116077: 6.2-STABLE panic during use of multi-cast networking client X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Norbert Papke List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2007 19:10:03 -0000 The following reply was made to PR kern/116077; it has been noted by GNATS. From: Norbert Papke To: bug-followup@freebsd.org, rse@freebsd.org Cc: Subject: Re: kern/116077: 6.2-STABLE panic during use of multi-cast networking client Date: Sat, 13 Oct 2007 11:03:18 -0700 I am experiencing similar issues. In my case, they manifest themselves as a crash during system shut-down. I suspect that this is triggered when avahi stops. I don't believe that the suggested change will work -- at least in my case. The inm->inm_ifma pointer also appears to be invalid. ----------- FreeBSD proven.lan 6.2-STABLE FreeBSD 6.2-STABLE #0: Fri Oct 12 09:22:51 PDT 2007 npapke@proven.lan:/usr4/obj/usr/src/sys/NGP i386 ----------- kgdb: kvm_nlist(_stopped_cpus): kgdb: kvm_nlist(_stoppcbs): [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd". Unread portion of the kernel message buffer: <118>Oct 13 08:18:35 proven syslogd: exiting on signal 15 Fatal trap 12: page fault while in kernel mode fault virtual address = 0x69775fd0 fault code = supervisor read, page not present instruction pointer = 0x20:0xc05cca9e stack pointer = 0x28:0xe9523b08 frame pointer = 0x28:0xe9523b24 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 1222 (avahi-daemon) panic: from debugger Uptime: 14h50m58s Dumping 2047 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 2047MB (523968 pages) 2031 2015 1999 1983 1967 1951 1935 1919 1903 1887 1871 1855 1839 1823 1807 1791 1775 1759 1743 1727 1711 1695 1679 1663 1647 1631 1615 1599 1583 1567 1551 1535 1519 1503 1487 1471 1455 1439 1423 1407 1391 1375 1359 1343 1327 1311 1295 1279 1263 1247 1231 1215 1199 1183 1167 1151 1135 1119 1103 1087 1071 1055 1039 1023 1007 991 975 959 943 927 911 895 879 863 847 831 815 799 783 767 751 735 719 703 687 671 655 639 623 607 591 575 559 543 527 511 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15 #0 doadump () at pcpu.h:165 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc052ad14 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409 #2 0xc052b06d in panic (fmt=0xc06d6b75 "from debugger") at /usr/src/sys/kern/kern_shutdown.c:565 #3 0xc044e012 in db_panic (addr=-1067660642, have_addr=0, count=-1, modif=0xe9523914 "") at /usr/src/sys/ddb/db_command.c:438 #4 0xc044df82 in db_command (last_cmdp=0xc0738dc4, cmd_table=0x0, aux_cmd_tablep=0xc0700a48, aux_cmd_tablep_end=0xc0700a4c) at /usr/src/sys/ddb/db_command.c:350 #5 0xc044e08a in db_command_loop () at /usr/src/sys/ddb/db_command.c:458 #6 0xc045016a in db_trap (type=12, code=0) at /usr/src/sys/ddb/db_main.c:222 #7 0xc0549347 in kdb_trap (type=0, code=0, tf=0xe9523ac8) at /usr/src/sys/kern/subr_kdb.c:473 #8 0xc06b0c3b in trap_fatal (frame=0xe9523ac8, eva=0) at /usr/src/sys/i386/i386/trap.c:829 #9 0xc06b0942 in trap_pfault (frame=0xe9523ac8, usermode=0, eva=1769430992) at /usr/src/sys/i386/i386/trap.c:745 #10 0xc06b04bd in trap (frame= {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = -1066114528, tf_esi = -955338656, tf_ebp = -380486876, tf_isp = -380486924, tf_ebx = 1769430902, tf_edx = -950849536, tf_ecx = 4, tf_eax = -955338656, tf_trapno = 12, tf_err = 0, tf_eip = -1067660642, tf_cs = 32, tf_eflags = 66178, tf_esp = -380486876, tf_ss = -1068381583}) at /usr/src/sys/i386/i386/trap.c:435 #11 0xc069aa5a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #12 0xc05cca9e in in_delmulti (inm=0xc70eb060) at /usr/src/sys/netinet/in.c:1063 #13 0xc05d7afc in ip_freemoptions (imo=0xc7597980) at /usr/src/sys/netinet/ip_output.c:2064 #14 0xc05cea4b in in_pcbdetach (inp=0xc711aca8) at /usr/src/sys/netinet/in_pcb.c:714 #15 0xc05ec158 in udp_detach (so=0xc70eb060) at /usr/src/sys/netinet/udp_usrreq.c:1071 #16 0xc05705f2 in soclose (so=0xc759e000) at /usr/src/sys/kern/uipc_socket.c:459 #17 0xc055c92d in soo_close (fp=0xc7497a68, td=0xc7533000) at /usr/src/sys/kern/sys_socket.c:317 #18 0xc05017f0 in fdrop_locked (fp=0xc7497a68, td=0xc70eb060) at file.h:296 #19 0xc05016cf in fdrop (fp=0xc7497a68, td=0xc70eb060) at /usr/src/sys/kern/kern_descrip.c:2113 #20 0xc04ff652 in closef (fp=0xc7497a68, td=0xc7533000) at /usr/src/sys/kern/kern_descrip.c:1933 #21 0xc04fbe77 in kern_close (td=0xc7533000, fd=15) at /usr/src/sys/kern/kern_descrip.c:1023 #22 0xc04fbbda in close (td=0xc70eb060, uap=0xc70eb060) at /usr/src/sys/kern/kern_descrip.c:975 #23 0xc06b1052 in syscall (frame= {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 134660096, tf_esi = 134622792, tf_ebp = -1077941832, tf_isp = -380486300, tf_ebx = 672482484, tf_edx = 0, tf_ecx = 0, tf_eax = 6, tf_trapno = 0, tf_err = 2, tf_eip = 673363703, tf_cs = 51, tf_eflags = 646, tf_esp = -1077941860, tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:984 #24 0xc069aaaf in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200 #25 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) frame 12 #12 0xc05cca9e in in_delmulti (inm=0xc70eb060) at /usr/src/sys/netinet/in.c:1063 1063 ifp = inm->inm_ifp; (kgdb) list 1058 in_delmulti(inm) 1059 register struct in_multi *inm; 1060 { 1061 struct ifnet *ifp; 1062 1063 ifp = inm->inm_ifp; 1064 IFF_LOCKGIANT(ifp); 1065 IN_MULTI_LOCK(); 1066 in_delmulti_locked(inm, 0); 1067 IN_MULTI_UNLOCK(); (kgdb) p ifp $1 = (struct ifnet *) 0x69775f76 (kgdb) p *ifp Cannot access memory at address 0x69775f76 (kgdb) p inm $2 = (struct in_multi *) 0xc70eb060 (kgdb) p *inm $3 = {inm_link = {le_next = 0x73006d76, le_prev = 0x73746174}, inm_addr = {s_addr = 7173632}, inm_ifp = 0x69775f76, inm_ifma = 0x635f6572, inm_timer = 1953396079, inm_state = 3339549696, inm_rti = 0x1e86417} (kgdb) p *inm->inm_ifma Cannot access memory at address 0x635f6572