From owner-freebsd-net@FreeBSD.ORG Sun May 25 00:21:40 2008 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 24F71106567A for ; Sun, 25 May 2008 00:21:40 +0000 (UTC) (envelope-from peter@wemm.org) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.242]) by mx1.freebsd.org (Postfix) with ESMTP id 00CDA8FC0A for ; Sun, 25 May 2008 00:21:39 +0000 (UTC) (envelope-from peter@wemm.org) Received: by an-out-0708.google.com with SMTP id b33so317372ana.13 for ; Sat, 24 May 2008 17:21:39 -0700 (PDT) Received: by 10.101.70.5 with SMTP id x5mr4453235ank.12.1211673377589; Sat, 24 May 2008 16:56:17 -0700 (PDT) Received: by 10.100.8.6 with HTTP; Sat, 24 May 2008 16:56:17 -0700 (PDT) Message-ID: Date: Sat, 24 May 2008 16:56:17 -0700 From: "Peter Wemm" To: "Robert Watson" In-Reply-To: <20080524165519.K9809@fledge.watson.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> Cc: arch@freebsd.org, current@freebsd.org, Coleman Kane , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 25 May 2008 00:21:40 -0000 On Sat, May 24, 2008 at 8:56 AM, Robert Watson wrote: > > On Sat, 24 May 2008, Coleman Kane wrote: > >> I've created a quick table of these at the following location: >> http://wiki.freebsd.org/NetworkNeedsGiant >> >> Please everyone feel free to fill in the blanks. I'll try to do it as well >> as time permits. > > FWIW, I suspect fixing things like SLIP and kernel PPP are fairly trivial > once tty locking is in place -- a per-softc mutex and a bit of locking in > the obvious spots would likely do it without too much trouble. In some > paths, it might be necessary to inject data via the netisr, if that's not > already being done (probably is) to avoid input/output lock order issues. ppp_tty.c is kind of hairy and rather stale. I'd be inclined to drop strong hints about switching to either userland ppp(8), or mpd + netgraph if you want packets to stay in the kernel path and avoid userland. I was once a big user of pppd(8) and if_ppp.c / ppp_tty.c and maintained them for a while. But I use ppp(8) now and have no interest in maintaining it anymore. pppd/if_ppp.c/ppp_tty.c is many many years stale compared to what its vendor supplies. And, I think if_sl.c could probably do the same treatment. It would probably be a better investment in time to write a userland slip driver and if_tun.c and/or write a ng_slip.c module -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 "If Java had true garbage collection, most programs would delete themselves upon execution." -- Robert Sewell From owner-freebsd-net@FreeBSD.ORG Sun May 25 09:58:56 2008 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 E4C71106567B; Sun, 25 May 2008 09:58:56 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 983DE8FC18; Sun, 25 May 2008 09:58:56 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id AB7AB46B66; Sun, 25 May 2008 05:58:55 -0400 (EDT) Date: Sun, 25 May 2008 10:58:55 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Peter Wemm In-Reply-To: Message-ID: <20080525105726.O39741@fledge.watson.org> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: arch@freebsd.org, current@freebsd.org, Coleman Kane , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 25 May 2008 09:58:57 -0000 On Sat, 24 May 2008, Peter Wemm wrote: >> FWIW, I suspect fixing things like SLIP and kernel PPP are fairly trivial >> once tty locking is in place -- a per-softc mutex and a bit of locking in >> the obvious spots would likely do it without too much trouble. In some >> paths, it might be necessary to inject data via the netisr, if that's not >> already being done (probably is) to avoid input/output lock order issues. > > ppp_tty.c is kind of hairy and rather stale. I'd be inclined to drop strong > hints about switching to either userland ppp(8), or mpd + netgraph if you > want packets to stay in the kernel path and avoid userland. > > I was once a big user of pppd(8) and if_ppp.c / ppp_tty.c and maintained > them for a while. But I use ppp(8) now and have no interest in maintaining > it anymore. > > pppd/if_ppp.c/ppp_tty.c is many many years stale compared to what its vendor > supplies. > > And, I think if_sl.c could probably do the same treatment. It would > probably be a better investment in time to write a userland slip driver and > if_tun.c and/or write a ng_slip.c module While I'd be quite supportive of something along these lines, I think it probably is more work to port SLIP to userspace than to hack the current code a little bit to be MPSAFE, assuming it remains supported with the revised tty code. SLIP is a fairly straight-forward piece of code, as long as you don't try to understand the line discipline stuff. :-) Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Sun May 25 10:38:00 2008 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 0521E106566B for ; Sun, 25 May 2008 10:38:00 +0000 (UTC) (envelope-from martin.fuchs@trendchiller.com) Received: from wp041.webpack.hosteurope.de (wp041.webpack.hosteurope.de [80.237.132.48]) by mx1.freebsd.org (Postfix) with ESMTP id 3F44A8FC29 for ; Sun, 25 May 2008 10:37:58 +0000 (UTC) (envelope-from martin.fuchs@trendchiller.com) Received: from dslb-082-083-098-229.pools.arcor-ip.net ([82.83.98.229] helo=mail.trendchiller.com); authenticated by wp041.webpack.hosteurope.de running ExIM using esmtpsa (TLSv1:RC4-MD5:128) id 1K0DKj-0000cy-CI; Sun, 25 May 2008 12:20:13 +0200 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8BE50.E86EDE87" Date: Sun, 25 May 2008 12:20:08 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 Thread-Index: Aci+UOkOlmQzJXsOSiyhOJP7fAtVlQ== From: "Fuchs, Martin" To: X-bounce-key: webpack.hosteurope.de; martin.fuchs@trendchiller.com; 1211711878; bc303277; X-Mailman-Approved-At: Sun, 25 May 2008 11:21:21 +0000 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 25 May 2008 10:38:00 -0000 This is a multi-part message in MIME format. ------_=_NextPart_001_01C8BE50.E86EDE87 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi ! =20 I am in contact with Chris Buechler because of pfSense and we he told me to contact Jack Vogel because of some Intel NIC driver problem. =20 FreeBSD detects them as fxp cards which is correct, but they do not work at all, i tried in ACPI and non-ACPI mode and with enabled ROM and disabled ROM and everything, but I cannot get them working... I always get "fxp0 timeout" or fxpX fort he corresponding card... I read it might have something to do with dynamic powersaving mode or else but have no clue how to deactivate, there's no option in the ROM for this. =20 It's an appliance board (NexCom EBC575) with Intel 845GV / Intel 82801DB (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 x ICH4 integrated LAN Int on board. =20 I have attached the whitepaper with the specifications oft he board. =20 Is there anything I can tot o make it work for now or is it a known problem or else ? =20 Regards, =20 looking forward to hear from you, =20 Martin ------_=_NextPart_001_01C8BE50.E86EDE87 Content-Type: application/octet-stream; name="ebc575_2007r1.0.pdf" Content-Transfer-Encoding: base64 Content-Description: ebc575_2007r1.0.pdf Content-Disposition: attachment; filename="ebc575_2007r1.0.pdf" JVBERi0xLjYNJeLjz9MNCjggMCBvYmogPDwvTGluZWFyaXplZCAxL0wgMjY1NTE2L08gMTAvRSAx OTc1NjkvTiAyL1QgMjY1MzEwL0ggWyAxMzc2IDMwMl0+Pg1lbmRvYmoNICAgICAgICAgICAgICAg DQp4cmVmDQo4IDU0DQowMDAwMDAwMDE2IDAwMDAwIG4NCjAwMDAwMDE2NzggMDAwMDAgbg0KMDAw MDAwMTczNyAwMDAwMCBuDQowMDAwMDAyMjY5IDAwMDAwIG4NCjAwMDAwMDIzODEgMDAwMDAgbg0K MDAwMDAwNTkwMSAwMDAwMCBuDQowMDAwMDA5Mzk2IDAwMDAwIG4NCjAwMDAwMTI2MjEgMDAwMDAg bg0KMDAwMDAxNjAwMyAwMDAwMCBuDQowMDAwMDE2NDE0IDAwMDAwIG4NCjAwMDAwMTcwMjggMDAw MDAgbg0KMDAwMDAxNzM3MiAwMDAwMCBuDQowMDAwMDE3NjQ0IDAwMDAwIG4NCjAwMDAwMTgwNzkg MDAwMDAgbg0KMDAwMDAxODE2MSAwMDAwMCBuDQowMDAwMDE4NDM5IDAwMDAwIG4NCjAwMDAwMTkw NzcgMDAwMDAgbg0KMDAwMDAxOTE4NyAwMDAwMCBuDQowMDAwMDIyNjkyIDAwMDAwIG4NCjAwMDAw MjMzNTcgMDAwMDAgbg0KMDAwMDAyMzYzMCAwMDAwMCBuDQowMDAwMDI0MzIzIDAwMDAwIG4NCjAw MDAwMjQ0MTMgMDAwMDAgbg0KMDAwMDAyNjk3OSAwMDAwMCBuDQowMDAwMDI3MTE3IDAwMDAwIG4N CjAwMDAwMjcxNDEgMDAwMDAgbg0KMDAwMDAyNzQ0MCAwMDAwMCBuDQowMDAwMDMwMjA3IDAwMDAw IG4NCjAwMDAwMzI5ODIgMDAwMDAgbg0KMDAwMDAzNTM0OCAwMDAwMCBuDQowMDAwMDQwODkzIDAw MDAwIG4NCjAwMDAwNDg0MjQgMDAwMDAgbg0KMDAwMDA0ODY3OSAwMDAwMCBuDQowMDAwMDQ4NzQ3 IDAwMDAwIG4NCjAwMDAwNDg4OTUgMDAwMDAgbg0KMDAwMDA1NDU5MSAwMDAwMCBuDQowMDAwMDU1 MDQyIDAwMDAwIG4NCjAwMDAwNjA2NTggMDAwMDAgbg0KMDAwMDE4MTQwNyAwMDAwMCBuDQowMDAw MTgxNDM0IDAwMDAwIG4NCjAwMDAxODE1MDYgMDAwMDAgbg0KMDAwMDE4MTYxOSAwMDAwMCBuDQow MDAwMTgxOTIxIDAwMDAwIG4NCjAwMDAxODM3OTcgMDAwMDAgbg0KMDAwMDE4NDA3MSAwMDAwMCBu DQowMDAwMTg0NDg0IDAwMDAwIG4NCjAwMDAxODk3NzUgMDAwMDAgbg0KMDAwMDE5MDM0MyAwMDAw MCBuDQowMDAwMTkwNDE1IDAwMDAwIG4NCjAwMDAxOTcwMTQgMDAwMDAgbg0KMDAwMDE5NzM2MCAw MDAwMCBuDQowMDAwMTk3MzkzIDAwMDAwIG4NCjAwMDAxOTc0NTUgMDAwMDAgbg0KMDAwMDAwMTM3 NiAwMDAwMCBuDQp0cmFpbGVyDQo8PC9TaXplIDYyL1ByZXYgMjY1MzAwL1Jvb3QgOSAwIFIvSW5m byA3IDAgUi9JRFs8ODJENzg4QjBGNTVFNjE0Mzk3NDczQTg2MDNGQjkzQ0Y+PDgyNDg0OUUwRDQz M0Q0NDhCQTNFNDA2NTc2QzFGRTJGPl0+Pg0Kc3RhcnR4cmVmDQowDQolJUVPRg0KICAgICAgICAg ICAgICAgDQo2MSAwIG9iajw8L0xlbmd0aCAyMjEvRmlsdGVyL0ZsYXRlRGVjb2RlL0kgMjUwL1Mg MTEwPj5zdHJlYW0NCnjaYmBgYGFgYJ3NwMbA8KudQYgBAYQYWIGiLAwcexga5jgwMBw9wIABWCZ1 Sxx2d1W5YJl6NXO7bOUPBhYXIAgNTcvo6OhgUgIBtTQgswFsBBIwhmIGBgkGQYZ/DGKMWxlufEjh MKlgZmPyY1jAYMdgnMC8gP0D5wyGNbwzGR0a7ByCF7Ao+BcwnmBgYBRmjW5af1DlYKTAqxnMcxgi GGq4RRiyDu2WrQwAGniAYROjGPM8BrsGg4WeBoIMDAeM4xidGFgaOBu4kZzBzsDC1QakGYF4AUCA AQAlkjb3DQplbmRzdHJlYW0NZW5kb2JqDTkgMCBvYmo8PC9NZXRhZGF0YSA2IDAgUi9QYWdlcyA1 IDAgUi9UeXBlL0NhdGFsb2c+Pg1lbmRvYmoNMTAgMCBvYmo8PC9Dcm9wQm94WzAuMCAwLjAgNTk1 LjI3NiA4NDEuODldL1BhcmVudCA1IDAgUi9Db250ZW50c1sxMiAwIFIgMTMgMCBSIDE0IDAgUiAx NSAwIFIgMjUgMCBSIDMwIDAgUiAzNCAwIFIgMzUgMCBSXS9Sb3RhdGUgMC9CbGVlZEJveFswLjAg MC4wIDU5NS4yNzYgODQxLjg5XS9BcnRCb3hbMC4wIDAuMCA1OTUuMjc2IDg0MS44OV0vTWVkaWFC b3hbMC4wIDAuMCA1OTUuMjc2IDg0MS44OV0vVHJpbUJveFswLjAgMC4wIDU5NS4yNzYgODQxLjg5 XS9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDQ1IDAgUi9GbTAgNDkgMCBSPj4vRm9udDw8L1Qx XzAgMTYgMCBSL1QxXzEgMTcgMCBSL0MyXzAgMzEgMCBSL1QxXzIgMTggMCBSL1QxXzMgMjYgMCBS Pj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VDXS9Qcm9wZXJ0aWVzPDwvTUMwPDwvTWV0YWRhdGEg NTMgMCBSPj4vTUMxPDwvTWV0YWRhdGEgNTQgMCBSPj4+Pi9FeHRHU3RhdGU8PC9HUzAgMTEgMCBS L0dTMSAyNCAwIFIvR1MyIDYwIDAgUj4+Pj4vVHlwZS9QYWdlPj4NZW5kb2JqDTExIDAgb2JqPDwv T1BNIDEvQk0vTm9ybWFsL0NBIDEuMC9PUCBmYWxzZS9TTWFzay9Ob25lL2NhIDEuMC9BSVMgZmFs c2Uvb3AgZmFsc2UvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZT4+DWVuZG9iag0xMiAwIG9iajw8L0xl bmd0aCAzNDUwL0ZpbHRlci9GbGF0ZURlY29kZT4+c3RyZWFtDQpIiXRXy44cuRG891f0D6hEJt9X y8CeDBj2wWehLViCZ7y2vPD3OyIzWWRN92Kx0DC6SOYzMvj5z29fH9/+/svPr//+/uNx//ynL+H+ hz9+ud/+cwv3cC+jHNLqved49HH/+e32t/u/8Nun2Ho5urT7iIm/SOrxiEHunwZ/2D4t9agj3aUc Jcq9hHzEKveIf1qaX/Eq/vdP/PXjfvv8l29vX3/78b9vX359+/Xnj/dvv/2EbT9/3D7/8tdw/8d/ b7GMI6R+/1RjP0q7vy+k4Ppc7m+32GBQyq+RcSR8TCgcOV6hmnDk70ADUK6+cYwrMk9/hmpIRwp1 P+oVhKDULpeNryB1+e32/SapHgFnTBfzIRkhSOlApBHa8/czTCJytMIwjXzg/7lF0jGQZu6ZX7zY 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 HohRreI2SVoIMaZdiDP/xu2g6Mx85gqIQNPj/La2g2yc/2O72rIlBkHYVu4SKj6m7qmz/99LCIid 9rM5iggxpG7NhOxX23XX3A7VmQQKYkCceZvKFsOIyXYhAC7TlUqSgFrtc/imdjfrXa2X5f8Khcfe Nj4h/xG57OYmMKB1+dyQ3OdFf0NWBrntAeE25/EDiflXAIPN0hf9IeBTqJkhR3dKEEOfHPyOAiI+ kQd8iQLdv+nZgZhHR62P5k2nu+7U/oEMzgSwqcYwizU0vRnkxj4jZINWJ7G/iWzlajCN8xVK3v5E uvbokAcl1R49fGQGfyLcdT3iWGy4prAb5TRnmdCkgit5vdIkZFdyd3HKHiw1DIW4YsCRdzniSXYL 3EVNQhC/kNbS4rKxptvvQwbR59TioGnvR7QuTbZkZPo4n+Zy8htDgVsC4ZDNECqQZmj0GNMGiOog 3TST9Xtn9hq5xvyx4aj3WRPW52fcea1BVWbdokTltpNWdf1Xbat/NWP06JFRDrbZeiCH1eG7RZJi lvoyqJqGIVtr3fAnIZUzExlNB87Vy8E1jRKlR1D9pdEw6wFzB3D36vZ3relxdEQZ7jXzJC0835pU Gnxtjc1e5AtmZa8EGoGT/v4FGABT8I4fDQplbmRzdHJlYW0NZW5kb2JqDTE2IDAgb2JqPDwvU3Vi dHlwZS9UeXBlMS9Gb250RGVzY3JpcHRvciAxOSAwIFIvTGFzdENoYXIgMTE5L1dpZHRoc1s1NTYg MjUwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDU1NiAwIDU1NiAwIDUwMCAwIDAgMjc4IDAgMCAwIDc3OCAwIDU1NiA1NTYg MCAwIDUwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDUwMCAwIDUwMCA1MDAgNTAwIDMzMyA1 MDAgMCAyNzggMCA1MDAgMjc4IDcyMiA1MDAgNTAwIDUwMCAwIDMzMyA0NDQgMzMzIDUwMCA0NDQg NjY3XS9CYXNlRm9udC9RTk5XS00rSGVsdmV0aWNhLUNvbmRlbnNlZC1CbGFjay9GaXJzdENoYXIg MzEvVG9Vbmljb2RlIDIwIDAgUi9FbmNvZGluZyAyMSAwIFIvVHlwZS9Gb250Pj4NZW5kb2JqDTE3 IDAgb2JqPDwvU3VidHlwZS9UeXBlMS9Gb250RGVzY3JpcHRvciAyMiAwIFIvTGFzdENoYXIgMTc0 L1dpZHRoc1s1MDAgMjUwIDAgMzMzIDAgMCAwIDY2NyAwIDMzMyAzMzMgMCA1MDAgMzMzIDMzMyAz MzMgMjc4IDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyNzggMCAwIDAg MCAwIDgzMyA1NTYgNTU2IDU1NiA2MTEgNTAwIDUwMCA2MTEgNjExIDI3OCAwIDU1NiA1MDAgNzc4 IDYxMSA2MTEgNTU2IDYxMSA2MTEgNTU2IDUwMCA2MTEgNTU2IDgzMyA1NTYgMCA1MDAgMCAwIDAg MCAwIDAgNTAwIDUwMCA0NDQgNTAwIDUwMCAyNzggNTAwIDUwMCAyNzggMCA0NDQgMjc4IDc3OCA1 MDAgNTAwIDUwMCA1MDAgMzMzIDQ0NCAyNzggNTAwIDQ0NCA2NjcgNDQ0IDQ0NCAzODkgMCAwIDAg NTAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMjc4IDAgMCAwIDAgMCAw IDg2MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgODMwXS9CYXNlRm9u dC9BS0xaVVMrSGVsdmV0aWNhLUNvbmRlbnNlZC1Cb2xkL0ZpcnN0Q2hhciAzMS9Ub1VuaWNvZGUg MjMgMCBSL0VuY29kaW5nIDIxIDAgUi9UeXBlL0ZvbnQ+Pg1lbmRvYmoNMTggMCBvYmo8PC9TdWJ0 eXBlL1R5cGUxL0ZvbnREZXNjcmlwdG9yIDUxIDAgUi9MYXN0Q2hhciA4OC9XaWR0aHNbMjQ1IDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDQ5MCA0OTAgNDkwIDQ5MCA0OTAgNDkwIDQ5MCA0 OTAgNDkwIDQ5MCAwIDAgMCAwIDAgMCAwIDUyOCA0NzkgNDUyIDUzMCAzOTIgMzk0IDAgMCAyNTUg MCA1MTMgMzczIDAgNTczIDAgNDg3IDAgNTMwIDQ0MCAwIDAgNTY1IDAgNTQ1XS9CYXNlRm9udC9B S0xaVVMrRnV0dXJhLUNvbmRlbnNlZEJvbGQvRmlyc3RDaGFyIDMyL1RvVW5pY29kZSA1MiAwIFIv RW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL1R5cGUvRm9udD4+DWVuZG9iag0xOSAwIG9iajw8L1N0 ZW1WIDE2MC9Gb250TmFtZS9RTk5XS00rSGVsdmV0aWNhLUNvbmRlbnNlZC1CbGFjay9Gb250U3Ry ZXRjaC9Db25kZW5zZWQvRm9udEZpbGUzIDM2IDAgUi9Gb250V2VpZ2h0IDcwMC9GbGFncyAzMi9E ZXNjZW50IC0yMzIvRm9udEJCb3hbLTE2OCAtMjMyIDExMTMgOTkwXS9Bc2NlbnQgOTkwL0ZvbnRG YW1pbHkoSGVsdkNvbmRCbGspL1hIZWlnaHQgNTYwL0NhcEhlaWdodCA3NTAvVHlwZS9Gb250RGVz Y3JpcHRvci9JdGFsaWNBbmdsZSAwPj4NZW5kb2JqDTIwIDAgb2JqPDwvTGVuZ3RoIDM2Ni9GaWx0 ZXIvRmxhdGVEZWNvZGU+PnN0cmVhbQ0KSIlckslugzAQQO/+Ch+bQ8QSsBXJQmpIInHooqb9AAJD ilSMZciBv++MB6VSLRk/L2M/M47K6ljZfpbRux+bC8yy623rYRrvvgF5hVtvRZLKtm/mtRe+zVA7 gbGXZZphqGw3CmNk9IFz0+wX+fTcjlfYiOjNt+B7e5NPX+VlI6PL3bkfGMDOMpZFIVvoRFS+1O61 HkBGIWxbtTjfz8sWY/5WfC4OZBr6Cbs0YwuTqxvwtb2BMDGWQpozlkKAbf/Np3sOu3bNd+2FSc64 OI6VwrovhEnj0MdGmCwNjA1yxpwRK2ZFvGem2OzIfCTmfbERJuc9c9oz3zHvkFXCZyfEPK7COJ+l 6CyVM+fEanUl1syamB2CvzowH4hL5pKY3RS5qRPziXi9P3lq9tTkqfnumu6u2U2Tm2Y3TW6a3TS5 aXbT5KbZDRtKwPqnKRX4YOQjz83de0xxeFUht5TV3sLj4bnRSYyiKn4FGABZebHzDQplbmRzdHJl YW0NZW5kb2JqDTIxIDAgb2JqPDwvRGlmZmVyZW5jZXNbMzEvZmldL0Jhc2VFbmNvZGluZy9XaW5B bnNpRW5jb2RpbmcvVHlwZS9FbmNvZGluZz4+DWVuZG9iag0yMiAwIG9iajw8L1N0ZW1WIDEzMi9G b250TmFtZS9BS0xaVVMrSGVsdmV0aWNhLUNvbmRlbnNlZC1Cb2xkL0ZvbnRTdHJldGNoL0NvbmRl bnNlZC9Gb250RmlsZTMgMzcgMCBSL0ZvbnRXZWlnaHQgNzAwL0ZsYWdzIDMyL0Rlc2NlbnQgLTIy OC9Gb250QkJveFstMTY5IC0yMjggMTA5MSA5NzFdL0FzY2VudCA5NzEvRm9udEZhbWlseShIZWx2 ZXRpY2FDb25kZW5zZWQpL1hIZWlnaHQgNTY0L0NhcEhlaWdodCA3NTAvVHlwZS9Gb250RGVzY3Jp cHRvci9JdGFsaWNBbmdsZSAwPj4NZW5kb2JqDTIzIDAgb2JqPDwvTGVuZ3RoIDU2OS9GaWx0ZXIv RmxhdGVEZWNvZGU+PnN0cmVhbQ0KSIlc1M2Ko0AUBeC9T1HL7kVjtG7d2wEJpJNuyGJ+mMw8gNFK RpgYMWaRt586ntADEzAe0eJ+HLTyzW6767vJ5d/HS7OPkzt2fTvG6+U2NtEd4qnrs6J0bddMj6v5 vznXQ5bW7u/XKZ53/fGSVZXLf6R712m8u6d1eznE5yz/NrZx7PqTe/q12T+7fH8bhj/xHPvJLdxq 5dp4zPLNl3r4Wp+jy+dlL7s23e+m+0ta8++Jn/chunK+LmhpLm28DnUTx7o/xaxapN/KVR/pt8pi 3/5335TLDsfmdz1mVfGRHl4sVNOxXGVVuZiv0ynlkrlEVmZFfmV+RV4yz2vfmN+QN8wb5C3zFvmd +R2Zs9Mpqzznesz1BXOBTIOHwXtmjyzMghyYAzKdHk5vzIZMs4fZ0+xh9mvmdcpCg8AgNAgMQoPA IDQIDEKDwCA0CAxCg8AgNAgMQoPAIDQIDMLeBL0JexP0JuxN0JuwN0Fvwt4EvQWaA8yB5gBzoDnA HGgOMAeaA8yB5gBzoDnAHGgOMAeaA8yBXQV0pZylmKWcpZilnKWYpZylmKWcpZil+njnkDlLMUs5 SzFL2c/8Tir7UfSj7EfRj7IfRT/KfhT96OOdRj/Gfgz9GM0Gs9FsMBvNBrPRbDAbzQaz0WwwG80G s9FsMBvNBrOxK0NXRpvBtsTcclHgmSWeL4v5+1rzmXTCR/v4OvH5pk3Gfe4NzW0c07Yw70TzfoCd oOvj52Y1XAaXVuHI/gowAIfxIEANCmVuZHN0cmVhbQ1lbmRvYmoNMjQgMCBvYmo8PC9PUE0gMS9C TS9Ob3JtYWwvQ0EgMS4wL09QIHRydWUvU01hc2svTm9uZS9jYSAxLjAvQUlTIGZhbHNlL29wIHRy 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 IDI3OCAwIDQ0NCAyMjIgMzMzIDIyMiAyNzggNDQ0IDQ0NCA0NDQgNDQ0IDQ0NCA0NDQgNDQ0IDQ0 NCA0NDQgNDQ0IDIyMiAyMjIgMCAwIDQ0NCAwIDgwMCA1MDAgNTAwIDU1NiA1NTYgNDQ0IDQ0NCA1 NTYgNTU2IDIyMiAzODkgNTAwIDQ0NCA3MjIgNTU2IDU1NiA1MDAgNTU2IDUwMCA1MDAgNDQ0IDU1 NiA1MDAgNzIyIDUwMCA1MDAgNDQ0IDI3OCAwIDI3OCAwIDUwMCAwIDM4OSA0NDQgMzg5IDQ0NCAz ODkgMjIyIDQ0NCA0NDQgMjIyIDIyMiAzODkgMjIyIDY2NyA0NDQgNDQ0IDQ0NCA0NDQgMjc4IDM4 OSAyMjIgNDQ0IDM4OSA1NTYgMzg5IDM4OSAzMzMgMCAwIDAgNDQ0IDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMTYwIDAgMzMzIDAgMCAwIDAgNzIyIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA4MDAgMCA0MDAgNDQ0IDAgMCAwIDQ0NF0vQmFzZUZv bnQvS01PSEVZK0hlbHZldGljYS1Db25kZW5zZWQtTGlnaHQvRmlyc3RDaGFyIDI5L1RvVW5pY29k ZSAyOCAwIFIvRW5jb2RpbmcgMjkgMCBSL1R5cGUvRm9udD4+DWVuZG9iag0yNyAwIG9iajw8L1N0 ZW1WIDYwL0ZvbnROYW1lL0tNT0hFWStIZWx2ZXRpY2EtQ29uZGVuc2VkLUxpZ2h0L0ZvbnRTdHJl dGNoL0NvbmRlbnNlZC9Gb250RmlsZTMgNDIgMCBSL0ZvbnRXZWlnaHQgNDAwL0ZsYWdzIDMyL0Rl c2NlbnQgLTIwNy9Gb250QkJveFstMTcwIC0yMDcgMTAwMCA5NDRdL0FzY2VudCA5NDQvRm9udEZh bWlseShIZWx2Q29uZExpZ2h0KS9YSGVpZ2h0IDU1Mi9DYXBIZWlnaHQgNzUwL1R5cGUvRm9udERl c2NyaXB0b3IvSXRhbGljQW5nbGUgMD4+DWVuZG9iag0yOCAwIG9iajw8L0xlbmd0aCA2MjQvRmls dGVyL0ZsYXRlRGVjb2RlPj5zdHJlYW0NCkiJXNTditswEAXgez+FLncvFsfWzGgNIRAnXchFf2ja B0hsJTU0jnG8F3n76viEXajB0RGW4o/Bmnyz2+76bnL5j/Ha7OPkTl3fjvF2fR+b6I7x3PVZUbq2 a6bHbP5tLochS3v399sUL7v+dM2WS5f/TM9u03h3T+v2eozPWf59bOPY9Wf39Huzf3b5/n0Y/sZL 7Ce3cKuVa+MpyzdfD8O3wyW6fN72smvT8266v6Q9nyt+3Yfoynle0NJc23gbDk0cD/05ZstFulZu +ZauVRb79r/nVcltx1Pz5zBmy2KbFi/K7XqV8hfkhVm6N5i/fc6rNC8X8zwNKZfMJbIyK7IxG3Jg DsivzK/IFfP8nzVzjbxhxrvLLfMWma40pExTGrKlp8fD4wvmApk2D5v3zB5ZmAWZZg+zp9nD7Gn2 MHuaPcyeZg+zXzOjZp5+D7+n08MptAlsQpvAJrQJbEKbwCa0CWxCm8AmtAlsQpvAJrQJbEKbwCa0 CWxCm8AmrK2gtsLaCmorNMtsZm0FtVX6FX6lX+FX+hV+pV/hV/oVfqVf4Vf6FX6lX+FX+hV+pV/h V/oVfqVf4VeaFWalU+E02gw2o81gM9oMNqPNYDPaDDazx/eNTJvBZrQZbEbb/P0bbQab0WawGWs7 nxmj0+C0x3lCbe1xlmAOrG1AbQP9Af5Af4A/0B/gD/QH+AP9Af5Af4A/0B/gD/QH+AP9Af5Af4A/ 0BZgq/DeclFgTSXM8FfYWxbzGV9z/Rrra/pr+Gv6a/hr2tKAxvPoMGhBqVG6j/7WvI9jam1zN517 GrpZ18ePhjtcB5d24c7+CTAAmeBHdQ0KZW5kc3RyZWFtDWVuZG9iag0yOSAwIG9iajw8L0RpZmZl cmVuY2VzWzI5L3JpbmcvZmwvZmldL0Jhc2VFbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvVHlwZS9F bmNvZGluZz4+DWVuZG9iag0zMCAwIG9iajw8L0xlbmd0aCAyNDk2L0ZpbHRlci9GbGF0ZURlY29k ZT4+c3RyZWFtDQpIidxX224cxxF9n69o5Eky4GHfL48RJRlxrECONsmDYwQMuQ7p7Io2RUdAvj6n +jbdMz2wlDiIEBDk8pzt6uq6dFW1lbO1hikxc3ycJitm4SVTZnbBNpjPBh+nyYRZc73FdjbWZSwc 4WAMA3LSMuVm6SSzfBZCR+QNu6a9nfMFQ5echfR1tZx1iLJcRhTPaWcbNGRvJ+tmz005yZmw5qJg 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 ly8NUWRwa3jYYbIQXo1uhygyePr1+dIwWQhfeTkmikyYvQ47TBLCM1F1WdcQWQajteyzrmGyEJq3 3CGKDB66fdY1TBbC+CF3iCJjZ9XVl5bJQp5eBGOiyKDO9lnXMEkIT1dud4gso+XM+6xrmCyEac/t EEUGQ1pfXxomC2EC7/KlIYoMHm59vjRMFFIw0bVVqiWSjMKUGrrYLwxGSkudTqGPpa6wZVAXrc2M jZEdMVzFndF5fcyhLWNQJUxk0BlEGDJl4iDGeTdkoDP02rcMPWdFZ8WIkXGSaqV6Brti1nCN1IhB zzWqkxox0puV1JrR6C6+8diIkehRofHGmNFedtpHDBe99i3D0adUky0DBk8ombKuaB8weO61jh8Q FrfHtOcbMKgZWmRf0OtlzFCXb/w1YPRsVOikRgx3ssnLEYNz8f6EI0aoLle2TJ3nUeNRffWQQb+S rj3hgJH0AO2kRowKnecHDMfsV2qE1kMGr0Lhbd6Z5s0Rg1nf63bnAZMfcTWdRgRWt3YOGMzQOZ9y bIaMEb3uDWMspn7T2jBgULFc568hI7heSa0ZejbZ1qdDRtjQemPA4E3Ju9gMGKp8rvXGkFGdDWss Zq9UZ8GWwYSnRKd5w6B7WelbzQMGFTaknU18Y4wYVCtZIhyrzJZBH7S+RC/mf2XYvwQYAPWMyHsN CmVuZHN0cmVhbQ1lbmRvYmoNMzEgMCBvYmo8PC9TdWJ0eXBlL1R5cGUwL0Rlc2NlbmRhbnRGb250 cyAzMiAwIFIvQmFzZUZvbnQvS01PSEVZK1dpbmdkaW5ncy1SZWd1bGFyL1RvVW5pY29kZSAzMyAw IFIvRW5jb2RpbmcvSWRlbnRpdHktSC9UeXBlL0ZvbnQ+Pg1lbmRvYmoNMzIgMCBvYmpbNDEgMCBS XQ1lbmRvYmoNMzMgMCBvYmo8PC9MZW5ndGggMjMwL0ZpbHRlci9GbGF0ZURlY29kZT4+c3RyZWFt DQpIiVyQTWrEMAyF9z6FljOLwZnpol2EQEkpZNEfmvYAjq1kDI1sFGeR21d2wxQqkEB+74Nn6bZ7 6sgn0O8cbI8JRk+OcQkrW4QBJ0/qfAHnbdq3Mu1sohK235aEc0djUHUN+kO0JfEGh0cXBjwq/cYO 2dMEh6+2P4Lu1xi/cUZKUEHTgMNR6fbFxFczI+iCnTonuk/bSZg/x+cWES5lP/9mscHhEo1FNjSh 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 rKY47jPuZAIvnZgZiC7Xl7HnnIOYkGXRlAtMc9YzZyBcdeY78+EqJqJVC8Znayt7ri/jHMhybZXA uBV/5V8BBgCiEWa5DQplbmRzdHJlYW0NZW5kb2JqDTM5IDAgb2JqPDwvU3RlbVYgNTgwL0ZvbnRO YW1lL0tNT0hFWStXaW5nZGluZ3MtUmVndWxhci9Gb250U3RyZXRjaC9Ob3JtYWwvRm9udEZpbGUy IDM4IDAgUi9Gb250V2VpZ2h0IDQwMC9GbGFncyA0L0Rlc2NlbnQgLTIxMS9Gb250QkJveFswIC0y MTEgMTM1OSA4OTldL0FzY2VudCA4OTkvRm9udEZhbWlseShXaW5nZGluZ3MpL1hIZWlnaHQgNzIz L0NhcEhlaWdodCA3NTQvVHlwZS9Gb250RGVzY3JpcHRvci9JdGFsaWNBbmdsZSAwPj4NZW5kb2Jq DTQwIDAgb2JqPDwvU3VwcGxlbWVudCAwL09yZGVyaW5nKElkZW50aXR5KS9SZWdpc3RyeShBZG9i ZSk+Pg1lbmRvYmoNNDEgMCBvYmo8PC9TdWJ0eXBlL0NJREZvbnRUeXBlMi9Gb250RGVzY3JpcHRv ciAzOSAwIFIvQmFzZUZvbnQvS01PSEVZK1dpbmdkaW5ncy1SZWd1bGFyL1dbMTQwWzQ1OF1dL0NJ RFN5c3RlbUluZm8gNDAgMCBSL0RXIDEwMDAvVHlwZS9Gb250Pj4NZW5kb2JqDTQyIDAgb2JqPDwv U3VidHlwZS9UeXBlMUMvTGVuZ3RoIDU2MTEvRmlsdGVyL0ZsYXRlRGVjb2RlPj5zdHJlYW0NCkiJ dJR5VFPXFsbvTchNwhAgl4sl0XtR6wRERUWQQRCUoaiA8BgUCigIKJAIvFiHiq5aypAgDhWxKggy 1KrgBIpMqQLBXnmI2KeoVUutXepDS9V98fBeX1Kr/avrrHXWOWud3z7f3nt9G8dMeBiO4xODl4UE LolxDExOVyfnpK1JVPgpM5OSM7OTkxRL01JSc4yPXDg5zo03QQvRmjdb3ywW0BVYWVnZ3t+Liv46 mQvH21lagIclZFkfGW8XKcV4OD574fu49mnZ9on2OVmJSckZiVnr7ZVr7Relp6clJ9n7KbNUyqzE nDRl5sw/vnyvAMNww8L4GEaYYOZWGINhE+XYQgzzwTBfOywew1IxLAPHNmLYTgw7gGOHMOwohlVj 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 OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJk ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6MmZjMmJjNGEtYjVjZi0xMWRhLTk4NmMtZjdk NzQ2MjlmYWZiIgogICAgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9t bS8iCiAgIHhhcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDoyZmMyYmM0Ny1i NWNmLTExZGEtOTg2Yy1mN2Q3NDYyOWZhZmIiPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6 UkRGPgo8L3g6eG1wbWV0YT4KDQplbmRzdHJlYW0NZW5kb2JqDTQ0IDAgb2JqPDwvU3VidHlwZS9J bWFnZS9JbnRlbnQvUmVsYXRpdmVDb2xvcmltZXRyaWMvTGVuZ3RoIDUzMzcvRmlsdGVyL0ZsYXRl RGVjb2RlL05hbWUvWC9NZXRhZGF0YSA0MyAwIFIvQml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3Bh Y2UvRGV2aWNlR3JheS9XaWR0aCA0ODcvRGVjb2RlUGFybXM8PC9Db2x1bW5zIDQ4Ny9QcmVkaWN0 b3IgMTUvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAxPj4vSGVpZ2h0IDM2Ny9UeXBlL1hPYmpl Y3Q+PnN0cmVhbQ0KSInslwl0FdUZx2cmO4RFA4EiKEEWAyggpVYjEkgpCFZyinJEKVB2ZDnQ9Fip LS54Wqw9QRDCEkGooFihbSxr2QKGJcGQACEJCYgsaiFhEbMn703n5SXj4NyX3NT5Lmbm/zuHN9/9 7svMn/d7d94dWQJOQL7dAYAQ4NkZwLMzgGdnAM/OAJ6dATw7A3h2BvDsDODZGcCzM4BnZ1C/5w6/ CfCvqH5fpVqQllIhSdGvqd6p/37h705OUmkTAiuo33PHc8bRxvHl0shNhsbNewutzgSsp37Prc42 N4zULmelJ5MMjdKulywPBSyHw/O5UMOoot+JWz1XRR+0PBSwnPo9N03vZhipQ3ZJg3ca/2r0RstD Acup37O8N9o4nJIodchpami88aLFkQAB9XtWkvsbh3HxUtu8ZobGplHYcP/w4VjPyY8Zh9rybZNv 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 P7mluJ7VDpqqZCAraKgYE90I4k452PxSFiLG/bbzjXC+LchCqo1159thIZ2+xwXrLEPJjn6J6rKc wg71e0D0p0TIbFflPZnUMy4eQbfvfofgfbR5c8iRu8wlM++M5vr218uskNZgBZuwGSDOzQ2FlIZg 4+qg9yuSr+e9o+hu/QyE946kBgI9L95tWolZO4Pr26+c29pXtHY9r5kJnu+AlyYQ5OxMnGeCZTrb BeI8DIgzbEf+u21nztnY4PBeInIm2IpWYSKjqP6irVgqIVi1SHTbEXm5c9bNZZ+0NlDy9VxMW0Wr ZsV77ny1tf9mGpAZ9kp5RkrEM/nCAiX3vIXeXaM/zUGxz+fzfQN+ZwL8J7nn1UV094dfxK3nw0Ms vzMB/pPc86YpdLfseYRLhlMDO8Z/cTcj4I5J7vnp3yi3dggEhaZUILz7MWp68hZOyQA/Se4Zf01B kf1e+K952Rkp+Fs7gp1fbcSqbDxfGOIfEvi/Se45ATlfdta2jWzrWqPfeQA+3JVnIOUAz+kBeE4P wHN6AJ7TA/CcHoDn9AA8pwfgOT0Az+kBeE4PwHN6AJ7TA/CcHoDn9OB/AwAk3cC7DQplbmRzdHJl YW0NZW5kb2JqDTQ1IDAgb2JqPDwvU3VidHlwZS9JbWFnZS9JbnRlbnQvUmVsYXRpdmVDb2xvcmlt ZXRyaWMvTGVuZ3RoIDEyMDU0Mi9GaWx0ZXIvRENURGVjb2RlL05hbWUvWC9TTWFzayA0NCAwIFIv Qml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3BhY2UvRGV2aWNlQ01ZSy9XaWR0aCA0ODcvSGVpZ2h0 IDM2Ny9UeXBlL1hPYmplY3Q+PnN0cmVhbQ0K/9j/7gAOQWRvYmUAZIAAAAAC/9sAhAAJBgYGBgYJ BgYJDAgICAwOCgkJCg4RDQ4ODg0REQ0ODg4ODREOFBYWFhQOGhwcHBwaJCYmJiQrKysrKysrKysr AQkHBwkHCQoJCQoMCgwKDBAODg4OEBEMDQ4NDBERDg4PDw4OEQ8PDw8PDw8TExMTExMWFhYWFhoa GhodHR0gICD/wAAUCAFvAecEASIAAhEBAxEBBCIA/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYB AAcICQoLAQACAgMBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAIBAwMCBAIGBwMEAgYCcwECAxEE AAUhEjFBUQYTYSJxgRQykaEHFbFCI8FS0eEzFmLwJHKC8SVDNFOSorJjc8I1RCeTo7M2F1RkdMPS 4ggmgwkKGBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX 5/c4SFhoeIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQI AwNtAQACEQMEIRIxQQVRE2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOCFpJTJaJjssIHc9I14kSD F1STCAkKGBkmNkUaJ2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV5fVGVmZ2hpamtsbW5vZH V2d3h5ent8fX5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADgQB AAIRAxEEAAA/AO45s2bFXhubNmzZs2bFXZs2bNmwPJexRyGNlaq96bfrzC+hJpRh7kZHxIXXEFsO zZs2CM2IzXUcBUMGPIVHEVxI6lCCBwk378Rt+OA5IA0ZAUtuzZs2C82UjB1DjoRUZeTV2bNmzZs2 bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZs VdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV 2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZ s2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmxCW9soHMc08Ubjcq7qp3 9icb+ktO/wCWqD/kYn9c515406XVPOEdssjRQrAsk7IaHiKCg9yTQYYWnk6Oa1BhskMZHwvI1Xb3 qzVzCx6jUZZZOGGMRhOURZNngkYuP48zKQjAHhJHXoabofDNwYmgBr4UyX+VNWs9D8tanqFxBFcz meKC1jlUE+o6OeVf5VAJP0YRTeZNZmnNwZ/TYmoWJERB7BVUDJVcPHLKZImV0ahDKQQdvEYnQ9MD aTbrZ6bb2qKY1iUrwapK/Eajffrgxeox3Js7E8672wG90spTrmxa6upr24e6uCDLIasVUKCQKfZU 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 qRt5qZu7CzsTGEFmZm5g/aMzhzt2pTMdQVtLksGT95JcRT8xQCkUckdKeJ9TAWbOeSaRK09tItQI 5/Vk5VNfgdPhp0+1i99pT3Eku5Hqsp5VqOKur0p9GT36tb/76T/gR/TN9Xt/99J/wIyI0MBEx4jz B6dAR+lfCN3YTLTtUSzstStZELG+tBaxstBxIuILireIpCR9OJaVqbaXdrdKgk4LKoU7byxPFWvt zrgLNkGvtNeehBIIjMYIOwrUGo79cVFgy28EPJh6XQqaHYAfwyafV4P99p/wIzfV4P8Afaf8CMmd JAynKz6/1g/oXwTsLGyvZXRs7mK44hxE6SFTtXgwale3TGTzGe4kuCADK7OR2HI1/jiebIfdWct1 pl1aRI0kksToqJuSSppkat/L3muFfqwsXNmrH0oqtzjStUTmRvx7Z1ZYokNURVPiABj8c2nlllCU cssfCK2ETfv4gWJ0t/xke6v0gozR7tLDVrK+k3S2uIpnA8EcMf1ZJvMupeTfMD/pFJLu21aRV+tz iGMwXEgFHlMSyBkZjueO3tkNzZyu88u+bb/jB9Va3ipR5D8T/Ne1cmvknSZ9F0UWE6spjkbjzABK 9jth/mwY9KY5BknllkIurAHPb+EBlj04xy4uIyPnX6AyfQZfJelSi+1Q3Op3ERDwWqxrFbll3X1m MhdhXsAMAebNcHmTXrnWeHpG64MyAk0YIqt19xhPmzZs2bMludmzZs2bNmxV2bNmzZs2bFXZs2bN mzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2b NmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2 bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZs VdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV2bNmzZs2bFXZs2bNmzZsVdmzZs2bNmxV 2bNmzZs2bFXZs2bP/9kNCmVuZHN0cmVhbQ1lbmRvYmoNNDYgMCBvYmovRGV2aWNlQ01ZSw1lbmRv YmoNNDcgMCBvYmo8PC9JIGZhbHNlL0sgZmFsc2UvQ1MgNDYgMCBSL1MvVHJhbnNwYXJlbmN5L1R5 cGUvR3JvdXA+Pg1lbmRvYmoNNDggMCBvYmo8PC9PUE0gMS9CTS9NdWx0aXBseS9DQSAwLjUvT1Ag ZmFsc2UvU01hc2svTm9uZS9jYSAwLjUvQUlTIHRydWUvb3AgZmFsc2UvVHlwZS9FeHRHU3RhdGUv U0EgdHJ1ZT4+DWVuZG9iag00OSAwIG9iajw8L1N1YnR5cGUvRm9ybS9MZW5ndGggODgvRmlsdGVy L0ZsYXRlRGVjb2RlL01hdHJpeFsxLjAgMC4wIDAuMCAxLjAgMC4wIDAuMF0vR3JvdXAgNDcgMCBS L1Jlc291cmNlczw8L0V4dEdTdGF0ZTw8L0dTMCA0OCAwIFI+Pj4+L0JCb3hbMTY1LjkzOSA3MTMu OTc5IDM5OC4xMzkgNTQxLjE3OV0vRm9ybVR5cGUgMT4+c3RyZWFtDQpIiQzCSwqAMAwFwH1O8S5g v2jt2oV7PYFIlGClEIvnV2Yc3M/jIgcB2YXL1uTlqZaqcnNT2aFCdl4dzof80JscM5KPJqeMEIMJ 6HwKZoQyHfQJMACJ8BTJDQplbmRzdHJlYW0NZW5kb2JqDTUwIDAgb2JqPDwvU3VidHlwZS9UeXBl MUMvTGVuZ3RoIDE3OTEvRmlsdGVyL0ZsYXRlRGVjb2RlPj5zdHJlYW0NCkiJZFQLUFTnFb6X3Xtv LLgIy13YXbh7QbHyWBWRgmnqDMGaokDq+miACAvsXUVWFhYQ1BaMmDUrLFFYRGqiGF+oEB4hRkWU qbSTiDWtUUOnNM9qTF9hps6cu56l9l9smzidu3f+nf+c8/3f953zX5pSBlA0TUemr87KW782YWVN dY2jyJhhL7dI5VWS5Xm7zeKP/0DW03KYEkXsjFSee9TECF1UZ2dn2+Ompm//BXGRC0dmQ1kw7Avp i+T+HuqvrMqwV2x3lG7aXC0uKIkTk5alpYrpFnuxJK7dXlUtba0SM8tL7I4Ku6OoWrIsFMV0m000 +fOrRJNUJTm2kd0ntMTSKrFIdEibSkmhQ7KI1Y4ii7S1yFEm2q1ijlRj3VZqs0kLKYomDxUyi4ph qHiKSqSpRRSVRFHJNJVKUcsoSk9EU0qKo0xUOTVMp9KV9KUATUBawIhCq3hZcU0ZrMxW7lC+pbyk /IYJZFYxTczH7BJ2MzuCDSrya4BIuQUi6R6IBR3EKsDlbeUx04Ye1KL2LHogEzLPgge0oLWBBzMN GKm8swfNeXmtaE5PbwXz5ct7wHzHoOra5lWChoZVfpgAr5NHzUfTSoj1OjlVE2jk7of0CAgQBDEK MMm7eNcwM9QyOTbcsd6StibWkiHgcrzByCJoMIOFUGhk3r556v0JHWh+dB1DMKnEiKLgLmYIZw1q wAoRoIEVoAntBUPboW8gBZdClPqg+ifwPOTxKLLqfRj66kQqqPUgfPYpCJNlE6ldBjenTrndfXTi Ix0ErvwDqtBgjsXZBwTgf8n2tF44/16ruTRty85nBdRw6rOftnRXpeoK9mbnlOzsPSEQkUQfKxfU 0tDk11nn1/myz8ygEuxIpMOq94HNkQs4jPUV8MiyoIRBxs36WROniT99kKy4I6v5ljePthzRfzle YlwhZT5XWtbZVWlwYDhTfenCrlE9/HDyn5ACCzIeoLHNcBRUDGQR3UN+IDXsJ+Lbaul+cp7aT6OY 0MjGMMaEs3ORwygdRlxDLcTDklGIAf19CeYiW1K502EXXG6YB5eY+b5w/ornWau0J8GUW/9538DB r679r4dD8mrF7ZkOQiGHDdNKBhax0O91zpgPNgK8DGaFdoMRQyD2C4gli1H9N9gr1/HWvWPdp/Zf 7Rvav6HC3mTaaFDfasZ4/vLhDKu1/scv/WzXh4ODB39/xfDFbV5t+92J3vFbOlCkf4kscunJqFjx 9qoPqwUXp75ltFkz4nU4576RDEPova9hzl+sd41nBDfn70IbcaAF+G8tGNB8ADwzBkEj8AxE6kC7 DiIwAZdswGjUJw1gLLDvnHzjxGnB7cJ5OMw89IbwV5o7UjfppFcWml7a/ae+gdavxwTVMAFXw/fk A7V0m9yugNV+HzKmnQwsYE+BmoEE9jSSJZnFTGKI3XeAj2HPwcbDwJI2v4Eso9rXBCFyM4SEjkLc n4EcD99XP4AR2M5nbS58sUUAM/cbd5/5p7oFuJ2HSAi4DnE3bH/MPmNQT10bOHHlpu56xc3cd4TB /Fz3Gj3On3aysFvu501bpLUCZHFjLees63QqeyPMlbfDXPokmSg53fsK73E49lfqsRDn4Dp8EfMg EDdA2fG3XvccM0A092pdnbNOjxoTuYZKeGYMAiH8yJuvOY8YVCNNoJN3gI4mlMEIcQrI0UDDJ7AY yuRleEOqNCDjpxEHOl7ewUHwGUxMMG7BeAw6YFAlN4EIy8mbBqIfQTFKTJt2wq9ARCMJaMmqJcEE EDlVCjH4tyQ35encOLIZRfKiSCDRn4c1ZBqdtU/l+L8lPf+/LYe5OYjyhTGQxGKSHA8GmGIwkSU+ 3GNccI9ViYSh/Oipql+TwxbLjzjVA0Lo7jY5dyZK2H6H0j+4fWf3fOx2Q5Yvn4ForxPj8CvW0mLx bBJcLsyR8xlVKyn/AIIhH4JnABi/ewUaGOd6XAwI9ychGvZidW2ZARfNWOgN5E+z412F65cXV2S0 EO+JoMD/FM/2jzIpniKCwnFqRlA4/JW5M9Rz6xMdFOPy9kQB4/+Lc5S9+/rJwvW67IqNLwiVzYyq pIHobCZ97IX5kzBfAY+9W/njxeZD+XoMWzkPAzFgdO3nawzvbr1Ys0aXK5XlF5YePr5ZwBjO0Xu1 /l09iBNToDOAGWtbYY7uYvfpi0P9NZVnBNVnT3xvky8q2og/UO6/EyoWJHILcDG7GH0Nha+ZGwu1 Lnb3eef5+vNJ8K8I1Y0nVcdkl+KYv2qpj8alPi0Dz7HvQdChAU//wQGtm22XPNZOaRiDIiCdxXRZ CykyzWAKWxDzC6lBarQQ1MbBnw/W95sfRqgaOrzODuxshwsdLFxt9Y13cELXC+2Nj4NmQXSgXB8m V/P/FmAA35XYuQ0KZW5kc3RyZWFtDWVuZG9iag01MSAwIG9iajw8L1N0ZW1WIDE0MC9Gb250TmFt ZS9BS0xaVVMrRnV0dXJhLUNvbmRlbnNlZEJvbGQvRm9udFN0cmV0Y2gvQ29uZGVuc2VkL0ZvbnRG aWxlMyA1MCAwIFIvRm9udFdlaWdodCA3MDAvRmxhZ3MgMzIvRGVzY2VudCAtMjYxL0ZvbnRCQm94 Wy0xNDAgLTI2MSAxMTk1IDEwMTVdL0FzY2VudCAxMDE1L0ZvbnRGYW1pbHkoRnV0dXJhQ29uZE1l ZGl1bSkvWEhlaWdodCA1MDUvQ2FwSGVpZ2h0IDc1NC9UeXBlL0ZvbnREZXNjcmlwdG9yL0l0YWxp Y0FuZ2xlIDA+Pg1lbmRvYmoNNTIgMCBvYmo8PC9MZW5ndGggMzQ0L0ZpbHRlci9GbGF0ZURlY29k ZT4+c3RyZWFtDQpIiVySyWrDMBBA7/qKOTaH4G2UBYyhcVPwoQtN+wGONE4NtWxk5+C/r8YTUqjA 1hPSzJM0isrqqXLtBNG7782JJmhaZz2N/dUbgjNdWqeSFGxrptto+ZuuHlSIPc3jRF3lml7lOUQf YW6c/AwPj7Y/00pFb96Sb90FHr7K0wqi03UYfqgjN0EMRQGWGhWVL/XwWncE0RK2rmyYb6d5HWL+ VnzOA0G6jBPZi+ktjUNtyNfuQiqPQysgfw6tUOTsv/l0I2HnxnzXXuUpL47j0Kk8E84WToQT5lQ4 Zc6EM2YURmYtrJk3whvmrfCWeSe8Y94L7wOjuJBdKC5kF4oL2YXiQnahuJBdKC5kF0pOXHIehA/M pXDJfBQ+BtZyXs3n1eLV7NXi1ezVkl9zfi37Dx1f7O0G+YrDQ4B7/czV+1C65bUsNeNqtY7uD2ro BwhR/KlfAQYAFQmpNA0KZW5kc3RyZWFtDWVuZG9iag01MyAwIG9iajw8L1N1YnR5cGUvWE1ML0xl bmd0aCA1MjE0L1R5cGUvTWV0YWRhdGE+PnN0cmVhbQ0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlk PSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu czptZXRhLyIgeDp4bXB0az0iMy4xLjEtMTExIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNj cmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9y Zy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wb3N0 c2NyaXB0PC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRl c2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhhcEdJbWc9Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9nL2ltZy8iPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2Jl IElsbHVzdHJhdG9yIENTMjwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOkNyZWF0ZURh dGU+MjAwNy0wMy0wMlQxNTo0MToyMSswODowMDwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4 YXA6TW9kaWZ5RGF0ZT4yMDA3LTAzLTAyVDE1OjQxOjIxKzA4OjAwPC94YXA6TW9kaWZ5RGF0ZT4K ICAgICAgICAgPHhhcDpNZXRhZGF0YURhdGU+MjAwNy0wMy0wMlQxNTo0MToyMSswODowMDwveGFw Ok1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhhcDpUaHVtYm5haWxzPgogICAgICAgICAgICA8cmRm OkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAg ICAgICAgICAgICAgICAgIDx4YXBHSW1nOndpZHRoPjI1NjwveGFwR0ltZzp3aWR0aD4KICAgICAg ICAgICAgICAgICAgPHhhcEdJbWc6aGVpZ2h0PjE5NjwveGFwR0ltZzpoZWlnaHQ+CiAgICAgICAg ICAgICAgICAgIDx4YXBHSW1nOmZvcm1hdD5KUEVHPC94YXBHSW1nOmZvcm1hdD4KICAgICAgICAg ICAgICAgICAgPHhhcEdJbWc6aW1hZ2U+LzlqLzRBQVFTa1pKUmdBQkFnRUFTQUJJQUFELzdRQXNV R2h2ZEc5emFHOXdJRE11TUFBNFFrbE5BKzBBQUFBQUFCQUFTQUFBQUFFQSYjeEE7QVFCSUFBQUFB UUFCLys0QURrRmtiMkpsQUdUQUFBQUFBZi9iQUlRQUJnUUVCQVVFQmdVRkJna0dCUVlKQ3dnR0Jn Z0xEQW9LQ3dvSyYjeEE7REJBTURBd01EQXdRREE0UEVBOE9EQk1URkJRVEV4d2JHeHNjSHg4Zkh4 OGZIeDhmSHdFSEJ3Y05EQTBZRUJBWUdoVVJGUm9mSHg4ZiYjeEE7SHg4Zkh4OGZIeDhmSHg4Zkh4 OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmLzhBQUVRZ0F4QUVBQXdF UiYjeEE7QUFJUkFRTVJBZi9FQWFJQUFBQUhBUUVCQVFFQUFBQUFBQUFBQUFRRkF3SUdBUUFIQ0Fr S0N3RUFBZ0lEQVFFQkFRRUFBQUFBQUFBQSYjeEE7QVFBQ0F3UUZCZ2NJQ1FvTEVBQUNBUU1EQWdR Q0JnY0RCQUlHQW5NQkFnTVJCQUFGSVJJeFFWRUdFMkVpY1lFVU1wR2hCeFd4UWlQQiYjeEE7VXRI aE14Wmk4Q1J5Z3ZFbFF6UlRrcUt5WTNQQ05VUW5rNk96TmhkVVpIVEQwdUlJSm9NSkNoZ1poSlJG UnFTMFZ0TlZLQnJ5NC9QRSYjeEE7MU9UMFpYV0ZsYVcxeGRYbDlXWjJocGFtdHNiVzV2WTNSMWRu ZDRlWHA3ZkgxK2YzT0VoWWFIaUltS2k0eU5qbytDazVTVmxwZVltWiYjeEE7cWJuSjJlbjVLanBL V21wNmlwcXF1c3JhNnZvUkFBSUNBUUlEQlFVRUJRWUVDQU1EYlFFQUFoRURCQ0VTTVVFRlVSTmhJ Z1p4Z1pFeSYjeEE7b2JId0ZNSFI0U05DRlZKaWN2RXpKRFJEZ2hhU1V5V2lZN0xDQjNQU05lSkVn eGRVa3dnSkNoZ1pKalpGR2lka2RGVTM4cU96d3lncCYjeEE7MCtQemhKU2t0TVRVNVBSbGRZV1Zw YlhGMWVYMVJsWm1kb2FXcHJiRzF1YjJSMWRuZDRlWHA3ZkgxK2YzT0VoWWFIaUltS2k0eU5qbyYj eEE7K0RsSldXbDVpWm1wdWNuWjZma3FPa3BhYW5xS21xcTZ5dHJxK3YvYUFBd0RBUUFDRVFNUkFE OEE2VkovempycGoyNGgvVEVnNDA0dSYjeEE7TGRBYWhRdTlHRmVuZjM4Y3E4SjBaN0RnUlhFZmtv Ti96alpwN240dGNrQ21sUWxzaW5ZZVBNNFBDWS95RkgrY2ZrMS8wTFBwSC9WNyYjeEE7dVA4QWtT bi9BRFZqNFBtbitRb2Z6aTcvQUtGbjBqL3E5M0gvQUNKVC9tckh3Zk5mNUNoL09MditoWjlJL3dD cjNjZjhpVS81cXg4SCYjeEE7elgrUW9memk3L29XZlNQK3IzY2Y4aVUvNXF4OEh6WCtRb2Z6aTcv b1dmU1ArcjNjZjhpVS93Q2FzZkI4MS9rS0g4NHUvd0NoWjlJLyYjeEE7NnZkeC93QWlVLzVxeDhI elgrUW9memk3L29XZlNQOEFxOTNIL0lsUCthc2ZCODEva0tIODR1LzZGbjBqL3E5M0gvSWxQK2Fz ZkI4MSYjeEE7L2tLSDg0dS82Rm4wai9xOTNIL0lsUDhBbXJId2ZOZjVDaC9PTHY4QW9XZlNQK3Iz Y2Y4QUlsUCthc2ZCODEva0tIODR1LzZGbjBqLyYjeEE7QUt2ZHgveUpUL21ySHdmTmY1Q2gvT0x2 K2haOUkvNnZkeC95SlQvbXJId2ZOZjVDaC9PTHYraFo5SS82dmR4L3lKVC9BSnF4OEh6WCYjeEE7 K1FvZnppNy9BS0ZuMGovcTkzSC9BQ0pUL21ySHdmTmY1Q2gvT0s2UC9uR3JTRWtWL3dCTjNCNGtH bm9wMk5mNXNmQjgxL2tLSDg0diYjeEE7Ui9KL2xYL0RPbW5UbzcrYTh0VlAranh5ckVnaUc1WUlJ MVQ3VEdwcmxrWTA3WFRhZndvOElOajRmb1Q3Sk9RN0ZYWXE3RlhZcTdGWCYjeEE7WXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx NyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWCYjeEE7WXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWCYj eEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWCYjeEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7 N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWCYjeEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cSYjeEE7N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWCYjeEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWC85az08L3hhcEdJbWc6aW1hZ2U+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAg ICAgICA8L3JkZjpBbHQ+CiAgICAgICAgIDwveGFwOlRodW1ibmFpbHM+CiAgICAgIDwvcmRmOkRl c2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAg ICB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+CiAgICAgICAg IDx4YXBNTTpEb2N1bWVudElEPnV1aWQ6REJFN0YyQjY4RkM4REIxMTk0RDdDQ0Q3NzZDQzBEREI8 L3hhcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6RENFN0Yy QjY4RkM4REIxMTk0RDdDQ0Q3NzZDQzBEREI8L3hhcE1NOkluc3RhbmNlSUQ+CiAgICAgIDwvcmRm OkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJy Ij8+DQplbmRzdHJlYW0NZW5kb2JqDTU0IDAgb2JqPDwvU3VidHlwZS9YTUwvTGVuZ3RoIDQ5Mi9U eXBlL01ldGFkYXRhPj5zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2Vo aUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IjMuMS4xLTExMSI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v cmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRm OmFib3V0PSJ1dWlkOjJmYzJiYzRhLWI1Y2YtMTFkYS05ODZjLWY3ZDc0NjI5ZmFmYiIKICAgICAg ICAgICAgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPgogICAg ICAgICA8eGFwTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MmZjMmJjNDctYjVj Zi0xMWRhLTk4NmMtZjdkNzQ2MjlmYWZiPC94YXBNTTpEb2N1bWVudElEPgogICAgICA8L3JkZjpE ZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/ Pg0KZW5kc3RyZWFtDWVuZG9iag01NSAwIG9iajw8L0kgZmFsc2UvSyBmYWxzZS9DUyA0NiAwIFIv Uy9UcmFuc3BhcmVuY3kvVHlwZS9Hcm91cD4+DWVuZG9iag01NiAwIG9iajw8L1N1YnR5cGUvSW1h Z2UvSW50ZW50L1JlbGF0aXZlQ29sb3JpbWV0cmljL0xlbmd0aCA2NDA3L0ZpbHRlci9EQ1REZWNv ZGUvTmFtZS9YL0JpdHNQZXJDb21wb25lbnQgOC9Db2xvclNwYWNlL0RldmljZUdyYXkvV2lkdGgg NDg0L0hlaWdodCAzNjEvVHlwZS9YT2JqZWN0Pj5zdHJlYW0NCv/Y/+4ADkFkb2JlAGSAAAAAAP/b AEMACQYGBgYGCQYGCQwICAgMDgoJCQoOEQ0ODg4NERENDg4ODg0RDhQWFhYUDhocHBwcGiQmJiYk KysrKysrKysrK//AAAsIAWkB5AEBIgD/xADSAAAABwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsQ AAIBAwMCBAIGBwMEAgYCcwECAxEEAAUhEjFBUQYTYSJxgRQykaEHFbFCI8FS0eEzFmLwJHKC8SVD NFOSorJjc8I1RCeTo7M2F1RkdMPS4ggmgwkKGBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1 ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4SFhoeIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqK mqq6ytrq+v/aAAgBAQAAPwDhubNiqQs/QYsLGUivE436nJWlDjxYSkV4nEpLV06jESCMrNmzZs2b NmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZscqM3TFY7Z2I2P3ZJdC0Nrl gCvX2yaw+SOcIbh2/kwDL5PKyU4f8Lg+38kc468P+Ewh1/ys1qCQlKf5OQm6spI3IofuwP8AV38D 92b6u/gfuzfV38D92b6vJ4H7sr6vJ4H7s31eTwOb6vJ4HN9Xk8Dm+ryeBzfV5PA5vq8ngc31eTwO b6vJ4HL+ryeB+7MLaQ9j92O+qS/yn7s31SX+U/dm+qS+B+7N9Ul8D92b6pL4H7s31SXwP3Zvqkvg fuyvqkngfuzfVJfA/dm+qy+B+7N9Vk8D92b6rJ4H7s31WTwP3ZvqsngfuzfVZf5T92b6rL/Kfuzf VZPA/dlfVpPA/dm+rSeB+7N9Wk8D92b6tJ4H7s31aTwP3ZX1eTwP3ZXov4HN6L+Bzei/gc3ov4HN 6L+Bzei/gc3ov4HN6L+Bzei/gcr0n8DlFGHbG0zZscg5GmHuk6SbogUrXJVZ+USwDFR+OTPy15aW F1qo/HOiWukRCADiOmAZ9CjMteI/HB9rpEax04jI95j8uLcK3FR+Oc8vvI7vISEH44E/wI/8g+85 X+BH/kH3nN/gST+Qfec3+BJP5B+OV/gWT+Qfjlf4Fk/kH45v8CyfyD8c3+BZP5B+Ob/Asn8g/HN/ gWT+Qfjl/wCBJP5B+Ob/AAJJ/IPvOb/Akn8g+85Y8iP/ACD8cVj8huf2B95xdfITU+wPxyz5Cb+Q fecr/ATfyD8c3+Am/kH45v8AATfyD8c3+AW/kH45X+Am/kH3nN/gJv5B95yv8BN/IPvOUfITfyD8 c3+An/kH3nN/gJ/5B95zf4Cf+Qfec3+An/kH3nK/wE38g/HN/gJ/5B+OUfITfyD7zjT5Df8AkH45 X+A3/kH3nN/gN/5B95yv8CP/ACD8c3+BH/kH3nGP5EcD7A/HAsnkmRf2R+OInyc4P2R+OWvkuRv2 R+OP/wAEy/yD8c3+CJf5B+Ob/BEv8g/HN/giX+Qfjm/wRL/IPxzf4Il/kH44yTyVKorxH44U3/lq S3BJUbfPI9dWphYg4EzYrAKuM6D5PhVmWudFjWOKIbYc6LMjOAMmlqA0YxQwKTXHrEAKYjNaJKNx gN9GhY1pjP0HD/L+rN+g4P5f1Zv0FB/L+rN+goP5f1Zv0FB/L+rK/QUH8v6s36Cg/l/Vm/QUH8v6 s36Cg/l/Vm/QUH8v6s36Cg/l/Vl/oKD+X9Wb9BQfy/qzfoOD+X9WOXRYR+zig0iHwzfoiHwzfoiH wzfoiHwzfoiHwzfoiHwzfoeHwyv0PD4Zv0PD4Zv0ND4fqyv0ND4fqzfoaHw/Vm/Q0Ph+rN+hofD9 Wb9DQ/y/qzfoaH+X9Wb9DQ/y406LD/L+rN+hIP5f1Zv0JB/L+rN+hIP5cr9CQfy41tDgI+z+rC7U NHgjQmmRe4SBJuNO+HGl6bBcAGmHK+XoCPs/qx3+HIP5f1Zv8OQfy/qzf4cg/l/Vm/w7B/L+rN/h 2D+X9WJT+XYOJ+H9WQfzXokcUbkL4+Gcb8wQCOZh75Hm65WK2/2xnRvJfxMo+WdPh0x54VIB6eGG uk6S8LgkH7sltsnBAMXzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bKIwt1OEyRk DIVeaTM1xyAPXwyRaHZvEo5A/dkjRaDHUGagzUGagzUGMkQFTkN822gaBzTse2cD82QcJ3+ZyIP9 rG4pCfjGdF8jn96n0Z3bQoEkt1qK7YeR2yJ0GLgUy82bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZ s2bNmzZs2bNmzYnJGHFDgVtOjY1oMXht1j6DFwKZs2bNmxrnbIp5qdRbv8jnAfOLAzvTxyEv9o43 FIftjOieRv75PmM755d/3nX5YfDpl5s2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bN mzZs2bNmzZs2bEbh+KE5AvOF6FicexzhPmef1J2+eRduuNxSH7Yzonkb++T5jO+eXf8AedfkMPx0 zZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bAOoOVjOcv8AOdy3 Fx884xrr8pW+eER65WKQ/bGdE8jf3yfMZ3zy7/vOvyGH46Zs2bNmzZs2bNmzZs2bNmzZs2bNmzZs 2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNgK/TlGc5f5ztjxc/POMa6nGVvnhCeuVikP2xnRPI398nz Gd88u/7zr8hh+OmbNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzY jcJyQjID5wsi0TmnY9s4V5mg9OdvnkWbrlYpD9sZ0TyN/fJ8xnfPLv8AvOvyw/HTNmzZs2bNmzZs 2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZsa9KZEvNap6D/I5wHzgFE708chb/ AGsbisA+MZ0jyKlZU+YzvWgLS3X5YeDpmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmz Zs2bNmzZs2bNmzZs2IzvxQnIH5w1ALE4r2OcJ8z3PqTv88irdcrFbf7YzpnkQ/vU+YzvGg/7zr8s Os2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmwv1KXhGc5Z5zvC Q4r49843rchaVj74SHrlYrb/AGxnS/Ig/ep8xnedB/3nX5YdZs2bNmzZs2bNmzZs2bNmzZs2bNmz Zs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bMcLdUQtE2co85W5Ac/POP6yvGVvnhMeuVi1v/eDOneQ1 /eJ9Gd30MUgX5YcZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bN ga7Tkhzm3nOzJjc08c4f5hiKTN88j565WLW394M6j5CH7xPozu2if3C/LDbNmzZs2bNmzZs2bNmz Zs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZsZIAVOQvzfChgc+xzgPmxAs708ciTdcrF rb+8GdS8hf3ifRnddF/uF+WG2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bN mzZs2bNmzYhcS8FJyB+b9QUROK9jnCPM84knc++RduuVi1t/eDOpeQv7xPozuui/3C/LDbNmzZs2 bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZR6YWarLwibOT+cr4/GK+Oc h1mUvKx98Jz1ysWtv7wZ1LyF/eJ9Gd10X+4X5YbZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs 2bNmzZs2bNmzZs2bNmzZs2bKPTCfWUZomp4ZyXzZYTSM9B45zPVtLlRmJGEE0RQ0OJYtbf3gzqXk L+8T6M7rov8AcL8sNs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2b NmwNcwiRSDkV1rS4GDFhnMfNNhbxh+Ocv1RFWVgMLsVtv7wZ1LyF/eJ9Gd10X+4X5YbZs2bNmzZs 2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNicv2TkV8wNIEbjXOU+ZxcPzq DnNNUjYSHlhZTFbb+8GdS8hf3ifRnddF/uF+WG2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bN mzZs2bNmzZs2bNmzZs2bNmzY1hUYWX2nLOpqMg/mby/GInbiO/jnFvM9msEzADItTfHW394M6l5C /vE+jO66L/cL8sNs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNm zY1gKZGPNCj6u/yOef8AzmP37/M5Cv2vpy7b+8GdS8hf3ifRnddF/uF+WG2bNmzZs2bNmzZs2bNm zZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZspumRfzSf9Hf5HPP3nI/v3+ZyF/tfTl2 394M6l5C+2n0Z3XRf7hflhtmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs 2bNmzZs2UTTAtxdpEDU5DfNOqxmFxXsc4V5suBLO5HjkTrv9OXbf3gzqXkL7afRnddF/uF+WG2bN mzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzYnMaKci2vXEqK3HOW+ Z9TnAcH3zmOrXLSyGuFdcUtf7wZ1PyD/AHifRnddF/uF+WGubNmzZs2bNmzZs2bNmzZs2bNmzZs2 bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzYhcSBVNcjGsywsrA0zlnm5IqORTOWaltKaeOAMWtf7wf POp+Qv7xPozumi/3C/LDbNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2 bNmzZR6YXaiW4GmQ3VhcNypnPPM8M3FuWcy1JSJTXAGLWv8AeD551PyF9tPozumi/wBwvyw2zZs2 bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bEJoRIKHC270yNlJIznH nWwSON6DxzietKFnYe+FOK2v94PnnU/IX20+jO6aL/cL8sNs2bNmzZs2bNmzZs2bNmzZs2bNmzZs 2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzYjcf3ZzmXnw/u3+nOD64f8ASG+eFGK2v94PnnU/IX20 +jO6aL/cL8sNs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmyiw GB7mRfTO+cv8+SD03+nOF60azt88KcWtf7wfPOp+Qvtp9Gd00X+4X5YbZs2bNmzZs2bNmzZs2bNm zZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bMcC3EhQHCW/1Aojf1zmPnW/MiuK/jnH9UflM 3zwuxa1/vB886n5C+2n0Z3TRf7hflhtmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZ s2bNmzZs2bNmzZs2BriPkpyParbfCxzlnnGEqH+nOUakKStgDFrX+8HzzqfkL7afRnddF/uF+WGu bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzYnL0wi1UMVYAZzHz fbSOrmnjnIdYgKTNXxwqpi1r/eDOpeQf7xPozuui/wBwvyw1zZs2bNmzZs2bNmzZs2bNmzZs2bNm zZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bKYVGArm0WQGo/DIN5t01BC5oO/bOF+Z4Qk7geORqm+K Wv8AeDOp+Qf7xPozumi/3C/LDXNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bNmzZs2bN mzZs2bNmzZs2NcfCchfnD+4f5HPP3mv/AHof5nIt3xS1/vBnU/IX94n0Z3TRf7hflhrmzZs2bNmz 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 z//ZDQplbmRzdHJlYW0NZW5kb2JqDTU3IDAgb2JqPDwvU3VidHlwZS9Gb3JtL0xlbmd0aCA5OS9G aWx0ZXIvRmxhdGVEZWNvZGUvTWF0cml4WzEuMCAwLjAgMC4wIDEuMCAwLjAgMC4wXS9Hcm91cCA1 NSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCA1NiAwIFI+Pi9Qcm9jU2V0Wy9QREYvSW1h Z2VCXS9FeHRHU3RhdGU8PC9HUzAgMTEgMCBSPj4+Pi9CQm94WzE2NS45MzkgNzEzLjk3OSAzOTgu MTM5IDU0MS4xNzldPj5zdHJlYW0NCkiJDMFBCoAgEADA+75iX6C7a6WeC6Jj9YIICSGRTHp/zjyg 553wekFv4T5q/MKY71xiCrXEE0sEMaLYN4NHatmKctQYRh565Y1nEsG+Y8XWObYWzwR6SYRThhV+ AQYAbHoY/A0KZW5kc3RyZWFtDWVuZG9iag01OCAwIG9ialsxLjAgMS4wIDEuMCAxLjBdDWVuZG9i ag01OSAwIG9iajw8L0cgNTcgMCBSL1MvTHVtaW5vc2l0eS9UeXBlL01hc2svQkMgNTggMCBSPj4N ZW5kb2JqDTYwIDAgb2JqPDwvT1BNIDEvQk0vTm9ybWFsL0NBIDEuMC9PUCBmYWxzZS9TTWFzayA1 OSAwIFIvY2EgMS4wL0FJUyBmYWxzZS9vcCBmYWxzZS9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlPj4N ZW5kb2JqDTEgMCBvYmo8PC9Dcm9wQm94WzAuMCAwLjAgNTk1LjI3NiA4NDEuODldL1BhcmVudCA1 IDAgUi9Db250ZW50cyAyIDAgUi9Sb3RhdGUgMC9CbGVlZEJveFswLjAgMC4wIDU5NS4yNzYgODQx Ljg5XS9BcnRCb3hbMC4wIDAuMCA1OTUuMjc2IDg0MS44OV0vTWVkaWFCb3hbMC4wIDAuMCA1OTUu Mjc2IDg0MS44OV0vVHJpbUJveFswLjAgMC4wIDU5NS4yNzYgODQxLjg5XS9SZXNvdXJjZXM8PC9G b250PDwvVDFfMCAxNiAwIFIvVDFfMSAxNyAwIFIvQzJfMCAzMSAwIFIvVDFfMiAyNiAwIFI+Pi9Q cm9jU2V0Wy9QREYvVGV4dF0vUHJvcGVydGllczw8L01DMDw8L01ldGFkYXRhIDMgMCBSPj4vTUMx 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 im/+JI8N1zRy+K+zk7EL1rs8ud4f2hvbDbCl4Ne3zXaKNaqzgWnUZQPTaMkGpvGEDUwjCAuYPlQ6 7I83/wowAM19pWENCmVuZHN0cmVhbQ1lbmRvYmoNMyAwIG9iajw8L1N1YnR5cGUvWE1ML0xlbmd0 aCA1MjE0L1R5cGUvTWV0YWRhdGE+PnN0cmVhbQ0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJX NU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczpt ZXRhLyIgeDp4bXB0az0iMy4xLjEtMTExIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wb3N0c2Ny aXB0PC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2Ny aXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9i ZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhhcEdJbWc9Imh0dHA6Ly9ucy5hZG9i ZS5jb20veGFwLzEuMC9nL2ltZy8iPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIEls bHVzdHJhdG9yIENTMjwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+ MjAwNy0wMy0wMlQxNTo0MToyMSswODowMDwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6 TW9kaWZ5RGF0ZT4yMDA3LTAzLTAyVDE1OjQxOjIxKzA4OjAwPC94YXA6TW9kaWZ5RGF0ZT4KICAg ICAgICAgPHhhcDpNZXRhZGF0YURhdGU+MjAwNy0wMy0wMlQxNTo0MToyMSswODowMDwveGFwOk1l dGFkYXRhRGF0ZT4KICAgICAgICAgPHhhcDpUaHVtYm5haWxzPgogICAgICAgICAgICA8cmRmOkFs dD4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAg ICAgICAgICAgICAgIDx4YXBHSW1nOndpZHRoPjI1NjwveGFwR0ltZzp3aWR0aD4KICAgICAgICAg ICAgICAgICAgPHhhcEdJbWc6aGVpZ2h0PjE5NjwveGFwR0ltZzpoZWlnaHQ+CiAgICAgICAgICAg ICAgICAgIDx4YXBHSW1nOmZvcm1hdD5KUEVHPC94YXBHSW1nOmZvcm1hdD4KICAgICAgICAgICAg ICAgICAgPHhhcEdJbWc6aW1hZ2U+LzlqLzRBQVFTa1pKUmdBQkFnRUFTQUJJQUFELzdRQXNVR2h2 ZEc5emFHOXdJRE11TUFBNFFrbE5BKzBBQUFBQUFCQUFTQUFBQUFFQSYjeEE7QVFCSUFBQUFBUUFC Lys0QURrRmtiMkpsQUdUQUFBQUFBZi9iQUlRQUJnUUVCQVVFQmdVRkJna0dCUVlKQ3dnR0JnZ0xE QW9LQ3dvSyYjeEE7REJBTURBd01EQXdRREE0UEVBOE9EQk1URkJRVEV4d2JHeHNjSHg4Zkh4OGZI eDhmSHdFSEJ3Y05EQTBZRUJBWUdoVVJGUm9mSHg4ZiYjeEE7SHg4Zkh4OGZIeDhmSHg4Zkh4OGZI eDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmLzhBQUVRZ0F4QUVBQXdFUiYj eEE7QUFJUkFRTVJBZi9FQWFJQUFBQUhBUUVCQVFFQUFBQUFBQUFBQUFRRkF3SUdBUUFIQ0FrS0N3 RUFBZ0lEQVFFQkFRRUFBQUFBQUFBQSYjeEE7QVFBQ0F3UUZCZ2NJQ1FvTEVBQUNBUU1EQWdRQ0Jn Y0RCQUlHQW5NQkFnTVJCQUFGSVJJeFFWRUdFMkVpY1lFVU1wR2hCeFd4UWlQQiYjeEE7VXRIaE14 Wmk4Q1J5Z3ZFbFF6UlRrcUt5WTNQQ05VUW5rNk96TmhkVVpIVEQwdUlJSm9NSkNoZ1poSlJGUnFT MFZ0TlZLQnJ5NC9QRSYjeEE7MU9UMFpYV0ZsYVcxeGRYbDlXWjJocGFtdHNiVzV2WTNSMWRuZDRl WHA3ZkgxK2YzT0VoWWFIaUltS2k0eU5qbytDazVTVmxwZVltWiYjeEE7cWJuSjJlbjVLanBLV21w NmlwcXF1c3JhNnZvUkFBSUNBUUlEQlFVRUJRWUVDQU1EYlFFQUFoRURCQ0VTTVVFRlVSTmhJZ1p4 Z1pFeSYjeEE7b2JId0ZNSFI0U05DRlZKaWN2RXpKRFJEZ2hhU1V5V2lZN0xDQjNQU05lSkVneGRV a3dnSkNoZ1pKalpGR2lka2RGVTM4cU96d3lncCYjeEE7MCtQemhKU2t0TVRVNVBSbGRZV1ZwYlhG MWVYMVJsWm1kb2FXcHJiRzF1YjJSMWRuZDRlWHA3ZkgxK2YzT0VoWWFIaUltS2k0eU5qbyYjeEE7 K0RsSldXbDVpWm1wdWNuWjZma3FPa3BhYW5xS21xcTZ5dHJxK3YvYUFBd0RBUUFDRVFNUkFEOEE2 VkovempycGoyNGgvVEVnNDA0dSYjeEE7TGRBYWhRdTlHRmVuZjM4Y3E4SjBaN0RnUlhFZmtvTi96 alpwN240dGNrQ21sUWxzaW5ZZVBNNFBDWS95RkgrY2ZrMS8wTFBwSC9WNyYjeEE7dVA4QWtTbi9B RFZqNFBtbitRb2Z6aTcvQUtGbjBqL3E5M0gvQUNKVC9tckh3Zk5mNUNoL09MditoWjlJL3dDcjNj ZjhpVS81cXg4SCYjeEE7elgrUW9memk3L29XZlNQK3IzY2Y4aVUvNXF4OEh6WCtRb2Z6aTcvb1dm U1ArcjNjZjhpVS93Q2FzZkI4MS9rS0g4NHUvd0NoWjlJLyYjeEE7NnZkeC93QWlVLzVxeDhIelgr UW9memk3L29XZlNQOEFxOTNIL0lsUCthc2ZCODEva0tIODR1LzZGbjBqL3E5M0gvSWxQK2FzZkI4 MSYjeEE7L2tLSDg0dS82Rm4wai9xOTNIL0lsUDhBbXJId2ZOZjVDaC9PTHY4QW9XZlNQK3IzY2Y4 QUlsUCthc2ZCODEva0tIODR1LzZGbjBqLyYjeEE7QUt2ZHgveUpUL21ySHdmTmY1Q2gvT0x2K2ha OUkvNnZkeC95SlQvbXJId2ZOZjVDaC9PTHYraFo5SS82dmR4L3lKVC9BSnF4OEh6WCYjeEE7K1Fv ZnppNy9BS0ZuMGovcTkzSC9BQ0pUL21ySHdmTmY1Q2gvT0s2UC9uR3JTRWtWL3dCTjNCNGtHbm9w Mk5mNXNmQjgxL2tLSDg0diYjeEE7Ui9KL2xYL0RPbW5UbzcrYTh0VlAranh5ckVnaUc1WUlJMVQ3 VEdwcmxrWTA3WFRhZndvOElOajRmb1Q3Sk9RN0ZYWXE3RlhZcTdGWCYjeEE7WXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxNyYj eEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWCYjeEE7WXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWCYjeEE7 WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WCYjeEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYjeEE7N0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWCYjeEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWSYjeEE7cTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcSYj eEE7N0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZ cTdGWFlxN0ZYWXE3RlhZcTdGWFlxNyYjeEE7RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3 RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RiYjeEE7WFlxN0ZY WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlx N0ZYWXE3RlhZcTdGWCYjeEE7WXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdG WC85az08L3hhcEdJbWc6aW1hZ2U+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAg ICA8L3JkZjpBbHQ+CiAgICAgICAgIDwveGFwOlRodW1ibmFpbHM+CiAgICAgIDwvcmRmOkRlc2Ny aXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4 bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+CiAgICAgICAgIDx4 YXBNTTpEb2N1bWVudElEPnV1aWQ6REJFN0YyQjY4RkM4REIxMTk0RDdDQ0Q3NzZDQzBEREI8L3hh cE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6RENFN0YyQjY4 RkM4REIxMTk0RDdDQ0Q3NzZDQzBEREI8L3hhcE1NOkluc3RhbmNlSUQ+CiAgICAgIDwvcmRmOkRl c2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+ DQplbmRzdHJlYW0NZW5kb2JqDTQgMCBvYmo8PC9TdWJ0eXBlL1hNTC9MZW5ndGggMTQ1NzAvVHlw ZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlI enJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4Onht cHRrPSIzLjEuMS0xMTEiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjph Ym91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRz LzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQ8L2RjOmZv cm1hdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRm OmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wLyIKICAgICAgICAgICAgeG1sbnM6eGFwR0ltZz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wL2cvaW1nLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgSWxsdXN0cmF0b3Ig Q1MyPC94YXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDA3LTAzLTA5 VDExOjI3OjA2KzA4OjAwPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhhcDpNb2RpZnlEYXRl PjIwMDctMDMtMDlUMTU6MTQ6NTgrMDg6MDA8L3hhcDpNb2RpZnlEYXRlPgogICAgICAgICA8eGFw Ok1ldGFkYXRhRGF0ZT4yMDA3LTAzLTA5VDE1OjE0OjU4KzA4OjAwPC94YXA6TWV0YWRhdGFEYXRl PgogICAgICAgICA8eGFwOlRodW1ibmFpbHM+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAg ICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAg ICAgPHhhcEdJbWc6d2lkdGg+MjU2PC94YXBHSW1nOndpZHRoPgogICAgICAgICAgICAgICAgICA8 eGFwR0ltZzpoZWlnaHQ+MjE2PC94YXBHSW1nOmhlaWdodD4KICAgICAgICAgICAgICAgICAgPHhh cEdJbWc6Zm9ybWF0PkpQRUc8L3hhcEdJbWc6Zm9ybWF0PgogICAgICAgICAgICAgICAgICA8eGFw R0ltZzppbWFnZT4vOWovNEFBUVNrWkpSZ0FCQWdFQVNBQklBQUQvN1FBc1VHaHZkRzl6YUc5d0lE TXVNQUE0UWtsTkErMEFBQUFBQUJBQVNBQUFBQUVBJiN4QTtBUUJJQUFBQUFRQUIvKzRBRGtGa2Iy SmxBR1RBQUFBQUFmL2JBSVFBQmdRRUJBVUVCZ1VGQmdrR0JRWUpDd2dHQmdnTERBb0tDd29LJiN4 QTtEQkFNREF3TURBd1FEQTRQRUE4T0RCTVRGQlFURXh3Ykd4c2NIeDhmSHg4Zkh4OGZId0VIQndj TkRBMFlFQkFZR2hVUkZSb2ZIeDhmJiN4QTtIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4 Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGYvOEFBRVFnQTJBRUFBd0VSJiN4QTtBQUlSQVFN UkFmL0VBYUlBQUFBSEFRRUJBUUVBQUFBQUFBQUFBQVFGQXdJR0FRQUhDQWtLQ3dFQUFnSURBUUVC QVFFQUFBQUFBQUFBJiN4QTtBUUFDQXdRRkJnY0lDUW9MRUFBQ0FRTURBZ1FDQmdjREJBSUdBbk1C QWdNUkJBQUZJUkl4UVZFR0UyRWljWUVVTXBHaEJ4V3hRaVBCJiN4QTtVdEhoTXhaaThDUnlndkVs UXpSVGtxS3lZM1BDTlVRbms2T3pOaGRVWkhURDB1SUlKb01KQ2hnWmhKUkZScVMwVnROVktCcnk0 L1BFJiN4QTsxT1QwWlhXRmxhVzF4ZFhsOVdaMmhwYW10c2JXNXZZM1IxZG5kNGVYcDdmSDErZjNP RWhZYUhpSW1LaTR5TmpvK0NrNVNWbHBlWW1aJiN4QTtxYm5KMmVuNUtqcEtXbXA2aXBxcXVzcmE2 dm9SQUFJQ0FRSURCUVVFQlFZRUNBTURiUUVBQWhFREJDRVNNVUVGVVJOaElnWnhnWkV5JiN4QTtv Ykh3Rk1IUjRTTkNGVkppY3ZFekpEUkRnaGFTVXlXaVk3TENCM1BTTmVKRWd4ZFVrd2dKQ2hnWkpq WkZHaWRrZEZVMzhxT3p3eWdwJiN4QTswK1B6aEpTa3RNVFU1UFJsZFlXVnBiWEYxZVgxUmxabWRv YVdwcmJHMXViMlIxZG5kNGVYcDdmSDErZjNPRWhZYUhpSW1LaTR5TmpvJiN4QTsrRGxKV1dsNWla bXB1Y25aNmZrcU9rcGFhbnFLbXFxNnl0cnErdi9hQUF3REFRQUNFUU1SQUQ4QTlVNHE3RlhZcTdG WFlxN0ZYWXE3JiN4QTtGWFlxN0ZYWXFncnEydDU5UnR4TkVrb1dHYmlIVU5UNG91bGNWVlAwWnB2 L0FDeVEvd0RJdGY2WXFrM21QVnRBMEZiZjZ4cHB1WmJ0JiN4QTttUzNodG9ZbWQyV253THpNWVoy NURpZ1BJN2tDaXNRcWlORHVORTFpMGU1dDlQRUt4eUdGMG1oalZnNmdGMTI1RDRHUEJ0OW1CSGJG JiN4QTtVeC9SbW0vOHNrUC9BQ0xYK21LcU0xalpSWFZrOFZ2SEc0bWFqS2lxZjdtVHVCaXFQeFYy S3V4VjJLdXhWMkt1eFYyS29hOWFYbGJSJiN4QTt4eU5GNnNwVm1VS1RRUnUzN1FZZFZIYkZYZlZK L3dEbHRtKzZIL3FuaXFFMWI5SVdtbnpYRnRMY1hNMFlCV0ZWaUpJTEFNMUZpWm00JiN4QTtxUzNG UVdOS0FFMHhWamtubVB6WjZUdkZwZDZRa2NSRHNxaXNqeGxuVDAvcS9QOEF2UjZRSUZCOXRxTFNw UXlUUzExQzYwMjF1Ym1hJiN4QTtlMnVab2trbnRpSXF4dXlnc2hyRUs4VHRXbUJLcGZRM1VWbGNT cGV6QjQ0M1pUeGg2cXBJL3dCMTRxajhWZGlyc1ZkaXJzVmRpcnNWJiN4QTtkaXJzVmRpcnNWZGlx R2svNDZVSC9HR2IvaVVXS29uRlhZcTdGWFlxaHJ2Ky9zditNeC81TXlZcWljVmRpcnNWZGlyc1Zk aXJzVmRpJiN4QTtxR3UvNyt5LzR6SC9BSk15WXFpY1ZTL1h0Y3NkQzBtZlZiN245VXRncGs5SkRJ L3hNRVVLaTdzU3pBYllxa2NQNW9lVVpYalVYRWc5JiN4QTtWa1NNbU5qWDFmUjlNMEZTQXkzS0VF L3IyeHBWMFA1bCtWNXRVVFRJbm5lNGttRnNqQ0Z5aGthVjRmdFU2QjR6VTlzYVZrT3Avd0RIJiN4 QTtOdS8rTU1uL0FCRTRxaWNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcUdrLzQ2VUgvQUJo bS93Q0pSWXFpY1ZkaXJzVmRpcUd1JiN4QTsvd0Mvc3Y4QWpNZitUTW1Lb25GWFlxN0ZYWXE3RlhZ cTdGWFlxZzlSNWtXNnhEOTgwdEltNUJlSjlOeVR1c2creUNQczRxbytoclgrJiN4QTsvdjhBa3JI L0FOazJLclh0OVhLbm5LT0kzTlpJNmJiOTdiRldNYUo1czByVnJtemkwNlFzMTZaQlp5OEZWVzlG Rm1rK0w2cjhQRU1wJiN4QTszcHY3NFVNbCtvYWtHNWdwenJYbHppcldwUFg2dDRrNEVyTDZMVmxz cmhwSDV4aU55NmVxZ3FvVTFGZnEzZkNxYzRGZGlyc1ZkaXJzJiN4QTtWZGlyc1ZkaXJzVmRpcnNW ZGlxR2svNDZVSC9HR2IvaVVXS29uRlhZcTdGWFlxaHJ2Ky9zditNeC93Q1RNbUtvbkZYWXE3RlhZ cTdGJiN4QTtYWXE3RlhZcWhydisvc3YrTXgvNU15WXFpY1ZTenpJbXR2bzgwZWlDQTZqSThLSjli VXZDSTJtUlppNmdxV0FoTG1sZDhWWVpkV3Y1JiN4QTtuUTMwRXRsbzJrQ0dOakk4c1FSWnc4c2hX VDBpNUFYOTB2Mmp1M0lFZ1VLNFVNMDh1UHJ6NlRHZGVTS1BVK1VucXJCdkh4NW4wNkdwJiN4QTsz NFU1ZTljQ1VUcWYvSE51L3dEakRKL3hFNHFpY1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlx R3VJN242ekZQQXFQd1IwWlhZJiN4QTtwOXNvUVFRci93QW1LdTlUVXY4QWZFUC9BQ09iL3FsaXJ2 VTFML2ZFUC9JNXYrcVdLcWNWMXFNanpKOVhoSG91RUo5WnQ2b3IxL3V2JiN4QTs4ckZWVDFOUy93 QjhRLzhBSTV2K3FXS3JTbDlMUEEwc2NTSkM1Y2xaR2NtcU1sS0ZGL204Y1ZSZUt1eFYyS3V4VjJL b1J4UExmU1JMJiN4QTtPOEtKRkd3Q0JEVXV6ZzE1cTM4b3hWNTh2bkw4eHpwNlhBOHMzaG5lSjI5 TG1pMGNFQ05TR3R3dzUxb2R2aDZuYkNobGVnYXJyRng5JiN4QTtYZS90NUxkcm9mRmF6c2drZytL ZmpYaEdvWXNrUzh0NkR0WHVwVGk3L3Y3TC9qTWYrVE1tQlVUaXJzVmRpcnNWUTJwLzhjMjcvd0NN JiN4QTtNbi9FVGlxSnhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFZEV245L2Uv OFpoL3laanhWRTRxN0ZYWXE3RlhZcTdGJiN4QTtYWXFoby84QWpwVC9BUEdHSC9pVXVLb25GVXRu L3dDTzFEL3p5LzVOM09LcTJvOHlMZFloKythV2tUY2d2RSttNUozV1FmWkJIMmNWJiN4QTtVZlEx ci9mMy9KV1Avc214Vm93NjBBVDZ0YWRoSkgvMlRZcXcrMi9OUFFibTUrcng2ako2cGVPTlFWWUF2 TWFJQi9vbjMrR0ZETWZRJiN4QTsxci9mMy9KV1Avc213SlVMNkxWbHNyaHBINXhpTnk2ZXFncW9V MUZmcTNmQ3FjNEZRa2VxV3NrYXlJSm1Sd0dVK2hOdUNLajlqRlYzJiN4QTs2UWcva20vNUVUZjgw WXEwMnAycWlyQ1ZSc0ttR1lEZllmc1lxdFRWN0tRMFF5T1IxQ3d5bjlTKytLci9BTklRZnlUZjhp SnYrYU1WJiN4QTtkK2tJUDVKditSRTMvTkdLcXNGekZPR01mTDRHNHNHVmtJTkFlakFIb1JpcXBp cnNWZGlyc1ZkaXJzVmRpcUd0UDcrOS93Q013LzVNJiN4QTt4NHFpY1ZkaXJzVmRpcnNWZGlyc1ZR MGYvSFNuL3dDTU1QOEF4S1hGVVRpcVd6LzhkcUgvQUo1ZjhtN25GVVRkL3dCL1pmOEFHWS84JiN4 QTttWk1WUk9LcWR4Y1c5dkMwMXhLa01LYnZKSXdWUlUwM0pvQmlxVm9ubEJXZVpGMDhNam1PU1FD RUZYSDJsWTltSHBiai9KOXNWUngxJiN4QTtiU2hLSVRld0NWbmFKWS9WVGtaRktxeUFWcnlCa1VF ZTQ4Y1ZiMVAvQUk1dDMveGhrLzRpY1ZST0tvYlRQK09iYWY4QUdHUC9BSWlNJiN4QTtWUk9Lb1BX ZElzdFkwMmZUcjBNMXRPQUg0TVVZRldEcVZZYmdobEJCeFZLOUQ4amFMb3VwUHFObTF3YmhvM2hB bG1aMFdKMzlRb3FIJiN4QTtiN1FyWDdYaWNWWkJpcnNWUUVONUZGZFhxTXNoSW1YZFlwSEg5ekgz VlNNVlZ2MGhCL0pOL3dBaUp2OEFtakZYZnBDRCtTYi9BSkVUJiN4QTtmODBZcTc5SVFmeVRmOGlK dithTVZkK2tJUDVKditSRTMvTkdLb2FUNm5lNmxBSklmVUNRekVldEV5MHEwWFQxRkg0WXFpZjBa cHYvJiN4QTtBQ3lRL3dESXRmNllxa0htbTV2dE1hMVhSL0xDYXlaMW1NeFF4UkNJeHFESHk1aWg1 aytOZHRxbWd4VkxiRFdOZHVMeTN0NWZKNHQwJiN4QTtrbGpTYWR3Z1JZbWM4cHEwNkJGMlUvRlg3 UVhDaG1QNk0wMy9BSlpJZitSYS93Qk1DVkdheHNvcnF5ZUszampjVE5SbFJWUDl6SjNBJiN4QTt4 Vkg0cTdGWFlxN0ZYWXFoby84QWpwVC9BUEdHSC9pVXVLb25GVXRuL3dDTzFEL3p5LzVOM09Lb203 L3Y3TC9qTWY4QWt6SmlxSnhWJiN4QTtKL044RWsvbCs0amp0R3ZuTHdsYlpHWldZck9qVlZrb3da YWNnYXJ1UHRMOW9LdlA3N3l1c3NNVFMrWExpZVVXOGl3d0c0dWYzQ3JiJiN4QTszTVl0QTREYmNY OUlHdkU4K1NuQ2hsT2grUXZMNGtoMUdYVFdzcisydTVwWWtXZVYxRHhYTS9DWWNqdjZxVE14cU53 d0IreUtCTEp0JiN4QTtULzQ1dDMveGhrLzRpY1ZST0tvRzFYVW9MYUtEMFlXOUpGVGw2ckN2RVVy VDA4VlZmVTFML2ZFUC9JNXYrcVdLdTlUVXY5OFEvd0RJJiN4QTs1djhBcWxpcnZVMUwvZkVQL0k1 ditxV0t1OVRVdjk4US93REk1djhBcWxpcnZVMUwvZkVQL0k1ditxV0tycldLVkRNOG9VUE0vTXFw JiN4QTtMQVVSVXBVaGEvWnIweFZYeFYyS3V4VjJLb2FUL2pwUWY4WVp2K0pSWXFpY1ZkaXJzVmRp cUUxQ1JZNUxOMkRFQ1k3S3JPZjdtVHNvJiN4QTtKeFZkK2tJUDVKditSRTMvQURSaXJ2MGhCL0pO L3dBaUp2OEFtakZYZnBDRCtTYi9BSkVUZjgwWXE3OUlRZnlUZjhpSnYrYU1WZCtrJiN4QTtJUDVK ditSRTMvTkdLcWRyY0pOcU53VURpa01OZWFPbjdVdlRtRnhWRzRxbHMvOEF4Mm9mK2VYL0FDYnVj VlJ0eGJpWUo4YlJ2RzNKJiN4QTtIV2xRYUZmMmd3Nk1lMktxZjFTZi9sdG0rNkgvQUtwNHE3NnBQ L3kyemZkRC93QlU4VmQ5VW4vNWJadnVoLzZwNHE3NnBQOEE4dHMzJiN4QTszUS85VThWV3kyRWtz VHhTWGt4UjFLdUtRaW9Jb2VrZUtvdkZVdTA3VHRQZlQ3WjN0b21ab2tMTVVVa2txS2ttbUtvajlH YWIvd0FzJiN4QTtrUDhBeUxYK21LcEo1ajAvV0ZhRmRCc0xOK2FTTEs4OGFjVWtMeENOanVwS2lQ MVRSYWt0eEd3cVFxaC9LTmo1bmNPUE0rbldFWkVTJiN4QTs4R3RrUVZrNXZ5QkFNbjdQSHVQNkZX Ui9velRmK1dTSC9rV3Y5TUN1L1JtbS93RExKRC95TFgrbUtvZTJ1YmUzbnU0RmpkVWpsQVJJJiN4 QTs0WkdRQXhSdHR3VXIxTmNWUkg2UWcva20vd0NSRTMvTkdLclgxTzJSU3hTY2dmeTI4N0g3Z2hP S3J2MGpiL3lUZjhpSnYrYU1WZCtrJiN4QTtJUDVKditSRTMvTkdLcVMzTWMycFE4QTQ0d3pWNXh1 blY0dW5NTFhGVWRpcnNWZGlyc1ZRMTMvZjJYL0dZLzhBSm1URlVUaXJzVmRpJiN4QTtyc1ZkaXFH ai93Q09sUDhBOFlZZitKUzRxaWNWUzJmL0FJN1VQL1BML2szYzRxbVdLdXhWMkt1eFYyS3V4VjJL b2JUUCtPYmFmOFlZJiN4QTsvd0RpSXhWRTRxay9tTy84dzJpMjM2R3NVdkdrazR6bHpRSUtpZ0lC VWdHcCtNY3FVK3lhMUNxUnRyMzVqcnc0NkZCTnpBTGZHWWhGJiN4QTt1QWVYeHlGOStWT0lyUUEw MzQ0VU10MCtTN2xzTGFTOGo5RzdlSkd1SVJUNEpDb0xyc1hHemJmYVB6d0pWOFZRMXAvZjN2OEF4 bUgvJiN4QTtBQ1pqeFZFNHE3RlhZcTdGVU5jUjNQMW1LZUJVZmdqb3l1eFQ3WlFnZ2hYL0FKTVZk Nm1wZjc0aC93Q1J6ZjhBVkxGWGVwcVgrK0lmJiN4QTsrUnpmOVVzVlU0cnJVWkhtVDZ2Q1BSY0lU NnpiMVJYci9kZjVXS3FucWFsL3ZpSC9BSkhOL3dCVXNWV2xMNldlQnBZNGtTRnk1S3lNJiN4QTs1 TlVaS1VLTC9ONDRxaThWZGlyc1ZkaXJzVlMrL211TE9iNjFIRDY4Y2dTS1FEMUN5Y09iQmdzY2Ny TlV0VHB0aXEzOUtYZi9BQ3kvJiN4QTtoYy85aytLcVVjazArcFF5dkV5ZkVvb0Vsb0FrYzI1WjQ0 d041QU1WVGZGWFlxN0ZYWXE3RlhZcTdGVU1OTDB3Q2d0SWFmOEFHTlA2JiN4QTtZcTc5R2FiL0FN c2tQL0l0ZjZZcTc5R2FiL3l5US84QUl0ZjZZcTc5R2FiL0FNc2tQL0l0ZjZZcTc5R2FiL3l5US84 QUl0ZjZZcTc5JiN4QTtHYWIvQU1za1AvSXRmNllxclJRd3dwd2lSWTA2OFVBVWZjTVZYNHE3RlhZ cTdGWFlxN0ZYWXFoclQrL3ZmK013L3dDVE1lS29uRlhZJiN4QTtxN0ZYWXE3RlhZcTdGWFlxN0ZY WXE3RlhZcTdGVk82bTlDMmxucHk5SkdmaldsZUlyU3VLcGJxV3ZSNllJenFNbHBhaVhsNlpsdUdY JiN4QTtsd0hKcVZpN0RGVlQ5S1hUMkQzc0VVRTBLSzdBaVp4VXgxRERlTFlncVJpcVpZcTdGWFlx N0ZVSUxtOWVlZElvSXlrTGhBelNzcE5VJiN4QTtWNjBFYlUrMVRyaXJUM043SFQxSTdkS2drY3Ay R3c2OVl1MktyWWIyNW1KRUsyMHBBQlBDNExiSG9kbysrS3FzZHhjL1dWZ25pUk9hJiN4QTtNNnNq bC9zRlFRUVVUK2ZGVVRpcnNWZGlyc1ZkaXJzVmRpcUd0UDcrOS80ekQva3pIaXFKeFYyS3V4VjJL dXhWMkt1eFYyS3V4VjJLJiN4QTt1eFYyS3V4VkRhbi9BTWMyNy80d3lmOEFFVGlyVi9wT202Z0FM MjJqdU9LdWkrb29haXlVRDByMHJ4RzR4VlR1cldDMTBlNmhoWGpHJiN4QTtJcG1vU1dKWnd6TVNX SkpKWWtrbkZVZGlyc1ZkaXJzVlExcC9mM3YvQUJtSC9KbVBGVXU4eWVUOUQ4eG16YlZJM2MyTW5x MjVqZG82JiN4QTtOeVZpRHhPNGJnQVFlbzJ4VnZ5MzVTMGJ5N0hJbW1veStzQjZydWVUTWVieVY2 RDlxVnZid3hWTUpQOEFqcFFmOFladitKUllxaWNWJiN4QTtkaXJzVlFGakRkUzJWdks5N01Ya2pS bVBHSHF5Z24vZGVLcTMxU2YvQUpiWnZ1aC82cDRxNzZwUC93QXRzMzNRL3dEVlBGVUpxdDFCJiN4 QTtwT256YWhmNmpORGFRQUdhWGhFM0VGZ3RhTEVUMU9LcFJwdm1yUWJ2Vm85TWcxTzVUVXIwR1lX MGtVYXNTZ2RHcldMalVDM08xY0tHJiN4QTtSZlZKL3dEbHRtKzZIL3FuZ1M3NnBQOEE4dHMzM1Ev OVU4VmQ5VW4vQU9XMmI3b2YrcWVLcU45RGRSV1Z4S2w3TUhqamRsUEdIcXFrJiN4QTtqL2RlS28v RlhZcTdGWFlxN0ZYWXE3RlhZcTdGVU5xZi9ITnUvd0RqREoveEU0cWxubWJ6am8vbDE3T1BVQy9x M3hrRnNpQmR6RUFXJiN4QTtxenNpcVBpRzVPS29QVHZPK2llWXJDN1RUdlZyOVZrbC9lcHcrSGdw MzNORHhsUTBPNHJ2dnRoVmxHQlhZcTdGWFlxaHJUKy92ZjhBJiN4QTtqTVArVE1lS29uRlhZcWdy cTJ0NTlSdHhORWtvV0diaUhVTlQ0b3VsY1ZWUDBacHYvTEpEL3dBaTEvcGlydjBacHY4QXl5US84 aTEvJiN4QTtwaXJ2MFpwdi9MSkQvd0FpMS9waXJ0TC9BT09iYWY4QUdHUC9BSWdNVlJPS3V4VnAw UjE0dW9aYWcwSXFLZzFINDRxcFFXTmxBRldDJiN4QTszamlDQUJBaUtvVURsUUNnMisyMzNuRlZi RlhZcTdGVU5xbi9BQnpidi9qREoveEE0cTc2cFA4QTh0czMzUS85VThWZDlVbi9BT1cyJiN4QTti N29mK3FlS3UrcVQvd0RMYk45MFAvVlBGWGZWSi84QWx0bSs2SC9xbmlydnFrLy9BQzJ6ZmREL0FO VThWVUpXTVV2cE5lM0pjS0dJJiN4QTtTSkhvQ1NCWGhDMzhweFZEcnFWbTBZa1hVYmhveUtoeENw Qkd3clgwZjhvWXEyTlF0V0JJMUc1SUJJTklSMVUwWWYzUFk3SEZWZTNiJiN4QTs2dzdKRmUzUEpG VnlHaVJQaGV2RWpuRXRmc25waXEzVXJXZjlIWFgrbVRIOXpKdFNIK1UvOFY0cWo1SVlaUDd4RmZ0 OFFCOSsrS29mJiN4QTtVbzQxMDY3S3FBZlJsM0E4VkpQM25GVVhpcnNWZGlyc1ZTczNzc0Y1ZHBG RjZvTWlsalNmWStrbTN3Uk9wMjMyT0tydjBwZC84c3Y0JiN4QTtYUDhBMlQ0cTc5S1hmL0xMK0Z6 L0FOaytLcnJXNGU0dmthUlBTZElwQXFVbCtJTXlWTlpJNHVsQjkrS3BoaXJzVmRpcUcwei9BSTV0 JiN4QTtwL3hoai80aU1WUk9LdXhWMkt1eFYyS3V4VjJLb2JWUCtPYmQvd0RHR1QvaUJ4VjNxYWwv dmlIL0FKSE4vd0JVc1ZkNm1wZjc0aC81JiN4QTtITi8xU3hWM3FhbC92aUgvQUpITi93QlVzVmQ2 bXBmNzRoLzVITi8xU3hWM3FhbC92aUgvQUpITi93QlVzVlU3VnJnNmpjZXNpSWZSJiN4QTtoNDhI TDErS1hyVlV4VmpPbS9sSjVQMDZHR0cyam5BZ0lLTTB2SnFpUVNqY2phakRZclFqNWhTRGFycC95 bThtVHp6VFNRUzg3aC9VJiN4QTtscEs0cWVZazdkdVlyVCtHMk5yVEk3QzFpdEp6YXcxRVZ2YTI4 VVlKcWVLR1JSVS9JWUZWZFQvNDV0My9BTVlaUCtJbkZVVGlxRzFQJiN4QTsvam0zZi9HR1QvaUp4 VkU0cTdGWFlxN0ZVTmFmMzk3L0FNWmgvd0FtWThWWTdZNkw1NXQyWjduV0liMXVTT3FGV2hXbjFn elNSL0NHJiN4QTtwVldFWWNnMFZhY2R5UVZVUEsvbG56eHAycFF6YXg1Zy9TbGxHanEwQlVveFo2 a01XSDJ1QkpVRHdJcnV0U3F5VzZsZVBVYmZoQzgxJiN4QTtZWnFoQ2dwOFVYWG15NEZWUHJjLy9M Rk45OFAvQUZVeFYzMXVmL2xpbSsrSC9xcGlydnJjL3dEeXhUZmZELzFVeFYybC93REhOdFArJiN4 QTtNTWYvQUJBWXFpY1ZkaXJzVmRpcnNWZGlyc1ZRMnFmOGMyNy9BT01Nbi9FRGlydjBmQi9QTi95 UG0vNXJ4VlpiUitsZlR4cTd0SDZVJiN4QTtUQlhkM29TMGdKSE10MW9NVlJtS3V4VjJLb0ZycTJn MUtiMTVVaTVReGNlYkJhMGFTdEs0cXEvcFBUZitXdUgvQUpHTC9YRlhmcFBUJiN4QTtmK1d1SC9r WXY5Y1ZVN1c1dDU5UnVEREtrb1dHSGtVWU5UNHBldE1WVk5UL0FPT2JkLzhBR0dUL0FJaWNWUk9L b2JVLytPYmQvd0RHJiN4QTtHVC9pSnhWRTRxN0ZYWXE3RlVOYWYzOTcvd0FaaC95Wmp4VkU0cTdG VU5KL3gwb1ArTU0zL0Vvc1ZST0t1eFYyS29LMnRkUmd0NG9SJiN4QTtjUXNJa1ZBM290dnhGSy8z dUtxSzNPcG15Z3VmVmhyTjZQdytrKzNxc3E5ZlU3Y3NWUlhwNmwvditIL2tTMy9WWEZYZW5xWCsv d0NIJiN4QTsva1MzL1ZYRlZLNWJVb1l3L3JRdFY0MHA2TGo3YmhLLzN2YmxpcXI2ZXBmNy9oLzVF dC8xVnhWM3A2bC92K0gvQUpFdC93QlZjVlVwJiN4QTttMUtPU0JQV2hQck9VcjZMN1VSbnIvZS81 T0t0M05ycU05dkxDYmlGUktqSVc5RnR1UXBYKzl4Vkc0cWhvLzhBanBUL0FQR0dIL2lVJiN4QTt1 S29uRlhZcTdGWFlxN0ZYWXE3RlZDK2plV3h1SW94VjNpZFVIU3BLa0RyaXEzNjNQL3l4VGZmRC93 QlZNVlViNmE2bHNyaUpMS1l2JiN4QTtKRzZxT1VQVmxJSCs3TVZSK0t1eFYyS3V4VkNDMnZVbm5l S2VNSk00Y0swVE1SUkZTbFJJdGZzMTZZcXU5UFV2OS93LzhpVy82cTRxJiN4QTs3MDlTL3dCL3cv OEFJbHYrcXVLdWp0N242eXM4OHFQd1JrVlVRcDlzcVNTUzcveVlxaWNWZGlyc1ZkaXFXcC94eGJM L0FLTlArVGtlJiN4QTtLcGxpcnNWUTJvZjNDZjhBR2FEL0FKUEppcUp4VjJLb2E3L3Y3TC9qTWY4 QWt6SmlxSnhWMktvYVAvanBULzhBR0dIL0FJbkxpcUp4JiN4QTtWMktvYjY2N0Z2U3RwWlVWbVht cGpBSlVsVyswNm5Zand4VlFUVzRIZDQwakxQR3dTUlJMYmtxek1WQ2tlcnNTeWtVOGNWVnZyc3BZ JiN4QTtwOVVsNUFBbGVVTlFEV2hwNm5zY1ZiVzliMVk0NUxhV0wxV0txekdNaW9VdCt5N0hvcDdZ cWljVlVyaTRFSVQ0R2tlUnVLSXRLazBMJiN4QTtmdEZSMFU5OFZVL3JjLzhBeXhUZmZELzFVeFZE Vyt1MnR5eXJicjZ6Tnk0ckhMYnNUd29HcFNVL1pxSzRxcnkzOGtVVHl5V2N3UkZMJiN4QTtPYXdt Z0FxZWttS292RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZVdFQvamkyWC9BRWFmOG5JOFZSY2w5 WXhPWTViaUpISFZHZFFSJiN4QTtYZm9UaXEzOUo2Yi9BTXRjUC9JeGY2NHFodFExTFRqQXRMcUgr K2cvM1l2Ky9rOThWUlA2VDAzL0FKYTRmK1JpL3dCY1ZkK2s5Ti81JiN4QTthNGYrUmkvMXhWYk5M RkxKWXlST3JvWm1vNmtFR2tNZzZqRlVYaXJzVlFrYUtOVnVYcDhUUVFLVDdCNWlQMTRxaThWZGlx RzAvd0R1JiN4QTtILzR6VC84QUo1OFZTUlBJSGwrT3hObkdKa2lNcVM4MGs0eWdSUm1LTkZsVUIx Q3F4RlFlUjNxeHFhdHFncnY4cWZLMTJUNnpYWjVSJiN4QTtlaTFMaDZ0SHc0Y1hQVnh4Skh4azlo MFZPSnRXVDNDaFpiRlIwV1VnZEIwaGs4TUNvckZVTmQvMzlsL3htUDhBeVpreFZFNHF4bnkxJiN4 QTsrWG5sN3k1ZGZXdE1FeXlrTXIrbzRjTXJCRnB1dTFCR09sUGV1S3A3cWY4QXh6YnYvakRKL3dB Uk9Lb25GWFlxN0ZVSUh2cFo1MWlrJiN4QTtpUklYQ0FOR3prMVJYclVPdjgzaGlyRmJuOHk5RXQ3 K093a3YxK3N5SkE0UmJXVnFmV2s5U0lHa3AzSzl2bDNJdzBoazlyTGVYVnJEJiN4QTtkUTNFTFF6 b3NzYkdCeFZYQVliR1h3T0JMYlhwdGJtT0c5bmhBbFIzUnFlbHZHVkJIeE8xZnQ0cXFmcFBUZjhB bHJoLzVHTC9BRnhWJiN4QTszNlQwMy9scmgvNUdML1hGWGZwUFRmOEFscmgvNUdML0FGeFYzNlQw My9scmgvNUdML1hGVUxHUWRGc1NOd2ZxbEQvczQ4VlJWcC9mJiN4QTszdjhBeG1IL0FDWmp4VlQx bTJ2N25UWm9MQ2Y2dGR2eDlPWW1nV2pBdFdnSnB4cnNLRTltWDdRVllmZmVUUFBzNmt4ZWFaSTVH QlQ0JiN4QTtBeUlvRWJJc2dIeGt0eUt1VnJTdmZwaFFtWjBIem0xM2J5alhmVGhpK3Irc2dRTjZ2 R05WdU9RS2dMeWRPUzhmRmh0aWxsV0JVdGkvJiN4QTs0OWYrWXk0LzVuNHFtV0t1eFZEU1c5ejla YWVHVkU1b2lNcnhsL3NGalVFT244K0t1OVBVdjkvdy93RElsdjhBcXJpcnZUMUwvZjhBJiN4QTtE L3lKYi9xcmlxM1N4SUxVaVJneit0UFZsQlVmM3o5aVcvWGlxTHhWMktvVFVCS1pMTVJNcXY2eG96 S1dIOXpKMkJYOWVLcnZUMUwvJiN4QTtBSC9EL3dBaVcvNnE0cW96SmVpNnNqTExHNmVzMVZXTmxQ OEFjeWR5N2ZxeFZINHE3RlVOcWY4QXh6YnYvakRKL3dBUk9Lb25GWFlxJiN4QTs3RlVyUzl1WXJ5 K1NQVDU3aFJNdEpZMmdDbjl6SC92eVZHL0RGWG15ZVNOUWlqV0Z0WHZFWUIyUm96YlJNUk1YWU1h WDFPcnJ4b0FQJiN4QTtnWHZVa29UTFVmS1htKzdVeDJHc2F0WTJiaWJoNlRRTTZKTEk3Um9qZlhL Y1k0cFNxdDlvR2pWMlFJcXpxQzZubjFLTDFiU1cxNHd5JiN4QTswOVV4SGxWNCtucFNTZFBmQWxN Y1ZkaXJzVmRpcVdwL3h4YkwvbzAvNU9SNHF2aHZyS0s2dlVsdUk0M0V5MVZuVlQvY3g5aWNWVnYw JiN4QTtucHYvQUMxdy93REl4ZjY0cXhmWGZOSG1XMXZuR2x3V2w1WkNWSXg4Y1lrRWJSaG5scTA4 U3R4ZXE4TmlmSENoWDBMekpyY3VwbXoxJiN4QTttTzBpaFNGbmE4Z2NDSnBRVUNxaGFWMk5lVDlW RktEYzEyVlpEK2s5Ti81YTRmOEFrWXY5Y0NVSmJTUnlKYVBHd2RHdkxpaktRUWY3JiN4QTsvdU1W VFRGWFlxN0ZYWXE3RlV2czc2eGlqa2psdUlrY1RUMVJuVUVWbWM5Q2NWVi8wbnB2L0xYRC93QWpG L3JpcnYwbnB2OEF5MXcvJiN4QTs4akYvcmlxak5mV1V0MVpKRmNSeU9abW9xdXJIKzVrN0E0cWo4 VlFsL0xGRkpaeVN1cUlKalYySUFGWVpCMU9LcnYwbnB2OEF5MXcvJiN4QTs4akYvcmlydjBucHYv TFhEL3dBakYvcmlxRzFMVXRPT25YUUYxQ1NZWktEMUYvbFB2aXFaWXE3RlhZcWxhYXZwTnRlWDBO emV3UXlpJiN4QTtaU1k1SlVSaFdHTWpZa0hGWGk4K2g2emN5TGVQQllqVVkwVkVuYS9ocXZvSzZX d1RoZEJmZ1JVVW5pSzhucUcySktHV1RlYlBPbWwyJiN4QTtjV202UGI2UGN4MnNja0ZwSTl6REhH WTRYYUczZGdzNjhTWS9Ua1pBT2dJQnExSTFXZGk1MHpVdFNoRnZkcFA2VU1wYjZ2T2R1VFJVJiN4 QTs1ZWszdDN3SlJuNlBnL25tL3dDUjgzL05lS3UvUjhIODgzL0krYi9tdkZYZm8rRCtlYi9rZk4v elhpcnYwZkIvUE4veVBtLzVyeFZEJiN4QTtKL3h4YkgvbzAvNG5IaXFMa3ZyR0p6SExjUkk0Nm96 cUNLNzlDY1ZXL3BUVGYrV3VIL2tZbjljVlEyb2FucHZvTC9wY1A5OUIvdXhmJiN4QTs5L0o3NHFp ZjBucHYvTFhEL3dBakYvcmlydjBwcHY4QXkxdy84akUvcmlxMmFXS1dTeGtpZFhRek5SMUlJTkla QjFHS29za0FWT3dHJiN4QTtLb2I5SjZiL0FNdGNQL0l4ZjY0cTc5SjZiL3kxdy84QUl4ZjY0cTc5 SjZiL0FNdGNQL0l4ZjY0cXF3M1Z0UFgwSlVsNDA1Y0dEVXIwJiN4QTtyVEZWVEZYWXE3RlhZcTdG WFlxN0ZYWXE3RlhZcTdGWFlxaHJUKy92ZitNdy93Q1RNZUt2RkxqOHd0Ym1rUzlpMWE2UzNqaVVQ WlJSJiN4QTtJOWZxNk9zalNPSDVvWmpFNzE0L0I4SFZUWENobXVtZm14b1NRMmRqY0M3dXI0bGJW N2hJNFdXYVZHRWJ5ajA1R0FRbjQ2OUFNYVZtJiN4QTtWMHR3ZFJ0L1JkRVBvemN1YUY2L0ZGMG95 WUVxbnA2bC92OEFoLzVFdC8xVnhWM3A2bC92K0gva1MzL1ZYRlhlbnFYKy93Q0gva1MzJiN4QTsv VlhGWGVucVgrLzRmK1JMZjlWY1ZVcG9mUTA2M2c1Y3ZTZTJUbFNsZU1xQ3ROOFZTalhkSDFyVW11 ZjBYcURXRXNic0FRenFDN1IyJiN4QTsvRm00ZGVLcSt4QjY0VlJPcldPcXoya05uYlhoaTFFMnpM OWRId2ZFc2tITjZBTnN3QjJGUEFNdjJnRlV0TTAzWGJHeWxYVjlTL1NMJiN4QTt5WE51WVR3Q2NG RWlDbmlmOHozcGhWRCtYUEx2bXpUcjhTYWpyNzZqWi9HVEJKR09WWFJCVGx0c0hCNDl3QjM1Tmlx aFo2RjVzYnpEJiN4QTtwMnF4YXp3MEZJWS9VMHJpZC84QVJ3bnlOWCtMMnhWT3hMRkVscThyckdn dkxpck1RQnY2L2M0Rlg2bHFXbkhUcm9DNmhKTU1sQjZpJiN4QTsvd0FwOThWVExGV0xlWXRBODNY MDl3Mm1hejlUaGsrS0JBR1VvVEEwZEdJNWNoNmxIRktmVDNLc2t0VW1qdG9ZNTVQVm5SRldXV2xP JiN4QTtUZ0FNMUIwcWQ4Q3FjZjhBeDBwLytNTVAvRXBjVlJPS3V4VjJLdXhWMkt1eFYyS3V4VjJL dXhWMkt1eFZBVHJwS1hFcGx1ZlNtY2hwJiN4QTtWK3NQSHZ4Q2o0UTRBK0VEdGlxem5vdi9BQzIv OVBjbi9WVEZYYzlGL3dDVzMvcDdrLzZxWXFyV2k2YzBwa3Q1dldrVlNwUHJOTFJXJiN4QTtJSjJa bXBYamlxTXhWMkt1eFYyS29iVVA3aFArTTBIL0FDZVRGWFduOS9lLzhaaC95Wmp4VjBuL0FCMG9Q K01NMy9Fb3NWZHFIOXduJiN4QTsvR2FEL2s4bUtvbkZVTnBuL0hOdFArTU1mL0VSaXJ0UC91SC9B T00wL3dEeWVmRlhhbi94emJ2L0FJd3lmOFJPS3UvU2VtLzh0Y1AvJiN4QTtBQ01YK3VLdS9TZW0v d0RMWEQveU1YK3VLdS9TZW0vOHRjUC9BQ01YK3VLcWRyYzI4K28zQmhsU1VMRER5S01HcDhVdldt S28zRlhZJiN4QTtxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcWhyVCsvdmYrTXcvd0NUTWVLc2Ux dnk5NXZ2dGJOelo2NGJIVGxYOXpieEtRM0wwbVhpJiN4QTs5UXlzREllUmJyVFlVcFhDcWQ2RmFh cGFhYkhCcWw3OWZ2QVdNbHlFRVlOV0pBNGp3d0t1dXBYajFHMzRRdk5XR2FvUW9LZkZGMTVzJiN4 QTt1S3FuMXVmL0FKWXB2dmgvNnFZcTc2M1Avd0FzVTMzdy93RFZURlhmVzUvK1dLYjc0ZjhBcXBp cnZyYy8vTEZOOThQL0FGVXhWU3VKJiN4QTtMbWRFakZwS243MkppekdLZ0NTS3hPems5QmlxcmFm Mzk3L3htSC9KbVBGWFNmOEFIU2cvNHd6ZjhTaXhWMm9mM0NmOFpvUCtUeVlxJiN4QTtpY1ZRMm1m OGMyMC80d3gvOFJHS3UwLys0ZjhBNHpUL0FQSjU4VlJPS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhW Mkt1eFYyS3V4VjJLJiN4QTt1eFYyS29KSHVZYm02LzBXU1JKSkF5T3Bpb1I2U0wrMDZucXA3WXFx Zlc1LytXS2I3NGYrcW1LdSt0ei9BUExGTjk4UC9WVEZWcUdlJiN4QTtXK2psYUI0VVNLUlNYS0dw ZGtJcHdadjVUaXFMeFYyS3V4VjJLdXhWQVEzMWxGZFhxUzNFY2JpWmFxenFwL3VZK3hPS3JKTlMw NzlJJiN4QTt3SDYxRFQwWnQvVVgrYUwzeFYyb2FscHhnV2wxRC9mUWY3c1gvZnllK0tvbjlKNmIv d0F0Y1A4QXlNWCt1S29iVGRTMDRhZGFnM1VJJiN4QTtJaGpxUFVYK1VlK0txK2x5UnlXcGVOZzZO TlBSbElJUDc1KzR4VkY0cTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWC8vJiN4QTsy UT09PC94YXBHSW1nOmltYWdlPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAg PC9yZGY6QWx0PgogICAgICAgICA8L3hhcDpUaHVtYm5haWxzPgogICAgICA8L3JkZjpEZXNjcmlw dGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1s bnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPgogICAgICAgICA8eGFw TU06RG9jdW1lbnRJRD51dWlkOkEzQjgwM0I1RUNDRERCMTE4M0M5ODVFOUNBNTc4OEY3PC94YXBN TTpEb2N1bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOjgyOEU4QjgwMDlD RURCMTE4RjYxODBEN0UyRDAyOUEwPC94YXBNTTpJbnN0YW5jZUlEPgogICAgICA8L3JkZjpEZXNj cmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Pg0K ZW5kc3RyZWFtDWVuZG9iag01IDAgb2JqPDwvQ291bnQgMi9UeXBlL1BhZ2VzL0tpZHNbMTAgMCBS IDEgMCBSXT4+DWVuZG9iag02IDAgb2JqPDwvU3VidHlwZS9YTUwvTGVuZ3RoIDMzMDMvVHlwZS9N ZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJl U3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRr PSIzLjEtNzAxIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5 LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9 IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4K ICAgICAgICAgPHhhcDpNb2RpZnlEYXRlPjIwMDctMDMtMjBUMTA6NDM6MjgrMDg6MDA8L3hhcDpN b2RpZnlEYXRlPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+MjAwNy0wMy0yMFQxMDo0MzowNysw ODowMDwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDctMDMt MjBUMTA6NDM6MjgrMDg6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4YXA6Q3JlYXRv clRvb2w+QWRvYmUgSW5EZXNpZ24gQ1MyICg0LjAuNCk8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAg PC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAg ICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAg ICAgICAgIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vcGRmPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRm OkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAg ICAgICB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+CiAgICAg ICAgIDx4YXBNTTpEb2N1bWVudElEPnV1aWQ6ODZkMDBjY2QtNDQ4Mi00ZTdjLWEwNDUtYTcwOGI3 N2NjOTVlPC94YXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlk OjUyMmI1MWExLTU5ODctNGQ4MC1iMmMwLTQ0MGQ3M2M2NWQ4YjwveGFwTU06SW5zdGFuY2VJRD4K ICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0 PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyI+ CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+QWRvYmUgUERGIExpYnJhcnkgNy4wPC9wZGY6UHJvZHVj ZXI+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBh Y2tldCBlbmQ9InciPz4NCmVuZHN0cmVhbQ1lbmRvYmoNNyAwIG9iajw8L0NyZWF0aW9uRGF0ZShE OjIwMDcwMzIwMTA0MzA3KzA4JzAwJykvQ3JlYXRvcihBZG9iZSBJbkRlc2lnbiBDUzIgXCg0LjAu NFwpKS9Qcm9kdWNlcihBZG9iZSBQREYgTGlicmFyeSA3LjApL01vZERhdGUoRDoyMDA3MDMyMDEw NDMyOCswOCcwMCcpPj4NZW5kb2JqDXhyZWYNCjAgOA0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAw MTk3NTY5IDAwMDAwIG4NCjAwMDAxOTc5ODMgMDAwMDAgbg0KMDAwMDI0MTc2NyAwMDAwMCBuDQow MDAwMjQ3MDU3IDAwMDAwIG4NCjAwMDAyNjE3MDQgMDAwMDAgbg0KMDAwMDI2MTc2MSAwMDAwMCBu DQowMDAwMjY1MTQwIDAwMDAwIG4NCnRyYWlsZXINCjw8L1NpemUgOD4+DQpzdGFydHhyZWYNCjEx Ng0KJSVFT0YNCg== ------_=_NextPart_001_01C8BE50.E86EDE87-- From owner-freebsd-net@FreeBSD.ORG Sun May 25 23:06:34 2008 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 10A471065672; Sun, 25 May 2008 23:06:34 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id CFEE88FC0C; Sun, 25 May 2008 23:06:33 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 2CA7C46C2D; Sun, 25 May 2008 19:06:33 -0400 (EDT) Date: Mon, 26 May 2008 00:06:33 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: current@FreeBSD.org, arch@FreeBSD.org In-Reply-To: <20080521224350.T63482@fledge.watson.org> Message-ID: <20080526000329.K36357@fledge.watson.org> References: <20080310122338.T29929@fledge.watson.org> <20080521224350.T63482@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: net@FreeBSD.org Subject: HEADS UP: netatm removed (was: Re: netatm removal warning) 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, 25 May 2008 23:06:34 -0000 On Wed, 21 May 2008, Robert Watson wrote: >> 10 March 2008 E-mail warning to arch@/net@ >> 10 April 2008 E-mail warning to arch@/net@ >> 10 May 2008 Removal of netatm from HEAD >> 20 May 2008 Removal of netatm from RELENG_7 >> >> Obviously, netatm will remain in the revision control history should anyone >> wish to ressurect it after that date. However, I suspect that those >> interested in ATM on FreeBSD have long since been using Harti's netgraph >> ATM framework. > > Somehow the dates slipped pasted more quickly than I had hoped -- this is > the HEADS UP that, on a slightly delayed schedule, I will be trimming netatm > from the src tree for HEAD, and then a week or two later, from RELENG_7. > Assuming all goes well, this should result in no functional change at all. Per the long-announced schedule, netatm has now been removed from the CVS HEAD. Assuming no unexpected problems, it will likewise be removed from RELENG_7 in a few weeks. I apologize in advance if there's any build disruption; this touched a lot of Makefiles, and while netatm hasn't been connected to the build in ten months, there is always a risk of problems with a change of this scope. I'll keep an eye out for tinderbox warnings and correct as quickly as possible if any arise. Thanks, Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Mon May 26 00:41:50 2008 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 3ED06106566B; Mon, 26 May 2008 00:41:50 +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 07E1F8FC15; Mon, 26 May 2008 00:41:50 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4Q0fn7v089943; Mon, 26 May 2008 00:41:49 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4Q0fnuK089939; Mon, 26 May 2008 00:41:49 GMT (envelope-from linimon) Date: Mon, 26 May 2008 00:41:49 GMT Message-Id: <200805260041.m4Q0fnuK089939@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-net@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: kern/123968: [rum] [panic] rum driver causes kernel panic with WPA. 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, 26 May 2008 00:41:50 -0000 Old Synopsis: Rum driver causes kernel panic with WPA. New Synopsis: [rum] [panic] rum driver causes kernel panic with WPA. Responsible-Changed-From-To: freebsd-bugs->freebsd-net Responsible-Changed-By: linimon Responsible-Changed-When: Mon May 26 00:41:22 UTC 2008 Responsible-Changed-Why: Over to maintainer(s), although this sounds like it might not be specific to this one driver. http://www.freebsd.org/cgi/query-pr.cgi?pr=123968 From owner-freebsd-net@FreeBSD.ORG Mon May 26 01:40:37 2008 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 94BDB106564A for ; Mon, 26 May 2008 01:40:37 +0000 (UTC) (envelope-from aedwards@sandvine.com) Received: from gw.sandvine.com (gw.sandvine.com [199.243.201.138]) by mx1.freebsd.org (Postfix) with ESMTP id 3DCA08FC15 for ; Mon, 26 May 2008 01:40:37 +0000 (UTC) (envelope-from aedwards@sandvine.com) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Sun, 25 May 2008 21:28:36 -0400 Message-ID: <5230D3C40B842D4F9FB3CD368021BEF7020107F1@exchange-2.sandvine.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: panic in nfsd in freebsd7-release and -stable Thread-Index: Aci+z8q3v4wLGeIdQkKD1UceeKifgA== From: "Andrew Edwards" To: Subject: panic in nfsd in freebsd7-release and -stable 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, 26 May 2008 01:40:37 -0000 I have a system that was running some version of redhat (I don't remember now) and I upgraded it to freebsd7 and I would get an immediate panic when nfsd is started. I then updated to 7-stable (on May 24th) and built a new kerenl and userland and the panic continued.=20 This was happening 100% of the time whenever nfsd is started but what I later discovered was that because I had used the same IP's as the linux host there were some systems that still had a filesystem mounted from before the conversion. I put in an ipfw rule to block those hosts and then I was able to start nfsd without crashing and then create new mounts. I have been able to work-around the issue by forcing all of the servers that were mounting from the linux os to remount, I am only including this information just in case someone else runs into a similar problem. Thanks, Andrew Here's the backtrace Fatal trap 12: page fault while in kernel mode cpuid =3D 1; apic id =3D 06 fault virtual address =3D 0x18 fault code =3D supervisor read, page not present instruction pointer =3D 0x20:0xc06ce915 stack pointer =3D 0x28:0xe8f32a48 frame pointer =3D 0x28:0xe8f32a64 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, def32 1, gran 1 processor eflags =3D resume, IOPL =3D 0 current process =3D 755 (nfsd) trap number =3D 12 panic: page fault cpuid =3D 1 Uptime: 40m22s Physical memory: 3318 MB Dumping 93 MB: 78 62 46 30 14 #0 doadump () at pcpu.h:195 195 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:195 #1 0xc069a917 in boot (howto=3D260) at /usr/src/sys/kern/kern_shutdown.c:418 #2 0xc069ac13 in panic (fmt=3DVariable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:572 #3 0xc0926763 in trap_fatal (frame=3D0xe8f32a08, eva=3D24) at /usr/src/sys/i386/i386/trap.c:899 #4 0xc09270ff in trap (frame=3D0xe8f32a08) at /usr/src/sys/i386/i386/trap.c:280 #5 0xc090c84b in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #6 0xc06ce915 in turnstile_broadcast (ts=3D0x0, queue=3D0) at /usr/src/sys/kern/subr_turnstile.c:835 #7 0xc068d292 in _mtx_unlock_sleep (m=3D0xc0a47e10, opts=3D0, = file=3D0x0, line=3D0) at /usr/src/sys/kern/kern_mutex.c:611 #8 0xc0849b79 in nfsrv3_access (nfsd=3D0xc6ba5d00, slp=3D0xc6b7f700, td=3D0xc6856c60, mrq=3D0xe8f32c58) at /usr/src/sys/nfsserver/nfs_serv.c:253 #9 0xc085bc71 in nfssvc (td=3D0xc6856c60, uap=3D0xe8f32cfc) at /usr/src/sys/nfsserver/nfs_syscalls.c:461 #10 0xc0926d35 in syscall (frame=3D0xe8f32d38) at /usr/src/sys/i386/i386/trap.c:1035 #11 0xc090c8b0 in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:196 #12 0x00000033 in ?? () From owner-freebsd-net@FreeBSD.ORG Mon May 26 09:30:21 2008 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 C5C131065670; Mon, 26 May 2008 09:30:21 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 8FA178FC18; Mon, 26 May 2008 09:30:21 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 07AB346B06; Mon, 26 May 2008 05:30:21 -0400 (EDT) Date: Mon, 26 May 2008 10:30:20 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: arch@FreeBSD.org, net@FreeBSD.org Message-ID: <20080526102345.G26343@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: Remaining non-MPSAFE netisr handlers 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, 26 May 2008 09:30:21 -0000 Dear all: In the continuing campaign to eliminate the Giant lock from the dregs of the network stack, I thought I'd send out a list of non-MPSAFE netisr handlers: Location Handler Removed with IFF_NEEDSGIANT dev/usb/usb_ethersubr.c:120 usbintr Yes net/if_ppp.c:277 pppintr Yes netinet6/ip6_input.c ip6_input No The plan for 8.0 is to remove the NETISR_MPSAFE flag -- all netisr handlers will be executed without the Giant lock. This doesn't prohibit acquiring Giant in the handler if required, although that's undesirable for the obvious reasons (potentially stalling interrupt handling, etc). Obviously, what would be most desirable is eliminating the remaining requirement for Giant in the IPv6 input path, primarily consisting of mld6 and nd6. With this in mind, my current plan is to remove the flag and add explicit Giant acquisition for any remaining handlers in June when IFF_NEEDSGIANT device drivers are disabled. Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Mon May 26 10:07:39 2008 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 E5B65106566B; Mon, 26 May 2008 10:07:39 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id B84DE8FC2B; Mon, 26 May 2008 10:07:39 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 5177E46BAC; Mon, 26 May 2008 06:07:39 -0400 (EDT) Date: Mon, 26 May 2008 11:07:39 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: arch@FreeBSD.org, net@FreeBSD.org Message-ID: <20080526110543.J26343@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: Wiki page for non-MPSAFE network stack de-orbit scheduling 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, 26 May 2008 10:07:40 -0000 Just to keep track of things: http://wiki.freebsd.org/NONMPSAFE_DEORBIT Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Mon May 26 11:06:52 2008 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 CB8FB1065675 for ; Mon, 26 May 2008 11:06:52 +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 AD7968FC43 for ; Mon, 26 May 2008 11:06:52 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4QB6qTe064979 for ; Mon, 26 May 2008 11:06:52 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4QB6qqB064975 for freebsd-net@FreeBSD.org; Mon, 26 May 2008 11:06:52 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 26 May 2008 11:06:52 GMT Message-Id: <200805261106.m4QB6qqB064975@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 freebsd-net@FreeBSD.org 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, 26 May 2008 11:06:52 -0000 Current FreeBSD problem reports Critical problems Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/27474 net [ipf] [ppp] Interactive use of user PPP and ipfilter c o kern/35442 net [sis] [patch] Problem transmitting runts in if_sis dri a kern/38554 net changing interface ipaddress doesn't seem to work s kern/39937 net ipstealth issue s kern/77195 net [ipf] [patch] ipfilter ioctl SIOCGNATL does not match o kern/79895 net [ipf] 5.4-RC2 breaks ipfilter NAT when using netgraph s kern/81147 net [net] [patch] em0 reinitialization while adding aliase o kern/86103 net [ipf] Illegal NAT Traversal in IPFilter s kern/86920 net [ndis] ifconfig: SIOCS80211: Invalid argument [regress o kern/87521 net [ipf] [panic] using ipfilter "auth" keyword leads to k o kern/92090 net [bge] bge0: watchdog timeout -- resetting f kern/92552 net A serious bug in most network drivers from 5.X to 6.X o kern/95288 net [pppd] [tty] [panic] if_ppp panic in sys/kern/tty_subr o kern/98978 net [ipf] [patch] ipfilter drops OOW packets under 6.1-Rel o kern/101948 net [ipf] [panic] Kernel Panic Trap No 12 Page Fault - cau f kern/102344 net [ipf] Some packets do not pass through network interfa o bin/105925 net problems with ifconfig(8) and vlan(4) [regression] 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/106438 net [ipf] ipfilter: keep state does not seem to allow repl o kern/108542 net [bce]: Huge network latencies with 6.2-RELEASE / STABL o bin/108895 net pppd(8): PPPoE dead connections on 6.2 [regression] o kern/109308 net [pppd] [panic] Multiple panics kernel ppp suspected [r o kern/109733 net [bge] bge link state issues [regression] 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 [udp] IP v4 udp fragmented packet reject o kern/113842 net [ip6] PF_INET6 proto domain state can't be cleared wit 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 [ip] [patch] 6.2-STABLE panic during use of multi-cast o kern/116185 net [iwi] if_iwi driver leads system to reboot 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 [tun] [panic] [patch] ifconfig tunX destroy: panic o kern/117043 net [em] Intel PWLA8492MT Dual-Port Network adapter EEPROM o kern/117271 net [tap] OpenVPN TAP uses 99% CPU on releng_6 when if_tap o kern/117423 net [vlan] Duplicate IP on different interfaces o kern/117448 net [carp] 6.2 kernel crash [regression] o kern/118880 net [ip6] IP_RECVDSTADDR & IP_SENDSRCADDR not implemented o kern/119225 net [wi] 7.0-RC1 no carrier with Prism 2.5 wifi card [regr o kern/119345 net [ath] Unsuported Atheros 5424/2424 and CPU speedstep n o kern/119361 net [bge] bge(4) transmit performance problem o kern/119945 net [rum] [panic] rum device in hostap mode, cause kernel o kern/120130 net [carp] [panic] carp causes kernel panics in any conste o kern/120266 net [panic] gnugk causes kernel panic when closing UDP soc o kern/120304 net [netgraph] [patch] netgraph source assumes 32-bit time o kern/120966 net [rum] kernel panic with if_rum and WPA encryption o kern/121080 net [bge] IPv6 NUD problem on multi address config on bge0 o kern/121181 net [panic] Fatal trap 3: breakpoint instruction fault whi o kern/121298 net [em] [panic] Fatal trap 12: page fault while in kernel o kern/121437 net [vlan] Routing to layer-2 address does not work on VLA o kern/121555 net [panic] Fatal trap 12: current process = 12 (swi1: net o kern/121624 net [em] [regression] Intel em WOL fails after upgrade to o kern/121872 net [wpi] driver fails to attach on a fujitsu-siemens s711 o kern/121983 net [fxp] fxp0 MBUF and PAE o kern/122033 net [ral] [lor] Lock order reversal in ral0 at bootup [reg o kern/122058 net [em] [panic] Panic on em1: taskq o kern/122082 net [in_pcb] NULL pointer dereference in in_pcbdrop o kern/122195 net [ed] Alignment problems in if_ed f kern/122252 net [ipmi] [bge] IPMI problem with BCM5704 (does not work o kern/122290 net [netgraph] [panic] Netgraph related "kmem_map too smal o kern/122427 net [apm] [panic] apm and mDNSResponder cause panic during o kern/122551 net [bge] Broadcom 5715S no carrier on HP BL460c blade usi o kern/122743 net [panic] vm_page_unwire: invalid wire count: 0 o kern/122772 net [em] em0 taskq panic, tcp reassembly bug causes radix f kern/122794 net [lagg] Kernel panic after brings lagg(8) up if NICs ar f kern/122858 net [nsswitch] nsswitch in 7.0 is f*cked up o kern/122875 net [nfs] "rstatd: Can't get namelist. 1" - fbsd 7.0-stabl o kern/122954 net [lagg] IPv6 EUI64 incorrectly chosen for lagg devices o kern/122989 net [swi] [panic] 6.3 kernel panic in swi1: net o kern/123066 net [ipsec] [panic] kernel trap with ipsec o kern/123160 net [ip] Panic and reboot at sysctl kern.polling.enable=0 f kern/123172 net [bce] Watchdog timeout problems with if_bce o kern/123330 net [nsswitch] Enabling samba wins in nsswitch.conf causes o kern/123347 net [bge] bge1: watchdog timeout -- linkstate changed to D o kern/123429 net [nfe] [hang] "ifconfig nfe up" causes a hard system lo o kern/123463 net [ipsec] [panic] repeatable crash related to ipsec-tool o bin/123465 net [ip6] route(1): route add -inet6 -interfac o kern/123559 net [iwi] iwi periodically disassociates/associates [regre o kern/123603 net [tcp] tcp_do_segment and Received duplicate SYN o kern/123617 net [tcp] breaking connection when client downloading file o bin/123633 net ifconfig(8) doesn't set inet and ether address in one p kern/123741 net [netgraph] [panic] kernel panic due to netgraph mpd o kern/123796 net [ipf] FreeBSD 6.1+VPN+ipnat+ipf: port mapping does not o kern/123881 net [tcp] Turning on TCP blackholing causes slow localhost o kern/123950 net [tcp] TH_RST packet sended if received out-of-order da o kern/123968 net [rum] [panic] rum driver causes kernel panic with WPA. 89 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o conf/23063 net [PATCH] for static ARP tables in rc.network o kern/34665 net [ipf] [hang] ipfilter rcmd proxy "hangs". 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/64556 net [sis] if_sis short cable fix problems with NetGear FA3 o kern/70904 net [ipf] ipfilter ipnat problem with h323 proxy support o kern/77273 net [ipf] ipfilter breaks ipv6 statefull filtering on 5.3 o kern/77913 net [wi] [patch] Add the APDL-325 WLAN pccard to wi(4) o kern/78090 net [ipf] ipf filtering on bridged packets doesn't work if o bin/79228 net [patch] extend arp(8) to be able to create blackhole r o kern/91594 net [em] FreeBSD > 5.4 w/ACPI fails to detect Intel Pro/10 s kern/91777 net [ipf] [patch] wrong behaviour with skip rule inside an o kern/93378 net [tcp] Slow data transfer in Postfix and Cyrus IMAP (wo o kern/95267 net packet drops periodically appear o 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 conf/107035 net [patch] bridge interface given in rc.conf not taking a o kern/109470 net [wi] Orinoco Classic Gold PC Card Can't Channel Hop o kern/112179 net [sis] [patch] sis driver for natsemi DP83815D autonego o bin/112557 net [patch] ppp(8) lock file should not use symlink name o kern/114915 net [patch] [pcn] pcn (sys/pci/if_pcn.c) ethernet driver f o bin/116643 net [patch] [request] fstat(1): add INET/INET6 socket deta o bin/117339 net [patch] route(8): loading routing management commands o kern/118727 net [netgraph] [patch] [request] add new ng_pf module a kern/118879 net [bge] [patch] bge has checksum problems on the 5703 ch o bin/118987 net ifconfig(8): ifconfig -l (address_family) does not wor o kern/119432 net [arp] route add -host -iface causes arp e f kern/119516 net [ip6] [panic] _mtx_lock_sleep: recursed on non-recursi o kern/119617 net [nfs] nfs error on wpa network when reseting/shutdown o kern/119791 net [nfs] UDP NFS mount of aliased IP addresses from a Sol o kern/120232 net [nfe] [patch] Bring in nfe(4) to RELENG_6 o kern/120566 net [request]: ifconfig(8) make order of arguments more fr o kern/121242 net [ate] [patch] Promiscuous mode of if_ate (arm) doesn't o kern/121257 net [tcp] TSO + natd -> slow outgoing tcp traffic o kern/121443 net [gif] LOR icmp6_input/nd6_lookup o kern/121706 net [netinet] [patch] "rtfree: 0xc4383870 has 1 refs" emit s kern/121774 net [swi] [panic] 6.3 kernel panic in swi1: net o kern/122068 net [ppp] ppp can not set the correct interface with pptpd o kern/122145 net error while compiling with device ath_rate_amrr o kern/122295 net [bge] bge Ierr rate increase (since 6.0R) [regression] o kern/122319 net [wi] imposible to enable ad-hoc demo mode with Orinoco o kern/122697 net [ath] Atheros card is not well supported o kern/122780 net [lagg] tcpdump on lagg interface during high pps wedge f kern/122839 net [multicast] FreeBSD 7 multicast routing problem f kern/122928 net [em] interface watchdog timeouts and stops receiving p o kern/123892 net [tap] [patch] No buffer space available o kern/123961 net [vr] [patch] Allow vr interface to handle vlans 50 problems total. From owner-freebsd-net@FreeBSD.ORG Mon May 26 13:10:34 2008 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 AC0F01065690; Mon, 26 May 2008 13:10:34 +0000 (UTC) (envelope-from ade@FreeBSD.org) Received: from panix.lovett.com (panix.lovett.com [166.84.7.128]) by mx1.freebsd.org (Postfix) with ESMTP id 7E8338FC33; Mon, 26 May 2008 13:10:34 +0000 (UTC) (envelope-from ade@FreeBSD.org) Received: from [24.216.255.15] (helo=inferno.lab.lovett.com ident=ade) by panix.lovett.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from ) id 1K0bu0-0003eG-4a; Mon, 26 May 2008 12:34:12 +0000 Message-Id: <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> From: Ade Lovett To: Robert Watson In-Reply-To: <20080525105726.O39741@fledge.watson.org> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v919.2) Date: Mon, 26 May 2008 05:34:09 -0700 References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> X-Mailer: Apple Mail (2.919.2) Cc: arch@freebsd.org, current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 13:10:34 -0000 On May 25, 2008, at 02:58 , Robert Watson wrote: > While I'd be quite supportive of something along these lines, I > think it probably is more work to port SLIP to userspace than to > hack the current code a little bit to be MPSAFE, assuming it remains > supported with the revised tty code. SLIP is a fairly straight- > forward piece of code, as long as you don't try to understand the > line discipline stuff. :-) Given that this is (a) 2008 and (b) 8.x we're talking about, are there really that many consumers of SLIP to warrant it being carried forward at all? Seems to me that it would not be unreasonable to give a heads up that the current kernel-space ppp/slip (and, for that matter, plip) drivers are going away some time before 8.0-RELEASE, pppd is more than adequately replaced by userland-ppp or netgraph, and if there's some critical need by someone to have SLIP and/or PLIP, then they'll need to step up to the plate to do the necessary re-implementation. Or stick with 7.x, which would be unaffected by this. We have a lot of network drivers that are potentially up for axing with the move to MPSAFE. Why not push just a little harder and slice out some serious legacy code? It's all well and good to be able to say that the current release of the kernel supports hardware that hasn't been used, other than in idiosyncratic situations (yes, ahc(4), I'm looking at you) for 5+ years, but it seems that we have an opportunity here to break out the Danish Ax[tm] in anger, and do some heavy-duty culling before 8.0-REL. -aDe From owner-freebsd-net@FreeBSD.ORG Mon May 26 13:42:41 2008 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 E37D81065683; Mon, 26 May 2008 13:42:41 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id B1B808FC16; Mon, 26 May 2008 13:42:41 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 3B09046B49; Mon, 26 May 2008 09:42:41 -0400 (EDT) Date: Mon, 26 May 2008 14:42:41 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Ade Lovett In-Reply-To: <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> Message-ID: <20080526142931.Q26343@fledge.watson.org> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: arch@freebsd.org, current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 13:42:42 -0000 On Mon, 26 May 2008, Ade Lovett wrote: > On May 25, 2008, at 02:58 , Robert Watson wrote: > >> While I'd be quite supportive of something along these lines, I think it >> probably is more work to port SLIP to userspace than to hack the current >> code a little bit to be MPSAFE, assuming it remains supported with the >> revised tty code. SLIP is a fairly straight-forward piece of code, as long >> as you don't try to understand the line discipline stuff. :-) > > Given that this is (a) 2008 and (b) 8.x we're talking about, are there > really that many consumers of SLIP to warrant it being carried forward at > all? > > Seems to me that it would not be unreasonable to give a heads up that the > current kernel-space ppp/slip (and, for that matter, plip) drivers are going > away some time before 8.0-RELEASE, pppd is more than adequately replaced by > userland-ppp or netgraph, and if there's some critical need by someone to > have SLIP and/or PLIP, then they'll need to step up to the plate to do the > necessary re-implementation. The thread you're replying began with precisely such a heads up. :-) Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Mon May 26 13:45:50 2008 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 B57261065682 for ; Mon, 26 May 2008 13:45:50 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (skuns.zoral.com.ua [91.193.166.194]) by mx1.freebsd.org (Postfix) with ESMTP id 044548FC20 for ; Mon, 26 May 2008 13:45:49 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id m4QDUkTx075828 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 26 May 2008 16:30:46 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.2/8.14.2) with ESMTP id m4QDUkah098603; Mon, 26 May 2008 16:30:46 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.2/8.14.2/Submit) id m4QDUjAF098602; Mon, 26 May 2008 16:30:45 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 26 May 2008 16:30:45 +0300 From: Kostik Belousov To: Andrew Edwards Message-ID: <20080526133045.GJ21317@deviant.kiev.zoral.com.ua> References: <5230D3C40B842D4F9FB3CD368021BEF7020107F1@exchange-2.sandvine.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="q5r20fdKX+PFtYHw" Content-Disposition: inline In-Reply-To: <5230D3C40B842D4F9FB3CD368021BEF7020107F1@exchange-2.sandvine.com> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.4 X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on skuns.kiev.zoral.com.ua Cc: freebsd-net@freebsd.org Subject: Re: panic in nfsd in freebsd7-release and -stable 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, 26 May 2008 13:45:50 -0000 --q5r20fdKX+PFtYHw Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, May 25, 2008 at 09:28:36PM -0400, Andrew Edwards wrote: > I have a system that was running some version of redhat (I don't > remember now) and I upgraded it to freebsd7 and I would get an immediate > panic when nfsd is started. I then updated to 7-stable (on May 24th) > and built a new kerenl and userland and the panic continued.=20 >=20 > This was happening 100% of the time whenever nfsd is started but what I > later discovered was that because I had used the same IP's as the linux > host there were some systems that still had a filesystem mounted from > before the conversion. I put in an ipfw rule to block those hosts and > then I was able to start nfsd without crashing and then create new > mounts. I have been able to work-around the issue by forcing all of the > servers that were mounting from the linux os to remount, I am only > including this information just in case someone else runs into a similar > problem. >=20 > Thanks, > Andrew >=20 > Here's the backtrace >=20 > Fatal trap 12: page fault while in kernel mode > cpuid =3D 1; apic id =3D 06 > fault virtual address =3D 0x18 > fault code =3D supervisor read, page not present > instruction pointer =3D 0x20:0xc06ce915 > stack pointer =3D 0x28:0xe8f32a48 > frame pointer =3D 0x28:0xe8f32a64 > code segment =3D base 0x0, limit 0xfffff, type 0x1b > =3D DPL 0, pres 1, def32 1, gran 1 > processor eflags =3D resume, IOPL =3D 0 > current process =3D 755 (nfsd) > trap number =3D 12 > panic: page fault > cpuid =3D 1 > Uptime: 40m22s > Physical memory: 3318 MB > Dumping 93 MB: 78 62 46 30 14 >=20 > #0 doadump () at pcpu.h:195 > 195 pcpu.h: No such file or directory. > in pcpu.h > (kgdb) bt > #0 doadump () at pcpu.h:195 > #1 0xc069a917 in boot (howto=3D260) at > /usr/src/sys/kern/kern_shutdown.c:418 > #2 0xc069ac13 in panic (fmt=3DVariable "fmt" is not available. > ) at /usr/src/sys/kern/kern_shutdown.c:572 > #3 0xc0926763 in trap_fatal (frame=3D0xe8f32a08, eva=3D24) > at /usr/src/sys/i386/i386/trap.c:899 > #4 0xc09270ff in trap (frame=3D0xe8f32a08) at > /usr/src/sys/i386/i386/trap.c:280 > #5 0xc090c84b in calltrap () at /usr/src/sys/i386/i386/exception.s:139 > #6 0xc06ce915 in turnstile_broadcast (ts=3D0x0, queue=3D0) > at /usr/src/sys/kern/subr_turnstile.c:835 > #7 0xc068d292 in _mtx_unlock_sleep (m=3D0xc0a47e10, opts=3D0, file=3D0x0, > line=3D0) > at /usr/src/sys/kern/kern_mutex.c:611 > #8 0xc0849b79 in nfsrv3_access (nfsd=3D0xc6ba5d00, slp=3D0xc6b7f700, > td=3D0xc6856c60, mrq=3D0xe8f32c58) at > /usr/src/sys/nfsserver/nfs_serv.c:253 > #9 0xc085bc71 in nfssvc (td=3D0xc6856c60, uap=3D0xe8f32cfc) > at /usr/src/sys/nfsserver/nfs_syscalls.c:461 > #10 0xc0926d35 in syscall (frame=3D0xe8f32d38) > at /usr/src/sys/i386/i386/trap.c:1035 > #11 0xc090c8b0 in Xint0x80_syscall () > at /usr/src/sys/i386/i386/exception.s:196 > #12 0x00000033 in ?? () Please, test the change below. The nfsm_srvmtofh() may execute nfsm_reply(), that contains the goto nfsmou= t. Since the code under the label includes conditional unlock of the Giant, vfslocked must be initialized prior to the nfsm_srvmtofh. I found three ommissions. The patch also contains the removal of the duplicated code for the rev. 1.1= 79. diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c index 5343627..6e716e4 100644 --- a/sys/nfsserver/nfs_serv.c +++ b/sys/nfsserver/nfs_serv.c @@ -210,6 +210,7 @@ nfsrv3_access(struct nfsrv_descript *nfsd, struct nfssv= c_sock *slp, nfsdbprintf(("%s %d\n", __FILE__, __LINE__)); if (!v3) panic("nfsrv3_access: v3 proc called on a v2 connection"); + vfslocked =3D 0; fhp =3D &nfh.fh_generic; nfsm_srvmtofh(fhp); tl =3D nfsm_dissect_nonblock(u_int32_t *, NFSX_UNSIGNED); @@ -1285,6 +1286,7 @@ nfsrv_writegather(struct nfsrv_descript **ndp, struct= nfssvc_sock *slp, i =3D 0; len =3D 0; #endif + vfslocked =3D 0; *mrq =3D NULL; if (*ndp) { nfsd =3D *ndp; @@ -2146,7 +2148,7 @@ nfsrv_remove(struct nfsrv_descript *nfsd, struct nfss= vc_sock *slp, nfsfh_t nfh; fhandle_t *fhp; struct mount *mp =3D NULL; - int vfslocked, vfslocked1; + int vfslocked; =20 nfsdbprintf(("%s %d\n", __FILE__, __LINE__)); ndclear(&nd); @@ -2168,11 +2170,7 @@ nfsrv_remove(struct nfsrv_descript *nfsd, struct nfs= svc_sock *slp, nd.ni_cnd.cn_flags =3D LOCKPARENT | LOCKLEAF | MPSAFE; error =3D nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos, &dirp, v3, &dirfor, &dirfor_ret, td, FALSE); - vfslocked1 =3D NDHASGIANT(&nd); - if (vfslocked && vfslocked1) - VFS_UNLOCK_GIANT(vfslocked1); - if (vfslocked || vfslocked1) - vfslocked =3D 1; + vfslocked =3D nfsrv_lockedpair_nd(vfslocked, &nd); if (dirp && !v3) { vrele(dirp); dirp =3D NULL; @@ -4132,6 +4130,7 @@ nfsrv_pathconf(struct nfsrv_descript *nfsd, struct nf= ssvc_sock *slp, nfsdbprintf(("%s %d\n", __FILE__, __LINE__)); if (!v3) panic("nfsrv_pathconf: v3 proc called on a v2 connection"); + vfslocked =3D 0; fhp =3D &nfh.fh_generic; nfsm_srvmtofh(fhp); error =3D nfsrv_fhtovp(fhp, 1, &vp, &vfslocked, cred, slp, --q5r20fdKX+PFtYHw Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkg6u4QACgkQC3+MBN1Mb4gT4wCfcI9peb/61zU5j2zYzVzhOPIr r8IAoJQpHmZq2FiQ02R4fiDxJ+bLaY94 =DM3s -----END PGP SIGNATURE----- --q5r20fdKX+PFtYHw-- From owner-freebsd-net@FreeBSD.ORG Mon May 26 15:05:57 2008 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 613821065683; Mon, 26 May 2008 15:05:57 +0000 (UTC) (envelope-from fullermd@over-yonder.net) Received: from thyme.infocus-llc.com (server.infocus-llc.com [206.156.254.44]) by mx1.freebsd.org (Postfix) with ESMTP id 21F518FC24; Mon, 26 May 2008 15:05:57 +0000 (UTC) (envelope-from fullermd@over-yonder.net) Received: from draco.over-yonder.net (adsl-074-171-236-053.sip.jan.bellsouth.net [74.171.236.53]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by thyme.infocus-llc.com (Postfix) with ESMTPSA id 4688537B5AE; Mon, 26 May 2008 09:47:02 -0500 (CDT) Received: by draco.over-yonder.net (Postfix, from userid 100) id D2A0161C77; Mon, 26 May 2008 09:47:01 -0500 (CDT) Date: Mon, 26 May 2008 09:47:01 -0500 From: "Matthew D. Fuller" To: Ade Lovett Message-ID: <20080526144701.GG1689@over-yonder.net> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> X-Editor: vi X-OS: FreeBSD User-Agent: Mutt/1.5.17-fullermd.4 (2007-11-01) X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on thyme.infocus-llc.com X-Virus-Status: Clean Cc: arch@freebsd.org, Robert Watson , current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 15:05:57 -0000 On Mon, May 26, 2008 at 05:34:09AM -0700 I heard the voice of Ade Lovett, and lo! it spake thus: > > It's all well and good to be able to say that the current release of > the kernel supports hardware that hasn't been used, other than in > idiosyncratic situations (yes, ahc(4), I'm looking at you) for 5+ > years, [...] Neat, I didn't know I was idiosyncratic. % uname -sr FreeBSD 8.0-CURRENT % grep ^ahc /var/run/dmesg.boot ahc0: port 0x1000-0x10ff mem 0xf8001000-0xf8001fff irq 19 at device 11.0 on pci0 ahc0: [ITHREAD] ahc1: port 0x1400-0x14ff mem 0xf8002000-0xf8002fff irq 16 at device 13.0 on pci0 ahc1: [ITHREAD] ahc2: port 0x1800-0x18ff mem 0xf8003000-0xf8003fff irq 17 at device 13.1 on pci0 ahc2: [ITHREAD] (all 3 in use) -- Matthew Fuller (MF4839) | fullermd@over-yonder.net Systems/Network Administrator | http://www.over-yonder.net/~fullermd/ On the Internet, nobody can hear you scream. From owner-freebsd-net@FreeBSD.ORG Mon May 26 15:17:46 2008 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 A5B85106564A; Mon, 26 May 2008 15:17:46 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id 702438FC2E; Mon, 26 May 2008 15:17:46 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id 0B90710FC5E; Mon, 26 May 2008 11:17:46 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute2.internal (MEProxy); Mon, 26 May 2008 11:17:46 -0400 X-Sasl-enc: BmCH8Ddrm/NXZI37g3u6FoKKwTjVsBDt4nCQLlLDEHBz 1211815065 Received: from empiric.lon.incunabulum.net (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id 14E19110AB; Mon, 26 May 2008 11:17:44 -0400 (EDT) Message-ID: <483AD498.6070207@FreeBSD.org> Date: Mon, 26 May 2008 16:17:44 +0100 From: "Bruce M. Simpson" User-Agent: Thunderbird 2.0.0.14 (X11/20080514) MIME-Version: 1.0 To: Ade Lovett References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> In-Reply-To: <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: arch@freebsd.org, Robert Watson , current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 15:17:46 -0000 Ade Lovett wrote: > > On May 25, 2008, at 02:58 , Robert Watson wrote: >> While I'd be quite supportive of something along these lines, I think >> it probably is more work to port SLIP to userspace than to hack the >> current code a little bit to be MPSAFE, assuming it remains supported >> with the revised tty code. SLIP is a fairly straight-forward piece >> of code, as long as you don't try to understand the line discipline >> stuff. :-) > > Given that this is (a) 2008 and (b) 8.x we're talking about, are there > really that many consumers of SLIP to warrant it being carried forward > at all? It's kind of a basic. [C]SLIP has been historically handy to have around for situations which warrant it. Mind you, given that we have had tun(4) in the tree for years now, a userland implementation of SLIP is possible. As with all of these things it's down to someone sitting down and doing it. I'm not volunteering to support any of this as I don't use it myself (got enough on my plate), merely pointing out that support for SLIP in a system is something many people have taken for granted over the years, and for prototyping something or providing IP over a simple serial link without the configuration overhead of PPP, SLIP is something someone might be using. P.S. ahc(4) is commodity hardware, I think it can stay right where it is thank-you. From owner-freebsd-net@FreeBSD.ORG Mon May 26 15:26:14 2008 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 D3C44106567B; Mon, 26 May 2008 15:26:14 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 9FD208FC29; Mon, 26 May 2008 15:26:14 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 2781F46B42; Mon, 26 May 2008 11:26:14 -0400 (EDT) Date: Mon, 26 May 2008 16:26:14 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: "Bruce M. Simpson" In-Reply-To: <483AD498.6070207@FreeBSD.org> Message-ID: <20080526162427.X26343@fledge.watson.org> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> <483AD498.6070207@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: arch@freebsd.org, current@freebsd.org, Ade Lovett , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 15:26:15 -0000 On Mon, 26 May 2008, Bruce M. Simpson wrote: >> Given that this is (a) 2008 and (b) 8.x we're talking about, are there >> really that many consumers of SLIP to warrant it being carried forward at >> all? > > It's kind of a basic. [C]SLIP has been historically handy to have around for > situations which warrant it. Mind you, given that we have had tun(4) in the > tree for years now, a userland implementation of SLIP is possible. > > As with all of these things it's down to someone sitting down and doing it. > > I'm not volunteering to support any of this as I don't use it myself (got > enough on my plate), merely pointing out that support for SLIP in a system > is something many people have taken for granted over the years, and for > prototyping something or providing IP over a simple serial link without the > configuration overhead of PPP, SLIP is something someone might be using. > > P.S. ahc(4) is commodity hardware, I think it can stay right where it is > thank-you. My suspicion is that getting SLIP basically working in userspace is fairly straight forward, although I'm not sure how well-suited some of our current admin tools (slattach, etc) are for the purpose. If the new tty code maintains support for line disciplines, updating the existing SLIP code and adding locking code would probably be an equally sized (or shorter) task. SLIP has its subtleties, but the current implementation is relatively straight-forward, well-documented, etc. Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Mon May 26 15:42:16 2008 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 D987A1065679; Mon, 26 May 2008 15:42:16 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id A76608FC22; Mon, 26 May 2008 15:42:16 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 542DF46B38; Mon, 26 May 2008 11:42:16 -0400 (EDT) Date: Mon, 26 May 2008 16:42:16 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: "Matthew D. Fuller" In-Reply-To: <20080526144701.GG1689@over-yonder.net> Message-ID: <20080526164151.D26343@fledge.watson.org> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> <20080526144701.GG1689@over-yonder.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: arch@freebsd.org, current@freebsd.org, Ade Lovett , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 15:42:17 -0000 On Mon, 26 May 2008, Matthew D. Fuller wrote: > On Mon, May 26, 2008 at 05:34:09AM -0700 I heard the voice of > Ade Lovett, and lo! it spake thus: >> >> It's all well and good to be able to say that the current release of the >> kernel supports hardware that hasn't been used, other than in idiosyncratic >> situations (yes, ahc(4), I'm looking at you) for 5+ years, [...] > > Neat, I didn't know I was idiosyncratic. Somehow it's always me who is idiosyncratic: ahc0: port 0xdc00-0xdcff mem 0xf9fff000-0xf9ffffff irq 14 at device 11.0 on pci2 da0 at ahc0 bus 0 target 0 lun 0 Robert N M Watson Computer Laboratory University of Cambridge > > % uname -sr > FreeBSD 8.0-CURRENT > > % grep ^ahc /var/run/dmesg.boot > ahc0: port 0x1000-0x10ff mem 0xf8001000-0xf8001fff irq 19 at device 11.0 on pci0 > ahc0: [ITHREAD] > ahc1: port 0x1400-0x14ff mem 0xf8002000-0xf8002fff irq 16 at device 13.0 on pci0 > ahc1: [ITHREAD] > ahc2: port 0x1800-0x18ff mem 0xf8003000-0xf8003fff irq 17 at device 13.1 on pci0 > ahc2: [ITHREAD] > > (all 3 in use) > > > -- > Matthew Fuller (MF4839) | fullermd@over-yonder.net > Systems/Network Administrator | http://www.over-yonder.net/~fullermd/ > On the Internet, nobody can hear you scream. > From owner-freebsd-net@FreeBSD.ORG Mon May 26 16:17:11 2008 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 176C0106566C; Mon, 26 May 2008 16:17:11 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:610:652::211]) by mx1.freebsd.org (Postfix) with ESMTP id C3B258FC15; Mon, 26 May 2008 16:17:10 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id C2DCF1CC1A; Mon, 26 May 2008 18:16:08 +0200 (CEST) Date: Mon, 26 May 2008 18:16:08 +0200 From: Ed Schouten To: Robert Watson Message-ID: <20080526161608.GE64397@hoeg.nl> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> <483AD498.6070207@FreeBSD.org> <20080526162427.X26343@fledge.watson.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6Vw0j8UKbyX0bfpA" Content-Disposition: inline In-Reply-To: <20080526162427.X26343@fledge.watson.org> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: arch@freebsd.org, "Bruce M. Simpson" , current@freebsd.org, Ade Lovett , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 16:17:11 -0000 --6Vw0j8UKbyX0bfpA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello Robert, * Robert Watson wrote: > If the new tty code maintains support for line disciplines, updating > the existing SLIP code and adding locking code would probably be an > equally sized (or shorter) task. The new TTY layer should still support line disciplines, unfortunately I haven't implemented the line discipline switching (TIOCSETD) yet. I would really prefer to have this in userspace. There are several advantages of implementing this in userspace: - We don't have to port things twice (make it MPSAFE first and port it to the new TTY layer later, or the other way around). - It is less likely to break. The entire userspace TTY and Tun/Tap userspace programming interfaces are more likely to be stable than the kernel interfaces. - It will be easier to port to other operating systems. - Implementing this in userspace could make it easier to configure and more flexible. Any comments/ideas/etc? --=20 Ed Schouten WWW: http://80386.nl/ --6Vw0j8UKbyX0bfpA Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEUEARECAAYFAkg64kgACgkQ52SDGA2eCwVNEwCeMjSWFgbJCjcu53B1O8b2XFqe bksAlRZdlcBdfp8GQDALl4pjfAvspFs= =4oXx -----END PGP SIGNATURE----- --6Vw0j8UKbyX0bfpA-- From owner-freebsd-net@FreeBSD.ORG Mon May 26 16:45:48 2008 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 B3421106566C; Mon, 26 May 2008 16:45:48 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.208.78.105]) by mx1.freebsd.org (Postfix) with ESMTP id 8E5668FC13; Mon, 26 May 2008 16:45:48 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (localhost.apl.washington.edu [127.0.0.1]) by troutmask.apl.washington.edu (8.14.2/8.14.2) with ESMTP id m4QGcijZ037726; Mon, 26 May 2008 09:38:44 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.2/8.14.2/Submit) id m4QGciN3037725; Mon, 26 May 2008 09:38:44 -0700 (PDT) (envelope-from sgk) Date: Mon, 26 May 2008 09:38:44 -0700 From: Steve Kargl To: Ade Lovett Message-ID: <20080526163844.GA37636@troutmask.apl.washington.edu> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> User-Agent: Mutt/1.4.2.3i Cc: arch@freebsd.org, Robert Watson , current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 16:45:48 -0000 On Mon, May 26, 2008 at 05:34:09AM -0700, Ade Lovett wrote: > > idiosyncratic situations (yes, ahc(4), I'm looking at you) for 5+ What's the problem with ahc(4)? My ahc controller is one of the most reliable pieces of hardware that I've purchased. It's also the only interface available to my external DLT tape drive. -- Steve From owner-freebsd-net@FreeBSD.ORG Mon May 26 17:51:45 2008 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 1948C106566C; Mon, 26 May 2008 17:51:45 +0000 (UTC) (envelope-from wjw@digiware.nl) Received: from mail.digiware.nl (www.tegenbosch28.nl [217.21.251.97]) by mx1.freebsd.org (Postfix) with ESMTP id B589C8FC1C; Mon, 26 May 2008 17:51:44 +0000 (UTC) (envelope-from wjw@digiware.nl) Received: from localhost (localhost.digiware.nl [127.0.0.1]) by mail.digiware.nl (Postfix) with ESMTP id 11C0E17394; Mon, 26 May 2008 19:21:30 +0200 (CEST) X-Virus-Scanned: amavisd-new at digiware.nl Received: from mail.digiware.nl ([127.0.0.1]) by localhost (rack1.digiware.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lg+ou8gvjXwu; Mon, 26 May 2008 19:21:25 +0200 (CEST) Received: from [192.168.2.10] (unknown [192.168.2.10]) by mail.digiware.nl (Postfix) with ESMTP id 285D31738B; Mon, 26 May 2008 19:21:24 +0200 (CEST) Message-ID: <483AF194.2020002@digiware.nl> Date: Mon, 26 May 2008 19:21:24 +0200 From: Willem Jan Withagen Organization: Digiware User-Agent: Thunderbird 2.0.0.12 (Windows/20080213) MIME-Version: 1.0 To: Steve Kargl References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> <20080526163844.GA37636@troutmask.apl.washington.edu> In-Reply-To: <20080526163844.GA37636@troutmask.apl.washington.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: arch@freebsd.org, Robert Watson , current@freebsd.org, Ade Lovett , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 26 May 2008 17:51:45 -0000 Steve Kargl wrote: > On Mon, May 26, 2008 at 05:34:09AM -0700, Ade Lovett wrote: >> idiosyncratic situations (yes, ahc(4), I'm looking at you) for 5+ > > What's the problem with ahc(4)? My ahc controller is one of > the most reliable pieces of hardware that I've purchased. > It's also the only interface available to my external DLT > tape drive. Not to forget the large amount of embedded ahc's that got implemented on all kinds of serverbords. I still have quite a large set of customers with such ASUS boards I sold to them over the years. Up 'till now I've been able to keep 'm running with the pace of FreeBSD. Removing this driver would "leave them behind". I can force them to upgrade, but thus far there has been little reason for that (hardware wise). Just my 2 ct's --WjW From owner-freebsd-net@FreeBSD.ORG Mon May 26 18:13:02 2008 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 91290106564A; Mon, 26 May 2008 18:13:02 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id 3DE548FC13; Mon, 26 May 2008 18:13:01 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from phobos.local ([192.168.254.200]) (authenticated bits=0) by pooker.samsco.org (8.13.8/8.13.8) with ESMTP id m4QHkbWZ096376; Mon, 26 May 2008 11:46:37 -0600 (MDT) (envelope-from scottl@samsco.org) Message-ID: <483AF77D.3030006@samsco.org> Date: Mon, 26 May 2008 11:46:37 -0600 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.13) Gecko/20080313 SeaMonkey/1.1.9 MIME-Version: 1.0 To: Ade Lovett References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> In-Reply-To: <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.4 required=3.8 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.1.8 X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on pooker.samsco.org Cc: arch@freebsd.org, Robert Watson , current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 18:13:02 -0000 Ade Lovett wrote: > It's all well and good to be able to say that the current release of the > kernel supports hardware that hasn't been used, other than in > idiosyncratic situations (yes, ahc(4), I'm looking at you) for 5+ years, > but it seems that we have an opportunity here to break out the Danish > Ax[tm] in anger, and do some heavy-duty culling before 8.0-REL. > Why does this argument on hardware support keep on coming up? For christ sake, every year some yahoo speaks up and declares that he knows what hardware should stay and what should go, and every year that yahoo gets educated on how counterproductive that is to the project. I'll just skip to the end of the recording and say, "NO". Scott From owner-freebsd-net@FreeBSD.ORG Mon May 26 19:08:55 2008 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 38BEE1065679; Mon, 26 May 2008 19:08:55 +0000 (UTC) (envelope-from ade@freebsd.org) Received: from panix.lovett.com (panix.lovett.com [166.84.7.128]) by mx1.freebsd.org (Postfix) with ESMTP id 0A1E98FC0A; Mon, 26 May 2008 19:08:54 +0000 (UTC) (envelope-from ade@freebsd.org) Received: from [24.216.255.15] (helo=inferno.lab.lovett.com ident=ade) by panix.lovett.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from ) id 1K0i3x-0000cO-Tv; Mon, 26 May 2008 19:08:54 +0000 Message-Id: From: Ade Lovett To: Scott Long In-Reply-To: <483AF77D.3030006@samsco.org> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v919.2) Date: Mon, 26 May 2008 12:08:50 -0700 References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost> <20080524165519.K9809@fledge.watson.org> <20080525105726.O39741@fledge.watson.org> <5D4AF8D7-88A7-4197-A0FE-7CA992EE5F96@FreeBSD.org> <483AF77D.3030006@samsco.org> X-Mailer: Apple Mail (2.919.2) Cc: arch@freebsd.org, current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 19:08:55 -0000 On May 26, 2008, at 10:46 , Scott Long wrote: > I'll just skip to the end of the recording and say, "NO". I wasn't aware that Web 2.0 did away with implied tags, not forgetting mode(tongue, cheek), etc.. etc.. Ah well. -aDe From owner-freebsd-net@FreeBSD.ORG Mon May 26 19:41:12 2008 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 42CDB1065678; Mon, 26 May 2008 19:41:12 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id F0FF48FC0A; Mon, 26 May 2008 19:41:11 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id 7A0E0170E4; Mon, 26 May 2008 19:11:17 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.2/8.14.2) with ESMTP id m4QJBGEx042522; Mon, 26 May 2008 19:11:17 GMT (envelope-from phk@critter.freebsd.dk) To: Ed Schouten From: "Poul-Henning Kamp" In-Reply-To: Your message of "Mon, 26 May 2008 18:16:08 +0200." <20080526161608.GE64397@hoeg.nl> Date: Mon, 26 May 2008 19:11:16 +0000 Message-ID: <42521.1211829076@critter.freebsd.dk> Sender: phk@critter.freebsd.dk Cc: current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 26 May 2008 19:41:12 -0000 In message <20080526161608.GE64397@hoeg.nl>, Ed Schouten writes: >The new TTY layer should still support line disciplines, [...] Actually... I think it shouldn't. Line-disc's were introduced to interface weird-ass hardware like digitizing tablets that had very high data rates, but very little information (16 bit X, 16 bit Y and a couple of buttons, like modern mice) which would cost inordinate amounts of CPU time to support in userland on a VAX computer. If_slip.c happened in the kernel because there was no tun device, people cranked the speed up all they could (Hands up: who has changed the Xtal on a VAX serial port for faster SLIP ?) if_ppp happened because that was how if_slip did it. Today there is no longer a market for line disciplines and in practice we have only one: the POSIX mandated "termios", which also emulates the older "termio" ioctls. Anybody who cares to browse the three pages of text that RFC1055 contains, will see that implementing SLIP in userland using tun(4) and the code on the other three pages of RFC1055 is a trivial task not even worthy of a SoC student. PPP over async is already much better handled in ppp(8) thanks to Brians valiant effort back in the stoneage of the internet. We should summarily kill the concept of line disciplines as a modular component and decide that TTYs can be used with termios(4) or raw mode and leave it at that. Poul-Henning -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-freebsd-net@FreeBSD.ORG Mon May 26 22:51:13 2008 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 5C856106568B for ; Mon, 26 May 2008 22:51:13 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: from mxv6.ibctech.ca (unknown [IPv6:2607:f118::b7]) by mx1.freebsd.org (Postfix) with SMTP id 2259A8FC1E for ; Mon, 26 May 2008 22:51:12 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: (qmail 66263 invoked by uid 89); 26 May 2008 18:51:19 -0000 Received: from unknown (HELO ?IPv6:2607:f118::5?) (steve@mxv6.ibctech.ca@2607:f118::5) by 2607:f118::b6 with ESMTPA; 26 May 2008 18:51:18 -0000 Message-ID: <483B3E7F.8000907@ibctech.ca> Date: Mon, 26 May 2008 18:49:35 -0400 From: Steve Bertrand User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: IPv6/IPv4 DNS resolver source 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, 26 May 2008 22:51:13 -0000 Hi everyone, Is there anyone here who can advise me where in the source tree I would find the DNS resolver code that performs AAAA/A record lookups, and more specifically, the fallback to A lookup if AAAA fails? I am not a programmer, but I want to look at, and possibly make some local changes for testing internally. Thanks, Steve From owner-freebsd-net@FreeBSD.ORG Tue May 27 06:15:21 2008 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 B14CD1065679 for ; Tue, 27 May 2008 06:15:21 +0000 (UTC) (envelope-from peter@wemm.org) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.251]) by mx1.freebsd.org (Postfix) with ESMTP id 5DA4F8FC22 for ; Tue, 27 May 2008 06:15:21 +0000 (UTC) (envelope-from peter@wemm.org) Received: by an-out-0708.google.com with SMTP id b33so541759ana.13 for ; Mon, 26 May 2008 23:15:20 -0700 (PDT) Received: by 10.100.194.5 with SMTP id r5mr848090anf.146.1211868920478; Mon, 26 May 2008 23:15:20 -0700 (PDT) Received: by 10.100.8.6 with HTTP; Mon, 26 May 2008 23:15:20 -0700 (PDT) Message-ID: Date: Mon, 26 May 2008 23:15:20 -0700 From: "Peter Wemm" To: "Poul-Henning Kamp" In-Reply-To: <42521.1211829076@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20080526161608.GE64397@hoeg.nl> <42521.1211829076@critter.freebsd.dk> Cc: Ed Schouten , current@freebsd.org, arch@freebsd.org, Robert Watson , Ade Lovett , net@freebsd.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 06:15:21 -0000 On Mon, May 26, 2008 at 12:11 PM, Poul-Henning Kamp wrote: > In message <20080526161608.GE64397@hoeg.nl>, Ed Schouten writes: > >>The new TTY layer should still support line disciplines, [...] > > Actually... I think it shouldn't. > > Line-disc's were introduced to interface weird-ass hardware like > digitizing tablets that had very high data rates, but very little > information (16 bit X, 16 bit Y and a couple of buttons, like modern > mice) which would cost inordinate amounts of CPU time to support > in userland on a VAX computer. > > If_slip.c happened in the kernel because there was no tun device, > people cranked the speed up all they could (Hands up: who has changed > the Xtal on a VAX serial port for faster SLIP ?) > > if_ppp happened because that was how if_slip did it. > > Today there is no longer a market for line disciplines and in > practice we have only one: the POSIX mandated "termios", which also > emulates the older "termio" ioctls. > > Anybody who cares to browse the three pages of text that RFC1055 > contains, will see that implementing SLIP in userland using tun(4) > and the code on the other three pages of RFC1055 is a trivial task > not even worthy of a SoC student. > > PPP over async is already much better handled in ppp(8) thanks > to Brians valiant effort back in the stoneage of the internet. > > We should summarily kill the concept of line disciplines as a > modular component and decide that TTYs can be used with termios(4) > or raw mode and leave it at that. Amen brother!! I'd like if_sl.c and if_ppp.c/ppp_tty.c to go away simply so that we don't have to keep the line discipline switch in its current form. Let the tty layer rewrite have a free hand at doing whatever locking strategy is most appropriate for ttys, without having to worry about line disciplines and the lock order problems that come with if_sl.c. There is a reason why we merged the splnet() and spltty() interrupt masks back when we had spl()s. The tty stack cross called into the network stack via if_sl, and vice versa. ppp_tty.c had a hack to create a swi (thread) to partly hack around this where it was most critical to limit blocking of interrupts. To make this work is likely going to need a full taskq or thread for both if_sl.c and ppp_tty.c. It just isn't worth it. Especially when we have a better option in userland for ppp, and slip is a few dozen lines of code around a if_tun select loop. I've written 75% of what it would take to do slip in userland at least two or three times already, over the last 10 years. It just isn't worth it. Let line disciplines die and give Ed a free hand to do ttys "right". Line disciplines were there so that we could push processing for things like serial mice into the kernel and reduce context switches. We've been doing that in userland for the last 14+ years. -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 "If Java had true garbage collection, most programs would delete themselves upon execution." -- Robert Sewell From owner-freebsd-net@FreeBSD.ORG Tue May 27 06:28:49 2008 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 F15081065674; Tue, 27 May 2008 06:28:48 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:610:652::211]) by mx1.freebsd.org (Postfix) with ESMTP id AC4B28FC2F; Tue, 27 May 2008 06:28:48 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 8D8C81CC1A; Tue, 27 May 2008 08:27:36 +0200 (CEST) Date: Tue, 27 May 2008 08:27:36 +0200 From: Ed Schouten To: Poul-Henning Kamp Message-ID: <20080527062736.GF64397@hoeg.nl> References: <20080526161608.GE64397@hoeg.nl> <42521.1211829076@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="eNMatiwYGLtwo1cJ" Content-Disposition: inline In-Reply-To: <42521.1211829076@critter.freebsd.dk> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 06:28:49 -0000 --eNMatiwYGLtwo1cJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Poul-Henning Kamp wrote: > In message <20080526161608.GE64397@hoeg.nl>, Ed Schouten writes: >=20 > >The new TTY layer should still support line disciplines, [...] >=20 > Actually... I think it shouldn't. With the word `should' I meant that it would still be possible to implement multiple line disciplines with the mpsafetty code. But I really think line disciplines should go. What should happen with the NETGRAPHDISC? --=20 Ed Schouten WWW: http://80386.nl/ --eNMatiwYGLtwo1cJ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkg7qdgACgkQ52SDGA2eCwWzpQCfWdegx1c9kAwnf8pgIVheii53 g0wAn21RUzpMiDVW7mZXUBM35wf154Wl =054i -----END PGP SIGNATURE----- --eNMatiwYGLtwo1cJ-- From owner-freebsd-net@FreeBSD.ORG Tue May 27 06:37:51 2008 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 E287D106566B; Tue, 27 May 2008 06:37:51 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id 9C3098FC17; Tue, 27 May 2008 06:37:51 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id DDB08170E3; Tue, 27 May 2008 06:37:49 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.2/8.14.2) with ESMTP id m4R6bnsA045634; Tue, 27 May 2008 06:37:49 GMT (envelope-from phk@critter.freebsd.dk) To: Ed Schouten From: "Poul-Henning Kamp" In-Reply-To: Your message of "Tue, 27 May 2008 08:27:36 +0200." <20080527062736.GF64397@hoeg.nl> Date: Tue, 27 May 2008 06:37:49 +0000 Message-ID: <45633.1211870269@critter.freebsd.dk> Sender: phk@critter.freebsd.dk Cc: current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 06:37:52 -0000 In message <20080527062736.GF64397@hoeg.nl>, Ed Schouten writes: >> >The new TTY layer should still support line disciplines, [...] >> >> Actually... I think it shouldn't. > >With the word `should' I meant that it would still be possible to >implement multiple line disciplines with the mpsafetty code. But I >really think line disciplines should go. No, don't bother. Remove the entire "abstraction" of linedisciplines. >What should happen with the NETGRAPHDISC? It should be done in userland if it is necessary at all. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-freebsd-net@FreeBSD.ORG Tue May 27 06:44:06 2008 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 1785F106566B; Tue, 27 May 2008 06:44:06 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:610:652::211]) by mx1.freebsd.org (Postfix) with ESMTP id C93D98FC28; Tue, 27 May 2008 06:44:05 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 866C01CC1A; Tue, 27 May 2008 08:42:53 +0200 (CEST) Date: Tue, 27 May 2008 08:42:53 +0200 From: Ed Schouten To: Poul-Henning Kamp Message-ID: <20080527064253.GG64397@hoeg.nl> References: <20080527062736.GF64397@hoeg.nl> <45633.1211870269@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="+1TulI7fc0PCHNy3" Content-Disposition: inline In-Reply-To: <45633.1211870269@critter.freebsd.dk> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 06:44:06 -0000 --+1TulI7fc0PCHNy3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Poul-Henning Kamp wrote: > In message <20080527062736.GF64397@hoeg.nl>, Ed Schouten writes: >=20 > >> >The new TTY layer should still support line disciplines, [...] > >>=20 > >> Actually... I think it shouldn't. > > > >With the word `should' I meant that it would still be possible to > >implement multiple line disciplines with the mpsafetty code. But I > >really think line disciplines should go. >=20 > No, don't bother. Remove the entire "abstraction" of linedisciplines. Your wish is my command. --=20 Ed Schouten WWW: http://80386.nl/ --+1TulI7fc0PCHNy3 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkg7rW0ACgkQ52SDGA2eCwVsqACdEzoW5Fq+G8mEnjOJEFB8hOQf hPoAn0L1/k6DBz2mM0BZ5qcK0tLG4HWL =hY/5 -----END PGP SIGNATURE----- --+1TulI7fc0PCHNy3-- From owner-freebsd-net@FreeBSD.ORG Tue May 27 07:45:27 2008 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 CDEC5106566B for ; Tue, 27 May 2008 07:45:27 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outC.internet-mail-service.net (outc.internet-mail-service.net [216.240.47.226]) by mx1.freebsd.org (Postfix) with ESMTP id B24CE8FC15 for ; Tue, 27 May 2008 07:45:27 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 2B0592496; Tue, 27 May 2008 00:45:33 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id B3D2E2D6022; Tue, 27 May 2008 00:45:26 -0700 (PDT) Message-ID: <483BBC1B.6040905@elischer.org> Date: Tue, 27 May 2008 00:45:31 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Poul-Henning Kamp References: <42521.1211829076@critter.freebsd.dk> In-Reply-To: <42521.1211829076@critter.freebsd.dk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 07:45:27 -0000 Poul-Henning Kamp wrote: > In message <20080526161608.GE64397@hoeg.nl>, Ed Schouten writes: > >> The new TTY layer should still support line disciplines, [...] > > Actually... I think it shouldn't. > > Line-disc's were introduced to interface weird-ass hardware like > digitizing tablets that had very high data rates, but very little > information (16 bit X, 16 bit Y and a couple of buttons, like modern > mice) which would cost inordinate amounts of CPU time to support > in userland on a VAX computer. > > If_slip.c happened in the kernel because there was no tun device, > people cranked the speed up all they could (Hands up: who has changed > the Xtal on a VAX serial port for faster SLIP ?) > > if_ppp happened because that was how if_slip did it. > > Today there is no longer a market for line disciplines and in > practice we have only one: the POSIX mandated "termios", which also > emulates the older "termio" ioctls. > > Anybody who cares to browse the three pages of text that RFC1055 > contains, will see that implementing SLIP in userland using tun(4) > and the code on the other three pages of RFC1055 is a trivial task > not even worthy of a SoC student. > > PPP over async is already much better handled in ppp(8) thanks > to Brians valiant effort back in the stoneage of the internet. > > We should summarily kill the concept of line disciplines as a > modular component and decide that TTYs can be used with termios(4) > or raw mode and leave it at that. > > Poul-Henning > However the line discipline was a very convenient place for netgraph to hook in without leaving the kernel. If you can supply an equally effective way to hook into a serial device in such a way that it appears to be a source/sink of bits then I don't care about line disciplins, but until you have a suggested replacement then leave them alone. There are MANY people using mpd with the netgraph ppp moduel hooked directly to the serial port via the netgraph line discipline. From owner-freebsd-net@FreeBSD.ORG Tue May 27 08:04:02 2008 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 75713106567A; Tue, 27 May 2008 08:04:02 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id D88A28FC12; Tue, 27 May 2008 08:04:01 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id 3AA67170E3; Tue, 27 May 2008 08:04:00 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.2/8.14.2) with ESMTP id m4R83xfh051990; Tue, 27 May 2008 08:03:59 GMT (envelope-from phk@critter.freebsd.dk) To: Julian Elischer From: "Poul-Henning Kamp" In-Reply-To: Your message of "Tue, 27 May 2008 00:45:31 MST." <483BBC1B.6040905@elischer.org> Date: Tue, 27 May 2008 08:03:59 +0000 Message-ID: <51989.1211875439@critter.freebsd.dk> Sender: phk@critter.freebsd.dk Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 08:04:02 -0000 In message <483BBC1B.6040905@elischer.org>, Julian Elischer writes: >However the line discipline was a very convenient place for netgraph >to hook in without leaving the kernel. If you can supply an equally >effective way to hook into a serial device in such a way that it >appears to be a source/sink of bits then I don't care about >line disciplins, but until you have a suggested replacement then leave >them alone. There are MANY people using mpd with the netgraph ppp >moduel hooked directly to the serial port via the netgraph line >discipline. What exact value of "MANY" are we talking about here, and do you have any evidence that the systems in question will be updated to FreeBSD-8.0-RELEASE or later ? If, contrary to my expectation, that you can show a real market here, then we should make a better interface than linedisc for such hooks into serial ports. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-freebsd-net@FreeBSD.ORG Tue May 27 08:06:10 2008 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 A713C1065679 for ; Tue, 27 May 2008 08:06:10 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outW.internet-mail-service.net (outw.internet-mail-service.net [216.240.47.246]) by mx1.freebsd.org (Postfix) with ESMTP id 884D28FC36 for ; Tue, 27 May 2008 08:06:10 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id C1CF42401; Tue, 27 May 2008 01:06:21 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 6C44C2D6014; Tue, 27 May 2008 01:06:09 -0700 (PDT) Message-ID: <483BC0F6.4050700@elischer.org> Date: Tue, 27 May 2008 01:06:14 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Poul-Henning Kamp References: <42521.1211829076@critter.freebsd.dk> <483BBC1B.6040905@elischer.org> In-Reply-To: <483BBC1B.6040905@elischer.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 08:06:10 -0000 Julian Elischer wrote: > Poul-Henning Kamp wrote: >> In message <20080526161608.GE64397@hoeg.nl>, Ed Schouten writes: >> >>> The new TTY layer should still support line disciplines, [...] >> >> Actually... I think it shouldn't. >> >> Line-disc's were introduced to interface weird-ass hardware like >> digitizing tablets that had very high data rates, but very little >> information (16 bit X, 16 bit Y and a couple of buttons, like modern >> mice) which would cost inordinate amounts of CPU time to support >> in userland on a VAX computer. >> >> If_slip.c happened in the kernel because there was no tun device, >> people cranked the speed up all they could (Hands up: who has changed >> the Xtal on a VAX serial port for faster SLIP ?) >> >> if_ppp happened because that was how if_slip did it. >> >> Today there is no longer a market for line disciplines and in >> practice we have only one: the POSIX mandated "termios", which also >> emulates the older "termio" ioctls. >> >> Anybody who cares to browse the three pages of text that RFC1055 >> contains, will see that implementing SLIP in userland using tun(4) >> and the code on the other three pages of RFC1055 is a trivial task >> not even worthy of a SoC student. >> >> PPP over async is already much better handled in ppp(8) thanks >> to Brians valiant effort back in the stoneage of the internet. >> >> We should summarily kill the concept of line disciplines as a >> modular component and decide that TTYs can be used with termios(4) >> or raw mode and leave it at that. >> >> Poul-Henning >> > > > However the line discipline was a very convenient place for netgraph to > hook in without leaving the kernel. If you can supply an equally > effective way to hook into a serial device in such a way that it appears > to be a source/sink of bits then I don't care about > line disciplins, but until you have a suggested replacement then leave > them alone. There are MANY people using mpd with the netgraph ppp moduel > hooked directly to the serial port via the netgraph line discipline. p.s "do it in userland" is not the right answer, but it should be able to hook into netgraph without all the requirements that were needed for a line discipline. let me contact you independently and we 'll see what can be done. > > _______________________________________________ > 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 Tue May 27 08:12:41 2008 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 7CFC5106567D for ; Tue, 27 May 2008 08:12:41 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outE.internet-mail-service.net (oute.internet-mail-service.net [216.240.47.228]) by mx1.freebsd.org (Postfix) with ESMTP id 63FCF8FC26 for ; Tue, 27 May 2008 08:12:41 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id AFC5F2401; Tue, 27 May 2008 01:13:15 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 5BE332D601A; Tue, 27 May 2008 01:12:40 -0700 (PDT) Message-ID: <483BC27C.6010102@elischer.org> Date: Tue, 27 May 2008 01:12:44 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Poul-Henning Kamp References: <51989.1211875439@critter.freebsd.dk> In-Reply-To: <51989.1211875439@critter.freebsd.dk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 08:12:41 -0000 Poul-Henning Kamp wrote: > In message <483BBC1B.6040905@elischer.org>, Julian Elischer writes: > >> However the line discipline was a very convenient place for netgraph >> to hook in without leaving the kernel. If you can supply an equally >> effective way to hook into a serial device in such a way that it >> appears to be a source/sink of bits then I don't care about >> line disciplins, but until you have a suggested replacement then leave >> them alone. There are MANY people using mpd with the netgraph ppp >> moduel hooked directly to the serial port via the netgraph line >> discipline. > > What exact value of "MANY" are we talking about here, and do you > have any evidence that the systems in question will be updated > to FreeBSD-8.0-RELEASE or later ? judging by the bug reports when things get broken there are still a lot of people connected to the internet via dial up lines in places off the beaten track, and still a lot of people who when travelling do use dialup still. Some of these also use mpd. I can not say how many plan to keep using this in the future but it may be that the simplest answer is a completely separate sio driver that just has netgraph hooks. I haven't talked with Ed yet but there may be may ways to solve this problem. One that comes to mind is tha tthe way netgraph hooks to other modules assumes a possible queueing of data, and that decoupling could make it a lot easier to connect tehm that was required for slip and ppp. > > If, contrary to my expectation, that you can show a real market > here, then we should make a better interface than linedisc for > such hooks into serial ports. > From owner-freebsd-net@FreeBSD.ORG Tue May 27 08:39:11 2008 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 2EA5F106566B; Tue, 27 May 2008 08:39:11 +0000 (UTC) (envelope-from mohacsi@niif.hu) Received: from mail.ki.iif.hu (mail.ki.iif.hu [IPv6:2001:738:0:411::241]) by mx1.freebsd.org (Postfix) with ESMTP id 703D68FC26; Tue, 27 May 2008 08:39:10 +0000 (UTC) (envelope-from mohacsi@niif.hu) Received: from localhost (localhost [IPv6:::1]) by mail.ki.iif.hu (Postfix) with ESMTP id 17AE684568; Tue, 27 May 2008 10:39:09 +0200 (CEST) X-Virus-Scanned: by amavisd-new at mignon.ki.iif.hu Received: from mail.ki.iif.hu ([127.0.0.1]) by localhost (mignon.ki.iif.hu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Mfn8h7yspY6c; Tue, 27 May 2008 10:39:06 +0200 (CEST) Received: by mail.ki.iif.hu (Postfix, from userid 9002) id F0DB08450D; Tue, 27 May 2008 10:39:05 +0200 (CEST) To: FreeBSD-gnats-submit@freebsd.org From: Mohacsi Janos X-send-pr-version: 3.113 X-GNATS-Notify: Message-Id: <20080527083905.F0DB08450D@mail.ki.iif.hu> Date: Tue, 27 May 2008 10:39:05 +0200 (CEST) Cc: freebsd-net@freebsd.org Subject: page fault in nd6_output() X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mohacsi Janos List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2008 08:39:11 -0000 >Submitter-Id: current-users >Originator: Mohacsi Janos >Organization: NIIF >Confidential: no >Synopsis: page fault in nd6_output() >Severity: serious >Priority: medium >Category: kern >Class: sw-bug >Release: FreeBSD 6.3-STABLE i386 >Environment: System: FreeBSD mignon.ki.iif.hu 6.3-STABLE FreeBSD 6.3-STABLE #12: Mon May 19 18:48:06 CEST 2008 root@mignon.ki.iif.hu:/usr/obj/usr/src/sys/MIGNON2 i386 >Description: Kernel panicked in nd6_output() function. root@mignon# kgdb kernel.debug /var/crash/vmcore.1 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: kernel trap 12 with interrupts disabled Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x104 fault code = supervisor read, page not present instruction pointer = 0x20:0xc055cc65 stack pointer = 0x28:0xef85289c frame pointer = 0x28:0xef8528b4 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = resume, IOPL = 0 current process = 30145 (sshd) trap number = 12 panic: page fault cpuid = 0 Uptime: 4d5h35m21s Dumping 1023 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 1023MB (261872 pages) 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 Reading symbols from /boot/kernel/ispfw.ko...done. Loaded symbols for /boot/kernel/ispfw.ko Reading symbols from /boot/kernel/acpi.ko...done. Loaded symbols for /boot/kernel/acpi.ko Reading symbols from /boot/kernel/fdescfs.ko...done. Loaded symbols for /boot/kernel/fdescfs.ko Reading symbols from /boot/kernel/pflog.ko...done. Loaded symbols for /boot/kernel/pflog.ko Reading symbols from /boot/kernel/pf.ko...done. Loaded symbols for /boot/kernel/pf.ko Reading symbols from /boot/kernel/accf_http.ko...done. Loaded symbols for /boot/kernel/accf_http.ko Reading symbols from /boot/kernel/daemon_saver.ko...done. Loaded symbols for /boot/kernel/daemon_saver.ko #0 doadump () at pcpu.h:165 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc056802d in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:410 #2 0xc05683de in panic (fmt=0xc0759e9a "%s") at /usr/src/sys/kern/kern_shutdown.c:566 #3 0xc0729180 in trap_fatal (frame=0xef85285c, eva=0) at /usr/src/sys/i386/i386/trap.c:838 #4 0xc0728865 in trap (frame= {tf_fs = -276496376, tf_es = -1067188184, tf_ds = -276496344, tf_edi = -939729920, tf_esi = 4, tf_ebp = -276485964, tf_isp = -276486008, tf_ebx = -987277284, tf_edx = 6, tf_ecx = 3, tf_eax = 1, tf_trapno = 12, tf_err = 0, tf_eip = -1068118939, tf_cs = 32, tf_eflags = 65538, tf_esp = -987277284, tf_ss = -991664924}) at /usr/src/sys/i386/i386/trap.c:270 #5 0xc071186a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #6 0xc055cc65 in _mtx_lock_sleep (m=0xc527581c, tid=3355237376, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:546 #7 0xc0642437 in nd6_output (ifp=0xc4c3e000, origifp=0x1, m0=0xc6c18300, dst=0xc4e464dc, rt0=0xc5275840) at /usr/src/sys/netinet6/nd6.c:2008 #8 0xc063b712 in ip6_output (m0=0xef852a78, opt=0x0, ro=0xef852a78, flags=0, im6o=0x0, ifpp=0x0, inp=0xc54ae2d0) at /usr/src/sys/netinet6/ip6_output.c:994 #9 0xc0619e31 in tcp_output (tp=0xc588acb0) at /usr/src/sys/netinet/tcp_output.c:1059 #10 0xc06225bb in tcp_usr_send (so=0xc589b000, flags=0, m=0xc7baaa00, nam=0x0, control=0x0, td=0xc7fcdc00) at /usr/src/sys/netinet/tcp_usrreq.c:698 #11 0xc05ad5df in sosend (so=0xc589b000, addr=0x0, uio=0xef852cb0, top=0xc7baaa00, control=0x0, flags=0, td=0xc7fcdc00) at /usr/src/sys/kern/uipc_socket.c:836 #12 0xc05992c7 in soo_write (fp=0x1, uio=0xef852cb0, active_cred=0xc5d60000, flags=0, td=0xc7fcdc00) at /usr/src/sys/kern/sys_socket.c:118 #13 0xc05923da in dofilewrite (td=0xc7fcdc00, fd=1, fp=0xc59ffd38, auio=0xef852cb0, offset=Unhandled dwarf expression opcode 0x93 ) at file.h:253 #14 0xc059220b in kern_writev (td=0xc7fcdc00, fd=3, auio=0x1) at /usr/src/sys/kern/sys_generic.c:402 #15 0xc05920dd in write (td=0x1, uap=0x3) at /usr/src/sys/kern/sys_generic.c:326 #16 0xc0729567 in syscall (frame= {tf_fs = 134676539, tf_es = -1078001605, tf_ds = -1078001605, tf_edi = 134701160, tf_esi = 80, tf_ebp = -1077941848, tf_isp = -276484764, tf_ebx = 672000184, tf_edx = 134701160, tf_ecx = 3, tf_eax = 4, tf_trapno = 0, tf_err = 2, tf_eip = 674877415, tf_cs = 51, tf_eflags = 518, tf_esp = -1077941876, tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:984 #17 0xc07118bf in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200 #18 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) quit >How-To-Repeat: This crash occurs basically every 2-3 months since FreeBSD 6.x >Fix: If you need more infromation about the crash and the kernel - I can provide you. From owner-freebsd-net@FreeBSD.ORG Tue May 27 08:50:07 2008 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 4B6EF106566B; Tue, 27 May 2008 08:50:07 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [62.111.66.27]) by mx1.freebsd.org (Postfix) with ESMTP id 030B08FC1C; Tue, 27 May 2008 08:50:06 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.str.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 3A37441C75D; Tue, 27 May 2008 10:50:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([62.111.66.27]) by localhost (amavis.str.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id 9uOkE-S6Xa6E; Tue, 27 May 2008 10:50:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id DA9A441C75A; Tue, 27 May 2008 10:50:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 8067E4448E6; Tue, 27 May 2008 08:45:16 +0000 (UTC) Date: Tue, 27 May 2008 08:45:16 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Mohacsi Janos In-Reply-To: <20080527083905.F0DB08450D@mail.ki.iif.hu> Message-ID: <20080527084426.D65662@maildrop.int.zabbadoz.net> References: <20080527083905.F0DB08450D@mail.ki.iif.hu> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-net@FreeBSD.org, freebsd-bugs@FreeBSD.org, FreeBSD-gnats-submit@FreeBSD.org Subject: Re: kern/124021: page fault in nd6_output() 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, 27 May 2008 08:50:07 -0000 On Tue, 27 May 2008, Mohacsi Janos wrote: >> Synopsis: page fault in nd6_output() This is most likely an issue because of missing proper locking and is well known. I bet one can find another 5 reports of this in gnats. -- Bjoern A. Zeeb Stop bit received. Insert coin for new game. From owner-freebsd-net@FreeBSD.ORG Tue May 27 08:54:57 2008 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 4FA631065672; Tue, 27 May 2008 08:54:57 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 1E56C8FC18; Tue, 27 May 2008 08:54:57 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id A01BB46B2D; Tue, 27 May 2008 04:54:56 -0400 (EDT) Date: Tue, 27 May 2008 09:54:56 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Poul-Henning Kamp In-Reply-To: <45633.1211870269@critter.freebsd.dk> Message-ID: <20080527095317.R35026@fledge.watson.org> References: <45633.1211870269@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 08:54:57 -0000 On Tue, 27 May 2008, Poul-Henning Kamp wrote: > In message <20080527062736.GF64397@hoeg.nl>, Ed Schouten writes: > >>>> The new TTY layer should still support line disciplines, [...] >>> >>> Actually... I think it shouldn't. >> >> With the word `should' I meant that it would still be possible to implement >> multiple line disciplines with the mpsafetty code. But I really think line >> disciplines should go. > > No, don't bother. Remove the entire "abstraction" of linedisciplines. > >> What should happen with the NETGRAPHDISC? > > It should be done in userland if it is necessary at all. It sounds like there is some disagreement on this point, given that that would require byte streams from serial lines to go into userspace just to be re-injected into the kernel in order to enter netgraph. Rather than do that, a more sensible route would be to look at converting ng_tty from a line discipline into a much more constrained set of I/O hooks, selected using the same ioctl but presumably a different discipline name. Unfortunately, it's not clear that snp would use the same hooks, as Netgraph presumably wants to eat the input, whereas snp just wants a copy, but perhaps there's a clean way to capture that distinction. Robert N M Watson Computer Laboratory University of Cambridge From owner-freebsd-net@FreeBSD.ORG Tue May 27 09:16:08 2008 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 BC3471065670 for ; Tue, 27 May 2008 09:16:08 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: from blah.sun-fish.com (blah.sun-fish.com [217.18.249.150]) by mx1.freebsd.org (Postfix) with ESMTP id 74F688FC18 for ; Tue, 27 May 2008 09:16:08 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: by blah.sun-fish.com (Postfix, from userid 1002) id E269C1B10EA4; Tue, 27 May 2008 11:16:06 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on malcho.cmotd.com X-Spam-Level: X-Spam-Status: No, score=-10.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_25 autolearn=no version=3.2.4 Received: from hater.haters.org (hater.cmotd.com [192.168.3.125]) by blah.sun-fish.com (Postfix) with ESMTP id BE7811B10CAA for ; Tue, 27 May 2008 11:16:01 +0200 (CEST) Message-ID: <483BD151.3070900@moneybookers.com> Date: Tue, 27 May 2008 12:16:01 +0300 From: Stefan Lambrev User-Agent: Thunderbird 2.0.0.14 (X11/20080503) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on blah.cmotd.com X-Virus-Status: Clean Subject: Adjust Maximum Segment Size? 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, 27 May 2008 09:16:08 -0000 Greetings, Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? I want to play only with MSS not with MTU. So far the only solution that I found is pf+scrub, but I wander if it is possible to do it without firewall. -- Best Wishes, Stefan Lambrev ICQ# 24134177 From owner-freebsd-net@FreeBSD.ORG Tue May 27 09:25:06 2008 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 7C5D2106566C for ; Tue, 27 May 2008 09:25:06 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [62.111.66.27]) by mx1.freebsd.org (Postfix) with ESMTP id 380EE8FC1F for ; Tue, 27 May 2008 09:25:06 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.str.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 5335041C798; Tue, 27 May 2008 11:25:05 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([62.111.66.27]) by localhost (amavis.str.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id F3VQZr-FUbMp; Tue, 27 May 2008 11:25:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id 0A72141C7A7; Tue, 27 May 2008 11:25:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 3F25F44487F; Tue, 27 May 2008 09:22:24 +0000 (UTC) Date: Tue, 27 May 2008 09:22:23 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Stefan Lambrev In-Reply-To: <483BD151.3070900@moneybookers.com> Message-ID: <20080527092125.K65662@maildrop.int.zabbadoz.net> References: <483BD151.3070900@moneybookers.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 09:25:06 -0000 On Tue, 27 May 2008, Stefan Lambrev wrote: Hi, > Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? > I want to play only with MSS not with MTU. > So far the only solution that I found is pf+scrub, but I wander if it is > possible to do it without > firewall. depends on how you want to do it? Are you asking becuase you are running ppp or mpd? Or do you want to change it globally for everything of a machine? -- Bjoern A. Zeeb Stop bit received. Insert coin for new game. From owner-freebsd-net@FreeBSD.ORG Tue May 27 09:37:24 2008 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 D473E1065677 for ; Tue, 27 May 2008 09:37:24 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: from blah.sun-fish.com (blah.sun-fish.com [217.18.249.150]) by mx1.freebsd.org (Postfix) with ESMTP id 8A2A18FC16 for ; Tue, 27 May 2008 09:37:24 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: by blah.sun-fish.com (Postfix, from userid 1002) id 4FF641B10EF4; Tue, 27 May 2008 11:37:23 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on malcho.cmotd.com X-Spam-Level: X-Spam-Status: No, score=-10.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_25 autolearn=no version=3.2.4 Received: from hater.haters.org (hater.cmotd.com [192.168.3.125]) by blah.sun-fish.com (Postfix) with ESMTP id D4F011B10EE8; Tue, 27 May 2008 11:37:20 +0200 (CEST) Message-ID: <483BD650.9080002@moneybookers.com> Date: Tue, 27 May 2008 12:37:20 +0300 From: Stefan Lambrev User-Agent: Thunderbird 2.0.0.14 (X11/20080503) MIME-Version: 1.0 To: "Bjoern A. Zeeb" References: <483BD151.3070900@moneybookers.com> <20080527092125.K65662@maildrop.int.zabbadoz.net> In-Reply-To: <20080527092125.K65662@maildrop.int.zabbadoz.net> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on blah.cmotd.com X-Virus-Status: Clean Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 09:37:24 -0000 Bjoern A. Zeeb wrote: > On Tue, 27 May 2008, Stefan Lambrev wrote: > > Hi, > >> Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? >> I want to play only with MSS not with MTU. >> So far the only solution that I found is pf+scrub, but I wander if it >> is possible to do it without >> firewall. > > depends on how you want to do it? Are you asking becuase you are > running ppp or mpd? Or do you want to change it globally for > everything of a machine? > I'm experimenting with gre tunnels - the problem comes from async routes. From gre0 I receive traffic, but replies are sent over Ethernet card. So I can't make mtu on if0 the same as the mtu on gre0. -- Best Wishes, Stefan Lambrev ICQ# 24134177 From owner-freebsd-net@FreeBSD.ORG Tue May 27 10:21:49 2008 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 BB00B106564A for ; Tue, 27 May 2008 10:21:49 +0000 (UTC) (envelope-from boris@ntmk.ru) Received: from mail.ntmk.ru (mail.ntmk.ru [217.114.241.6]) by mx1.freebsd.org (Postfix) with ESMTP id 6A82E8FC1D for ; Tue, 27 May 2008 10:21:49 +0000 (UTC) (envelope-from boris@ntmk.ru) Received: from boris.nikom.ru ([10.1.16.195]) by mail.ntmk.ru with esmtpa (Exim 4.67) (envelope-from ) id 1K0vSW-0004c8-Nq; Tue, 27 May 2008 15:27:08 +0600 Message-ID: <483BD3EC.4000909@ntmk.ru> Date: Tue, 27 May 2008 15:27:08 +0600 From: Boris Kovalenko User-Agent: Thunderbird 2.0.0.9 (X11/20071207) MIME-Version: 1.0 To: Stefan Lambrev , freebsd-net@freebsd.org References: <483BD151.3070900@moneybookers.com> In-Reply-To: <483BD151.3070900@moneybookers.com> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 10:21:49 -0000 Hello! Yes, You can with ng_tcpmss > Greetings, > > Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? > I want to play only with MSS not with MTU. > So far the only solution that I found is pf+scrub, but I wander if it > is possible to do it without > firewall. > Regards, Boris From owner-freebsd-net@FreeBSD.ORG Tue May 27 12:12:58 2008 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 112451065674 for ; Tue, 27 May 2008 12:12:58 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: from blah.sun-fish.com (blah.sun-fish.com [217.18.249.150]) by mx1.freebsd.org (Postfix) with ESMTP id BC5458FC17 for ; Tue, 27 May 2008 12:12:57 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: by blah.sun-fish.com (Postfix, from userid 1002) id 1F6DA1B10EA4; Tue, 27 May 2008 14:12:56 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on malcho.cmotd.com X-Spam-Level: X-Spam-Status: No, score=-10.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_25 autolearn=no version=3.2.4 Received: from hater.haters.org (hater.cmotd.com [192.168.3.125]) by blah.sun-fish.com (Postfix) with ESMTP id A8CF71B10CB6; Tue, 27 May 2008 14:12:50 +0200 (CEST) Message-ID: <483BFAC2.9040400@moneybookers.com> Date: Tue, 27 May 2008 15:12:50 +0300 From: Stefan Lambrev User-Agent: Thunderbird 2.0.0.14 (X11/20080503) MIME-Version: 1.0 To: Boris Kovalenko References: <483BD151.3070900@moneybookers.com> <483BD3EC.4000909@ntmk.ru> In-Reply-To: <483BD3EC.4000909@ntmk.ru> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on blah.cmotd.com X-Virus-Status: Clean Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 12:12:58 -0000 Boris Kovalenko wrote: > Hello! > > Yes, You can with ng_tcpmss Isn't it doable only with ipfw/divert when using ng_tcpmss? I have and some concerns about performance too .. >> Greetings, >> >> Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? >> I want to play only with MSS not with MTU. >> So far the only solution that I found is pf+scrub, but I wander if it >> is possible to do it without >> firewall. >> > Regards, > Boris > > _______________________________________________ > 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" -- Best Wishes, Stefan Lambrev ICQ# 24134177 From owner-freebsd-net@FreeBSD.ORG Tue May 27 13:09:26 2008 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 EA79D1065678; Tue, 27 May 2008 13:09:26 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id C1F408FC13; Tue, 27 May 2008 13:09:26 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from freefall.freebsd.org (gavin@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4RD9Qnl015691; Tue, 27 May 2008 13:09:26 GMT (envelope-from gavin@freefall.freebsd.org) Received: (from gavin@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4RD9QOP015687; Tue, 27 May 2008 13:09:26 GMT (envelope-from gavin) Date: Tue, 27 May 2008 13:09:26 GMT Message-Id: <200805271309.m4RD9QOP015687@freefall.freebsd.org> To: gavin@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-net@FreeBSD.org From: gavin@FreeBSD.org Cc: Subject: Re: bin/124004: [ifconfig] Cannot assign both an IP and a MAC address to a bridge in one command 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, 27 May 2008 13:09:27 -0000 Old Synopsis: Cannot assign both an IP and a MAC address to a bridge in one command New Synopsis: [ifconfig] Cannot assign both an IP and a MAC address to a bridge in one command Responsible-Changed-From-To: freebsd-bugs->freebsd-net Responsible-Changed-By: gavin Responsible-Changed-When: Tue May 27 13:09:08 UTC 2008 Responsible-Changed-Why: Over to maintainers http://www.freebsd.org/cgi/query-pr.cgi?pr=124004 From owner-freebsd-net@FreeBSD.ORG Tue May 27 14:09:58 2008 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 98C1C1065676 for ; Tue, 27 May 2008 14:09:58 +0000 (UTC) (envelope-from nvass@teledomenet.gr) Received: from smtp.teledomenet.gr (smtp.teledomenet.gr [213.142.128.2]) by mx1.freebsd.org (Postfix) with ESMTP id 4DED38FC1C for ; Tue, 27 May 2008 14:09:58 +0000 (UTC) (envelope-from nvass@teledomenet.gr) Received: by smtp.teledomenet.gr (Postfix, from userid 58) id B42021420F0; Tue, 27 May 2008 16:52:41 +0300 (EEST) X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on smtp.teledomenet.gr X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,RDNS_NONE autolearn=no version=3.2.3 Received: from iris.teledomenet.local (unknown [192.168.1.71]) by smtp.teledomenet.gr (Postfix) with ESMTP id E20FB14209A; Tue, 27 May 2008 16:52:37 +0300 (EEST) From: Nikos Vassiliadis To: freebsd-net@freebsd.org Date: Tue, 27 May 2008 16:51:38 +0300 User-Agent: KMail/1.9.7 References: <483BD151.3070900@moneybookers.com> <20080527092125.K65662@maildrop.int.zabbadoz.net> <483BD650.9080002@moneybookers.com> In-Reply-To: <483BD650.9080002@moneybookers.com> X-NCC-RegID: gr.telehouse MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200805271651.38888.nvass@teledomenet.gr> Cc: "Bjoern A. Zeeb" , Stefan Lambrev Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 14:09:58 -0000 On Tuesday 27 May 2008 12:37:20 Stefan Lambrev wrote: > I'm experimenting with gre tunnels - the problem comes from async > routes. From gre0 I receive traffic, but replies are sent over Ethernet > card. So I can't make mtu on if0 the same as the mtu on gre0. You could change the mtu size for certain destinations using route(8) and the -mtu modifier. Lower the mtu for the known destination or perhaps for the default route to keep your system from using the interface's mtu. Of course, this will influence mtu and not only mss... HTH, Nikos From owner-freebsd-net@FreeBSD.ORG Tue May 27 14:13:43 2008 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 6339E1065670 for ; Tue, 27 May 2008 14:13:43 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: from ibctech.ca (unknown [IPv6:2607:f118::b6]) by mx1.freebsd.org (Postfix) with SMTP id F2BB08FC0A for ; Tue, 27 May 2008 14:13:42 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: (qmail 51741 invoked by uid 89); 27 May 2008 10:13:48 -0000 Received: from unknown (HELO ?IPv6:2607:f118::5?) (steve@ibctech.ca@2607:f118::5) by 2607:f118::b6 with ESMTPA; 27 May 2008 10:13:48 -0000 Message-ID: <483C169D.7030304@ibctech.ca> Date: Tue, 27 May 2008 10:11:41 -0400 From: Steve Bertrand User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Dual stack with multiple addresses in rc.conf 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, 27 May 2008 14:13:43 -0000 Hi all, I'm having a difficult time sorting out how to have all my required IP addresses (and gateways) configured correctly on boot up via rc.conf. I've tried all manner of methods using aliases etc, but somehow or another, the machine fails to configure all of the addresses correctly, and it never configures the IPv6 defaultrouter in the routing table. I must stand by the console of the machine if it needs to be rebooted so I can manually configure the addresses/routes that do not set themselves up correctly. Can someone please advise me on the proper configuration as it should be in rc.conf for the following addresses? All of the addresses need to be configured on a single interface (fxp0): ifconfig_fxp0="inet6 2607:f118::b6 prefixlen 64" ifconfig_fxp0_alias0="inet6 2607:f118::b7 prefixlen 64" ifconfig_fxp0="inet 208.70.104.210 255.255.255.248" ifconfig_fxp0_alias1="inet 208.70.104.211 netmask 255.255.255.255" defaultrouter="208.70.104.209" ipv6_defaultrouter="2607:f118::1" Regards, Steve From owner-freebsd-net@FreeBSD.ORG Tue May 27 14:25:07 2008 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 D9DBF106566B for ; Tue, 27 May 2008 14:25:05 +0000 (UTC) (envelope-from max@love2party.net) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.179]) by mx1.freebsd.org (Postfix) with ESMTP id 3EC9E8FC3B for ; Tue, 27 May 2008 14:25:05 +0000 (UTC) (envelope-from max@love2party.net) Received: from vampire.homelinux.org (dslb-088-066-023-106.pools.arcor-ip.net [88.66.23.106]) by mrelayeu.kundenserver.de (node=mrelayeu4) with ESMTP (Nemesis) id 0ML21M-1K106q1OW3-0000KK; Tue, 27 May 2008 16:25:04 +0200 Received: (qmail 54271 invoked from network); 27 May 2008 14:23:12 -0000 Received: from myhost.laiers.local (192.168.4.151) by laiers.local with SMTP; 27 May 2008 14:23:12 -0000 From: Max Laier Organization: FreeBSD To: freebsd-net@freebsd.org Date: Tue, 27 May 2008 16:24:27 +0200 User-Agent: KMail/1.9.9 References: <483C169D.7030304@ibctech.ca> In-Reply-To: <483C169D.7030304@ibctech.ca> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200805271624.27922.max@love2party.net> X-Provags-ID: V01U2FsdGVkX18OX9Vp0hrVxuI6eCfqiBiFtqgIrN9lGeW0M9L 9HmgSopB6chgp7tUetwlJ43j8aKGYx1d8VKDGiI+A8kByhpjfG yupaSSH/FdBpLlCjq/YRQ== Cc: Steve Bertrand Subject: Re: Dual stack with multiple addresses in rc.conf 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, 27 May 2008 14:25:07 -0000 On Tuesday 27 May 2008 16:11:41 Steve Bertrand wrote: > Hi all, > > I'm having a difficult time sorting out how to have all my required IP > addresses (and gateways) configured correctly on boot up via rc.conf. > > I've tried all manner of methods using aliases etc, but somehow or > another, the machine fails to configure all of the addresses correctly, > and it never configures the IPv6 defaultrouter in the routing table. I > must stand by the console of the machine if it needs to be rebooted so > I can manually configure the addresses/routes that do not set > themselves up correctly. > > Can someone please advise me on the proper configuration as it should > be in rc.conf for the following addresses? All of the addresses need to > be configured on a single interface (fxp0): > > ifconfig_fxp0=3D"inet6 2607:f118::b6 prefixlen 64" > ifconfig_fxp0_alias0=3D"inet6 2607:f118::b7 prefixlen 64" > ifconfig_fxp0=3D"inet 208.70.104.210 255.255.255.248" > ifconfig_fxp0_alias1=3D"inet 208.70.104.211 netmask 255.255.255.255" > > defaultrouter=3D"208.70.104.209" > ipv6_defaultrouter=3D"2607:f118::1" =46rom rc.conf(5): Instead of setting the ifconfig variables as ifconfig_ they should be set as ipv6_ifconfig_. Aliases should be set as ipv6_ifconfig__alias. The default router should fall into place once you have an interface that=20 is able to contact it - otherwise route will refuse to add. > Regards, > > Steve > _______________________________________________ > 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" =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 From owner-freebsd-net@FreeBSD.ORG Tue May 27 15:19:08 2008 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 030EF1065672; Tue, 27 May 2008 15:19:08 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id 93C208FC0A; Tue, 27 May 2008 15:19:07 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from compute1.internal (compute1.internal [10.202.2.41]) by out1.messagingengine.com (Postfix) with ESMTP id DA98F104A60; Tue, 27 May 2008 11:19:06 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute1.internal (MEProxy); Tue, 27 May 2008 11:19:07 -0400 X-Sasl-enc: ZqpgoDUTicqVXYDdDy5GcplD65P6uhcNDK276KTzwMMu 1211901546 Received: from empiric.lon.incunabulum.net (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id AA44CAA94; Tue, 27 May 2008 11:19:05 -0400 (EDT) Message-ID: <483C2666.7010608@FreeBSD.org> Date: Tue, 27 May 2008 16:19:02 +0100 From: "Bruce M. Simpson" User-Agent: Thunderbird 2.0.0.14 (X11/20080514) MIME-Version: 1.0 To: Ed Schouten References: <20080527062736.GF64397@hoeg.nl> <45633.1211870269@critter.freebsd.dk> <20080527064253.GG64397@hoeg.nl> In-Reply-To: <20080527064253.GG64397@hoeg.nl> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: current@FreeBSD.org, arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 15:19:08 -0000 Ed Schouten wrote: >>> With the word `should' I meant that it would still be possible to >>> implement multiple line disciplines with the mpsafetty code. But I >>> really think line disciplines should go. >>> >> No, don't bother. Remove the entire "abstraction" of linedisciplines. >> > > Your wish is my command. > Like Julian and Robert said, please don't break Netgraph. It still needs to hook into tty at a very low level; and the components such as Bluetooth which can use ttys for low level stream processing, are built on Netgraph. Both SLIP and PPP can be built using Netgraph. Other than that, line disciplines can go away. From owner-freebsd-net@FreeBSD.ORG Tue May 27 17:01:50 2008 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 C8B411065671; Tue, 27 May 2008 17:01:50 +0000 (UTC) (envelope-from peterjeremy@optushome.com.au) Received: from fallbackmx08.syd.optusnet.com.au (fallbackmx08.syd.optusnet.com.au [211.29.132.10]) by mx1.freebsd.org (Postfix) with ESMTP id 811628FC15; Tue, 27 May 2008 17:01:48 +0000 (UTC) (envelope-from peterjeremy@optushome.com.au) Received: from mail01.syd.optusnet.com.au (mail01.syd.optusnet.com.au [211.29.132.182]) by fallbackmx08.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id m4R8xHNg021311; Tue, 27 May 2008 18:59:17 +1000 Received: from server.vk2pj.dyndns.org (c122-106-215-175.belrs3.nsw.optusnet.com.au [122.106.215.175]) by mail01.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id m4R8xDdR001141 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 27 May 2008 18:59:15 +1000 Received: from server.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by server.vk2pj.dyndns.org (8.14.2/8.14.2) with ESMTP id m4R8xDaJ084440; Tue, 27 May 2008 18:59:13 +1000 (EST) (envelope-from peter@server.vk2pj.dyndns.org) Received: (from peter@localhost) by server.vk2pj.dyndns.org (8.14.2/8.14.2/Submit) id m4R8xDXR084439; Tue, 27 May 2008 18:59:13 +1000 (EST) (envelope-from peter) Date: Tue, 27 May 2008 18:59:13 +1000 From: Peter Jeremy To: Poul-Henning Kamp Message-ID: <20080527085913.GD1469@server.vk2pj.dyndns.org> References: <20080526161608.GE64397@hoeg.nl> <42521.1211829076@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="rBVNTu5JXDAWzN2S" Content-Disposition: inline In-Reply-To: <42521.1211829076@critter.freebsd.dk> X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.17 (2007-11-01) Cc: arch@freebsd.org, current@freebsd.org, net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 17:01:51 -0000 --rBVNTu5JXDAWzN2S Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2008-May-26 19:11:16 +0000, Poul-Henning Kamp wrote: >We should summarily kill the concept of line disciplines as a >modular component and decide that TTYs can be used with termios(4) >or raw mode and leave it at that. streams anyone? --=20 Peter Jeremy Please excuse any delays as the result of my ISP's inability to implement an MTA that is either RFC2821-compliant or matches their claimed behaviour. --rBVNTu5JXDAWzN2S Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkg7zWEACgkQ/opHv/APuIfwGACdGcAqWOfEiWHZe+SNLO11ALjJ zVAAnj+SjhT8r7PAZY3Cl208w5jfndT+ =Bp2L -----END PGP SIGNATURE----- --rBVNTu5JXDAWzN2S-- From owner-freebsd-net@FreeBSD.ORG Tue May 27 17:02:33 2008 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 AAFE11065671; Tue, 27 May 2008 17:02:33 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpoutm.mac.com (smtpoutm.mac.com [17.148.16.83]) by mx1.freebsd.org (Postfix) with ESMTP id 65A398FC19; Tue, 27 May 2008 17:02:32 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtp012-bge351000 (asmtp012-bge351000 [10.150.69.75]) by smtpoutm.mac.com (Xserve/smtpout020/MantshX 4.0) with ESMTP id m4RGhGNP028737; Tue, 27 May 2008 09:43:16 -0700 (PDT) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Received: from macbook-pro.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp012.mac.com (Sun Java(tm) System Messaging Server 6.3-6.03 (built Mar 14 2008; 32bit)) with ESMTPSA id <0K1J00HWDD42T350@asmtp012.mac.com>; Tue, 27 May 2008 09:43:16 -0700 (PDT) Message-id: <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> From: Marcel Moolenaar To: Julian Elischer In-reply-to: <483BC27C.6010102@elischer.org> Date: Tue, 27 May 2008 09:43:12 -0700 References: <51989.1211875439@critter.freebsd.dk> <483BC27C.6010102@elischer.org> X-Mailer: Apple Mail (2.919.2) Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 17:02:33 -0000 On May 27, 2008, at 1:12 AM, Julian Elischer wrote: > judging by the bug reports when things get broken there are still a > lot of people connected to the internet via dial up lines in places > off the beaten track, and still a lot of people who when travelling > do use dialup still. Some of these also use mpd. I can not say how > many plan to keep using this in the future but it may be that the > simplest answer is a completely separate sio driver that > just has netgraph hooks. I haven't talked with Ed yet but there > may be may ways to solve this problem. Take a look at uart(4). It has been designed to allow different kernel interfaces. It currently supports TTYs and keyboards. It should not be too hard to have it hook into netgraph. FYI, -- Marcel Moolenaar xcllnt@mac.com From owner-freebsd-net@FreeBSD.ORG Tue May 27 17:06:38 2008 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 B908F1065673 for ; Tue, 27 May 2008 17:06:38 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outK.internet-mail-service.net (outk.internet-mail-service.net [216.240.47.234]) by mx1.freebsd.org (Postfix) with ESMTP id A64B88FC0C for ; Tue, 27 May 2008 17:06:38 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 087832485; Tue, 27 May 2008 10:06:49 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 374A72D600D; Tue, 27 May 2008 10:06:38 -0700 (PDT) Message-ID: <483C3FA5.2070905@elischer.org> Date: Tue, 27 May 2008 10:06:45 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Stefan Lambrev References: <483BD151.3070900@moneybookers.com> In-Reply-To: <483BD151.3070900@moneybookers.com> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 17:06:38 -0000 Stefan Lambrev wrote: > Greetings, > > Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? > I want to play only with MSS not with MTU. > So far the only solution that I found is pf+scrub, but I wander if it is > possible to do it without > firewall. > there is tcpmssd in ports but that also requires a firewall (ipfw) and divert. From owner-freebsd-net@FreeBSD.ORG Tue May 27 17:08:20 2008 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 6A354106567C for ; Tue, 27 May 2008 17:08:20 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outP.internet-mail-service.net (outp.internet-mail-service.net [216.240.47.239]) by mx1.freebsd.org (Postfix) with ESMTP id 568588FC0C for ; Tue, 27 May 2008 17:08:20 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id B9C932485; Tue, 27 May 2008 10:08:46 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id B21482D6006; Tue, 27 May 2008 10:08:19 -0700 (PDT) Message-ID: <483C400B.8050804@elischer.org> Date: Tue, 27 May 2008 10:08:27 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Boris Kovalenko References: <483BD151.3070900@moneybookers.com> <483BD3EC.4000909@ntmk.ru> In-Reply-To: <483BD3EC.4000909@ntmk.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, Stefan Lambrev Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 17:08:20 -0000 Boris Kovalenko wrote: > Hello! > > Yes, You can with ng_tcpmss >> Greetings, >> >> Is there a way to adjust MSS just like in cisco's "ip tcp adjust-mss"? >> I want to play only with MSS not with MTU. >> So far the only solution that I found is pf+scrub, but I wander if it >> is possible to do it without >> firewall. >> > Regards, > Boris > > _______________________________________________ > 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" gosh I didn't even know about that.... From owner-freebsd-net@FreeBSD.ORG Tue May 27 17:50:14 2008 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 8A39510656E0 for ; Tue, 27 May 2008 17:50:14 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outC.internet-mail-service.net (outc.internet-mail-service.net [216.240.47.226]) by mx1.freebsd.org (Postfix) with ESMTP id 499558FC23 for ; Tue, 27 May 2008 17:50:14 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 982AC2384; Tue, 27 May 2008 10:50:14 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 1B10B2D6010; Tue, 27 May 2008 10:50:13 -0700 (PDT) Message-ID: <483C49DC.3080108@elischer.org> Date: Tue, 27 May 2008 10:50:20 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Marcel Moolenaar References: <51989.1211875439@critter.freebsd.dk> <483BC27C.6010102@elischer.org> <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> In-Reply-To: <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 17:50:14 -0000 Marcel Moolenaar wrote: > On May 27, 2008, at 1:12 AM, Julian Elischer wrote: > >> judging by the bug reports when things get broken there are still a >> lot of people connected to the internet via dial up lines in places >> off the beaten track, and still a lot of people who when travelling >> do use dialup still. Some of these also use mpd. I can not say how >> many plan to keep using this in the future but it may be that the >> simplest answer is a completely separate sio driver that >> just has netgraph hooks. I haven't talked with Ed yet but there >> may be may ways to solve this problem. > > Take a look at uart(4). It has been designed to allow different > kernel interfaces. It currently supports TTYs and keyboards. It > should not be too hard to have it hook into netgraph. > > FYI, > While this is a good idea on it's own, the difference between what that achieves and what a line discipline achieves is that a line disciplin is hardware independent and can even be used on a virtual device. From owner-freebsd-net@FreeBSD.ORG Tue May 27 17:53:28 2008 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 777611065673; Tue, 27 May 2008 17:53:28 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id 443388FC17; Tue, 27 May 2008 17:53:28 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id 7C509110064; Tue, 27 May 2008 13:53:27 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute2.internal (MEProxy); Tue, 27 May 2008 13:53:27 -0400 X-Sasl-enc: FUdG9lMuSyinLn2Nqn0cQ//xZEpmPsSIQH97MabdU9Io 1211910806 Received: from empiric.lon.incunabulum.net (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id 0131C32E6; Tue, 27 May 2008 13:53:25 -0400 (EDT) Message-ID: <483C4A94.4000107@FreeBSD.org> Date: Tue, 27 May 2008 18:53:24 +0100 From: "Bruce M. Simpson" User-Agent: Thunderbird 2.0.0.14 (X11/20080514) MIME-Version: 1.0 To: Julian Elischer References: <51989.1211875439@critter.freebsd.dk> <483BC27C.6010102@elischer.org> <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> <483C49DC.3080108@elischer.org> In-Reply-To: <483C49DC.3080108@elischer.org> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , current@FreeBSD.org, Marcel Moolenaar , arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 17:53:28 -0000 Julian Elischer wrote: > > While this is a good idea on it's own, the difference between > what that achieves and what a line discipline achieves is that > a line disciplin is hardware independent and can even be used > on a virtual device. I was under the impression that the back-end for UART was light weight enough that it could be used as a virtual device. For example: Many years ago I tried to get the WinModem working in my IBM ThinkPad T23. UART lends itself well to being a wrapper for the DSP microcode without having any of the historical tty baggage. In the case of UART the "translation shim" moves from on top of the device node to underneath, in much the same way as has happened for GEOM. From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:05:00 2008 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 DD978106566B for ; Tue, 27 May 2008 18:05:00 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: from blah.sun-fish.com (blah.sun-fish.com [217.18.249.150]) by mx1.freebsd.org (Postfix) with ESMTP id 947F48FC18 for ; Tue, 27 May 2008 18:05:00 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: by blah.sun-fish.com (Postfix, from userid 1002) id 1F8981B10EE8; Tue, 27 May 2008 20:04:59 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on malcho.cmotd.com X-Spam-Level: X-Spam-Status: No, score=-10.6 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.2.4 Received: from hater.haters.org (hater.cmotd.com [192.168.3.125]) by blah.sun-fish.com (Postfix) with ESMTP id 876101B10EE7 for ; Tue, 27 May 2008 20:04:56 +0200 (CEST) Message-ID: <483C4D48.6020106@moneybookers.com> Date: Tue, 27 May 2008 21:04:56 +0300 From: Stefan Lambrev User-Agent: Thunderbird 2.0.0.14 (X11/20080503) MIME-Version: 1.0 To: freebsd-net@freebsd.org References: <1211891010.00075594.1211880013@10.7.7.3> <1211894613.00075634.1211884201@10.7.7.3> <1211901827.00075710.1211890802@10.7.7.3> <483C4636.7080608@mavhome.dp.ua> In-Reply-To: <483C4636.7080608@mavhome.dp.ua> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on blah.cmotd.com X-Virus-Status: Clean Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 18:05:01 -0000 Greetings, Alexander Motin wrote: > Stefan Lambrev wrote: >>> Yes, You can with ng_tcpmss >> Isn't it doable only with ipfw/divert when using ng_tcpmss? >> I have and some concerns about performance too .. > > There are several ways to inject packet to ng_tcpmss: > - ipfw + divert + ng_ksocket. It should be faster then usual > user-level implementation > - ipfw + netgraph as described in ng_tcpmss(4) > - use ng_tcpmss directly in some complicated netgraph setup. For > example, mpd is able to use it. This is probably the fastest and > easiest way, but only for some setups. > Thanks for all ideas. I think I'll try the route -mtu feature. Looks like easier for implementation and testing. :) Anyway it will be good if we have such feature in the base system. It shouldn't be very difficult? :) -- Best Wishes, Stefan Lambrev ICQ# 24134177 From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:11:41 2008 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 ADB071065689; Tue, 27 May 2008 18:11:41 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpoutm.mac.com (smtpoutm.mac.com [17.148.16.70]) by mx1.freebsd.org (Postfix) with ESMTP id 8ECED8FC14; Tue, 27 May 2008 18:11:41 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpin126.mac.com (smtpin126-bge351000 [10.150.68.126]) by smtpoutm.mac.com (Xserve/smtpout007/MantshX 4.0) with ESMTP id m4RIBftD000655; Tue, 27 May 2008 11:11:41 -0700 (PDT) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Received: from macbook-pro.jnpr.net (natint3.juniper.net [66.129.224.36]) by smtpin126.mac.com (Sun Java(tm) System Messaging Server 6.3-6.03 (built Mar 14 2008; 32bit)) with ESMTPSA id <0K1J00HDYH7GY6A0@smtpin126.mac.com>; Tue, 27 May 2008 11:11:41 -0700 (PDT) Message-id: <260F636A-8F72-411B-AED9-B029E1964003@mac.com> From: Marcel Moolenaar To: Julian Elischer In-reply-to: <483C49DC.3080108@elischer.org> Date: Tue, 27 May 2008 11:11:39 -0700 References: <51989.1211875439@critter.freebsd.dk> <483BC27C.6010102@elischer.org> <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> <483C49DC.3080108@elischer.org> X-Mailer: Apple Mail (2.919.2) Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 18:11:41 -0000 On May 27, 2008, at 10:50 AM, Julian Elischer wrote: > Marcel Moolenaar wrote: >> On May 27, 2008, at 1:12 AM, Julian Elischer wrote: >>> judging by the bug reports when things get broken there are still a >>> lot of people connected to the internet via dial up lines in places >>> off the beaten track, and still a lot of people who when travelling >>> do use dialup still. Some of these also use mpd. I can not say how >>> many plan to keep using this in the future but it may be that the >>> simplest answer is a completely separate sio driver that >>> just has netgraph hooks. I haven't talked with Ed yet but there >>> may be may ways to solve this problem. >> Take a look at uart(4). It has been designed to allow different >> kernel interfaces. It currently supports TTYs and keyboards. It >> should not be too hard to have it hook into netgraph. >> FYI, > > > While this is a good idea on it's own, the difference between > what that achieves and what a line discipline achieves is that > a line disciplin is hardware independent and can even be used > on a virtual device. True, but you said: "... the simplest answer is a completely separate sio driver...". This, besides not being true, is just as hardware dependent as uart(4) is. It seems to me that you've conveniently changed the subject to match your point of view :-) -- Marcel Moolenaar xcllnt@mac.com From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:14:14 2008 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 23C9A106567A for ; Tue, 27 May 2008 18:14:14 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.229]) by mx1.freebsd.org (Postfix) with ESMTP id EA0548FC18 for ; Tue, 27 May 2008 18:14:13 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: by rv-out-0506.google.com with SMTP id b25so3023371rvf.43 for ; Tue, 27 May 2008 11:14:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; 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=ZhguixN9G2Hjy4Dpj1tHMgnSJ0+J5df+5clIh5E6iv4=; b=t2z7+wb8fp+KFWJy/bDAfYfwp8YGx+dcpRHIruuR3t+jPhECKpIciPuZhtE/n+YO0peFZHcMa5YVCjLB+7q6LXTkQHiGd4lRHPOnOVmFzVAcKEg1PDjqUNkZKJxSruWyze1NaBdnHL+PYH3ErVAHtARnUGWsPHYFIYa1UrvGlGQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=uzBfu832OrK6VaM9FdzXhd4RtLWK/twayMFOd8ymp7dUxkz8/joAhnxEGUsl+4UrdXbiEaWa/LrYNj9XTnScXxvxc2qntOrhTEqyAiqfNkBmkOQbT84fwkN7+t0Tkqvq77/TeZjb3oAV0n/EU4E9dmdfCq1v0QTDWvv3WTFD3x0= Received: by 10.141.177.2 with SMTP id e2mr665973rvp.268.1211912053639; Tue, 27 May 2008 11:14:13 -0700 (PDT) Received: by 10.140.135.3 with HTTP; Tue, 27 May 2008 11:14:13 -0700 (PDT) Message-ID: <9a542da30805271114w6ad82569m43d89c4cd03a76fc@mail.gmail.com> Date: Tue, 27 May 2008 20:14:13 +0200 From: "=?ISO-8859-1?Q?Ermal_Lu=E7i?=" To: "Stefan Lambrev" In-Reply-To: <483C4D48.6020106@moneybookers.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <1211891010.00075594.1211880013@10.7.7.3> <1211894613.00075634.1211884201@10.7.7.3> <1211901827.00075710.1211890802@10.7.7.3> <483C4636.7080608@mavhome.dp.ua> <483C4D48.6020106@moneybookers.com> Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 18:14:14 -0000 On Tue, May 27, 2008 at 8:04 PM, Stefan Lambrev wrote: > Greetings, > > Alexander Motin wrote: >> >> Stefan Lambrev wrote: >>>> >>>> Yes, You can with ng_tcpmss >>> >>> Isn't it doable only with ipfw/divert when using ng_tcpmss? >>> I have and some concerns about performance too .. >> >> There are several ways to inject packet to ng_tcpmss: >> - ipfw + divert + ng_ksocket. It should be faster then usual user-level >> implementation >> - ipfw + netgraph as described in ng_tcpmss(4) >> - use ng_tcpmss directly in some complicated netgraph setup. For example, >> mpd is able to use it. This is probably the fastest and easiest way, but >> only for some setups. >> > > Thanks for all ideas. > I think I'll try the route -mtu feature. > Looks like easier for implementation and testing. :) > Anyway it will be good if we have such feature in the base system. > It shouldn't be very difficult? :) > > -- Actually converting ng_tcpmss to pfil(9) should be easy. Ermal From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:23:00 2008 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 DAA2E1065790 for ; Tue, 27 May 2008 18:22:59 +0000 (UTC) (envelope-from martin.fuchs@trendchiller.com) Received: from wp041.webpack.hosteurope.de (wp041.webpack.hosteurope.de [80.237.132.48]) by mx1.freebsd.org (Postfix) with ESMTP id 6D46F8FC12 for ; Tue, 27 May 2008 18:22:58 +0000 (UTC) (envelope-from martin.fuchs@trendchiller.com) Received: from dslb-082-083-100-134.pools.arcor-ip.net ([82.83.100.134] helo=mail.trendchiller.com); authenticated by wp041.webpack.hosteurope.de running ExIM using esmtpsa (TLSv1:RC4-MD5:128) id 1K13p3-00023c-I4; Tue, 27 May 2008 20:22:57 +0200 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Tue, 27 May 2008 20:22:56 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 Thread-Index: Aci+UOkOlmQzJXsOSiyhOJP7fAtVlQ== From: "Fuchs, Martin" To: X-bounce-key: webpack.hosteurope.de; martin.fuchs@trendchiller.com; 1211912579; bb0aa3df; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 27 May 2008 18:23:00 -0000 Hi ! =20 I am in contact with Chris Buechler because of pfSense and we he told me to contact Jack Vogel because of some Intel NIC driver problem. =20 FreeBSD detects them as fxp cards which is correct, but they do not work at all, i tried in ACPI and non-ACPI mode and with enabled ROM and disabled ROM and everything, but I cannot get them working... I always get "fxp0 timeout" or fxpX fort he corresponding card... I read it might have something to do with dynamic powersaving mode or else but have no clue how to deactivate, there's no option in the ROM for this. =20 It's an appliance board (NexCom EBC575) with Intel 845GV / Intel 82801DB (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 x ICH4 integrated LAN Int on board. =20 Is there anything I can tot o make it work for now or is it a known problem or else ? =20 Regards, =20 looking forward to hear from you, =20 Martin From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:34:52 2008 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 715B310656F4 for ; Tue, 27 May 2008 18:34:52 +0000 (UTC) (envelope-from mav@mavhome.dp.ua) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id E31EA8FC1D for ; Tue, 27 May 2008 18:34:51 +0000 (UTC) (envelope-from mav@mavhome.dp.ua) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO [192.168.3.2]) by cmail.optima.ua (CommuniGate Pro SMTP 5.1.14) with ESMTPA id 135716469; Tue, 27 May 2008 20:34:49 +0300 Message-ID: <483C4636.7080608@mavhome.dp.ua> Date: Tue, 27 May 2008 20:34:46 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Stefan Lambrev References: <1211891010.00075594.1211880013@10.7.7.3> <1211894613.00075634.1211884201@10.7.7.3> <1211901827.00075710.1211890802@10.7.7.3> In-Reply-To: <1211901827.00075710.1211890802@10.7.7.3> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 27 May 2008 18:34:52 -0000 Stefan Lambrev wrote: >> Yes, You can with ng_tcpmss > Isn't it doable only with ipfw/divert when using ng_tcpmss? > I have and some concerns about performance too .. There are several ways to inject packet to ng_tcpmss: - ipfw + divert + ng_ksocket. It should be faster then usual user-level implementation - ipfw + netgraph as described in ng_tcpmss(4) - use ng_tcpmss directly in some complicated netgraph setup. For example, mpd is able to use it. This is probably the fastest and easiest way, but only for some setups. -- Alexander Motin From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:40:21 2008 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 ABC07106564A for ; Tue, 27 May 2008 18:40:21 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from s200aog16.obsmtp.com (s200aog16.obsmtp.com [207.126.144.130]) by mx1.freebsd.org (Postfix) with SMTP id DCAB88FC1A for ; Tue, 27 May 2008 18:40:20 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from source ([63.174.175.251]) by eu1sys200aob016.postini.com ([207.126.147.11]) with SMTP; Tue, 27 May 2008 18:40:19 UTC Received: from [172.17.2.235] (unknown [172.17.2.235]) by bbbx3.usdmm.com (Postfix) with ESMTP id 7F552FD019 for ; Tue, 27 May 2008 18:24:48 +0000 (UTC) Message-ID: <483C51EE.7040700@tomjudge.com> Date: Tue, 27 May 2008 13:24:46 -0500 From: Tom Judge User-Agent: Thunderbird 2.0.0.14 (X11/20080505) MIME-Version: 1.0 To: net@FreeBSD.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Subject: ICMP Error transmission/response over IPSec tunnels 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, 27 May 2008 18:40:21 -0000 Hi, Today I looked into why I can not get a traceroute across a IPSec IPIP tunnel an came across an interesting piece of code. Here is a diagram of the setup: [Node A] <-> [Router A] <-{IPSec}-> [Router B] <-> [Node B] If I traceroute from node A to node B I never see the ICMP packet for the TTL exceeded generated by router b. So I did a little digging and found and interesting revision of sys/netinet/ip_icmp.c. In revision 1.93 it seems ume@ added a check for the flag M_DECRYPTED in icmp_error() and if it was set do not generate the icmp error message. So my questions are: 1) Is this check really required? 2) If it is required what makes it required? Is it a problem in the icmp transmit path, or is there some other reason? 3) It seems the check originated from the KAME project, as FreeBSD no longer uses the KAME IPSec implementation is check still required? I found the same check in the netbsd code, but could not find a similar check in openbsd (although the openbsd ipsec implementation is some what different from netbsd and freebsd). Any information about this would be appreciated as I would like to be able to do traceroutes across my wan. Thanks Tom From owner-freebsd-net@FreeBSD.ORG Tue May 27 18:53:27 2008 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 65320106566C for ; Tue, 27 May 2008 18:53:27 +0000 (UTC) (envelope-from Jinmei_Tatuya@isc.org) Received: from mon.jinmei.org (mon.jinmei.org [IPv6:2001:4f8:3:36::162]) by mx1.freebsd.org (Postfix) with ESMTP id 57D108FC16 for ; Tue, 27 May 2008 18:53:27 +0000 (UTC) (envelope-from Jinmei_Tatuya@isc.org) Received: from jmb.jinmei.org (unknown [IPv6:2001:4f8:3:bb:217:f2ff:fee0:a91f]) by mon.jinmei.org (Postfix) with ESMTP id D691233C2E; Tue, 27 May 2008 11:53:26 -0700 (PDT) Date: Tue, 27 May 2008 11:53:26 -0700 Message-ID: From: JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= To: Steve Bertrand In-Reply-To: <483B3E7F.8000907@ibctech.ca> References: <483B3E7F.8000907@ibctech.ca> User-Agent: Wanderlust/2.14.0 (Africa) Emacs/22.1 Mule/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Cc: freebsd-net@freebsd.org Subject: Re: IPv6/IPv4 DNS resolver source 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, 27 May 2008 18:53:27 -0000 At Mon, 26 May 2008 18:49:35 -0400, Steve Bertrand wrote: > Is there anyone here who can advise me where in the source tree I would > find the DNS resolver code that performs AAAA/A record lookups, and more > specifically, the fallback to A lookup if AAAA fails? Assuming you're considering getaddrinfo(), see res_queryN() in lib/libc/net/getaddrinfo.c. BTW: "fallback" does not really accurately describe the behavior. When AF_UNPSEC is specified, both AAAA and A queries are issued, whether or not the AAAA query fails. --- JINMEI, Tatuya Internet Systems Consortium, Inc. From owner-freebsd-net@FreeBSD.ORG Tue May 27 19:21:14 2008 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 897CB1065673 for ; Tue, 27 May 2008 19:21:14 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from el-out-1112.google.com (el-out-1112.google.com [209.85.162.181]) by mx1.freebsd.org (Postfix) with ESMTP id 4589E8FC1A for ; Tue, 27 May 2008 19:21:14 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by el-out-1112.google.com with SMTP id m34so1111165ele.13 for ; Tue, 27 May 2008 12:21:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; 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=xYPo5reQkmu1EeJJ48qG90e7glkpAaSTiUkQLx0UeYE=; b=DDmvBDVOhkpAb1fxbmRGYJPGXqBJJmxMznxNFJpF6o/VC4cA9zQLbnIqTfGlowz6YdDkjXLnG1lpG3gsBFiiYij9l9tejuvejhLD8JDgE1arxrmcy6WSQ6M3DAmI1Hgj61ucka226ncdWBvQ3Fe1ZLjl64VIFQ33bsZspp6W2j8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=NkhqM+na32QLotRsR6bYWNVIop3FV+Br5+btujrwNBKSZTxq+Ix1Bs9jTzsa84UkBrdGK2VW1rOIKwcCTDCyvl147gwC9NRsarKRcNQswPUKaKEFGY5ZJ1Npp6YaGG1hfNoiFZjdSX3DebuttnQ+eXQCnS0KFn6S7+hEBHrlsWs= Received: by 10.115.88.1 with SMTP id q1mr1688757wal.122.1211916069423; Tue, 27 May 2008 12:21:09 -0700 (PDT) Received: by 10.114.174.20 with HTTP; Tue, 27 May 2008 12:21:09 -0700 (PDT) Message-ID: <2a41acea0805271221q5015d362w6e07425ee494121b@mail.gmail.com> Date: Tue, 27 May 2008 12:21:09 -0700 From: "Jack Vogel" To: "Fuchs, Martin" In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: Cc: freebsd-net@freebsd.org Subject: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 27 May 2008 19:21:14 -0000 On Tue, May 27, 2008 at 11:22 AM, Fuchs, Martin wrote: > Hi ! > > > > I am in contact with Chris Buechler because of pfSense and we he told me > to contact Jack Vogel because of some Intel NIC driver problem. The FreeBSD fxp driver was not written by Intel and I have had nothing to do with it in my tenure in this position. The real maintainer of that driver should help you.... :) If no one speaks up then we will see again... Jack > > FreeBSD detects them as fxp cards which is correct, but they do not work > at all, i tried in ACPI and non-ACPI mode and with enabled ROM and > disabled ROM and everything, but I cannot get them working... > > I always get "fxp0 timeout" or fxpX fort he corresponding card... I read > it might have something to do with dynamic powersaving mode or else but > have no clue how to deactivate, there's no option in the ROM for this. > > > > It's an appliance board (NexCom EBC575) with Intel 845GV / Intel 82801DB > (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 x > ICH4 integrated LAN Int on board. > > > > Is there anything I can tot o make it work for now or is it a known > problem or else ? > > > > Regards, > > > > looking forward to hear from you, > > > > Martin > > _______________________________________________ > 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 Tue May 27 19:46:28 2008 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 564811065682 for ; Tue, 27 May 2008 19:46:28 +0000 (UTC) (envelope-from fox@verio.net) Received: from relay1-bcrtfl2.verio.net (relay1-bcrtfl2.verio.net [131.103.218.142]) by mx1.freebsd.org (Postfix) with ESMTP id 32B1A8FC16 for ; Tue, 27 May 2008 19:46:28 +0000 (UTC) (envelope-from fox@verio.net) Received: from limbo.int.dllstx01.us.it.verio.net (nkfw1.it.verio.net [129.250.40.241]) by relay1-bcrtfl2.verio.net (Postfix) with ESMTP id D678BB0388BF for ; Tue, 27 May 2008 15:25:09 -0400 (EDT) Received: by limbo.int.dllstx01.us.it.verio.net (Postfix, from userid 1000) id A8E838E298; Tue, 27 May 2008 14:25:09 -0500 (CDT) Date: Tue, 27 May 2008 14:25:09 -0500 From: David DeSimone To: freebsd-net@freebsd.org Message-ID: <20080527192509.GB8554@verio.net> Mail-Followup-To: freebsd-net@freebsd.org References: <483C169D.7030304@ibctech.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; x-action=pgp-signed Content-Disposition: inline In-Reply-To: <483C169D.7030304@ibctech.ca> Precedence: bulk User-Agent: Mutt/1.5.9i Subject: Re: Dual stack with multiple addresses in rc.conf X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 May 2008 19:46:28 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Steve Bertrand wrote: > > ifconfig_fxp0="inet6 2607:f118::b6 prefixlen 64" > ifconfig_fxp0_alias0="inet6 2607:f118::b7 prefixlen 64" > ifconfig_fxp0="inet 208.70.104.210 255.255.255.248" > ifconfig_fxp0_alias1="inet 208.70.104.211 netmask 255.255.255.255" Your config entry for ifconfig_fxp0 is specified twice, so the latter setting overrides the former. When you have multiple settings to apply, you can put them all in one ifconfig entry, although as Max points out, it is more correct to put IPV6 settings in a separate entry. - -- David DeSimone == Network Admin == fox@verio.net "This email message is intended for the use of the person to whom it has been sent, and may contain information that is confidential or legally protected. If you are not the intended recipient or have received this message in error, you are not authorized to copy, dis- tribute, or otherwise use this message or its attachments. Please notify the sender immediately by return e-mail and permanently delete this message and any attachments. Verio, Inc. makes no warranty that this email is error or virus free. Thank you." --Lawyer Bot 6000 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFIPGAVFSrKRjX5eCoRArqwAJ9G8HZbAgAkElHYDmiSphtDO625VACfSQSs IyyVlcyPju6Xsb+YJEhmpW0= =WMCC -----END PGP SIGNATURE----- From owner-freebsd-net@FreeBSD.ORG Tue May 27 20:24:25 2008 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 117371065670 for ; Tue, 27 May 2008 20:24:25 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id 74C818FC0A for ; Tue, 27 May 2008 20:24:24 +0000 (UTC) (envelope-from andre@freebsd.org) Received: (qmail 11200 invoked from network); 27 May 2008 19:22:26 -0000 Received: from localhost (HELO [127.0.0.1]) ([127.0.0.1]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 27 May 2008 19:22:26 -0000 Message-ID: <483C6DF8.8030606@freebsd.org> Date: Tue, 27 May 2008 22:24:24 +0200 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.14 (Windows/20071210) MIME-Version: 1.0 To: Jack Vogel References: <2a41acea0805271221q5015d362w6e07425ee494121b@mail.gmail.com> In-Reply-To: <2a41acea0805271221q5015d362w6e07425ee494121b@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, "Fuchs, Martin" , yongari@FreeBSD.org Subject: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 27 May 2008 20:24:25 -0000 Jack Vogel wrote: > On Tue, May 27, 2008 at 11:22 AM, Fuchs, Martin > wrote: >> Hi ! >> >> >> >> I am in contact with Chris Buechler because of pfSense and we he told me >> to contact Jack Vogel because of some Intel NIC driver problem. > > The FreeBSD fxp driver was not written by Intel and I have had nothing > to do with it in my tenure in this position. > > The real maintainer of that driver should help you.... :) fxp(4) doesn't have a real maintainer anymore. I've sent a nice collection of fxp cards and revisions thereof to Pyun YongHyeon in hope of tricking him to become the future maintainer. He's pretty busy with more recent gigabit cards though and I'm not sure when/if he can assume that role. -- Andre > If no one speaks up then we will see again... > > Jack > >> FreeBSD detects them as fxp cards which is correct, but they do not work >> at all, i tried in ACPI and non-ACPI mode and with enabled ROM and >> disabled ROM and everything, but I cannot get them working... >> >> I always get "fxp0 timeout" or fxpX fort he corresponding card... I read >> it might have something to do with dynamic powersaving mode or else but >> have no clue how to deactivate, there's no option in the ROM for this. >> >> >> >> It's an appliance board (NexCom EBC575) with Intel 845GV / Intel 82801DB >> (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 x >> ICH4 integrated LAN Int on board. >> >> >> >> Is there anything I can tot o make it work for now or is it a known >> problem or else ? >> >> >> >> Regards, >> >> >> >> looking forward to hear from you, >> >> >> >> Martin >> >> _______________________________________________ >> 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" >> > _______________________________________________ > 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 Tue May 27 20:35:56 2008 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 A6389106566B for ; Tue, 27 May 2008 20:35:56 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from s200aog16.obsmtp.com (s200aog16.obsmtp.com [207.126.144.130]) by mx1.freebsd.org (Postfix) with SMTP id 0F50F8FC20 for ; Tue, 27 May 2008 20:35:54 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from source ([63.174.175.251]) by eu1sys200aob016.postini.com ([207.126.147.11]) with SMTP; Tue, 27 May 2008 20:35:52 UTC Received: from [172.17.2.235] (unknown [172.17.2.235]) by bbbx3.usdmm.com (Postfix) with ESMTP id BA9F8FD019; Tue, 27 May 2008 20:35:52 +0000 (UTC) Message-ID: <483C70A9.2060500@tomjudge.com> Date: Tue, 27 May 2008 15:35:53 -0500 From: Tom Judge User-Agent: Thunderbird 2.0.0.14 (X11/20080505) MIME-Version: 1.0 To: "Bjoern A. Zeeb" References: <483C51EE.7040700@tomjudge.com> <20080527201331.L65662@maildrop.int.zabbadoz.net> In-Reply-To: <20080527201331.L65662@maildrop.int.zabbadoz.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: net@FreeBSD.org Subject: Re: ICMP Error transmission/response over IPSec tunnels 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, 27 May 2008 20:35:56 -0000 Bjoern A. Zeeb wrote: > On Tue, 27 May 2008, Tom Judge wrote: > > Hi, > >> Today I looked into why I can not get a traceroute across a IPSec IPIP >> tunnel > > I guess not an IPIP tunnel but just IPsec tunnel mode? > > ... >> Any information about this would be appreciated as I would like to be >> able to do traceroutes across my wan. > > The problem has been well known and is on my todo list. I haven't > checked the relevant code lately but if I remember the problem is not > to be fixed trivially in first place. > > You should get a reply back from your Node B though, just not from > Router B. > > > /bz > Hi Bjoern, Yes we do indeed see a reply from node b. It is good to here that this is a known issue. The IPSec configuration is a gif ipip tunnel that is then encrypted with IPSec using esp in tunnel mode as per the ipsec vpn section in the handbook. Do you have any more information on the underlying source of the problem? If so it would help me find the problem. I may setup a small test network to find this problem this evening time permitting. Thanks Tom PS. Could you pm me a link to your RELENG_7 multi ip jail patchs? From owner-freebsd-net@FreeBSD.ORG Tue May 27 20:40:06 2008 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 A57F41065670 for ; Tue, 27 May 2008 20:40:06 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [62.111.66.27]) by mx1.freebsd.org (Postfix) with ESMTP id 646C18FC15 for ; Tue, 27 May 2008 20:40:06 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.str.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 2CBB441C757; Tue, 27 May 2008 22:20:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([62.111.66.27]) by localhost (amavis.str.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id SFXHkUBxsuW8; Tue, 27 May 2008 22:20:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id CE96041C736; Tue, 27 May 2008 22:20:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 5042544487F; Tue, 27 May 2008 20:15:45 +0000 (UTC) Date: Tue, 27 May 2008 20:15:45 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Tom Judge In-Reply-To: <483C51EE.7040700@tomjudge.com> Message-ID: <20080527201331.L65662@maildrop.int.zabbadoz.net> References: <483C51EE.7040700@tomjudge.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: net@FreeBSD.org Subject: Re: ICMP Error transmission/response over IPSec tunnels 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, 27 May 2008 20:40:06 -0000 On Tue, 27 May 2008, Tom Judge wrote: Hi, > Today I looked into why I can not get a traceroute across a IPSec IPIP tunnel I guess not an IPIP tunnel but just IPsec tunnel mode? ... > Any information about this would be appreciated as I would like to be able to > do traceroutes across my wan. The problem has been well known and is on my todo list. I haven't checked the relevant code lately but if I remember the problem is not to be fixed trivially in first place. You should get a reply back from your Node B though, just not from Router B. /bz -- Bjoern A. Zeeb Stop bit received. Insert coin for new game. From owner-freebsd-net@FreeBSD.ORG Tue May 27 20:41:34 2008 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 050C41065672 for ; Tue, 27 May 2008 20:41:34 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.179]) by mx1.freebsd.org (Postfix) with ESMTP id B46438FC31 for ; Tue, 27 May 2008 20:41:33 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by py-out-1112.google.com with SMTP id p76so2214979pyb.10 for ; Tue, 27 May 2008 13:41:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; 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=cWqGW4Z8FZ+FWzlmJr434dBMTZcTN9+fhxl8gYLLIZg=; b=NBdxMesbZssR9pkC8zfEoFORQz/eD3aE+376SbUZjovkPg4hSrmRvBqK2MjgRdtygrCNpvPn4rmLFTjVQSa3mt+UwvOZ9ILGANz90yYzF+2YuAe9N2eVttT+VEIM0Bu+JYwqnw+3KI0gW1FDhWTcFran5zivssNsmsRSwJDP9RQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=Z+CtFROeeQhvs6IER1+mGS/DImHf+DeJTjodJWfKcyOXCHFFkuTA6ym0mZDU2Qod5vUoClx19CfMi7deJQSaH/lFkga3c7sq+rnw+RxXh6kArn9LQS13mdmJw5MJ68yGCqaWFB/ydQzToQyQK89wDz/in0qCJT3gOL/USx+c3Vc= Received: by 10.114.150.1 with SMTP id x1mr1746571wad.144.1211920892364; Tue, 27 May 2008 13:41:32 -0700 (PDT) Received: by 10.114.174.20 with HTTP; Tue, 27 May 2008 13:41:32 -0700 (PDT) Message-ID: <2a41acea0805271341w24f42cf4t8c8acdad0c34a20e@mail.gmail.com> Date: Tue, 27 May 2008 13:41:32 -0700 From: "Jack Vogel" To: "Fuchs, Martin" In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: Cc: freebsd-net@freebsd.org Subject: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 27 May 2008 20:41:34 -0000 Martin, Can you give me a pciconf -l listing please. Jack On Tue, May 27, 2008 at 11:22 AM, Fuchs, Martin wrote: > Hi ! > > > > I am in contact with Chris Buechler because of pfSense and we he told me > to contact Jack Vogel because of some Intel NIC driver problem. > > > > FreeBSD detects them as fxp cards which is correct, but they do not work > at all, i tried in ACPI and non-ACPI mode and with enabled ROM and > disabled ROM and everything, but I cannot get them working... > > I always get "fxp0 timeout" or fxpX fort he corresponding card... I read > it might have something to do with dynamic powersaving mode or else but > have no clue how to deactivate, there's no option in the ROM for this. > > > > It's an appliance board (NexCom EBC575) with Intel 845GV / Intel 82801DB > (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 x > ICH4 integrated LAN Int on board. > > > > Is there anything I can tot o make it work for now or is it a known > problem or else ? > > > > Regards, > > > > looking forward to hear from you, > > > > Martin > > _______________________________________________ > 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 Tue May 27 20:45:07 2008 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 5D1DE1065673 for ; Tue, 27 May 2008 20:45:07 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [62.111.66.27]) by mx1.freebsd.org (Postfix) with ESMTP id 1A5038FC1D for ; Tue, 27 May 2008 20:45:07 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.str.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 1D45341C75C; Tue, 27 May 2008 22:45:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([62.111.66.27]) by localhost (amavis.str.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id UPHwruw7DFqG; Tue, 27 May 2008 22:45:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id BE54241C75B; Tue, 27 May 2008 22:45:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id EC6E744487F; Tue, 27 May 2008 20:43:31 +0000 (UTC) Date: Tue, 27 May 2008 20:43:31 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Tom Judge In-Reply-To: <483C70A9.2060500@tomjudge.com> Message-ID: <20080527204111.F65662@maildrop.int.zabbadoz.net> References: <483C51EE.7040700@tomjudge.com> <20080527201331.L65662@maildrop.int.zabbadoz.net> <483C70A9.2060500@tomjudge.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: net@FreeBSD.org Subject: Re: ICMP Error transmission/response over IPSec tunnels 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, 27 May 2008 20:45:07 -0000 On Tue, 27 May 2008, Tom Judge wrote: Hi, > Yes we do indeed see a reply from node b. It is good to here that this is a > known issue. > > The IPSec configuration is a gif ipip tunnel that is then encrypted with > IPSec using esp in tunnel mode as per the ipsec vpn section in the handbook. 1) if you do not need the ipip tunnel because you need an interface and "link state changes" only go with the IPsec tunnel mode. 2) If you need the gi tunnel on top and routing, use IPsec transport mode. (ignore the handbook, try to understand it;) > Do you have any more information on the underlying source of the problem? If > so it would help me find the problem. I may setup a small test network to > find this problem this evening time permitting. a test network is not a problem. time is. > PS. Could you pm me a link to your RELENG_7 multi ip jail patchs? check the latest status report at... for the link: http://www.freebsd.org/news/status/report-2008-01-2008-03.html#Multi-IPv4/v6/no-IP-jails -- Bjoern A. Zeeb Stop bit received. Insert coin for new game. From owner-freebsd-net@FreeBSD.ORG Tue May 27 20:49:14 2008 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 A4B141065672 for ; Tue, 27 May 2008 20:49:14 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outC.internet-mail-service.net (outc.internet-mail-service.net [216.240.47.226]) by mx1.freebsd.org (Postfix) with ESMTP id 8CFA08FC16 for ; Tue, 27 May 2008 20:49:14 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id AFDA62360; Tue, 27 May 2008 13:49:33 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id A19D22D600F; Tue, 27 May 2008 13:49:13 -0700 (PDT) Message-ID: <483C73D0.8060709@elischer.org> Date: Tue, 27 May 2008 13:49:20 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Marcel Moolenaar References: <51989.1211875439@critter.freebsd.dk> <483BC27C.6010102@elischer.org> <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> <483C49DC.3080108@elischer.org> <260F636A-8F72-411B-AED9-B029E1964003@mac.com> In-Reply-To: <260F636A-8F72-411B-AED9-B029E1964003@mac.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 20:49:14 -0000 Marcel Moolenaar wrote: > > On May 27, 2008, at 10:50 AM, Julian Elischer wrote: > >> Marcel Moolenaar wrote: >>> On May 27, 2008, at 1:12 AM, Julian Elischer wrote: >>>> judging by the bug reports when things get broken there are still a >>>> lot of people connected to the internet via dial up lines in places >>>> off the beaten track, and still a lot of people who when travelling >>>> do use dialup still. Some of these also use mpd. I can not say how >>>> many plan to keep using this in the future but it may be that the >>>> simplest answer is a completely separate sio driver that >>>> just has netgraph hooks. I haven't talked with Ed yet but there >>>> may be may ways to solve this problem. >>> Take a look at uart(4). It has been designed to allow different >>> kernel interfaces. It currently supports TTYs and keyboards. It >>> should not be too hard to have it hook into netgraph. >>> FYI, >> >> >> While this is a good idea on it's own, the difference between >> what that achieves and what a line discipline achieves is that >> a line disciplin is hardware independent and can even be used >> on a virtual device. > > True, but you said: > "... the simplest answer is a completely separate sio driver...". > > This, besides not being true, is just as hardware dependent as > uart(4) is. It seems to me that you've conveniently changed the > subject to match your point of view :-) yep :-) we need to decide if the aim is to support just serial ports or any 'tty'. From owner-freebsd-net@FreeBSD.ORG Tue May 27 21:04:28 2008 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 F3412106566B; Tue, 27 May 2008 21:04:27 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpoutm.mac.com (smtpoutm.mac.com [17.148.16.75]) by mx1.freebsd.org (Postfix) with ESMTP id D3F168FC2F; Tue, 27 May 2008 21:04:27 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtp012-bge351000 (asmtp012-bge351000 [10.150.69.75]) by smtpoutm.mac.com (Xserve/smtpout012/MantshX 4.0) with ESMTP id m4RL4Rd4026378; Tue, 27 May 2008 14:04:27 -0700 (PDT) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Received: from macbook-pro.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp012.mac.com (Sun Java(tm) System Messaging Server 6.3-6.03 (built Mar 14 2008; 32bit)) with ESMTPSA id <0K1J00K7WP7EB4B0@asmtp012.mac.com>; Tue, 27 May 2008 14:04:27 -0700 (PDT) Message-id: <32DC950C-7FE6-41D5-8935-60E7A1356EFA@mac.com> From: Marcel Moolenaar To: Julian Elischer In-reply-to: <483C73D0.8060709@elischer.org> Date: Tue, 27 May 2008 14:04:25 -0700 References: <51989.1211875439@critter.freebsd.dk> <483BC27C.6010102@elischer.org> <5229B4D7-40F0-4D45-93F1-244FA05E0304@mac.com> <483C49DC.3080108@elischer.org> <260F636A-8F72-411B-AED9-B029E1964003@mac.com> <483C73D0.8060709@elischer.org> X-Mailer: Apple Mail (2.919.2) Cc: Ed Schouten , current@FreeBSD.org, arch@FreeBSD.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@FreeBSD.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled 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, 27 May 2008 21:04:28 -0000 On May 27, 2008, at 1:49 PM, Julian Elischer wrote: > Marcel Moolenaar wrote: >> On May 27, 2008, at 10:50 AM, Julian Elischer wrote: >>> Marcel Moolenaar wrote: >>>> On May 27, 2008, at 1:12 AM, Julian Elischer wrote: >>>>> judging by the bug reports when things get broken there are >>>>> still a >>>>> lot of people connected to the internet via dial up lines in >>>>> places >>>>> off the beaten track, and still a lot of people who when >>>>> travelling >>>>> do use dialup still. Some of these also use mpd. I can not say >>>>> how many plan to keep using this in the future but it may be >>>>> that the simplest answer is a completely separate sio driver that >>>>> just has netgraph hooks. I haven't talked with Ed yet but there >>>>> may be may ways to solve this problem. >>>> Take a look at uart(4). It has been designed to allow different >>>> kernel interfaces. It currently supports TTYs and keyboards. It >>>> should not be too hard to have it hook into netgraph. >>>> FYI, >>> >>> >>> While this is a good idea on it's own, the difference between >>> what that achieves and what a line discipline achieves is that >>> a line disciplin is hardware independent and can even be used >>> on a virtual device. >> True, but you said: >> "... the simplest answer is a completely separate sio driver...". >> This, besides not being true, is just as hardware dependent as >> uart(4) is. It seems to me that you've conveniently changed the >> subject to match your point of view :-) > > > yep :-) > > we need to decide if the aim is to support just serial > ports or any 'tty'. Agreed. ucom(4) is in scope... -- Marcel Moolenaar xcllnt@mac.com From owner-freebsd-net@FreeBSD.ORG Tue May 27 21:08:43 2008 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 494231065674 for ; Tue, 27 May 2008 21:08:43 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from s200aog17.obsmtp.com (s200aog17.obsmtp.com [207.126.144.131]) by mx1.freebsd.org (Postfix) with SMTP id 45E648FC12 for ; Tue, 27 May 2008 21:08:41 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from source ([63.174.175.251]) by eu1sys200aob017.postini.com ([207.126.147.11]) with SMTP; Tue, 27 May 2008 21:08:40 UTC Received: from [172.17.2.235] (unknown [172.17.2.235]) by bbbx3.usdmm.com (Postfix) with ESMTP id 671E1FD023; Tue, 27 May 2008 21:08:40 +0000 (UTC) Message-ID: <483C7858.5000302@tomjudge.com> Date: Tue, 27 May 2008 16:08:40 -0500 From: Tom Judge User-Agent: Thunderbird 2.0.0.14 (X11/20080505) MIME-Version: 1.0 To: "Bjoern A. Zeeb" References: <483C51EE.7040700@tomjudge.com> <20080527201331.L65662@maildrop.int.zabbadoz.net> <483C70A9.2060500@tomjudge.com> <20080527204111.F65662@maildrop.int.zabbadoz.net> In-Reply-To: <20080527204111.F65662@maildrop.int.zabbadoz.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: net@FreeBSD.org Subject: Re: ICMP Error transmission/response over IPSec tunnels 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, 27 May 2008 21:08:43 -0000 Bjoern A. Zeeb wrote: > On Tue, 27 May 2008, Tom Judge wrote: > > Hi, > >> Yes we do indeed see a reply from node b. It is good to here that >> this is a known issue. >> >> The IPSec configuration is a gif ipip tunnel that is then encrypted >> with IPSec using esp in tunnel mode as per the ipsec vpn section in >> the handbook. > > 1) if you do not need the ipip tunnel because you need an interface > and "link state changes" only go with the IPsec tunnel mode. > > 2) If you need the gi tunnel on top and routing, use IPsec transport > mode. > > (ignore the handbook, try to understand it;) I have 13 nodes in a parital mesh running ospf for routing. It would not be trivial for me to switch from tunnel to transport mode. Also I have not tested quagga in when the ipsec is in transport mode, and I guess I do need interfaces to use with quagga. I may test fixing this additional overhead, but as they say if it's not broken don't fix it. > >> Do you have any more information on the underlying source of the >> problem? If so it would help me find the problem. I may setup a >> small test network to find this problem this evening time permitting. > > a test network is not a problem. time is. > > Please understand that I was not asking for you to fix this problem just for some pointers into where to start looking. The reason I ask is that you seem to know in what region that the error exists and it would be helpful to me if you could tell me so that I could try to find a solution to the problem myself. At a guess the code that I need to look as it in icmp_error() or further down the icmp transmit path (maybe icmp_reflect or further?). Thanks again. Tom From owner-freebsd-net@FreeBSD.ORG Tue May 27 21:20:07 2008 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 306B8106564A for ; Tue, 27 May 2008 21:20:07 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [62.111.66.27]) by mx1.freebsd.org (Postfix) with ESMTP id E1C4B8FC18 for ; Tue, 27 May 2008 21:20:06 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.str.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 6975941C75B; Tue, 27 May 2008 23:20:05 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([62.111.66.27]) by localhost (amavis.str.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id nB5gVEBacdCd; Tue, 27 May 2008 23:20:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id 08D1D41C757; Tue, 27 May 2008 23:20:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 9984F44487F; Tue, 27 May 2008 21:17:53 +0000 (UTC) Date: Tue, 27 May 2008 21:17:53 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Tom Judge In-Reply-To: <483C7858.5000302@tomjudge.com> Message-ID: <20080527211250.M65662@maildrop.int.zabbadoz.net> References: <483C51EE.7040700@tomjudge.com> <20080527201331.L65662@maildrop.int.zabbadoz.net> <483C70A9.2060500@tomjudge.com> <20080527204111.F65662@maildrop.int.zabbadoz.net> <483C7858.5000302@tomjudge.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: net@FreeBSD.org Subject: Re: ICMP Error transmission/response over IPSec tunnels 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, 27 May 2008 21:20:07 -0000 On Tue, 27 May 2008, Tom Judge wrote: > Bjoern A. Zeeb wrote: >> On Tue, 27 May 2008, Tom Judge wrote: >> >> Hi, >> >>> Yes we do indeed see a reply from node b. It is good to here that this is >>> a known issue. >>> >>> The IPSec configuration is a gif ipip tunnel that is then encrypted with >>> IPSec using esp in tunnel mode as per the ipsec vpn section in the >>> handbook. >> >> 1) if you do not need the ipip tunnel because you need an interface >> and "link state changes" only go with the IPsec tunnel mode. >> >> 2) If you need the gi tunnel on top and routing, use IPsec transport >> mode. >> >> (ignore the handbook, try to understand it;) > > I have 13 nodes in a parital mesh running ospf for routing. It would not be > trivial for me to switch from tunnel to transport mode. Also I have not > tested quagga in when the ipsec is in transport mode, and I guess I do need > interfaces to use with quagga. I may test fixing this additional overhead, > but as they say if it's not broken don't fix it. Ok. So basically you have 12 gif tunnels on each node, if it would be a full mesh. So it's less. So a) you have two endpoints for the gif tunnel which are your Router A, Router B endpoint. So the only thing you would need to secure is your IPIP (gif) tunnel between two nodes (Router A, B). This is what transport mode is for. Running a traceroute, the IP stack would need to send the icmp ttl exceeded packet back via the gif tunnel which then would have to be encrypted. To my memory the problem is that this does not work. You could try to find out at which layer by running tcpdump on the (external) interface and the gif interfaces and if you have enc0 to see if/where the icmp possibly shows up. /bz -- Bjoern A. Zeeb Stop bit received. Insert coin for new game. From owner-freebsd-net@FreeBSD.ORG Tue May 27 22:30:29 2008 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 AB0CA1065680 for ; Tue, 27 May 2008 22:30:29 +0000 (UTC) (envelope-from peter@wemm.org) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 382138FC16 for ; Tue, 27 May 2008 22:30:28 +0000 (UTC) (envelope-from peter@wemm.org) Received: by an-out-0708.google.com with SMTP id b33so642375ana.13 for ; Tue, 27 May 2008 15:30:28 -0700 (PDT) Received: by 10.100.166.9 with SMTP id o9mr2199323ane.120.1211927428233; Tue, 27 May 2008 15:30:28 -0700 (PDT) Received: by 10.100.8.6 with HTTP; Tue, 27 May 2008 15:30:28 -0700 (PDT) Message-ID: Date: Tue, 27 May 2008 15:30:28 -0700 From: "Peter Wemm" To: "Bruce M. Simpson" In-Reply-To: <483C2666.7010608@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20080527062736.GF64397@hoeg.nl> <45633.1211870269@critter.freebsd.dk> <20080527064253.GG64397@hoeg.nl> <483C2666.7010608@FreeBSD.org> Cc: Ed Schouten , current@freebsd.org, arch@freebsd.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@freebsd.org Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 27 May 2008 22:30:29 -0000 On Tue, May 27, 2008 at 8:19 AM, Bruce M. Simpson wrote: > Ed Schouten wrote: >>>> >>>> With the word `should' I meant that it would still be possible to >>>> implement multiple line disciplines with the mpsafetty code. But I >>>> really think line disciplines should go. >>>> >>> >>> No, don't bother. Remove the entire "abstraction" of linedisciplines. >>> >> >> Your wish is my command. >> > > Like Julian and Robert said, please don't break Netgraph. > > It still needs to hook into tty at a very low level; and the components such > as Bluetooth which can use ttys for low level stream processing, are built > on Netgraph. > > Both SLIP and PPP can be built using Netgraph. > > Other than that, line disciplines can go away. I think line disciplines should go away as such. It would be nice to have a place to hook into (even linux has this), but the line discipline concept is 30 years stale. IMHO, priority #1 is give ttys the first class treatment they need, then priority #2 is to put in some low level hooks for ng_tty or whatever. It would be hard to come up with a more inconvenient interface than we have now. As an example.. look at the CAN_BYPASS_L_RINT stuff. If we had a way to pass a block of characters upstream instead of a single character at a time, then we could build this magic into the input routines instead of the device drivers. The bypass is still useful because it saves considerable cycles for raw tty modes, eg: userland ppp, zmodem upload/downloads etc etc. But the logic for it shouldn't have to be scattered all over the tree due to poor line discipline APIs. -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 "If Java had true garbage collection, most programs would delete themselves upon execution." -- Robert Sewell From owner-freebsd-net@FreeBSD.ORG Wed May 28 00:11:39 2008 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 E02621065671 for ; Wed, 28 May 2008 00:11:39 +0000 (UTC) (envelope-from mutex@unixtech.info) Received: from unixtech.info (cl-12.chi-02.us.sixxs.net [IPv6:2001:4978:f:b::2]) by mx1.freebsd.org (Postfix) with ESMTP id 977268FC1E for ; Wed, 28 May 2008 00:11:39 +0000 (UTC) (envelope-from mutex@unixtech.info) Received: from localhost (unknown [127.0.0.1]) by unixtech.info (Postfix) with ESMTP id 51D7A1A9832 for ; Tue, 27 May 2008 20:12:15 -0400 (EDT) X-Virus-Scanned: amavisd-new at unixtech.info Received: from unixtech.info ([127.0.0.1]) by localhost (unixtech.info [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OzZ-iDzeKHdY for ; Tue, 27 May 2008 20:11:51 -0400 (EDT) Received: from webmail.unixtech.info (localhost [IPv6:::1]) by unixtech.info (Postfix) with ESMTP id CD88C1A9830 for ; Tue, 27 May 2008 20:11:50 -0400 (EDT) Received: from 216.46.1.82 (SquirrelMail authenticated user mutex) by webmail.unixtech.info with HTTP; Tue, 27 May 2008 20:11:51 -0400 (EDT) Message-ID: <10739.216.46.1.82.1211933511.squirrel@webmail.unixtech.info> In-Reply-To: <48383F25.2020309@freebsd.org> References: <52090.74.56.88.177.1211525413.squirrel@webmail.unixtech.info> <48383F25.2020309@freebsd.org> Date: Tue, 27 May 2008 20:11:51 -0400 (EDT) From: mutex@unixtech.info To: freebsd-net@freebsd.org User-Agent: SquirrelMail/1.4.13 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal Subject: Re: Atheros 5212 network issues. 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, 28 May 2008 00:11:40 -0000 > mutex@unixtech.info wrote: >> Hello! >> I am running FreeBSD 7.0 stable. I am having speed issues that I >> was >> not experiencing before when I was running 6.3 stable. >> >> My wireless connection is now unstable and not as much consistent as it >> was before. The wired connection is as usual ~7000kb/up and 800kb/down. >> >> Each test (~20 per day during 5 days) I did was on a 10 second interval, >> speed is fluctuating from ~80kb to ~4000kb down and ~80kb to ~300kb up >> and >> some tests return both download and upload to be very low. >> >> Also, one test can return 300kb down and 80kb up when next one 10 >> seconds >> later returns 80kb down and 300kb up. >> >> Latency is fluctuating as well. >> >> I tried to use another channel, swap disk and wireless card to another >> machine, cvsup and upgrade again. >> >> I didn't changed network settings, firewall rules, and my hostapd >> config. >> >> Here are some more informations on my hardware: >> >> FreeBSD 7.0-STABLE #0: Mon May 19 23:10:53 EDT 2008 >> mutex@xxxxxxx:/usr/obj/usr/src/sys/MUTEX >> Timecounter "i8254" frequency 1193182 Hz quality 0 >> CPU: Intel(R) Celeron(R) CPU 1.70GHz (1716.91-MHz 686-class CPU) >> Origin = "GenuineIntel" Id = 0xf13 Stepping = 3 >> Features=0x3febfbff >> real memory = 805240832 (767 MB) >> avail memory = 774049792 (738 MB) >> ACPI APIC Table: >> ioapic0 irqs 0-23 on motherboard >> wlan: mac acl policy registered >> kbd1 at kbdmux0 >> ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, >> RF5413) >> acpi0: on motherboard >> acpi0: [ITHREAD] >> acpi0: Power Button (fixed) >> Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 >> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0 >> cpu0: on acpi0 >> p4tcc0: on cpu0 >> acpi_button0: on acpi0 >> acpi_button1: on acpi0 >> pcib0: port 0xcf8-0xcff,0x4000-0x40bf on acpi0 >> pci0: on pcib0 >> agp0: on hostb0 >> pcib1: at device 1.0 on pci0 >> pci1: on pcib1 >> vgapci0: mem >> 0xe0000000-0xe0ffffff,0xd8000000-0xdfffffff irq 16 at device 0.0 on pci1 >> uhci0: port 0xd800-0xd81f >> irq >> 16 at device 29.0 on pci0 >> uhci0: [GIANT-LOCKED] >> uhci0: [ITHREAD] >> usb0: on uhci0 >> usb0: USB revision 1.0 >> uhub0: on usb0 >> uhub0: 2 ports with 2 removable, self powered >> uhci1: port 0xd000-0xd01f >> irq >> 19 at device 29.1 on pci0 >> uhci1: [GIANT-LOCKED] >> uhci1: [ITHREAD] >> usb1: on uhci1 >> usb1: USB revision 1.0 >> uhub1: on usb1 >> uhub1: 2 ports with 2 removable, self powered >> uhci2: port 0xd400-0xd41f >> irq >> 18 at device 29.2 on pci0 >> uhci2: [GIANT-LOCKED] >> uhci2: [ITHREAD] >> usb2: on uhci2 >> usb2: USB revision 1.0 >> uhub2: on usb2 >> uhub2: 2 ports with 2 removable, self powered >> ehci0: mem >> 0xe4000000-0xe40003ff irq 23 at device 29.7 on pci0 >> ehci0: [GIANT-LOCKED] >> ehci0: [ITHREAD] >> usb3: EHCI version 1.0 >> usb3: companion controllers, 2 ports each: usb0 usb1 usb2 >> usb3: on ehci0 >> usb3: USB revision 2.0 >> uhub3: on usb3 >> uhub3: 6 ports with 6 removable, self powered >> pcib2: at device 30.0 on pci0 >> pci2: on pcib2 >> fxp0: port 0xc000-0xc03f mem >> 0xe3050000-0xe3050fff,0xe3020000-0xe303ffff irq 18 at device 0.0 on pci2 >> miibus0: on fxp0 >> inphy0: PHY 1 on miibus0 >> inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto >> fxp0: Ethernet address: 00:02:b3:b6:af:59 >> fxp0: [ITHREAD] >> ath0: mem 0xe3040000-0xe304ffff irq 21 at device 1.0 on >> pci2 >> ath0: [ITHREAD] >> ath0: using obsoleted if_watchdog interface >> ath0: Ethernet address: 00:14:a5:0d:c0:91 >> ath0: mac 10.5 phy 6.1 radio 6.3 >> fxp1: port 0xc400-0xc43f mem >> 0xe3052000-0xe3052fff,0xe3000000-0xe301ffff irq 22 at device 2.0 on pci2 >> miibus1: on fxp1 >> inphy1: PHY 1 on miibus1 >> inphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto >> fxp1: Ethernet address: 00:02:b3:b6:af:09 >> fxp1: [ITHREAD] >> vr0: port 0xc800-0xc8ff mem >> 0xe3051000-0xe30510ff irq 16 at device 3.0 on pci2 >> vr0: Quirks: 0x0 >> vr0: Revision: 0x43 >> miibus2: on vr0 >> ukphy0: PHY 8 on miibus2 >> ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto >> vr0: Ethernet address: 00:50:ba:18:ff:5f >> vr0: [ITHREAD] >> isab0: at device 31.0 on pci0 >> isa0: on isab0 >> atapci0: port >> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf000-0xf00f at device 31.1 on pci0 >> ata0: on atapci0 >> ata0: [ITHREAD] >> ata1: on atapci0 >> ata1: [ITHREAD] >> pci0: at device 31.3 (no driver attached) >> pci0: at device 31.5 (no driver attached) >> fdc0: port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on >> acpi0 >> fdc0: [FILTER] >> sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on >> acpi0 >> sio0: type 16550A >> sio0: [FILTER] >> sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 >> sio1: type 16550A >> sio1: [FILTER] >> atkbdc0: port 0x60,0x64 irq 1 on acpi0 >> atkbd0: irq 1 on atkbdc0 >> kbd0 at atkbd0 >> atkbd0: [GIANT-LOCKED] >> atkbd0: [ITHREAD] >> pmtimer0 on isa0 >> orm0: at iomem 0xc0000-0xcc7ff pnpid ORM0000 on isa0 >> ppc0: at port 0x378-0x37f irq 7 on isa0 >> ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode >> ppbus0: on ppc0 >> ppbus0: [ITHREAD] >> plip0: on ppbus0 >> lpt0: on ppbus0 >> lpt0: Interrupt-driven port >> ppi0: on ppbus0 >> ppc0: [GIANT-LOCKED] >> ppc0: [ITHREAD] >> sc0: at flags 0x100 on isa0 >> sc0: VGA <16 virtual consoles, flags=0x300> >> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on >> isa0 >> Timecounter "TSC" frequency 1716911056 Hz quality 800 >> Timecounters tick every 1.000 msec >> ad1: 19073MB at ata0-slave UDMA100 >> acd0: CDROM at ata1-master PIO4 >> Trying to mount root from ufs:/dev/ad1s1a >> >> pciconf -lv | grep ath >> ath0@pci0:2:1:0: class=0x020000 card=0x000c17f9 chip=0x001b168c >> rev=0x01 hdr=0x00 >> >> athstats >> 36879 data frames received >> 50372 data frames transmit >> 135 tx frames with an alternate rate >> 3508 long on-chip tx retries >> 286 tx failed 'cuz too many retries >> 18M current transmit rate >> 1496 tx management frames >> 949 tx frames discarded prior to association >> 7427 tx frames with no ack marked >> 42411 tx frames with short preamble >> 76570 rx failed 'cuz of bad CRC >> 1980968 rx failed 'cuz of PHY err >> 1762216 OFDM timing >> 3 OFDM restart >> 218713 CCK timing >> 36 CCK restart >> 117021 beacons transmitted >> 420 periodic calibrations >> 55 rssi of last ack >> 29 avg recv rssi >> -96 rx noise floor >> 164 switched default/rx antenna >> Antenna profile: >> [1] tx 25569 rx 36157 >> [2] tx 24598 rx 36925 >> >> ifconfig: >> ath0: flags=8843 metric 0 mtu >> 2290 >> ether 00:14:a5:0d:c0:91 >> inet 10.0.3.1 netmask 0xffffff00 broadcast 10.0.3.255 >> media: IEEE 802.11 Wireless Ethernet autoselect >> (autoselect ) >> status: associated >> ssid mutex channel 1 (2412 Mhz 11g) bssid 00:14:a5:0d:c0:91 >> authmode WPA privacy MIXED deftxkey 2 TKIP 2:128-bit TKIP >> 3:128-bit >> txpower 31.5 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 >> roam:rssi11g 7 roam:rate11g 5 protmode CTS burst dtimperiod 1 >> >> sysctl: >> net.wlan.0.%parent: ath0 >> debug.disablefullpath: 0 >> hw.ath.hal.swba_backoff: 0 >> hw.ath.hal.sw_brt: 10 >> hw.ath.hal.dma_brt: 2 >> hw.ath.hal.version: 0.9.20.3 >> hw.ath.txbuf: 200 >> hw.ath.rxbuf: 40 >> hw.ath.regdomain: 0 >> hw.ath.countrycode: 0 >> hw.ath.xchanmode: 1 >> hw.ath.outdoor: 1 >> hw.ath.calibrate: 30 >> user.cs_path: /usr/bin:/bin:/usr/sbin:/sbin: >> dev.npx.0.%desc: math processor >> dev.ath.0.%desc: Atheros 5212 >> dev.ath.0.%driver: ath >> dev.ath.0.%location: slot=1 function=0 >> dev.ath.0.%pnpinfo: vendor=0x168c device=0x001b subvendor=0x17f9 >> subdevice=0x000c cl >> ass=0x020000 >> dev.ath.0.%parent: pci2 >> dev.ath.0.smoothing_rate: 95 >> dev.ath.0.sample_rate: 10 >> dev.ath.0.countrycode: 0 >> dev.ath.0.regdomain: 16 >> dev.ath.0.slottime: 9 >> dev.ath.0.acktimeout: 48 >> dev.ath.0.ctstimeout: 48 >> dev.ath.0.softled: 0 >> dev.ath.0.ledpin: 0 >> dev.ath.0.ledon: 0 >> dev.ath.0.ledidle: 2700 >> dev.ath.0.txantenna: 0 >> dev.ath.0.rxantenna: 2 >> dev.ath.0.diversity: 0 >> dev.ath.0.txintrperiod: 5 >> dev.ath.0.diag: 0 >> dev.ath.0.tpscale: 0 >> dev.ath.0.tpc: 0 >> dev.ath.0.tpack: 63 >> dev.ath.0.tpcts: 63 >> dev.ath.0.fftxqmin: 2 >> dev.ath.0.fftxqmax: 50 >> dev.ath.0.monpass: 24 >> >> /etc/sysctl.conf *I didn't changed any other sysctl option* >> net.inet.ip.forwarding=1 >> >> Lines added to Generic kernel: >> >> # PF >> device pf >> device pflog >> device pfsync >> >> # ALTQ >> options ALTQ >> options ALTQ_CBQ # Class Bases Queuing (CBQ) >> options ALTQ_RED # Random Early Detection (RED) >> options ALTQ_RIO # RED In/Out >> options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) >> options ALTQ_PRIQ # Priority Queuing (PRIQ) >> options ALTQ_NOPCC # Required for SMP build >> >> >> Please help me troubleshoot and resolve this issue. >> >> > Simplify your configuration. First remove ALTQ and any packet > processing in the tx/rx paths (e.g. pf). If that doesn't resolve the > issues you are seeing try to isolate the problem to rx or tx by running > unidirectional tests. Finally, if this is related to tx rate control > then fix the tx rate to eliminate that variable. > > If you cannot resolve the issue please file a PR. Be sure to provide > sufficient information for someone to exactly duplicate your setup. > > Sam > Hi again, I just would like to say that I forgot to mention that removing altq rules in pf.conf was my very first test I did as well as allowing all wireless traffic on each side. I did some unidirectional tests and it looks like my issue is to upload rather than download. I will continue on my own and file a PR as well if I don't find a solution to it. Thanks, Mutex pub 4096R/C4CE4832 2007-02-01 Key fingerprint = 8DAE C29D 44B7 CA85 28A3 AF0A BE37 B1E2 C4CE 4832 From owner-freebsd-net@FreeBSD.ORG Wed May 28 00:21:43 2008 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 09FFA1065707 for ; Wed, 28 May 2008 00:21:43 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outY.internet-mail-service.net (outy.internet-mail-service.net [216.240.47.248]) by mx1.freebsd.org (Postfix) with ESMTP id 4FB858FC29 for ; Wed, 28 May 2008 00:21:42 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 1A26723F2; Tue, 27 May 2008 17:21:42 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 78E7F2D6016; Tue, 27 May 2008 17:21:41 -0700 (PDT) Message-ID: <483CA59C.9020608@elischer.org> Date: Tue, 27 May 2008 17:21:48 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: "Bjoern A. Zeeb" References: <483C51EE.7040700@tomjudge.com> <20080527201331.L65662@maildrop.int.zabbadoz.net> <483C70A9.2060500@tomjudge.com> <20080527204111.F65662@maildrop.int.zabbadoz.net> <483C7858.5000302@tomjudge.com> <20080527211250.M65662@maildrop.int.zabbadoz.net> In-Reply-To: <20080527211250.M65662@maildrop.int.zabbadoz.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Tom Judge , net@FreeBSD.org Subject: Re: ICMP Error transmission/response over IPSec tunnels 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, 28 May 2008 00:21:43 -0000 Bjoern A. Zeeb wrote: > On Tue, 27 May 2008, Tom Judge wrote: > >> Bjoern A. Zeeb wrote: >>> On Tue, 27 May 2008, Tom Judge wrote: >>> >>> Hi, >>> >>>> Yes we do indeed see a reply from node b. It is good to here that >>>> this is a known issue. >>>> >>>> The IPSec configuration is a gif ipip tunnel that is then encrypted >>>> with IPSec using esp in tunnel mode as per the ipsec vpn section in >>>> the handbook. >>> >>> 1) if you do not need the ipip tunnel because you need an interface >>> and "link state changes" only go with the IPsec tunnel mode. >>> >>> 2) If you need the gi tunnel on top and routing, use IPsec transport >>> mode. >>> >>> (ignore the handbook, try to understand it;) >> >> I have 13 nodes in a parital mesh running ospf for routing. It would >> not be trivial for me to switch from tunnel to transport mode. Also I >> have not tested quagga in when the ipsec is in transport mode, and I >> guess I do need interfaces to use with quagga. I may test fixing this >> additional overhead, but as they say if it's not broken don't fix it. > > Ok. So basically you have 12 gif tunnels on each node, if it would be > a full mesh. So it's less. > > So a) you have two endpoints for the gif tunnel which are your Router > A, Router B endpoint. So the only thing you would need to secure is > your IPIP (gif) tunnel between two nodes (Router A, B). This is what > transport mode is for. > > Running a traceroute, the IP stack would need to send the icmp ttl > exceeded packet back via the gif tunnel which then would have to be > encrypted. > > To my memory the problem is that this does not work. > > You could try to find out at which layer by running tcpdump on the > (external) interface and the gif interfaces and if you have enc0 to > see if/where the icmp possibly shows up. I did this by running ng_iface into ng_ksocket(UDP) and using transport mode for all the UDP packets I had scripts to do it all, but unfortunately it was at a previous company. I allocated a number to each site from 1 to 8 and the endpoints inside the tunnels were 10.42.ME.YOU 10.42.YOU.ME. The scripts were identical on each machine, and to add a new machine I just added it to the list in the script, distributed the new script, and ran it again on each machine.. > > /bz > From owner-freebsd-net@FreeBSD.ORG Wed May 28 00:35:35 2008 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 1E989106564A for ; Wed, 28 May 2008 00:35:35 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.224]) by mx1.freebsd.org (Postfix) with ESMTP id E1A058FC13 for ; Wed, 28 May 2008 00:35:34 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: by rv-out-0506.google.com with SMTP id b25so3202427rvf.43 for ; Tue, 27 May 2008 17:35:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; 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=naBtc4gPyrMepT7g9qEn9v8CD2NuLksEwiLTXUa2D9s=; b=igTfzV8DfBx/5ZHYcOrPqgXf1YQNW0KhhfhjUX1jxOUlvg5eWpzBlzcjzoXy3ZJ4w8KMs9bhqouEmYBuPAXsixX0L4S0UzFqWpTeSgS5h6O/yk6NKzBC1Rk0O1EruGRNHdX30p7TcHcoBteBZe3C8WeRhPkN1Tea0BydD39eeJQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:reply-to:references:mime-version:content-type:content-disposition:in-reply-to:user-agent; b=ao6lxWbCZvbwcdnP6tvwVYEWTXLGW+ZEzD82H0tjiEcFBt9cJ/NwQI7e1/YuPIiOYAUTvk3K6VYOy5BWNTU/2vuXlP78R6kFTNn6uHWxJpsiQCHfSEWbD2UtT5aYSrt11Obd0OH1nSY8GfodlvOdfLYjtHjz8rTP1wDgdcsrP04= Received: by 10.141.13.16 with SMTP id q16mr838061rvi.99.1211934934646; Tue, 27 May 2008 17:35:34 -0700 (PDT) Received: from michelle.cdnetworks.co.kr ( [211.53.35.84]) by mx.google.com with ESMTPS id f21sm13191066rvb.0.2008.05.27.17.35.31 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 27 May 2008 17:35:33 -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 m4S0ZSWQ063903 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 28 May 2008 09:35:28 +0900 (KST) (envelope-from pyunyh@gmail.com) Received: (from yongari@localhost) by michelle.cdnetworks.co.kr (8.13.5/8.13.5/Submit) id m4S0ZQOg063902; Wed, 28 May 2008 09:35:26 +0900 (KST) (envelope-from pyunyh@gmail.com) Date: Wed, 28 May 2008 09:35:26 +0900 From: Pyun YongHyeon To: "Fuchs, Martin" Message-ID: <20080528003526.GB63696@cdnetworks.co.kr> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i Cc: freebsd-net@freebsd.org Subject: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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: Wed, 28 May 2008 00:35:35 -0000 On Tue, May 27, 2008 at 08:22:56PM +0200, Fuchs, Martin wrote: > Hi ! > > > > I am in contact with Chris Buechler because of pfSense and we he told me > to contact Jack Vogel because of some Intel NIC driver problem. > > > > FreeBSD detects them as fxp cards which is correct, but they do not work > at all, i tried in ACPI and non-ACPI mode and with enabled ROM and > disabled ROM and everything, but I cannot get them working... > > I always get "fxp0 timeout" or fxpX fort he corresponding card... I read > it might have something to do with dynamic powersaving mode or else but > have no clue how to deactivate, there's no option in the ROM for this. > > > > It's an appliance board (NexCom EBC575) with Intel 845GV / Intel 82801DB > (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 x > ICH4 integrated LAN Int on board. > > > > Is there anything I can tot o make it work for now or is it a known > problem or else ? > Since there are too many variants of fxp hardwares it would be even better to post the output of the following. o pciconf -lcv o dmesg output related with fxp(4) o devinfo -rv | grep oui o vmstat -i > > > Regards, > > > > looking forward to hear from you, > > > > Martin -- Regards, Pyun YongHyeon From owner-freebsd-net@FreeBSD.ORG Wed May 28 03:50:27 2008 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 DBDF31065673; Wed, 28 May 2008 03:50:27 +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 AFE2B8FC16; Wed, 28 May 2008 03:50:27 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4S3oRbY091420; Wed, 28 May 2008 03:50:27 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4S3oRPD091416; Wed, 28 May 2008 03:50:27 GMT (envelope-from linimon) Date: Wed, 28 May 2008 03:50:27 GMT Message-Id: <200805280350.m4S3oRPD091416@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-net@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: kern/124021: [ip6] [panic] page fault in nd6_output() 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, 28 May 2008 03:50:28 -0000 Old Synopsis: page fault in nd6_output() New Synopsis: [ip6] [panic] page fault in nd6_output() Responsible-Changed-From-To: freebsd-bugs->freebsd-net Responsible-Changed-By: linimon Responsible-Changed-When: Wed May 28 03:49:54 UTC 2008 Responsible-Changed-Why: Over to maintainer(s). http://www.freebsd.org/cgi/query-pr.cgi?pr=124021 From owner-freebsd-net@FreeBSD.ORG Wed May 28 06:27:12 2008 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 EACB5106566C; Wed, 28 May 2008 06:27:12 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:610:652::211]) by mx1.freebsd.org (Postfix) with ESMTP id 9D6868FC27; Wed, 28 May 2008 06:27:12 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 984F61CC1A; Wed, 28 May 2008 08:25:42 +0200 (CEST) Date: Wed, 28 May 2008 08:25:42 +0200 From: Ed Schouten To: Peter Wemm Message-ID: <20080528062542.GR64397@hoeg.nl> References: <20080527062736.GF64397@hoeg.nl> <45633.1211870269@critter.freebsd.dk> <20080527064253.GG64397@hoeg.nl> <483C2666.7010608@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="QRtLtq+kfJNLc57H" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Cc: current@freebsd.org, arch@freebsd.org, Poul-Henning Kamp , Robert Watson , Ade Lovett , net@freebsd.org, "Bruce M. Simpson" Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) 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, 28 May 2008 06:27:13 -0000 --QRtLtq+kfJNLc57H Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello Peter, * Peter Wemm wrote: > As an example.. look at the CAN_BYPASS_L_RINT stuff. If we had a way > to pass a block of characters upstream instead of a single character > at a time, then we could build this magic into the input routines > instead of the device drivers. I still haven't had time to add the CAN_BYPASS_L_RINT functionality back. I was thinking about adding the actual copying to the buffers inside the TTY layer, which means we can finally remove all that redundant code from the drivers. But this is still on my TODO list. ;-) --=20 Ed Schouten WWW: http://80386.nl/ --QRtLtq+kfJNLc57H Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkg8+uYACgkQ52SDGA2eCwUjSQCeP5+BHA+T4Dd1QJ9NorZIMXVE JdwAn2b+C+QOxVlYL+pSJQiINOxGl0KM =u5BL -----END PGP SIGNATURE----- --QRtLtq+kfJNLc57H-- From owner-freebsd-net@FreeBSD.ORG Wed May 28 10:19:12 2008 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 BCFF61065680 for ; Wed, 28 May 2008 10:19:12 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: from blah.sun-fish.com (blah.sun-fish.com [217.18.249.150]) by mx1.freebsd.org (Postfix) with ESMTP id 5F5928FC13 for ; Wed, 28 May 2008 10:19:11 +0000 (UTC) (envelope-from stefan.lambrev@moneybookers.com) Received: by blah.sun-fish.com (Postfix, from userid 1002) id A8DF11B10EF9; Wed, 28 May 2008 12:19:10 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on malcho.cmotd.com X-Spam-Level: X-Spam-Status: No, score=-10.3 required=5.0 tests=ALL_TRUSTED,BAYES_00, MIME_8BIT_HEADER autolearn=no version=3.2.4 Received: from hater.haters.org (hater.cmotd.com [192.168.3.125]) by blah.sun-fish.com (Postfix) with ESMTP id 628DC1B10CB6; Wed, 28 May 2008 12:19:08 +0200 (CEST) Message-ID: <483D319B.7030303@moneybookers.com> Date: Wed, 28 May 2008 13:19:07 +0300 From: Stefan Lambrev User-Agent: Thunderbird 2.0.0.14 (X11/20080503) MIME-Version: 1.0 To: =?UTF-8?B?RXJtYWwgTHXDp2k=?= References: <1211891010.00075594.1211880013@10.7.7.3> <1211894613.00075634.1211884201@10.7.7.3> <1211901827.00075710.1211890802@10.7.7.3> <483C4636.7080608@mavhome.dp.ua> <483C4D48.6020106@moneybookers.com> <9a542da30805271114w6ad82569m43d89c4cd03a76fc@mail.gmail.com> In-Reply-To: <9a542da30805271114w6ad82569m43d89c4cd03a76fc@mail.gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on blah.cmotd.com X-Virus-Status: Clean Cc: freebsd-net@freebsd.org Subject: Re: Adjust Maximum Segment Size? 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, 28 May 2008 10:19:12 -0000 Ermal Lu=C3=A7i wrote: > On Tue, May 27, 2008 at 8:04 PM, Stefan Lambrev > wrote: > =20 >> Greetings, >> >> Alexander Motin wrote: >> =20 >>> Stefan Lambrev wrote: >>> =20 >>>>> Yes, You can with ng_tcpmss >>>>> =20 >>>> Isn't it doable only with ipfw/divert when using ng_tcpmss? >>>> I have and some concerns about performance too .. >>>> =20 >>> There are several ways to inject packet to ng_tcpmss: >>> - ipfw + divert + ng_ksocket. It should be faster then usual user-le= vel >>> implementation >>> - ipfw + netgraph as described in ng_tcpmss(4) >>> - use ng_tcpmss directly in some complicated netgraph setup. For exa= mple, >>> mpd is able to use it. This is probably the fastest and easiest way, = but >>> only for some setups. >>> =20 >> Thanks for all ideas. >> I think I'll try the route -mtu feature. >> Looks like easier for implementation and testing. :) >> Anyway it will be good if we have such feature in the base system. >> It shouldn't be very difficult? :) >> >> -- >> =20 > > Actually converting ng_tcpmss to pfil(9) should be easy. > =20 I'm thinking about adding additional checks in tcp_mss() and=20 tcp_mssopt() - both in sys/netinet/tcp_input.c plus two sysctl entries for max mss and max mss IPv6. Does it sound like a reasonable solution or I'm missing something? P.S. One of the things that bothers me is that pf uses it's own=20 pf_get_mss() and pf_calc_mss() and they should be fixed accordingly? --=20 Best Wishes, Stefan Lambrev ICQ# 24134177 From owner-freebsd-net@FreeBSD.ORG Wed May 28 11:10:05 2008 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 F19A31065671 for ; Wed, 28 May 2008 11:10:05 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id 4D3B48FC0C for ; Wed, 28 May 2008 11:10:05 +0000 (UTC) (envelope-from andre@freebsd.org) Received: (qmail 21494 invoked from network); 28 May 2008 10:08:01 -0000 Received: from localhost (HELO [127.0.0.1]) ([127.0.0.1]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 28 May 2008 10:08:01 -0000 Message-ID: <483D3D8D.2030907@freebsd.org> Date: Wed, 28 May 2008 13:10:05 +0200 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.14 (Windows/20071210) MIME-Version: 1.0 To: Stefan Lambrev References: <1211891010.00075594.1211880013@10.7.7.3> <1211894613.00075634.1211884201@10.7.7.3> <1211901827.00075710.1211890802@10.7.7.3> <483C4636.7080608@mavhome.dp.ua> <483C4D48.6020106@moneybookers.com> <9a542da30805271114w6ad82569m43d89c4cd03a76fc@mail.gmail.com> <483D319B.7030303@moneybookers.com> In-Reply-To: <483D319B.7030303@moneybookers.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: freebsd-net@freebsd.org, =?UTF-8?B?RXJtYWwgTHXDp2k=?= Subject: Re: Adjust Maximum Segment Size? 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, 28 May 2008 11:10:06 -0000 Stefan Lambrev wrote: > Ermal Luçi wrote: >> On Tue, May 27, 2008 at 8:04 PM, Stefan Lambrev >> wrote: >> >>> Greetings, >>> >>> Alexander Motin wrote: >>> >>>> Stefan Lambrev wrote: >>>> >>>>>> Yes, You can with ng_tcpmss >>>>>> >>>>> Isn't it doable only with ipfw/divert when using ng_tcpmss? >>>>> I have and some concerns about performance too .. >>>>> >>>> There are several ways to inject packet to ng_tcpmss: >>>> - ipfw + divert + ng_ksocket. It should be faster then usual >>>> user-level >>>> implementation >>>> - ipfw + netgraph as described in ng_tcpmss(4) >>>> - use ng_tcpmss directly in some complicated netgraph setup. For >>>> example, >>>> mpd is able to use it. This is probably the fastest and easiest way, >>>> but >>>> only for some setups. >>>> >>> Thanks for all ideas. >>> I think I'll try the route -mtu feature. >>> Looks like easier for implementation and testing. :) >>> Anyway it will be good if we have such feature in the base system. >>> It shouldn't be very difficult? :) >>> >>> -- >>> >> >> Actually converting ng_tcpmss to pfil(9) should be easy. >> > I'm thinking about adding additional checks in tcp_mss() and > tcp_mssopt() - both in sys/netinet/tcp_input.c > plus two sysctl entries for max mss and max mss IPv6. > Does it sound like a reasonable solution or I'm missing something? Doesn't make sense. You have to differentiate between selecting the MSS for a connection the terminates/originates locally vs. one that just passed through the machine. Local connections observe the MTU setting on the interface and the routing table entries (tcp_maxmtu()). So you can either reduce the interface MTU or adjust the MTU on your default route and everything will work as expected. There is no need for yet another sysctl or other extensions to tcp_mssopt(). For connections passing through the machine we don't have a direct equivalent to Cisco IOS ip tcp mss-fixup. Only work-arounds via some other methods, daemon or kernel module exist. It would make sense to implement that as a option into ipfw (and pf via OpenBSD). > P.S. One of the things that bothers me is that pf uses it's own > pf_get_mss() and pf_calc_mss() > and they should be fixed accordingly? -- Andre From owner-freebsd-net@FreeBSD.ORG Wed May 28 12:34:16 2008 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 EC77F106566B for ; Wed, 28 May 2008 12:34:16 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: from ibctech.ca (unknown [IPv6:2607:f118::b6]) by mx1.freebsd.org (Postfix) with SMTP id 7250A8FC18 for ; Wed, 28 May 2008 12:34:16 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: (qmail 76030 invoked by uid 89); 28 May 2008 08:34:28 -0000 Received: from unknown (HELO ?IPv6:2607:f118::5?) (steve@ibctech.ca@2607:f118::5) by v6.ibctech.ca with ESMTPA; 28 May 2008 08:34:28 -0000 Message-ID: <483D50D1.8000707@ibctech.ca> Date: Wed, 28 May 2008 08:32:17 -0400 From: Steve Bertrand User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: freebsd-net@freebsd.org References: <483B3E7F.8000907@ibctech.ca> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: IPv6/IPv4 DNS resolver source 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, 28 May 2008 12:34:17 -0000 >> Is there anyone here who can advise me where in the source tree I would >> find the DNS resolver code that performs AAAA/A record lookups, and more >> specifically, the fallback to A lookup if AAAA fails? > > Assuming you're considering getaddrinfo(), see res_queryN() in > lib/libc/net/getaddrinfo.c. > > BTW: "fallback" does not really accurately describe the behavior. > When AF_UNPSEC is specified, both AAAA and A queries are issued, > whether or not the AAAA query fails. Thank you for the info. I did not know that little tidbit. I've got my first IPv6 DNS, mail, web etc server up and running now, and before I think about migrating the actual production network, I want to perform some extensive testing, all the while being familiar with the framework of the resolver itself, and how to overcome particular DNS/connectivity issues (if possible). ie: I want to learn more about how DNS and IP react in the event I lose my IPv6 BGP peers (or IPv4 peers), and also write in some debug log writing into the resolver if certain events trigger. Steve From owner-freebsd-net@FreeBSD.ORG Wed May 28 12:39:46 2008 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 4B6D6106566B for ; Wed, 28 May 2008 12:39:46 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: from ibctech.ca (unknown [IPv6:2607:f118::b6]) by mx1.freebsd.org (Postfix) with SMTP id C0DEE8FC23 for ; Wed, 28 May 2008 12:39:45 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: (qmail 76271 invoked by uid 89); 28 May 2008 08:39:58 -0000 Received: from unknown (HELO ?IPv6:2607:f118::5?) (steve@ibctech.ca@2607:f118::5) by v6.ibctech.ca with ESMTPA; 28 May 2008 08:39:58 -0000 Message-ID: <483D5219.1020802@ibctech.ca> Date: Wed, 28 May 2008 08:37:45 -0400 From: Steve Bertrand User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: David DeSimone References: <483C169D.7030304@ibctech.ca> <20080527192509.GB8554@verio.net> In-Reply-To: <20080527192509.GB8554@verio.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: Dual stack with multiple addresses in rc.conf 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, 28 May 2008 12:39:46 -0000 David DeSimone wrote: > Steve Bertrand wrote: >> ifconfig_fxp0="inet6 2607:f118::b6 prefixlen 64" >> ifconfig_fxp0_alias0="inet6 2607:f118::b7 prefixlen 64" >> ifconfig_fxp0="inet 208.70.104.210 255.255.255.248" >> ifconfig_fxp0_alias1="inet 208.70.104.211 netmask 255.255.255.255" > > Your config entry for ifconfig_fxp0 is specified twice, so the latter > setting overrides the former. When you have multiple settings to apply, > you can put them all in one ifconfig entry, although as Max points out, > it is more correct to put IPV6 settings in a separate entry. The example above was just that...I had tried numerous possibilities, however what I neglected to do was RTFM, which is unlike myself. Anyway, thanks for the responses. I haven't put the config into place yet, but will today. Regards, Steve From owner-freebsd-net@FreeBSD.ORG Wed May 28 15:28:46 2008 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 B0A3E106564A for ; Wed, 28 May 2008 15:28:46 +0000 (UTC) (envelope-from ml@netfence.it) Received: from parrot.aev.net (parrot.aev.net [212.31.247.179]) by mx1.freebsd.org (Postfix) with ESMTP id 392398FC0C for ; Wed, 28 May 2008 15:28:45 +0000 (UTC) (envelope-from ml@netfence.it) Received: from soth.ventu ([151.77.248.111]) (authenticated bits=128) by parrot.aev.net (8.14.2/8.13.8) with ESMTP id m4SFUCa1005698 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 28 May 2008 17:30:18 +0200 (CEST) (envelope-from ml@netfence.it) Received: from alamar.ventu (alamar.ventu [10.1.2.18]) by soth.ventu (8.14.2/8.14.2) with ESMTP id m4SFTref023489 for ; Wed, 28 May 2008 17:29:53 +0200 (CEST) (envelope-from ml@netfence.it) Message-ID: <483D7A22.9000206@netfence.it> Date: Wed, 28 May 2008 17:28:34 +0200 From: Andrea Venturoli User-Agent: Thunderbird 2.0.0.14 (X11/20080504) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.64 on 212.31.247.179 Subject: Testing lagg 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, 28 May 2008 15:28:46 -0000 Hello. I've got a new box which features two gigabit ports and I though I'd try lagg with LACP. On the box I put the following in /etc/rc.conf: ifconfig_em0="up" ifconfig_em1="up" ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 192.168.100.101 netmask 255.255.255.0" Then I aggregated the ports on the switch (3com). This seems to work fine, although I see a 30 seconds delay from the moment a network cable is unplugged and the moment the network works again. Is this normal? Can this time be reduced? Any other hint or gotcha? bye & Thanks av. From owner-freebsd-net@FreeBSD.ORG Wed May 28 15:48:01 2008 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 EAA21106564A for ; Wed, 28 May 2008 15:48:01 +0000 (UTC) (envelope-from gpalmer@freebsd.org) Received: from noop.in-addr.com (in-addr.broker.freenet6.net [IPv6:2001:5c0:8fff:fffe::214d]) by mx1.freebsd.org (Postfix) with ESMTP id C3A0E8FC0A for ; Wed, 28 May 2008 15:48:01 +0000 (UTC) (envelope-from gpalmer@freebsd.org) Received: from gjp by noop.in-addr.com with local (Exim 4.54 (FreeBSD)) id 1K1Nse-0001wJ-Ku; Wed, 28 May 2008 11:48:00 -0400 Date: Wed, 28 May 2008 11:48:00 -0400 From: Gary Palmer To: Andrea Venturoli Message-ID: <20080528154800.GF1142@in-addr.com> References: <483D7A22.9000206@netfence.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <483D7A22.9000206@netfence.it> Cc: freebsd-net@freebsd.org Subject: Re: Testing lagg 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, 28 May 2008 15:48:02 -0000 On Wed, May 28, 2008 at 05:28:34PM +0200, Andrea Venturoli wrote: > Hello. > > I've got a new box which features two gigabit ports and I though I'd try > lagg with LACP. > > On the box I put the following in /etc/rc.conf: > > ifconfig_em0="up" > ifconfig_em1="up" > ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 192.168.100.101 > netmask 255.255.255.0" > > > Then I aggregated the ports on the switch (3com). > > > This seems to work fine, although I see a 30 seconds delay from the > moment a network cable is unplugged and the moment the network works again. > Is this normal? Can this time be reduced? > Any other hint or gotcha? Does the switch have spanning tree enabled? Regards, Gary From owner-freebsd-net@FreeBSD.ORG Wed May 28 17:48:45 2008 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 0227D106566B for ; Wed, 28 May 2008 17:48:45 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx24.fluidhosting.com [204.14.89.7]) by mx1.freebsd.org (Postfix) with ESMTP id A0A458FC23 for ; Wed, 28 May 2008 17:48:44 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: (qmail 24531 invoked by uid 399); 28 May 2008 17:32:43 -0000 Received: from localhost (HELO lap.dougb.net) (dougb@dougbarton.us@127.0.0.1) by localhost with ESMTPAM; 28 May 2008 17:32:43 -0000 X-Originating-IP: 127.0.0.1 X-Sender: dougb@dougbarton.us Message-ID: <483D947C.6020906@FreeBSD.org> Date: Wed, 28 May 2008 10:21:00 -0700 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 2.0.0.14 (X11/20080525) MIME-Version: 1.0 To: Steve Bertrand References: <483B3E7F.8000907@ibctech.ca> <483D50D1.8000707@ibctech.ca> In-Reply-To: <483D50D1.8000707@ibctech.ca> X-Enigmail-Version: 0.95.6 OpenPGP: id=D5B2F0FB Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: IPv6/IPv4 DNS resolver source 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, 28 May 2008 17:48:45 -0000 Steve Bertrand wrote: >>> Is there anyone here who can advise me where in the source tree I >>> would find the DNS resolver code that performs AAAA/A record lookups, >>> and more specifically, the fallback to A lookup if AAAA fails? >> >> Assuming you're considering getaddrinfo(), see res_queryN() in >> lib/libc/net/getaddrinfo.c. >> >> BTW: "fallback" does not really accurately describe the behavior. >> When AF_UNPSEC is specified, both AAAA and A queries are issued, >> whether or not the AAAA query fails. > > Thank you for the info. I did not know that little tidbit. > > I've got my first IPv6 DNS, mail, web etc server up and running now, and > before I think about migrating the actual production network, I want to > perform some extensive testing, all the while being familiar with the > framework of the resolver itself, and how to overcome particular > DNS/connectivity issues (if possible). > > ie: I want to learn more about how DNS and IP react in the event I lose > my IPv6 BGP peers (or IPv4 peers), and also write in some debug log > writing into the resolver if certain events trigger. If you lose your IPv6 connectivity (or worse, if it's up but not performing well) you will run into problems with your end users that have IPv6 enabled because when it's on it is generally tried first. Since more and more operating systems come with IPv6 enabled by default, and more and more networks worldwide are enabling it for their users, this can be a problem. In an ideal world you'll want to be able to monitor your IPv6 connectivity from key points outside your network, and alert $SOMEONE if it isn't working properly. If it's a prolonged outage you will probably want to update DNS to withdraw your AAAA records, and at least to start with you'll want them to have a fairly short TTL when they are in the zone. Although it is not popular with the "IPv6 do or die!" crowd, one procedure I recommend in the early stages of IPv6 deployment is to set up nameservers that only listen on IPv6 addresses, and only add the AAAA records to the zone files on those nameservers. (The AAAA records for the nameservers will have to be in all zone files of course.) At least that way you will be sure that the people you serve AAAA records to have _some_ kind of IPv6 connectivity, and that your end is at least up before sending your end users there. This is not a foolproof system because there is not necessarily a 1-to-1 relationship between the network that the resolver is on and the network the user is on, but for the vast majority it will be, and it's a lot better when rolling out to take baby steps till you have found all/most of the land mines. Caveats aside, google has taken a big step into the IPv6 arena giving access to their search engine through http://ipv6.google.com/, and they have said that once they get the bugs shaken out there they plan to go a lot bigger with IPv6 access to their network. This is widely recognized as a tipping point in the "must have v6 content to justify wider v6 rollout on the consumer side" debate, so anyone not making plans for IPv6 on their own network now is already one step behind the curve. There is an excellent list that covers IPv6 operational issues, http://lists.cluenet.de/mailman/listinfo/ipv6-ops You will probably want to search the archives there as well. hth, Doug -- This .signature sanitized for your protection From owner-freebsd-net@FreeBSD.ORG Wed May 28 20:14:38 2008 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 5B1991065670; Wed, 28 May 2008 20:14:38 +0000 (UTC) (envelope-from dfr@rabson.org) Received: from itchy.rabson.org (unknown [IPv6:2002:50b1:e8f2:1::143]) by mx1.freebsd.org (Postfix) with ESMTP id 1936F8FC19; Wed, 28 May 2008 20:14:38 +0000 (UTC) (envelope-from dfr@rabson.org) Received: from [IPv6:2001:470:909f:1:21b:63ff:feb8:5abc] (unknown [IPv6:2001:470:909f:1:21b:63ff:feb8:5abc]) by itchy.rabson.org (Postfix) with ESMTP id 6A5F63F8F; Wed, 28 May 2008 21:14:36 +0100 (BST) Message-Id: <5E032C03-6857-4E7F-9C3D-B5C06A79934C@rabson.org> From: Doug Rabson To: Arno J. Klaassen In-Reply-To: Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v919.2) Date: Wed, 28 May 2008 21:14:35 +0100 References: X-Mailer: Apple Mail (2.919.2) Cc: stable@freebsd.org, net@freebsd.org Subject: Re: nfs buildworld blocked by rpc.lockd ? 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, 28 May 2008 20:14:38 -0000 On 28 May 2008, at 20:57, Arno J. Klaassen wrote: > > Hello, > > my buildworld on a 7-stable-amd64 blocks on the following line : > > TERM=dumb TERMCAP=dumb: ex - /files/bsd/src7/share/termcap/ > termcap.src < /files/bsd/src7/share/termcap/reorder > > ex(1) stays in lockd state, and is unkillable, either by Ctl-C or > kill -9 > > /files/bsd is nfs-mounted as follows : > > push:/raid1/bsd /files/bsd nfs > rw,bg,soft,nfsv3,intr,noconn,noauto,-r=32768,-w=32768 0 0 > > I can provide tcpdumps on server and client if helpful. I would very much like to see tcpdumps (from either client or server). This problem is often caused by the fact that unless you use the '-p' flag, rpc.lockd isn't wired down to any particular port number. Since it is started at boot time, it will usually end up with the same one each time but the new kernel implementation in 7-stable typically ends up with a different port number to the old userland implementation. Quirks of the locking protocol make it difficult for the server to notice this without a lengthy timeout. Workarounds include using '-p' to wire it down to a consistent port (port 4045 is reserved for this) or restarting rpc.lockd on the server. From owner-freebsd-net@FreeBSD.ORG Wed May 28 20:16:03 2008 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 C83841065672 for ; Wed, 28 May 2008 20:16:03 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from pele.citylink.co.nz (pele.citylink.co.nz [202.8.44.226]) by mx1.freebsd.org (Postfix) with ESMTP id 8ED1A8FC1F for ; Wed, 28 May 2008 20:16:03 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from localhost (localhost [127.0.0.1]) by pele.citylink.co.nz (Postfix) with ESMTP id B04472D16D; Thu, 29 May 2008 08:16:02 +1200 (NZST) X-Virus-Scanned: Debian amavisd-new at citylink.co.nz Received: from pele.citylink.co.nz ([127.0.0.1]) by localhost (pele.citylink.co.nz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1+jW1wNAp3TG; Thu, 29 May 2008 08:15:59 +1200 (NZST) Received: from citylink.fud.org.nz (unknown [202.8.44.45]) by pele.citylink.co.nz (Postfix) with ESMTP; Thu, 29 May 2008 08:15:59 +1200 (NZST) Received: by citylink.fud.org.nz (Postfix, from userid 1001) id C41D611431; Thu, 29 May 2008 08:17:23 +1200 (NZST) Date: Wed, 28 May 2008 13:17:23 -0700 From: Andrew Thompson To: Andrea Venturoli Message-ID: <20080528201723.GD51548@citylink.fud.org.nz> References: <483D7A22.9000206@netfence.it> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <483D7A22.9000206@netfence.it> User-Agent: Mutt/1.5.17 (2007-11-01) Cc: freebsd-net@freebsd.org Subject: Re: Testing lagg 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, 28 May 2008 20:16:03 -0000 On Wed, May 28, 2008 at 05:28:34PM +0200, Andrea Venturoli wrote: > Hello. > > I've got a new box which features two gigabit ports and I though I'd try > lagg with LACP. > > On the box I put the following in /etc/rc.conf: > > ifconfig_em0="up" > ifconfig_em1="up" > ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 192.168.100.101 > netmask 255.255.255.0" > > > Then I aggregated the ports on the switch (3com). > > > This seems to work fine, although I see a 30 seconds delay from the moment > a network cable is unplugged and the moment the network works again. > Is this normal? Can this time be reduced? > Any other hint or gotcha? Can you post a verbose ifconfig (-v) for hte before and after. It will show the lag identifiers which may help diagnose this. Andrew From owner-freebsd-net@FreeBSD.ORG Wed May 28 20:25:57 2008 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 8471B106566B for ; Wed, 28 May 2008 20:25:57 +0000 (UTC) (envelope-from arno@heho.snv.jussieu.fr) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by mx1.freebsd.org (Postfix) with ESMTP id 17A528FC0C for ; Wed, 28 May 2008 20:25:56 +0000 (UTC) (envelope-from arno@heho.snv.jussieu.fr) Received: from heho.snv.jussieu.fr (heho.snv.jussieu.fr [134.157.184.22]) by shiva.jussieu.fr (8.14.2/jtpda-5.4) with ESMTP id m4SJvDpj058848 ; Wed, 28 May 2008 21:57:14 +0200 (CEST) X-Ids: 168 Received: from heho.snv.jussieu.fr (localhost [127.0.0.1]) by heho.snv.jussieu.fr (8.13.3/jtpda-5.2) with ESMTP id m4SJvCHx050064 ; Wed, 28 May 2008 21:57:12 +0200 (MEST) Received: (from arno@localhost) by heho.snv.jussieu.fr (8.13.3/8.13.1/Submit) id m4SJvBHb050061; Wed, 28 May 2008 21:57:11 +0200 (MEST) (envelope-from arno) To: net@freebsd.org From: "Arno J. Klaassen" Date: 28 May 2008 21:57:11 +0200 Message-ID: Lines: 17 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (shiva.jussieu.fr [134.157.0.168]); Wed, 28 May 2008 21:57:14 +0200 (CEST) X-Virus-Scanned: ClamAV 0.92/7278/Wed May 28 17:00:15 2008 on shiva.jussieu.fr X-Virus-Status: Clean X-Miltered: at jchkmail.jussieu.fr with ID 483DB919.004 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 483DB919.004/134.157.184.22/heho.snv.jussieu.fr/heho.snv.jussieu.fr/ X-j-chkmail-Score: MSGID : 483DB919.004 on jchkmail.jussieu.fr : j-chkmail score : . : R=. U=. O=. B=0.056 -> S=0.056 X-j-chkmail-Status: Ham Cc: stable@freebsd.org Subject: nfs buildworld blocked by rpc.lockd ? 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, 28 May 2008 20:25:57 -0000 Hello, my buildworld on a 7-stable-amd64 blocks on the following line : TERM=dumb TERMCAP=dumb: ex - /files/bsd/src7/share/termcap/termcap.src < /files/bsd/src7/share/termcap/reorder ex(1) stays in lockd state, and is unkillable, either by Ctl-C or kill -9 /files/bsd is nfs-mounted as follows : push:/raid1/bsd /files/bsd nfs rw,bg,soft,nfsv3,intr,noconn,noauto,-r=32768,-w=32768 0 0 I can provide tcpdumps on server and client if helpful. Thanx, Arno From owner-freebsd-net@FreeBSD.ORG Wed May 28 22:35:35 2008 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 4D7901065671; Wed, 28 May 2008 22:35:35 +0000 (UTC) (envelope-from SRS0=73d05576199fb09b085c1b06d1824febaa025220=715=es.net=oberman@es.net) Received: from postal1.es.net (postal4.es.net [IPv6:2001:400:6000:1::66]) by mx1.freebsd.org (Postfix) with ESMTP id C10FF8FC19; Wed, 28 May 2008 22:35:34 +0000 (UTC) (envelope-from SRS0=73d05576199fb09b085c1b06d1824febaa025220=715=es.net=oberman@es.net) Received: from ptavv.es.net (ptavv.es.net [198.128.4.29]) by postal4.es.net (Postal Node 4) with ESMTP (SSL) id IBL02631; Wed, 28 May 2008 15:35:31 -0700 Received: from ptavv.es.net (ptavv.es.net [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id 1216C4501D; Wed, 28 May 2008 15:35:30 -0700 (PDT) To: Doug Barton In-Reply-To: Your message of "Wed, 28 May 2008 10:21:00 PDT." <483D947C.6020906@FreeBSD.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1212014130_70344P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Wed, 28 May 2008 15:35:30 -0700 From: "Kevin Oberman" Message-Id: <20080528223530.1216C4501D@ptavv.es.net> X-Sender-IP: 198.128.4.29 X-Sender-Domain: es.net X-Recipent: ; ; ; X-Sender: X-To_Name: Doug Barton X-To_Domain: freebsd.org X-To: Doug Barton X-To_Email: dougb@FreeBSD.org X-To_Alias: dougb Cc: Steve Bertrand , freebsd-net@freebsd.org Subject: Re: IPv6/IPv4 DNS resolver source 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, 28 May 2008 22:35:35 -0000 --==_Exmh_1212014130_70344P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Date: Wed, 28 May 2008 10:21:00 -0700 > From: Doug Barton > Sender: owner-freebsd-net@freebsd.org > > Steve Bertrand wrote: > >>> Is there anyone here who can advise me where in the source tree I > >>> would find the DNS resolver code that performs AAAA/A record lookups, > >>> and more specifically, the fallback to A lookup if AAAA fails? > >> > >> Assuming you're considering getaddrinfo(), see res_queryN() in > >> lib/libc/net/getaddrinfo.c. > >> > >> BTW: "fallback" does not really accurately describe the behavior. > >> When AF_UNPSEC is specified, both AAAA and A queries are issued, > >> whether or not the AAAA query fails. > > > > Thank you for the info. I did not know that little tidbit. > > > > I've got my first IPv6 DNS, mail, web etc server up and running now, and > > before I think about migrating the actual production network, I want to > > perform some extensive testing, all the while being familiar with the > > framework of the resolver itself, and how to overcome particular > > DNS/connectivity issues (if possible). > > > > ie: I want to learn more about how DNS and IP react in the event I lose > > my IPv6 BGP peers (or IPv4 peers), and also write in some debug log > > writing into the resolver if certain events trigger. > > If you lose your IPv6 connectivity (or worse, if it's up but not > performing well) you will run into problems with your end users that > have IPv6 enabled because when it's on it is generally tried first. > Since more and more operating systems come with IPv6 enabled by > default, and more and more networks worldwide are enabling it for > their users, this can be a problem. > > In an ideal world you'll want to be able to monitor your IPv6 > connectivity from key points outside your network, and alert $SOMEONE > if it isn't working properly. If it's a prolonged outage you will > probably want to update DNS to withdraw your AAAA records, and at > least to start with you'll want them to have a fairly short TTL when > they are in the zone. > > Although it is not popular with the "IPv6 do or die!" crowd, one > procedure I recommend in the early stages of IPv6 deployment is to set > up nameservers that only listen on IPv6 addresses, and only add the > AAAA records to the zone files on those nameservers. (The AAAA records > for the nameservers will have to be in all zone files of course.) At > least that way you will be sure that the people you serve AAAA records > to have _some_ kind of IPv6 connectivity, and that your end is at > least up before sending your end users there. This is not a foolproof > system because there is not necessarily a 1-to-1 relationship between > the network that the resolver is on and the network the user is on, > but for the vast majority it will be, and it's a lot better when > rolling out to take baby steps till you have found all/most of the > land mines. While this idea makes a bit of sense, the single most popular OS for the desktop is Windows XP and will not issue IPv6 DNS queries. While XP runs IPv6 just fine, all name resolution is over V4, so if people do what you suggest, they will always use IPv4. You will see traffic from MacOS, Unix and Vista, but that is a fairly small part of the end-user world. And I am probably in the "IPv6 do or die!" crowd as I see some really big problems arising in the next coming few years with IPv4 address exhaustion and several other things that can only be addressed when a large portion of the 'eyeballs' are running over IPv6 exclusively. (Dual stack does not really do much good.) -- 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_1212014130_70344P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFIPd4ykn3rs5h7N1ERAhOAAKCbk5MP+trzv1xqjpiySgCncy5jXACfXirn 7PgNMkKVj8YA4hp2mWA/JmY= =lDzE -----END PGP SIGNATURE----- --==_Exmh_1212014130_70344P-- From owner-freebsd-net@FreeBSD.ORG Wed May 28 23:30:04 2008 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 B44E21065671 for ; Wed, 28 May 2008 23: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 9F9B78FC1B for ; Wed, 28 May 2008 23: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.2/8.14.2) with ESMTP id m4SNU4st010534 for ; Wed, 28 May 2008 23:30:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4SNU4QB010529; Wed, 28 May 2008 23:30:04 GMT (envelope-from gnats) Date: Wed, 28 May 2008 23:30:04 GMT Message-Id: <200805282330.m4SNU4QB010529@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: Greg Himes Cc: Subject: Re: kern/122551: [bge] Broadcom 5715S no carrier on HP BL460c blade using 6.3-RELEASE X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Greg Himes List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2008 23:30:04 -0000 The following reply was made to PR kern/122551; it has been noted by GNATS. From: Greg Himes To: bug-followup@FreeBSD.org, Greg Himes Cc: Subject: Re: kern/122551: [bge] Broadcom 5715S no carrier on HP BL460c blade using 6.3-RELEASE Date: Wed, 28 May 2008 15:42:38 -0700 Same problem on 7.0-RELEASE From owner-freebsd-net@FreeBSD.ORG Thu May 29 07:04:59 2008 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 C2325106566C for ; Thu, 29 May 2008 07:04:59 +0000 (UTC) (envelope-from bilouro@bilouro.com) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.245]) by mx1.freebsd.org (Postfix) with ESMTP id 9629F8FC19 for ; Thu, 29 May 2008 07:04:59 +0000 (UTC) (envelope-from bilouro@bilouro.com) Received: by an-out-0708.google.com with SMTP id b33so65922ana.13 for ; Thu, 29 May 2008 00:04:58 -0700 (PDT) Received: by 10.100.33.13 with SMTP id g13mr5647780ang.96.1212043202765; Wed, 28 May 2008 23:40:02 -0700 (PDT) Received: by 10.100.210.19 with HTTP; Wed, 28 May 2008 23:40:02 -0700 (PDT) Message-ID: Date: Thu, 29 May 2008 03:40:02 -0300 From: "Victor Hugo Bilouro" To: net@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Subject: establish connection without tcp options 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, 29 May 2008 07:04:59 -0000 Hi all, I'm working into establish manually a tcp connection. Does anyone knows if freebsd 7.0 stable agree, a connection establishment without TCP options set? best -- Victor Hugo Bilouro FreeBSD! From owner-freebsd-net@FreeBSD.ORG Thu May 29 08:28:10 2008 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 DED31106566C for ; Thu, 29 May 2008 08:28:10 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id 7A9F48FC17 for ; Thu, 29 May 2008 08:28:10 +0000 (UTC) (envelope-from andre@freebsd.org) Received: (qmail 75507 invoked from network); 29 May 2008 06:59:15 -0000 Received: from localhost (HELO [127.0.0.1]) ([127.0.0.1]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 29 May 2008 06:59:15 -0000 Message-ID: <483E62D9.8000308@freebsd.org> Date: Thu, 29 May 2008 10:01:29 +0200 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.14 (Windows/20071210) MIME-Version: 1.0 To: Victor Hugo Bilouro References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: net@freebsd.org Subject: Re: establish connection without tcp options 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, 29 May 2008 08:28:11 -0000 Victor Hugo Bilouro wrote: > Hi all, > > I'm working into establish manually a tcp connection. > > Does anyone knows if freebsd 7.0 stable agree, a connection > establishment without TCP options set? Yes, certainly it does. If you send a SYN w/o any options it won't use any. If you establish a connection from FreeBSD you may ignore any options in SYN and in your SYN-ACK not send any. If you want FreeBSD not to send any options you can set the socket option TCP_NOOPT before you do the connect. -- Andre From owner-freebsd-net@FreeBSD.ORG Thu May 29 12:57:42 2008 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 A796F1065677 for ; Thu, 29 May 2008 12:57:42 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: from ibctech.ca (unknown [IPv6:2607:f118::b6]) by mx1.freebsd.org (Postfix) with SMTP id 451978FC1E for ; Thu, 29 May 2008 12:57:42 +0000 (UTC) (envelope-from iaccounts@ibctech.ca) Received: (qmail 37629 invoked by uid 89); 29 May 2008 08:58:01 -0000 Received: from unknown (HELO ?IPv6:2607:f118::5?) (steve@ibctech.ca@2607:f118::5) by v6.ibctech.ca with ESMTPA; 29 May 2008 08:58:01 -0000 Message-ID: <483EA7D0.6050301@ibctech.ca> Date: Thu, 29 May 2008 08:55:44 -0400 From: Steve Bertrand User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Kevin Oberman References: <20080528223530.1216C4501D@ptavv.es.net> In-Reply-To: <20080528223530.1216C4501D@ptavv.es.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, Doug Barton Subject: Re: IPv6/IPv4 DNS resolver source 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, 29 May 2008 12:57:42 -0000 >> If you lose your IPv6 connectivity (or worse, if it's up but not >> performing well) you will run into problems with your end users that >> have IPv6 enabled because when it's on it is generally tried first. >> Since more and more operating systems come with IPv6 enabled by >> default, and more and more networks worldwide are enabling it for >> their users, this can be a problem. Essentially, this is exactly why the only box that I have in production with IPv6 is my own personal server. The production network has internal IPv6 connectivity, but no DNS AAAA records until I find out how badly my own gear will react in certain events. >> In an ideal world you'll want to be able to monitor your IPv6 >> connectivity from key points outside your network, and alert $SOMEONE >> if it isn't working properly. If it's a prolonged outage you will >> probably want to update DNS to withdraw your AAAA records, and at >> least to start with you'll want them to have a fairly short TTL when >> they are in the zone. Generally, the zone that I have AAAA and A records for a single name have five minute TTLs for this purpose. >> Although it is not popular with the "IPv6 do or die!" crowd, one >> procedure I recommend in the early stages of IPv6 deployment is to set >> up nameservers that only listen on IPv6 addresses, and only add the >> AAAA records to the zone files on those nameservers. (The AAAA records >> for the nameservers will have to be in all zone files of course.) At >> least that way you will be sure that the people you serve AAAA records >> to have _some_ kind of IPv6 connectivity, and that your end is at >> least up before sending your end users there. This is not a foolproof >> system because there is not necessarily a 1-to-1 relationship between >> the network that the resolver is on and the network the user is on, >> but for the vast majority it will be, and it's a lot better when >> rolling out to take baby steps till you have found all/most of the >> land mines. > > While this idea makes a bit of sense, the single most popular OS for the > desktop is Windows XP and will not issue IPv6 DNS queries. While XP runs > IPv6 just fine, all name resolution is over V4, so if people do what you > suggest, they will always use IPv4. You will see traffic from MacOS, > Unix and Vista, but that is a fairly small part of the end-user world. I agree that the idea makes sense, but also completely understand where Kevin is coming from. All things considered now, I may end up whipping up a monitor script to reload BIND with an alternate (IPv4 only) zone file for the affected domains if I can't ping my IPv6 BGP peer. That $SOMEONE you mentioned above could be nobody ;) > And I am probably in the "IPv6 do or die!" crowd as I see some really > big problems arising in the next coming few years with IPv4 address > exhaustion and several other things that can only be addressed when a > large portion of the 'eyeballs' are running over IPv6 exclusively. (Dual > stack does not really do much good.) Unfortunately, there are reasons why I have to be dual stacked, some of which are beyond my control, and others because I am not overly confident with the lack of consensus in the IETF regarding transition yet. I would highly prefer to be dual-stacked at this point, then to have to perform *any* sort of translation, again, due to lack of consensus within the IETF. When an agreed upon standard is created for rock-solid global IPv6 connectivity, I'll be one of the first to hand ARIN back my v4 addresses. Doug mentioned a great mailing list (that I'm currently on). For those interested, here are some more: - v6ops@ops.ietf.org - ipv6canada@ipv6forum.com Thanks for the great feedback. Steve From owner-freebsd-net@FreeBSD.ORG Thu May 29 16:29:57 2008 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 86C5B10656B2 for ; Thu, 29 May 2008 16:29:57 +0000 (UTC) (envelope-from rahman.sazzadur@gmail.com) Received: from ti-out-0910.google.com (ti-out-0910.google.com [209.85.142.190]) by mx1.freebsd.org (Postfix) with ESMTP id E2C268FC23 for ; Thu, 29 May 2008 16:29:56 +0000 (UTC) (envelope-from rahman.sazzadur@gmail.com) Received: by ti-out-0910.google.com with SMTP id d27so2384614tid.3 for ; Thu, 29 May 2008 09:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=eUysubgXgZ96CPCPyJFKwdd9fle9EB7G6qYrrQXv1EM=; b=Juib4+17yiTF8cJjzJNG1HyPsrkw70NbZma7o0igYO6/Ih6SVHVxzQqun/wRTd5AOK2F8apI546g5Q/d6wVpW21TXXKHTVYxpSWJBaDRydzVIhaA9zKGDhOL2amduRRASTYihO33auPi6MBHO8uRgSezf/r2FseN5U8CXMnpxak= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=LpPdKoNbXV+foybgWIbk5B0XIhOefXfyZUbNNahkZTVMJSjn2Fb32z+5sovSmQ9i+krcHhdQ3CxkpzcZ45PedhA2llYYHf84R1jF37EW9KesZ7idoXDQdGWjN644u6EjPnlH0uXZ+nidQHK71gOo6x90ta1rXNZ7Iqwq8qR3J9w= Received: by 10.151.145.17 with SMTP id x17mr7647143ybn.20.1212078594255; Thu, 29 May 2008 09:29:54 -0700 (PDT) Received: by 10.150.138.5 with HTTP; Thu, 29 May 2008 09:29:54 -0700 (PDT) Message-ID: <82bdb5ec0805290929p629a400dwd29fc33a41e40e35@mail.gmail.com> Date: Thu, 29 May 2008 11:29:54 -0500 From: "sazzadur rahman" To: "Peter Lei" In-Reply-To: <4831CA98.7050807@ieee.org> MIME-Version: 1.0 References: <82bdb5ec0805191111h17fa4391uf2021104adbf606f@mail.gmail.com> <4831CA98.7050807@ieee.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: techerst@wanadoo.fr, freebsd-net@freebsd.org, atiq@ou.edu, olivier.civel@gmail.com, bouidel@ou.edu Subject: Re: A query regarding interop between BSD SCTP and lksctp 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, 29 May 2008 16:29:57 -0000 You are right. Fedora 5 implementation (kernel 2.6.9) doesn't have SCTP AUTH chunk. We upgrade the linux kernel (2.6.25.4) which has SCTP AUTH chunk and ASCONF works fine with FreeBSD 7.0 SCTP. Thanks for the help! Sazzad. On Mon, May 19, 2008 at 1:44 PM, Peter Lei wrote: > Can you verify that the version of the stack in Fedora 5 implements > the SCTP AUTH chunk? The FreeBSD stack will silently discard the > ADD-IP chunk if it's not wrapped with an AUTH chunk as per the RFC. > > --peter > > sazzadur rahman wrote: > >> Hello, >> We are using SCTP client on Linux (Fedora 5) and SCTP server on FreeBSD >> 7.0. >> Client-Server communication works fine. However, when we send ASCONF >> (ADD_IP) from Client to the server, it seems that FreeBSD does not respond >> with ASCONF_ACK to the Client. Is there any interop issue between BSD SCTP >> and lksctp? >> >> Please let us know if you have any questions. >> >> >> Best Regards, >> Md Sazzadur Rahman >> Graduate Student, >> School of Computer Science, >> University of Oklahoma, >> Norman, Oklahoma, USA >> _______________________________________________ >> 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 May 29 18:14:38 2008 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 228671065676 for ; Thu, 29 May 2008 18:14:38 +0000 (UTC) (envelope-from steveleroy123@gmail.com) Received: from gv-out-0910.google.com (gv-out-0910.google.com [216.239.58.185]) by mx1.freebsd.org (Postfix) with ESMTP id 8BFB98FC18 for ; Thu, 29 May 2008 18:14:36 +0000 (UTC) (envelope-from steveleroy123@gmail.com) Received: by gv-out-0910.google.com with SMTP id n8so1037783gve.39 for ; Thu, 29 May 2008 11:14:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=BvDcrDu97SVKpRi5cKtV66lKonOv8RvVWKtSCTdo9Xw=; b=dNXixpWk6BO7F1EwDjiwBTFJ01APzk9FGE0WzCMaDhMffcemcA5lO6wKQThXYVyt/kAE3zB0ADmXfk6pYI9Je3OHLMEEI125wJqY/CA6k2EqCKnouNJgHYEj8XY5EJDlIvENjB8Xp5vK5/vx/wAM9k1SKcstnRyjdefrCSd39UY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=KICHBwXaE+ckcOq5wJKu1G9Aew1w2NvQz6vCloaQ8NE2LPlRPvgJPiOp8sSH3Dq8N6fgKE82+rDdriBZQESn3Cb5wVTcel+297yOChDHTrP6elz6a4GaG4ePd0TyxTVtS8OfnBRoF2avledYX1/ntWRclC9dEZy4s3NdpdY10KA= Received: by 10.78.183.8 with SMTP id g8mr948226huf.118.1212083186701; Thu, 29 May 2008 10:46:26 -0700 (PDT) Received: by 10.78.121.20 with HTTP; Thu, 29 May 2008 10:46:25 -0700 (PDT) Message-ID: Date: Thu, 29 May 2008 23:16:25 +0530 From: "stephen leroy" To: freebsd-net@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: FreeBSD 5.4: routetbl leak for a static route if the interface address is removed 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, 29 May 2008 18:14:38 -0000 Hi. I am using FreeBSD 5.4. with a ethernet interface configured with an IP address. I have installed a static route with a gateway that lies on that interface's subnet. So I now effectively have 3 routes on that interface, the interface's subnet route, the static route, and an ARP entry for the gateway. When I delete the IP address on that interface, I expect all the 3 routes to be removed and routetbl count to go down correspondingly. However, it gets decremented by 1, accounting only for the interface's subnet route, and not for the static route and the arp. I found that in in_ifadownkill() which is invoked on deletion of the IP address, there's a call to rtexpunge(), which frees up the references to the rtentry, but does not actually call an rtfree. I would like to know who will free the rtentry for the route cleaned up by rtexpunge. - Steve From owner-freebsd-net@FreeBSD.ORG Thu May 29 19:20:01 2008 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 4AED71065672 for ; Thu, 29 May 2008 19:20:01 +0000 (UTC) (envelope-from peterjeremy@optushome.com.au) Received: from mail13.syd.optusnet.com.au (mail13.syd.optusnet.com.au [211.29.132.194]) by mx1.freebsd.org (Postfix) with ESMTP id 9B6E68FC1E for ; Thu, 29 May 2008 19:20:00 +0000 (UTC) (envelope-from peterjeremy@optushome.com.au) Received: from server.vk2pj.dyndns.org (c122-106-215-175.belrs3.nsw.optusnet.com.au [122.106.215.175]) by mail13.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id m4TJJvSF004878 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 30 May 2008 05:19:59 +1000 Received: from server.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by server.vk2pj.dyndns.org (8.14.2/8.14.2) with ESMTP id m4TJJvbt007095 for ; Fri, 30 May 2008 05:19:57 +1000 (EST) (envelope-from peter@server.vk2pj.dyndns.org) Received: (from peter@localhost) by server.vk2pj.dyndns.org (8.14.2/8.14.2/Submit) id m4TJJvpn007094 for freebsd-net@freebsd.org; Fri, 30 May 2008 05:19:57 +1000 (EST) (envelope-from peter) Date: Fri, 30 May 2008 05:19:57 +1000 From: Peter Jeremy To: freebsd-net@freebsd.org Message-ID: <20080529191957.GR1028@server.vk2pj.dyndns.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="aM3YZ0Iwxop3KEKx" Content-Disposition: inline X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.17 (2007-11-01) Subject: Delaying traffic using altq(4) 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, 29 May 2008 19:20:01 -0000 --aM3YZ0Iwxop3KEKx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I am currently using dummynet(4) to simulate WANs for testing purposes - eg connecting two hosts by a 50Mbps WAN with a 15msec RTT. In order to remove the need to run ipfw(8), I am looking at migrating to altq(4). Unfortunately, whilst altq(4) provides bandwidth management, there does not appear to be any provision for providing time delay on packets. Has anyone looked into implementing time delays in altq? --=20 Peter Jeremy Please excuse any delays as the result of my ISP's inability to implement an MTA that is either RFC2821-compliant or matches their claimed behaviour. --aM3YZ0Iwxop3KEKx Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkg/Ad0ACgkQ/opHv/APuIetJwCgiC4BpU3lHYZNqzEZMaDkeJEn v4kAnRfdNYP2rZc64kXdKGFsiyYMuzEB =FvQY -----END PGP SIGNATURE----- --aM3YZ0Iwxop3KEKx-- From owner-freebsd-net@FreeBSD.ORG Thu May 29 21:05:31 2008 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 38962106564A for ; Thu, 29 May 2008 21:05:31 +0000 (UTC) (envelope-from ml@netfence.it) Received: from parrot.aev.net (parrot.aev.net [212.31.247.179]) by mx1.freebsd.org (Postfix) with ESMTP id 897868FC2D for ; Thu, 29 May 2008 21:05:30 +0000 (UTC) (envelope-from ml@netfence.it) Received: from soth.ventu ([151.77.241.59]) (authenticated bits=128) by parrot.aev.net (8.14.2/8.13.8) with ESMTP id m4TL74HO039439 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Thu, 29 May 2008 23:07:10 +0200 (CEST) (envelope-from ml@netfence.it) Received: from alamar.ventu (alamar.ventu [10.1.2.18]) by soth.ventu (8.14.2/8.14.2) with ESMTP id m4TL5ILs003142; Thu, 29 May 2008 23:05:20 +0200 (CEST) (envelope-from ml@netfence.it) Message-ID: <483F1A8E.4070600@netfence.it> Date: Thu, 29 May 2008 23:05:18 +0200 From: Andrea Venturoli User-Agent: Thunderbird 2.0.0.14 (X11/20080504) MIME-Version: 1.0 To: Gary Palmer References: <483D7A22.9000206@netfence.it> <20080528154800.GF1142@in-addr.com> In-Reply-To: <20080528154800.GF1142@in-addr.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.64 on 212.31.247.179 Cc: freebsd-net@freebsd.org Subject: Re: Testing lagg 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, 29 May 2008 21:05:31 -0000 Gary Palmer ha scritto: > Does the switch have spanning tree enabled? Yes. Should it be? bye & Thanks av. From owner-freebsd-net@FreeBSD.ORG Thu May 29 21:24:43 2008 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 61FA4106567A; Thu, 29 May 2008 21:24:43 +0000 (UTC) (envelope-from daniel@skytek.it) Received: from mail.skytek.it (mail.skytek.it [217.194.176.18]) by mx1.freebsd.org (Postfix) with ESMTP id 84B338FC16; Thu, 29 May 2008 21:24:42 +0000 (UTC) (envelope-from daniel@skytek.it) Received: from [192.168.30.100] ([192.168.30.100]) by mail.skytek.it (Skytek Mail Server v.11.47-p9) with ASMTP id JAP48332; Thu, 29 May 2008 23:12:32 +0200 Message-ID: <483F1C4A.4050700@skytek.it> Date: Thu, 29 May 2008 23:12:42 +0200 From: Daniel Ponticello User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Andrea Venturoli References: <483D7A22.9000206@netfence.it> <20080528154800.GF1142@in-addr.com> <483F1A8E.4070600@netfence.it> In-Reply-To: <483F1A8E.4070600@netfence.it> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: Testing lagg 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, 29 May 2008 21:24:43 -0000 Andrea Venturoli ha scritto: > Gary Palmer ha scritto: > >> Does the switch have spanning tree enabled? > > Yes. > Should it be? > > bye & Thanks > av. > _______________________________________________ > 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" > Well, the latency then could be related to spanning tree protocol not immediatly forwarding traffic to the new port due to topology change. Try to disable it on the switch. Daniel -- WBR, Cordiali Saluti, Daniel Ponticello, VP of Engineering Network Coordination Centre of Skytek --- - For further information about our services: - Please visit our website at http://www.Skytek.it --- From owner-freebsd-net@FreeBSD.ORG Thu May 29 22:18:47 2008 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 412611065676 for ; Thu, 29 May 2008 22:18:47 +0000 (UTC) (envelope-from gpalmer@freebsd.org) Received: from noop.in-addr.com (in-addr.broker.freenet6.net [IPv6:2001:5c0:8fff:fffe::214d]) by mx1.freebsd.org (Postfix) with ESMTP id 08F258FC22 for ; Thu, 29 May 2008 22:18:47 +0000 (UTC) (envelope-from gpalmer@freebsd.org) Received: from gjp by noop.in-addr.com with local (Exim 4.54 (FreeBSD)) id 1K1qSM-0004tg-6M; Thu, 29 May 2008 18:18:46 -0400 Date: Thu, 29 May 2008 18:18:46 -0400 From: Gary Palmer To: Andrea Venturoli Message-ID: <20080529221846.GG1142@in-addr.com> References: <483D7A22.9000206@netfence.it> <20080528154800.GF1142@in-addr.com> <483F1A8E.4070600@netfence.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <483F1A8E.4070600@netfence.it> Cc: freebsd-net@freebsd.org Subject: Re: Testing lagg 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, 29 May 2008 22:18:47 -0000 On Thu, May 29, 2008 at 11:05:18PM +0200, Andrea Venturoli wrote: > Gary Palmer ha scritto: > > >Does the switch have spanning tree enabled? > > Yes. > Should it be? It can be left on but if you can disable it on the ports that you are using for lagg then that should help. If you can't turn it off on a per-port basis and you don't have a meshed switch topology then just turn spanning tree off. I think whats happening is spanning tree is seeing a topology change and forcing a renegotiation of the tree, which has the side effect of stopping packet forwarding. You could also turn down the spanning tree timers, but there would still be a pause in the forwarding of packets Regards, Gary From owner-freebsd-net@FreeBSD.ORG Fri May 30 08:44:07 2008 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 D3A52106568F for ; Fri, 30 May 2008 08:44:07 +0000 (UTC) (envelope-from rajkumars@gmail.com) Received: from yw-out-2324.google.com (yw-out-2324.google.com [74.125.46.28]) by mx1.freebsd.org (Postfix) with ESMTP id 82F818FC19 for ; Fri, 30 May 2008 08:44:07 +0000 (UTC) (envelope-from rajkumars@gmail.com) Received: by yw-out-2324.google.com with SMTP id 9so2262810ywe.13 for ; Fri, 30 May 2008 01:44:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=FtO/EhyVGijgRzUJT2ilWnpoNAcQN9pstCZSIPNyJ3E=; b=Aov2ADVeDt/ElI4tW+ju3IC/KuOW8dwvC3AxAuztsQvZn/MXwKxH0hXY4h7i/v29k3zIuepZgbqPwl4r6zftotBDn5Qw41/M2P3FSPBmHYW5Z99qYz4TsFoh7uRIADNnd2KpDe7NCNXQSrc7IbRNlp5ZQAz/n9cRuaRnCdWpHiA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=R/AXul9vG80aQ528ity8UaBvO4ApzWwlyu2ZZlvlt04gm+Sp+PJkuYyqQZ4D/xnpBEqBZyAihv67ClnmiNxPUdfPfv6nfA9p7XDvv61H+ni6S+t2eZEIewCyp2ZYVNr0UxAGN0IKckRQsfwUgzfNPPeftA0BUA5ARSyVxfS/wcw= Received: by 10.150.73.41 with SMTP id v41mr5791811yba.188.1212135495040; Fri, 30 May 2008 01:18:15 -0700 (PDT) Received: by 10.150.190.8 with HTTP; Fri, 30 May 2008 01:18:15 -0700 (PDT) Message-ID: <64de5c8b0805300118v3874ec3bx2b2978a80bae08b8@mail.gmail.com> Date: Fri, 30 May 2008 13:48:15 +0530 From: "Rajkumar S" To: freebsd-net@freebsd.org In-Reply-To: <483763B5.4030205@elischer.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <483763B5.4030205@elischer.org> Subject: Re: anyone tried the Multi routing table code yet? 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, 30 May 2008 08:44:07 -0000 On Sat, May 24, 2008 at 6:09 AM, Julian Elischer wrote: > subject says it all really.. I am using pf and rtable to setfib and get an pfctl: DIOCADDRULE: Device busy when trying to load "pass in quick on fxp0 from any to any keep state rtable 1" I can successfully load "pass in quick on fxp0 all flags S/SA keep state rtable 0" I am testing on FreeBSD CURRENT. My routing tables are: [root@daemon /etc]# setfib -0 netstat -nrf inet Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.3.100 UGS 0 2025 fxp0 127.0.0.1 127.0.0.1 UH 0 0 lo0 192.168.3.0/24 link#1 UC 0 0 fxp0 192.168.3.54 00:40:f4:b7:d7:ee UHLW 1 40 fxp0 1179 192.168.3.100 00:80:48:38:1a:df UHLW 2 149 fxp0 1173 192.168.4.0/24 link#1 UC 0 0 fxp0 192.168.4.4 00:80:48:1f:48:26 UHLW 1 141 fxp0 1120 192.168.5.0/24 link#3 UC 0 0 rue0 [root@daemon /etc]# setfib -1 netstat -nrf inet Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.5.4 UGS 0 13 rue0 127.0.0.1 127.0.0.1 UH 0 0 lo0 192.168.3.0/24 link#1 UC 0 0 fxp0 192.168.3.54 00:40:f4:b7:d7:ee UHLW 1 0 fxp0 1176 192.168.3.100 00:80:48:38:1a:df UHLW 1 5 fxp0 1170 192.168.4.0/24 link#1 UC 0 0 fxp0 192.168.4.4 00:80:48:1f:48:26 UHLW 1 0 fxp0 1117 192.168.5.0/24 link#3 UC 0 0 rue0 btw, does the rtable syntax allow to set route for packets generated by the pf host itself (like packets from squid). The catch is that they cannot be matched via a "pass in" rule, they are matched only on a "pass out" rule. Thanks and regards, raj From owner-freebsd-net@FreeBSD.ORG Fri May 30 09:43:32 2008 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 423261065672 for ; Fri, 30 May 2008 09:43:32 +0000 (UTC) (envelope-from crapsh@monkeybrains.net) Received: from ape.monkeybrains.net (ape.monkeybrains.net [208.69.40.11]) by mx1.freebsd.org (Postfix) with ESMTP id 22A028FC1A for ; Fri, 30 May 2008 09:43:32 +0000 (UTC) (envelope-from crapsh@monkeybrains.net) Received: from monchichi.monkeybrains.net (adsl-75-63-18-111.dsl.pltn13.sbcglobal.net [75.63.18.111]) (authenticated bits=0) by ape.monkeybrains.net (8.14.1/8.14.1) with ESMTP id m4U9hVg3002359 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 30 May 2008 02:43:31 -0700 (PDT) (envelope-from crapsh@monkeybrains.net) Message-ID: <483FCC95.5060401@monkeybrains.net> Date: Fri, 30 May 2008 02:44:53 -0700 From: Rudy User-Agent: Thunderbird 2.0.0.12 (X11/20080310) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on pita.monkeybrains.net X-Virus-Status: Clean Subject: carp and vlan at the same time? 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, 30 May 2008 09:43:32 -0000 Dear NET, I have some questions! [1] vlan & carp I have 10.3.1.1/24 10.3.2.1/25 and a 10.3.3.129/25 as gateway IPs each in their own vlan. How do I get CARP working, or are people using another method to get failover working? [2] carp Is there a way to get around the requirement to already have an IP in the same network as the IP you want to put on a carp device? I don't think freevrrp required another IP... For example, this command fails: # ifconfig carp1 vhid 31 advbase 1 pass TEST 10.3.3.1/24 ifconfig: ioctl (SIOCAIFADDR): Can't assign requested address Unless I put a 10.3.3.2/24 IP on my em0, and then make the carp IP 10.3.3.1/32. [3] vlan Final questions: is there any documentation on the "ifconfig em0.99 create" syntax? Didn't find the dot notation in the man page. Also, how do you set that up in your rc.conf? cloned_interfaces="em0.99" # works.. clone is created ifconfig_em0.99="10.99.0.1/24" # doesn't work... /etc/rc.d/netif start em0.99 doesn't work... Thanks in advance, Rudy From owner-freebsd-net@FreeBSD.ORG Fri May 30 09:45:33 2008 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 276F71065674 for ; Fri, 30 May 2008 09:45:33 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outF.internet-mail-service.net (outf.internet-mail-service.net [216.240.47.229]) by mx1.freebsd.org (Postfix) with ESMTP id 029CF8FC1D for ; Fri, 30 May 2008 09:45:32 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id D5DF92418; Fri, 30 May 2008 02:45:32 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 686F62D6018; Fri, 30 May 2008 02:45:32 -0700 (PDT) Message-ID: <483FCCBC.6040802@elischer.org> Date: Fri, 30 May 2008 02:45:32 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Rajkumar S References: <483763B5.4030205@elischer.org> <64de5c8b0805300118v3874ec3bx2b2978a80bae08b8@mail.gmail.com> In-Reply-To: <64de5c8b0805300118v3874ec3bx2b2978a80bae08b8@mail.gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, Max Laier Subject: Re: anyone tried the Multi routing table code yet? 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, 30 May 2008 09:45:33 -0000 Rajkumar S wrote: > On Sat, May 24, 2008 at 6:09 AM, Julian Elischer wrote: >> subject says it all really.. > > I am using pf and rtable to setfib and get an pfctl: DIOCADDRULE: > Device busy when trying to load "pass in quick on fxp0 from any to any > keep state rtable 1" > I'm not really familiar with the pf syntax as I didn't do that part of the patch (max laier (CC'd) did) and I don't use pf. Max may be able to see if the patch to the pf code ahs an error. > I can successfully load "pass in quick on fxp0 all flags S/SA keep > state rtable 0" I am testing on FreeBSD CURRENT. > > My routing tables are: > > > [root@daemon /etc]# setfib -0 netstat -nrf inet > Routing tables > > Internet: > Destination Gateway Flags Refs Use Netif Expire > default 192.168.3.100 UGS 0 2025 fxp0 > 127.0.0.1 127.0.0.1 UH 0 0 lo0 > 192.168.3.0/24 link#1 UC 0 0 fxp0 > 192.168.3.54 00:40:f4:b7:d7:ee UHLW 1 40 fxp0 1179 > 192.168.3.100 00:80:48:38:1a:df UHLW 2 149 fxp0 1173 > 192.168.4.0/24 link#1 UC 0 0 fxp0 > 192.168.4.4 00:80:48:1f:48:26 UHLW 1 141 fxp0 1120 > 192.168.5.0/24 link#3 UC 0 0 rue0 > [root@daemon /etc]# setfib -1 netstat -nrf inet > Routing tables > > Internet: > Destination Gateway Flags Refs Use Netif Expire > default 192.168.5.4 UGS 0 13 rue0 > 127.0.0.1 127.0.0.1 UH 0 0 lo0 > 192.168.3.0/24 link#1 UC 0 0 fxp0 > 192.168.3.54 00:40:f4:b7:d7:ee UHLW 1 0 fxp0 1176 > 192.168.3.100 00:80:48:38:1a:df UHLW 1 5 fxp0 1170 > 192.168.4.0/24 link#1 UC 0 0 fxp0 > 192.168.4.4 00:80:48:1f:48:26 UHLW 1 0 fxp0 1117 > 192.168.5.0/24 link#3 UC 0 0 rue0 > > btw, does the rtable syntax allow to set route for packets generated > by the pf host itself (like packets from squid). The catch is that > they cannot be matched via a "pass in" rule, they are matched only on > a "pass out" rule. I don't know about pf, but in ipfw it definitely can be any packet at any time, but the outgoing packets have already made their routing decision before they hit the firewall so even though a table is associated with the packet, it's too late :-/ it has to be associated with the socket itself to really have effect. > > Thanks and regards, > > raj > _______________________________________________ > 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 May 30 09:56:43 2008 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 E48D6106567B for ; Fri, 30 May 2008 09:56:43 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outO.internet-mail-service.net (outo.internet-mail-service.net [216.240.47.238]) by mx1.freebsd.org (Postfix) with ESMTP id BF6118FC21 for ; Fri, 30 May 2008 09:56:43 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id E89A32421; Fri, 30 May 2008 02:56:43 -0700 (PDT) Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 2DE802D600D; Fri, 30 May 2008 02:56:43 -0700 (PDT) Message-ID: <483FCF5A.8040305@elischer.org> Date: Fri, 30 May 2008 02:56:42 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) MIME-Version: 1.0 To: Rajkumar S References: <483763B5.4030205@elischer.org> <64de5c8b0805300118v3874ec3bx2b2978a80bae08b8@mail.gmail.com> <483FCCBC.6040802@elischer.org> In-Reply-To: <483FCCBC.6040802@elischer.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, Max Laier Subject: Re: anyone tried the Multi routing table code yet? 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, 30 May 2008 09:56:44 -0000 Julian Elischer wrote: > Rajkumar S wrote: >> On Sat, May 24, 2008 at 6:09 AM, Julian Elischer >> wrote: >>> subject says it all really.. >> >> I am using pf and rtable to setfib and get an pfctl: DIOCADDRULE: >> Device busy when trying to load "pass in quick on fxp0 from any to any >> keep state rtable 1" >> > > I'm not really familiar with the pf syntax > as I didn't do that part of the patch (max laier (CC'd) did) > and I don't use pf. > > Max may be able to see if the patch to the pf code ahs an error. > > > >> I can successfully load "pass in quick on fxp0 all flags S/SA keep >> state rtable 0" I am testing on FreeBSD CURRENT. >> >> My routing tables are: >> >> >> [root@daemon /etc]# setfib -0 netstat -nrf inet >> Routing tables >> >> Internet: >> Destination Gateway Flags Refs Use Netif >> Expire >> default 192.168.3.100 UGS 0 2025 fxp0 >> 127.0.0.1 127.0.0.1 UH 0 0 lo0 >> 192.168.3.0/24 link#1 UC 0 0 fxp0 >> 192.168.3.54 00:40:f4:b7:d7:ee UHLW 1 40 fxp0 >> 1179 >> 192.168.3.100 00:80:48:38:1a:df UHLW 2 149 fxp0 >> 1173 >> 192.168.4.0/24 link#1 UC 0 0 fxp0 >> 192.168.4.4 00:80:48:1f:48:26 UHLW 1 141 fxp0 >> 1120 >> 192.168.5.0/24 link#3 UC 0 0 rue0 >> [root@daemon /etc]# setfib -1 netstat -nrf inet >> Routing tables >> >> Internet: >> Destination Gateway Flags Refs Use Netif >> Expire >> default 192.168.5.4 UGS 0 13 rue0 >> 127.0.0.1 127.0.0.1 UH 0 0 lo0 >> 192.168.3.0/24 link#1 UC 0 0 fxp0 >> 192.168.3.54 00:40:f4:b7:d7:ee UHLW 1 0 fxp0 >> 1176 >> 192.168.3.100 00:80:48:38:1a:df UHLW 1 5 fxp0 >> 1170 >> 192.168.4.0/24 link#1 UC 0 0 fxp0 >> 192.168.4.4 00:80:48:1f:48:26 UHLW 1 0 fxp0 >> 1117 >> 192.168.5.0/24 link#3 UC 0 0 rue0 >> >> btw, does the rtable syntax allow to set route for packets generated >> by the pf host itself (like packets from squid). The catch is that >> they cannot be matched via a "pass in" rule, they are matched only on >> a "pass out" rule. > > I don't know about pf, but in ipfw it definitely can be any packet at > any time, but the outgoing packets have already made their routing > decision before they hit the firewall so even though a table is > associated with the packet, it's too late :-/ it has to be associated > with the socket itself to really have effect. For this reason I'm considering whether to add a 'reroute' ipfw rule that forces a redo of the routing decision... it may not work as expected however.. (it would be too late to change the selected src address). > >> >> Thanks and regards, >> >> raj >> _______________________________________________ >> 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" > > _______________________________________________ > 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 May 30 09:58:11 2008 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 92E70106567D for ; Fri, 30 May 2008 09:58:11 +0000 (UTC) (envelope-from ndenev@gmail.com) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.235]) by mx1.freebsd.org (Postfix) with ESMTP id 5A3998FC1C for ; Fri, 30 May 2008 09:58:11 +0000 (UTC) (envelope-from ndenev@gmail.com) Received: by rv-out-0506.google.com with SMTP id b25so4583650rvf.43 for ; Fri, 30 May 2008 02:58:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; 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=HPkKJmHJrPDJyWC7y9HU1f5Uz/mAYh2SeaVMpHXeACg=; b=FX3a4oR21bp3LnliR+KuyB24voI/Rna6rdlK01uLsrxxRIXMwMTE3vrh7fnLN0SjcUuJtrU9GPHUxLUQJARNZxRM1qkI9xwb86PU7pNMK/xgmw6P/vZwTAQR3MaqxCnz60bj26E5RA70lOu4bLJVV18EqSURkNjiFt+wBCAHavw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=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=HUxts21bSyhWQaDn0dLHv+rF6v5j7CJsbb4eJOVswPss5u0I7hstRwmUZAzCGGf025NzkLdYZUEmPg1sl+Tz+H2LjqOr+hAEg+oyZgisUOC2V955060dvPk+FpiU/cIfrWU66vr8KNLRc65L5abfKsFUTk5I2zHM0WfM04Od5v0= Received: by 10.141.18.14 with SMTP id v14mr2879834rvi.125.1212141491224; Fri, 30 May 2008 02:58:11 -0700 (PDT) Received: by 10.140.207.1 with HTTP; Fri, 30 May 2008 02:58:11 -0700 (PDT) Message-ID: <2e77fc10805300258t313e62e2p2c8ffd5e97959f85@mail.gmail.com> Date: Fri, 30 May 2008 12:58:11 +0300 From: "Niki Denev" Sender: ndenev@gmail.com To: Rudy In-Reply-To: <483FCC95.5060401@monkeybrains.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <483FCC95.5060401@monkeybrains.net> X-Google-Sender-Auth: 2b7fc6449ce6c6ce Cc: freebsd-net@freebsd.org Subject: Re: carp and vlan at the same time? 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, 30 May 2008 09:58:11 -0000 Hi Rudy, On Fri, May 30, 2008 at 12:44 PM, Rudy wrote: > > Dear NET, > > I have some questions! > > [1] vlan & carp > I have 10.3.1.1/24 10.3.2.1/25 and a 10.3.3.129/25 as gateway IPs each in > their own vlan. > How do I get CARP working, or are people using another method to get > failover working? > I'm currently using carp over VLANs over lagg and if works without problems. So I think you should have no problems running carp over vlan interfaces. > [2] carp > Is there a way to get around the requirement to already have an IP in the > same network as the IP you want to put on a carp device? I don't think > freevrrp required another IP... For example, this command fails: > # ifconfig carp1 vhid 31 advbase 1 pass TEST 10.3.3.1/24 > ifconfig: ioctl (SIOCAIFADDR): Can't assign requested address > > Unless I put a 10.3.3.2/24 IP on my em0, and then make the carp IP > 10.3.3.1/32. > Yes, you need IP's for each of the gateways, and one "virtual" IP for the carp interface. This is the way carp works. > [3] vlan > Final questions: is there any documentation on the "ifconfig em0.99 create" > syntax? > Didn't find the dot notation in the man page. Also, how do you set that up > in your rc.conf? > > cloned_interfaces="em0.99" # works.. clone is created > ifconfig_em0.99="10.99.0.1/24" # doesn't work... /etc/rc.d/netif start > em0.99 doesn't work... > You must use underscore instead of the dot. i.e. : ifconfig_em0_99="" should work. > > > Thanks in advance, > Rudy > Regards, Niki From owner-freebsd-net@FreeBSD.ORG Fri May 30 10:18:41 2008 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 7A4051065673 for ; Fri, 30 May 2008 10:18:41 +0000 (UTC) (envelope-from ndenev@gmail.com) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.229]) by mx1.freebsd.org (Postfix) with ESMTP id 43B238FC0A for ; Fri, 30 May 2008 10:18:41 +0000 (UTC) (envelope-from ndenev@gmail.com) Received: by rv-out-0506.google.com with SMTP id b25so4591272rvf.43 for ; Fri, 30 May 2008 03:18:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; 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=5m9dYheGI7Ju1h/xwwisQKeGrTTXdsgfGXGXA1o8t7A=; b=YRAOGd4Dfgfbqg4XVpOoIHcm5PuL9fcoaaSs3rrjZ2QyLkCwd5VACnxiYqNWFOf6pcFTIlm6GXqRI4t3KXX3Bqlr10bm6QwNDzSU1G6Ve6OytwbLfEyWwd5FpDZxKlvACjaJQGtbLDz7riW61QaY0swdSfZHNSGE2UXU3ckrLAs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=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=KgITlxeK7iAe9QVyjG0pmpwDOi6JS7mFfrZ0fHapCqNhX6lQUOLotlEbjZnTfnGWsGr6hbWdq0/NDDkOiqaIRw1wanEDbzQS8mlbhTohjfvfT/CrW04pAJIu2BevsSqkXirhhQI+Ib9sSZOle2iFj3FZ9TYU/DTs9swoW3HH2W8= Received: by 10.140.127.13 with SMTP id z13mr2899949rvc.142.1212142720771; Fri, 30 May 2008 03:18:40 -0700 (PDT) Received: by 10.140.207.1 with HTTP; Fri, 30 May 2008 03:18:40 -0700 (PDT) Message-ID: <2e77fc10805300318t1924fbf4t8d171b801bfd8a26@mail.gmail.com> Date: Fri, 30 May 2008 13:18:40 +0300 From: "Niki Denev" Sender: ndenev@gmail.com To: Rudy In-Reply-To: <483FD1B6.3010602@monkeybrains.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <483FCC95.5060401@monkeybrains.net> <2e77fc10805300258t313e62e2p2c8ffd5e97959f85@mail.gmail.com> <483FD1B6.3010602@monkeybrains.net> X-Google-Sender-Auth: 392d6ac03dae5cf2 Cc: freebsd-net@freebsd.org Subject: Re: carp and vlan at the same time? 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, 30 May 2008 10:18:41 -0000 On Fri, May 30, 2008 at 1:06 PM, Rudy wrote: > Niki Denev wrote: >> >> I'm currently using carp over VLANs over lagg and if works without >> problems. >> So I think you should have no problems running carp over vlan interfaces. > > Could you send me a sample configuration or point me to a resource that > covers carp over vlans? > > I'm interested in setting up a lagg as well... can you have your lagg > devices (em0 and em1 for instance) plug into different cisco switches and > then have those switches connected together? > > Thanks for you help! > Rudy > > > There is nothing special about carp over vlans, and something like this should work : cloned_interfaces="lagg0 vlan2 carp2" ifconfig_em0="up" ifconfig_em1="up" ifconfig_lagg0="laggport em0 laggport em1 laggproto failover up" ifconfig_vlan2="vlan 2 vlandev lagg0" ipv4_addrs_vlan2="192.168.0.2/24" ifconfig_carp2="vhid 1 pass PASS advskew 0 192.168.0.1/24 up" About using lagg to two different switches. Yes, you can do that, and this is the way I use it, but note that in this setup you must use "proto failover". lacp/load-balancing modes won't work. Also note that when using vlans over lagg you must NOT use the ifX.vlanY interface name style because of the problem that i mentioned here, in this thread : http://lists.freebsd.org/pipermail/freebsd-net/2008-May/018126.html P.S.: I'm including the list in my reply. Regards, Niki From owner-freebsd-net@FreeBSD.ORG Fri May 30 13:56:17 2008 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 9E99C106566C for ; Fri, 30 May 2008 13:56:17 +0000 (UTC) (envelope-from rihad@mail.ru) Received: from mx28.mail.ru (mx28.mail.ru [194.67.23.67]) by mx1.freebsd.org (Postfix) with ESMTP id 682428FC16 for ; Fri, 30 May 2008 13:56:17 +0000 (UTC) (envelope-from rihad@mail.ru) Received: from mx33.mail.ru (mx33.mail.ru [194.67.23.194]) by mx28.mail.ru (mPOP.Fallback_MX) with ESMTP id 7376931E3B9 for ; Fri, 30 May 2008 17:16:41 +0400 (MSD) Received: from [217.25.27.27] (port=30754 helo=[217.25.27.27]) by mx33.mail.ru with asmtp id 1K24TH-000B4Y-00 for freebsd-net@freebsd.org; Fri, 30 May 2008 17:16:39 +0400 Message-ID: <483FFE36.7050006@mail.ru> Date: Fri, 30 May 2008 18:16:38 +0500 From: rihad User-Agent: Icedove 1.5.0.14eol (X11/20080509) 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: Not detected X-Mras: OK Subject: if_var.h micro-optimization 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, 30 May 2008 13:56:17 -0000 Not sure if this is a worthwhile optimization? FreeBSD 7.0 --- /usr/src/sys/net/if_var.h 2007-12-07 09:46:08.000000000 +0400 +++ if_var.h 2008-05-30 18:10:25.000000000 +0500 @@ -282,7 +282,8 @@ if (m) { \ if (((ifq)->ifq_head = (m)->m_nextpkt) == NULL) \ (ifq)->ifq_tail = NULL; \ - (m)->m_nextpkt = NULL; \ + else \ + (m)->m_nextpkt = NULL; \ (ifq)->ifq_len--; \ } \ } while (0) From owner-freebsd-net@FreeBSD.ORG Fri May 30 14:36:02 2008 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 3637F106566B; Fri, 30 May 2008 14:36:02 +0000 (UTC) (envelope-from remko@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1ECA48FC1D; Fri, 30 May 2008 14:36:02 +0000 (UTC) (envelope-from remko@FreeBSD.org) Received: from freefall.freebsd.org (remko@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m4UEa1Zt061143; Fri, 30 May 2008 14:36:01 GMT (envelope-from remko@freefall.freebsd.org) Received: (from remko@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m4UEa1ST061139; Fri, 30 May 2008 14:36:01 GMT (envelope-from remko) Date: Fri, 30 May 2008 14:36:01 GMT Message-Id: <200805301436.m4UEa1ST061139@freefall.freebsd.org> To: remko@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-net@FreeBSD.org From: remko@FreeBSD.org Cc: Subject: Re: kern/124127: [msk] watchdog timeout (missed Tx interrupts) -- recovering 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, 30 May 2008 14:36:02 -0000 Synopsis: [msk] watchdog timeout (missed Tx interrupts) -- recovering Responsible-Changed-From-To: freebsd-bugs->freebsd-net Responsible-Changed-By: remko Responsible-Changed-When: Fri May 30 14:35:51 UTC 2008 Responsible-Changed-Why: Reassign to networking team. http://www.freebsd.org/cgi/query-pr.cgi?pr=124127 From owner-freebsd-net@FreeBSD.ORG Fri May 30 15:41:06 2008 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 465B31065679 for ; Fri, 30 May 2008 15:41:06 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id 32CD28FC1B for ; Fri, 30 May 2008 15:41:05 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from compute1.internal (compute1.internal [10.202.2.41]) by out1.messagingengine.com (Postfix) with ESMTP id 591B2111778; Fri, 30 May 2008 11:41:05 -0400 (EDT) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Fri, 30 May 2008 11:41:05 -0400 X-Sasl-enc: USwBYdOArlUJ0g5TkHhgPi8rtp4rg7pMCK4y2O59pzAK 1212162065 Received: from empiric.lon.incunabulum.net (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id D26922B443; Fri, 30 May 2008 11:41:04 -0400 (EDT) Message-ID: <4840200F.6070602@FreeBSD.org> Date: Fri, 30 May 2008 16:41:03 +0100 From: "Bruce M. Simpson" User-Agent: Thunderbird 2.0.0.14 (X11/20080514) MIME-Version: 1.0 To: rihad References: <483FFE36.7050006@mail.ru> In-Reply-To: <483FFE36.7050006@mail.ru> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: if_var.h micro-optimization 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, 30 May 2008 15:41:06 -0000 rihad wrote: > Not sure if this is a worthwhile optimization? FreeBSD 7.0 > > --- /usr/src/sys/net/if_var.h 2007-12-07 09:46:08.000000000 +0400 > +++ if_var.h 2008-05-30 18:10:25.000000000 +0500 > @@ -282,7 +282,8 @@ > if (m) { \ > if (((ifq)->ifq_head = (m)->m_nextpkt) == NULL) \ > (ifq)->ifq_tail = NULL; \ > - (m)->m_nextpkt = NULL; \ > + else \ > + (m)->m_nextpkt = NULL; \ > (ifq)->ifq_len--; \ > } \ > } while (0) It could save dirtying an L2 data cache line at the expense of taking a conditional branch, but to evaluate your suggested change requires a lot more data. Do you plan to do this? Given how _IF_DEQUEUE() is normally used the impact is likely negligible. From owner-freebsd-net@FreeBSD.ORG Fri May 30 16:00:42 2008 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 F2F2A106564A for ; Fri, 30 May 2008 16:00:42 +0000 (UTC) (envelope-from rihad@mail.ru) Received: from mx30.mail.ru (mx30.mail.ru [194.67.23.238]) by mx1.freebsd.org (Postfix) with ESMTP id C47368FC18 for ; Fri, 30 May 2008 16:00:42 +0000 (UTC) (envelope-from rihad@mail.ru) Received: from [217.25.27.27] (port=9175 helo=[217.25.27.27]) by mx30.mail.ru with asmtp id 1K2720-0004vC-00; Fri, 30 May 2008 20:00:41 +0400 Message-ID: <484024A5.6080109@mail.ru> Date: Fri, 30 May 2008 21:00:37 +0500 From: rihad User-Agent: Icedove 1.5.0.14eol (X11/20080509) MIME-Version: 1.0 To: "Bruce M. Simpson" References: <483FFE36.7050006@mail.ru> <4840200F.6070602@FreeBSD.org> In-Reply-To: <4840200F.6070602@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam: Not detected X-Mras: OK Cc: freebsd-net@freebsd.org Subject: Re: if_var.h micro-optimization 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, 30 May 2008 16:00:43 -0000 Bruce M. Simpson wrote: > rihad wrote: >> Not sure if this is a worthwhile optimization? FreeBSD 7.0 >> >> --- /usr/src/sys/net/if_var.h 2007-12-07 09:46:08.000000000 +0400 >> +++ if_var.h 2008-05-30 18:10:25.000000000 +0500 >> @@ -282,7 +282,8 @@ >> if (m) { \ >> if (((ifq)->ifq_head = (m)->m_nextpkt) == NULL) \ >> (ifq)->ifq_tail = NULL; \ >> - (m)->m_nextpkt = NULL; \ >> + else \ >> + (m)->m_nextpkt = NULL; \ >> (ifq)->ifq_len--; \ >> } \ >> } while (0) > > It could save dirtying an L2 data cache line at the expense of taking a > conditional branch, Whoa, why don't you take it easy on me :) I'm not that much into kernel (or hardware) programming. It's just that reading Ch. 3 of TCP/IP Illustrated Vol.2 by Rich Stevens got me digging around FreeBSD source code dealing with struct ifnet, where this piece of code caught my attention. > but to evaluate your suggested change requires a lot > more data. Do you plan to do this? Perhaps there is already a framework for trying out changes in -CURRENT and seeing their relative impact, so perhaps someone more experienced than I am can see to this? > Given how _IF_DEQUEUE() is normally > used the impact is likely negligible. Oh, I see. A nice first attempt of mine anyway ;) Thanks. From owner-freebsd-net@FreeBSD.ORG Fri May 30 17:00:56 2008 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 70D3F1065676 for ; Fri, 30 May 2008 17:00:56 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id 47A108FC18 for ; Fri, 30 May 2008 17:00:56 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from compute1.internal (compute1.internal [10.202.2.41]) by out1.messagingengine.com (Postfix) with ESMTP id 845741109B8; Fri, 30 May 2008 13:00:55 -0400 (EDT) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Fri, 30 May 2008 13:00:55 -0400 X-Sasl-enc: 9RpeTtzVrQw3gtyzsoDjMjvVKjx+NPyVKKNsGGq5CbUw 1212166855 Received: from empiric.lon.incunabulum.net (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id EFE7E2B46F; Fri, 30 May 2008 13:00:54 -0400 (EDT) Message-ID: <484032C5.3090601@FreeBSD.org> Date: Fri, 30 May 2008 18:00:53 +0100 From: "Bruce M. Simpson" User-Agent: Thunderbird 2.0.0.14 (X11/20080514) MIME-Version: 1.0 To: rihad References: <483FFE36.7050006@mail.ru> <4840200F.6070602@FreeBSD.org> <484024A5.6080109@mail.ru> In-Reply-To: <484024A5.6080109@mail.ru> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org Subject: Re: if_var.h micro-optimization 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, 30 May 2008 17:00:56 -0000 rihad wrote: > Bruce M. Simpson wrote: >> >> It could save dirtying an L2 data cache line at the expense of taking >> a conditional branch, > Whoa, why don't you take it easy on me :) I'm not that much into > kernel (or hardware) programming. It's just that reading Ch. 3 of > TCP/IP Illustrated Vol.2 by Rich Stevens got me digging around FreeBSD > source code dealing with struct ifnet, where this piece of code caught > my attention. It could be red, it could be yellow. It could be 620nm. Who am I to say what is and what isn't? ;-) There are bound to be situations where the change is a win, and even some where there isn't. Context is everything... >> but to evaluate your suggested change requires a lot more data. Do >> you plan to do this? > Perhaps there is already a framework for trying out changes in > -CURRENT and seeing their relative impact, so perhaps someone more > experienced than I am can see to this? All educators are busy right now, please hold and the next available dogma merchant will be with you as soon as possible. ;-) (Hint: No, there isn't a framework I know of, unless you wanna make one? Scientific process applies, reproducible results, etc. You could script stuff, figure out a way to run the kernel or parts of the network stack under Valgrind so it can be L2 profiled w/o running it on a real machine... or hack hwpmc so it can be done live.. anything is possible.) > >> Given how _IF_DEQUEUE() is normally used the impact is likely >> negligible. > Oh, I see. A nice first attempt of mine anyway ;) Thanks. Don't take my word for it, down that road lies darkness. Seriously though -- it's easy to introduce bugs doing things like this, if anything else it's an exercise in really thinking things through. cheers BMS From owner-freebsd-net@FreeBSD.ORG Sat May 31 11:40:50 2008 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 E00211065678 for ; Sat, 31 May 2008 11:40:50 +0000 (UTC) (envelope-from martin.fuchs@trendchiller.com) Received: from wp041.webpack.hosteurope.de (wp041.webpack.hosteurope.de [80.237.132.48]) by mx1.freebsd.org (Postfix) with ESMTP id 7005F8FC15 for ; Sat, 31 May 2008 11:40:49 +0000 (UTC) (envelope-from martin.fuchs@trendchiller.com) Received: from dslb-082-083-084-190.pools.arcor-ip.net ([82.83.84.190] helo=mail.trendchiller.com); authenticated by wp041.webpack.hosteurope.de running ExIM using esmtpsa (TLSv1:RC4-MD5:128) id 1K2PS4-0003yC-F1; Sat, 31 May 2008 13:40:48 +0200 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Sat, 31 May 2008 13:40:47 +0200 Message-ID: X-MimeOLE: Produced By Microsoft Exchange V6.5 In-Reply-To: <20080528003526.GB63696@cdnetworks.co.kr> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 Thread-Index: AcjAWs2b1jBKw+ggQGOrst3sKAYKzQCtmmjQ References: <20080528003526.GB63696@cdnetworks.co.kr> From: "Fuchs, Martin" To: , X-bounce-key: webpack.hosteurope.de; martin.fuchs@trendchiller.com; 1212234050; 86feee0d; Cc: freebsd-net@freebsd.org Subject: AW: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 31 May 2008 11:40:51 -0000 Ok, back again... sorry for letting you wait so long, but i had a lot to = do... Since there's no possibility to copy via putty i'm copying by hand... = hopefully there are not too many errors :-) ----- pciconf -lcv ... fxp0@pci0:1:4:0: class=3D0x020000 card=3D0x00708086 chip=3D0x12298086 = rev=3Dx010 hdr=3D0x00 class =3D network subclass =3D ethernet cap01[dc] =3D powerspec 2 supports D0 D1 D2 D3 current D0 fxp1@pci0:1:5:0: class=3D0x020000 card=3D0x00708086 chip=3D0x12298086 = rev=3Dx010 hdr=3D0x00 class =3D network subclass =3D ethernet cap01[dc] =3D powerspec 2 supports D0 D1 D2 D3 current D0 fxp2@pci0:1:8:0: class=3D0x020000 card=3D0x30118086 chip=3D0x103a8086 = rev=3Dx010 hdr=3D0x00 class =3D network subclass =3D ethernet cap01[dc] =3D powerspec 2 supports D0 D1 D2 D3 current D0 ----- dmesg shows for example: fxp0: link state changed to down fxp1: link state changed to down fxp2: link state changed to down fxp1: link state changed to up <- when I attach a network cable to a = switch ----- devinfo does not work... does not find the command (it's the freebsd = under pfSense) ----- vmstat -i interrupt total rate irq0: clk 1348688 999 irq5: ehci0 9043 6 irq8: rtc 172621 127 irq10: fxp1 91 0 irq12: fxp0 86 0 irq14: uhci0 ata0 792 0 irq15: ata1 2738 2 Total 1534059 1137 ----- Hope you can use this information ? Regards, Martin -----Urspr=FCngliche Nachricht----- Von: Pyun YongHyeon [mailto:pyunyh@gmail.com]=20 Gesendet: Mittwoch, 28. Mai 2008 02:35 An: Fuchs, Martin Cc: freebsd-net@freebsd.org Betreff: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and = 7.0 On Tue, May 27, 2008 at 08:22:56PM +0200, Fuchs, Martin wrote: > Hi ! >=20 > =20 >=20 > I am in contact with Chris Buechler because of pfSense and we he told = me > to contact Jack Vogel because of some Intel NIC driver problem. >=20 > =20 >=20 > FreeBSD detects them as fxp cards which is correct, but they do not = work > at all, i tried in ACPI and non-ACPI mode and with enabled ROM and > disabled ROM and everything, but I cannot get them working... >=20 > I always get "fxp0 timeout" or fxpX fort he corresponding card... I = read > it might have something to do with dynamic powersaving mode or else = but > have no clue how to deactivate, there's no option in the ROM for = this. >=20 > =20 >=20 > It's an appliance board (NexCom EBC575) with Intel 845GV / Intel = 82801DB > (ICH4)-chipset and 2 x Intel 82551QM (PRO/100 Network Connection), 1 = x > ICH4 integrated LAN Int on board. >=20 > =20 >=20 > Is there anything I can tot o make it work for now or is it a known > problem or else ? >=20 Since there are too many variants of fxp hardwares it would be even better to post the output of the following. o pciconf -lcv o dmesg output related with fxp(4) o devinfo -rv | grep oui o vmstat -i > =20 >=20 > Regards, >=20 > =20 >=20 > looking forward to hear from you, >=20 > =20 >=20 > Martin --=20 Regards, Pyun YongHyeon From owner-freebsd-net@FreeBSD.ORG Sat May 31 14:10:03 2008 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 DEA23106567C for ; Sat, 31 May 2008 14:10:03 +0000 (UTC) (envelope-from prvs=10374d3e62=killing@multiplay.co.uk) Received: from mail1.multiplay.co.uk (core6.multiplay.co.uk [85.236.96.23]) by mx1.freebsd.org (Postfix) with ESMTP id 64D278FC16 for ; Sat, 31 May 2008 14:10:03 +0000 (UTC) (envelope-from prvs=10374d3e62=killing@multiplay.co.uk) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=multiplay.co.uk; s=Multiplay; t=1212242067; x=1212846867; q=dns/txt; h=Received: Message-ID:From:To:Cc:References:Subject:Date:MIME-Version: Content-Type:Content-Transfer-Encoding; bh=LgNyZBQ79+roy/TNYHhEk eX3zuSk8r6wbS1vvcHSWEk=; b=fu4o+LEV21BJNalh0qgq0F43ZDgS+yrI+UepV wiAsbjzxro1/QMxVn+5vdHzVZPCIZSzn+IzEA2rqqzOro/7g6cfjLHNfzqnEGe6P wHK8pSRtZxzQejaz16oP3GGvgxl13RUb0C6TgNJnexiIXcYWTc2di/IFb4mnLJ50 yQDZLw= X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on mail1.multiplay.co.uk X-Spam-Level: X-Spam-Status: No, score=-14.7 required=6.0 tests=BAYES_00, FORGED_MUA_OUTLOOK, USER_IN_WHITELIST,USER_IN_WHITELIST_TO autolearn=ham version=3.1.8 Received: from r2d2 by mail1.multiplay.co.uk (MDaemon PRO v9.6.5) with ESMTP id md50005694159.msg for ; Sat, 31 May 2008 14:54:26 +0100 X-Authenticated-Sender: Killing@multiplay.co.uk X-MDRemoteIP: 212.135.219.182 X-Return-Path: prvs=10374d3e62=killing@multiplay.co.uk X-Envelope-From: killing@multiplay.co.uk X-MDaemon-Deliver-To: freebsd-net@freebsd.org Message-ID: <790B53EA02D24E268AAF73136DABB804@multiplay.co.uk> From: "Steven Hartland" To: "Fuchs, Martin" , , References: <20080528003526.GB63696@cdnetworks.co.kr> Date: Sat, 31 May 2008 14:54:24 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5512 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-Spam-Processed: mail1.multiplay.co.uk, Sat, 31 May 2008 14:54:26 +0100 X-MDAV-Processed: mail1.multiplay.co.uk, Sat, 31 May 2008 14:54:27 +0100 Cc: freebsd-net@freebsd.org Subject: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 31 May 2008 14:10:04 -0000 Erm copying via putty works just fine! ----- Original Message ----- From: "Fuchs, Martin" Since there's no possibility to copy via putty i'm copying by hand... hopefully there are not too many errors :-) ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk. From owner-freebsd-net@FreeBSD.ORG Sat May 31 14:50:27 2008 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 953BD1065685 for ; Sat, 31 May 2008 14:50:27 +0000 (UTC) (envelope-from daniel@skytek.it) Received: from mail.skytek.it (mail.skytek.it [217.194.176.18]) by mx1.freebsd.org (Postfix) with ESMTP id DFF838FC15 for ; Sat, 31 May 2008 14:50:26 +0000 (UTC) (envelope-from daniel@skytek.it) Received: from [192.168.30.100] ([192.168.30.100]) by mail.skytek.it (Skytek Mail Server v.11.47-p9) with ASMTP id LTD46925; Sat, 31 May 2008 16:50:25 +0200 Message-ID: <484165C1.3020903@skytek.it> Date: Sat, 31 May 2008 16:50:41 +0200 From: Daniel Ponticello User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Steven Hartland References: <20080528003526.GB63696@cdnetworks.co.kr> <790B53EA02D24E268AAF73136DABB804@multiplay.co.uk> In-Reply-To: <790B53EA02D24E268AAF73136DABB804@multiplay.co.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: pyunyh@gmail.com, freebsd-net@freebsd.org, "Fuchs, Martin" , jfvogel@gmail.com Subject: Re: Intel embedded NICs not working with FreeBSD 6.2, 6.3 and 7.0 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, 31 May 2008 14:50:27 -0000 Steven Hartland ha scritto: > Erm copying via putty works just fine! I guess he has to copy by hand not because putty doesn't allow copying, but because he has not network access to the box ;) > > ----- Original Message ----- From: "Fuchs, Martin" > > > Since there's no possibility to copy via putty i'm copying by hand... > hopefully there are not too many errors :-) > > -- WBR, Cordiali Saluti, Daniel Ponticello, VP of Engineering Network Coordination Centre of Skytek --- - For further information about our services: - Please visit our website at http://www.Skytek.it ---