From owner-svn-src-user@FreeBSD.ORG Sun Nov 2 00:14:55 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30734106564A; Sun, 2 Nov 2008 00:14:55 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1F33D8FC13; Sun, 2 Nov 2008 00:14:55 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA20EsnY023602; Sun, 2 Nov 2008 00:14:54 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA20EsDB023601; Sun, 2 Nov 2008 00:14:54 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200811020014.mA20EsDB023601@svn.freebsd.org> From: Edwin Groothuis Date: Sun, 2 Nov 2008 00:14:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184543 - user/edwin/releasenotes X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2008 00:14:55 -0000 Author: edwin Date: Sun Nov 2 00:14:54 2008 New Revision: 184543 URL: http://svn.freebsd.org/changeset/base/184543 Log: This is how it should look like at the end. Added: user/edwin/releasenotes/tzdata-overview Added: user/edwin/releasenotes/tzdata-overview ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/edwin/releasenotes/tzdata-overview Sun Nov 2 00:14:54 2008 (r184543) @@ -0,0 +1,27 @@ +contrib.xml: + + branchdate first last +head 2008i +stable-7 2007-10-10 2004g 2008i +stable-6 2005-07-11 2004g 2008i +stable-5 2004-08-18 2001b 2008b +stable-4 2001-11-15 2000d 2008i +releng-6.0 2005-10-09 2004g +releng-6.1 2006-04-30 2006g +releng-6.2 2006-11-14 2006n +releng-6.3 2007-11-24 2007k +releng-6.4 2008-10-02 2007i +releng-7.0 2007-12-22 2007i + + +release.ent: + prev current branch next +head 7.0 8.0 8 8.0 +stable-7 7.0 7.0 7 7.1 +stable-6 6.3 6.3 6 6.4 +releng-7.0 6.0 7.0 7 7.1 +releng-6.4 6.3 6.4 6.4 6.4 +releng-6.3 6.2 6.3 6.3 6.4 +releng-6.2 6.1 6.2 6.2 6.3 +releng-6.1 6.0 6.1 6.1 6.2 +releng-6.0 5.4 6.0 6 6.1 From owner-svn-src-user@FreeBSD.ORG Sun Nov 2 02:56:17 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BFAFC106564A; Sun, 2 Nov 2008 02:56:17 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A67C48FC12; Sun, 2 Nov 2008 02:56:17 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA22uHEN026788; Sun, 2 Nov 2008 02:56:17 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA22uG1i026765; Sun, 2 Nov 2008 02:56:16 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <200811020256.mA22uG1i026765@svn.freebsd.org> From: Warner Losh Date: Sun, 2 Nov 2008 02:56:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184549 - in user/imp/newcard/sys: dev/aic7xxx dev/ath dev/dc dev/firewire dev/fxp dev/if_ndis dev/ipw dev/malo dev/puc dev/ral dev/re dev/sio dev/sound/pci dev/uart dev/usb dev/vge dev... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2008 02:56:17 -0000 Author: imp Date: Sun Nov 2 02:56:16 2008 New Revision: 184549 URL: http://svn.freebsd.org/changeset/base/184549 Log: MFp4(newcard): remove explicit cardbus driver attachments. Since the pci/cardbus refactor, these have been unnecessary. Well, almost unnecessary. There's a bug somewhere in subr_bus.c that prevents kldload from working entirely correctly. Remove them from my tree in the hopes I'll fix that bug. Modified: user/imp/newcard/sys/dev/aic7xxx/ahc_pci.c user/imp/newcard/sys/dev/aic7xxx/ahd_pci.c user/imp/newcard/sys/dev/ath/if_ath_pci.c user/imp/newcard/sys/dev/dc/if_dc.c user/imp/newcard/sys/dev/firewire/fwohci_pci.c user/imp/newcard/sys/dev/fxp/if_fxp.c user/imp/newcard/sys/dev/if_ndis/if_ndis_pci.c user/imp/newcard/sys/dev/ipw/if_ipw.c user/imp/newcard/sys/dev/malo/if_malo_pci.c user/imp/newcard/sys/dev/puc/puc_pci.c user/imp/newcard/sys/dev/ral/if_ral_pci.c user/imp/newcard/sys/dev/re/if_re.c user/imp/newcard/sys/dev/sio/sio_pci.c user/imp/newcard/sys/dev/sound/pci/emu10k1.c user/imp/newcard/sys/dev/sound/pci/emu10kx.c user/imp/newcard/sys/dev/uart/uart_bus_pci.c user/imp/newcard/sys/dev/usb/ehci_pci.c user/imp/newcard/sys/dev/usb/ohci_pci.c user/imp/newcard/sys/dev/usb/uhci_pci.c user/imp/newcard/sys/dev/vge/if_vge.c user/imp/newcard/sys/dev/xl/if_xl.c user/imp/newcard/sys/pci/if_rl.c Modified: user/imp/newcard/sys/dev/aic7xxx/ahc_pci.c ============================================================================== --- user/imp/newcard/sys/dev/aic7xxx/ahc_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/aic7xxx/ahc_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -54,7 +54,6 @@ static driver_t ahc_pci_driver = { }; DRIVER_MODULE(ahc_pci, pci, ahc_pci_driver, ahc_devclass, 0, 0); -DRIVER_MODULE(ahc_pci, cardbus, ahc_pci_driver, ahc_devclass, 0, 0); MODULE_DEPEND(ahc_pci, ahc, 1, 1, 1); MODULE_VERSION(ahc_pci, 1); Modified: user/imp/newcard/sys/dev/aic7xxx/ahd_pci.c ============================================================================== --- user/imp/newcard/sys/dev/aic7xxx/ahd_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/aic7xxx/ahd_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -56,7 +56,6 @@ static driver_t ahd_pci_driver = { static devclass_t ahd_devclass; DRIVER_MODULE(ahd, pci, ahd_pci_driver, ahd_devclass, 0, 0); -DRIVER_MODULE(ahd, cardbus, ahd_pci_driver, ahd_devclass, 0, 0); MODULE_DEPEND(ahd_pci, ahd, 1, 1, 1); MODULE_VERSION(ahd_pci, 1); Modified: user/imp/newcard/sys/dev/ath/if_ath_pci.c ============================================================================== --- user/imp/newcard/sys/dev/ath/if_ath_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/ath/if_ath_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -252,7 +252,6 @@ static driver_t ath_pci_driver = { }; static devclass_t ath_devclass; DRIVER_MODULE(if_ath, pci, ath_pci_driver, ath_devclass, 0, 0); -DRIVER_MODULE(if_ath, cardbus, ath_pci_driver, ath_devclass, 0, 0); MODULE_VERSION(if_ath, 1); MODULE_DEPEND(if_ath, ath_hal, 1, 1, 1); /* Atheros HAL */ MODULE_DEPEND(if_ath, wlan, 1, 1, 1); /* 802.11 media layer */ Modified: user/imp/newcard/sys/dev/dc/if_dc.c ============================================================================== --- user/imp/newcard/sys/dev/dc/if_dc.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/dc/if_dc.c Sun Nov 2 02:56:16 2008 (r184549) @@ -331,7 +331,6 @@ static driver_t dc_driver = { static devclass_t dc_devclass; -DRIVER_MODULE(dc, cardbus, dc_driver, dc_devclass, 0, 0); DRIVER_MODULE(dc, pci, dc_driver, dc_devclass, 0, 0); DRIVER_MODULE(miibus, dc, miibus_driver, miibus_devclass, 0, 0); Modified: user/imp/newcard/sys/dev/firewire/fwohci_pci.c ============================================================================== --- user/imp/newcard/sys/dev/firewire/fwohci_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/firewire/fwohci_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -556,4 +556,3 @@ static devclass_t fwohci_devclass; MODULE_DEPEND(fwohci, firewire, 1, 1, 1); #endif DRIVER_MODULE(fwohci, pci, fwohci_driver, fwohci_devclass, 0, 0); -DRIVER_MODULE(fwohci, cardbus, fwohci_driver, fwohci_devclass, 0, 0); Modified: user/imp/newcard/sys/dev/fxp/if_fxp.c ============================================================================== --- user/imp/newcard/sys/dev/fxp/if_fxp.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/fxp/if_fxp.c Sun Nov 2 02:56:16 2008 (r184549) @@ -288,7 +288,6 @@ static driver_t fxp_driver = { static devclass_t fxp_devclass; DRIVER_MODULE(fxp, pci, fxp_driver, fxp_devclass, 0, 0); -DRIVER_MODULE(fxp, cardbus, fxp_driver, fxp_devclass, 0, 0); DRIVER_MODULE(miibus, fxp, miibus_driver, miibus_devclass, 0, 0); static struct resource_spec fxp_res_spec_mem[] = { Modified: user/imp/newcard/sys/dev/if_ndis/if_ndis_pci.c ============================================================================== --- user/imp/newcard/sys/dev/if_ndis/if_ndis_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/if_ndis/if_ndis_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -101,7 +101,6 @@ static driver_t ndis_driver = { static devclass_t ndis_devclass; DRIVER_MODULE(ndis, pci, ndis_driver, ndis_devclass, ndisdrv_modevent, 0); -DRIVER_MODULE(ndis, cardbus, ndis_driver, ndis_devclass, ndisdrv_modevent, 0); static int ndis_devcompare(bustype, t, dev) Modified: user/imp/newcard/sys/dev/ipw/if_ipw.c ============================================================================== --- user/imp/newcard/sys/dev/ipw/if_ipw.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/ipw/if_ipw.c Sun Nov 2 02:56:16 2008 (r184549) @@ -203,7 +203,6 @@ static driver_t ipw_driver = { static devclass_t ipw_devclass; DRIVER_MODULE(ipw, pci, ipw_driver, ipw_devclass, 0, 0); -DRIVER_MODULE(ipw, cardbus, ipw_driver, ipw_devclass, 0, 0); static int ipw_probe(device_t dev) Modified: user/imp/newcard/sys/dev/malo/if_malo_pci.c ============================================================================== --- user/imp/newcard/sys/dev/malo/if_malo_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/malo/if_malo_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -367,7 +367,6 @@ static driver_t malo_pci_driver = { static devclass_t malo_devclass; DRIVER_MODULE(if_malo, pci, malo_pci_driver, malo_devclass, 0, 0); -DRIVER_MODULE(if_malo, cardbus, malo_pci_driver, malo_devclass, 0, 0); MODULE_VERSION(if_malo, 1); MODULE_DEPEND(if_malo, wlan, 1, 1, 1); /* 802.11 media layer */ MODULE_DEPEND(if_malo, malofw_fw, 1, 1, 1); Modified: user/imp/newcard/sys/dev/puc/puc_pci.c ============================================================================== --- user/imp/newcard/sys/dev/puc/puc_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/puc/puc_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -144,4 +144,3 @@ static driver_t puc_pci_driver = { }; DRIVER_MODULE(puc, pci, puc_pci_driver, puc_devclass, 0, 0); -DRIVER_MODULE(puc, cardbus, puc_pci_driver, puc_devclass, 0, 0); Modified: user/imp/newcard/sys/dev/ral/if_ral_pci.c ============================================================================== --- user/imp/newcard/sys/dev/ral/if_ral_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/ral/if_ral_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -145,7 +145,6 @@ static driver_t ral_pci_driver = { static devclass_t ral_devclass; DRIVER_MODULE(ral, pci, ral_pci_driver, ral_devclass, 0, 0); -DRIVER_MODULE(ral, cardbus, ral_pci_driver, ral_devclass, 0, 0); static int ral_pci_probe(device_t dev) Modified: user/imp/newcard/sys/dev/re/if_re.c ============================================================================== --- user/imp/newcard/sys/dev/re/if_re.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/re/if_re.c Sun Nov 2 02:56:16 2008 (r184549) @@ -304,7 +304,6 @@ static driver_t re_driver = { static devclass_t re_devclass; DRIVER_MODULE(re, pci, re_driver, re_devclass, 0, 0); -DRIVER_MODULE(re, cardbus, re_driver, re_devclass, 0, 0); DRIVER_MODULE(miibus, re, miibus_driver, miibus_devclass, 0, 0); #define EE_SET(x) \ Modified: user/imp/newcard/sys/dev/sio/sio_pci.c ============================================================================== --- user/imp/newcard/sys/dev/sio/sio_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/sio/sio_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -155,4 +155,3 @@ sio_pci_probe(dev) } DRIVER_MODULE(sio, pci, sio_pci_driver, sio_devclass, 0, 0); -DRIVER_MODULE(sio, cardbus, sio_pci_driver, sio_devclass, 0, 0); Modified: user/imp/newcard/sys/dev/sound/pci/emu10k1.c ============================================================================== --- user/imp/newcard/sys/dev/sound/pci/emu10k1.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/sound/pci/emu10k1.c Sun Nov 2 02:56:16 2008 (r184549) @@ -2109,7 +2109,6 @@ static driver_t emu_driver = { }; DRIVER_MODULE(snd_emu10k1, pci, emu_driver, pcm_devclass, 0, 0); -DRIVER_MODULE(snd_emu10k1, cardbus, emu_driver, pcm_devclass, 0, 0); MODULE_DEPEND(snd_emu10k1, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER); MODULE_VERSION(snd_emu10k1, 1); MODULE_DEPEND(snd_emu10k1, midi, 1, 1, 1); Modified: user/imp/newcard/sys/dev/sound/pci/emu10kx.c ============================================================================== --- user/imp/newcard/sys/dev/sound/pci/emu10kx.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/sound/pci/emu10kx.c Sun Nov 2 02:56:16 2008 (r184549) @@ -3556,5 +3556,4 @@ emu_modevent(module_t mod __unused, int static devclass_t emu_devclass; DRIVER_MODULE(snd_emu10kx, pci, emu_driver, emu_devclass, emu_modevent, NULL); -DRIVER_MODULE(snd_emu10kx, cardbus, emu_driver, emu_devclass, emu_modevent, NULL); MODULE_VERSION(snd_emu10kx, SND_EMU10KX_PREFVER); Modified: user/imp/newcard/sys/dev/uart/uart_bus_pci.c ============================================================================== --- user/imp/newcard/sys/dev/uart/uart_bus_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/uart/uart_bus_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -158,4 +158,3 @@ uart_pci_probe(device_t dev) } DRIVER_MODULE(uart, pci, uart_pci_driver, uart_devclass, 0, 0); -DRIVER_MODULE(uart, cardbus, uart_pci_driver, uart_devclass, 0, 0); Modified: user/imp/newcard/sys/dev/usb/ehci_pci.c ============================================================================== --- user/imp/newcard/sys/dev/usb/ehci_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/usb/ehci_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -622,5 +622,4 @@ static driver_t ehci_driver = { static devclass_t ehci_devclass; DRIVER_MODULE(ehci, pci, ehci_driver, ehci_devclass, 0, 0); -DRIVER_MODULE(ehci, cardbus, ehci_driver, ehci_devclass, 0, 0); MODULE_DEPEND(ehci, usb, 1, 1, 1); Modified: user/imp/newcard/sys/dev/usb/ohci_pci.c ============================================================================== --- user/imp/newcard/sys/dev/usb/ohci_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/usb/ohci_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -407,5 +407,4 @@ static driver_t ohci_driver = { static devclass_t ohci_devclass; DRIVER_MODULE(ohci, pci, ohci_driver, ohci_devclass, 0, 0); -DRIVER_MODULE(ohci, cardbus, ohci_driver, ohci_devclass, 0, 0); MODULE_DEPEND(ohci, usb, 1, 1, 1); Modified: user/imp/newcard/sys/dev/usb/uhci_pci.c ============================================================================== --- user/imp/newcard/sys/dev/usb/uhci_pci.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/usb/uhci_pci.c Sun Nov 2 02:56:16 2008 (r184549) @@ -514,5 +514,4 @@ static driver_t uhci_driver = { static devclass_t uhci_devclass; DRIVER_MODULE(uhci, pci, uhci_driver, uhci_devclass, 0, 0); -DRIVER_MODULE(uhci, cardbus, uhci_driver, uhci_devclass, 0, 0); MODULE_DEPEND(uhci, usb, 1, 1, 1); Modified: user/imp/newcard/sys/dev/vge/if_vge.c ============================================================================== --- user/imp/newcard/sys/dev/vge/if_vge.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/vge/if_vge.c Sun Nov 2 02:56:16 2008 (r184549) @@ -221,7 +221,6 @@ static driver_t vge_driver = { static devclass_t vge_devclass; DRIVER_MODULE(vge, pci, vge_driver, vge_devclass, 0, 0); -DRIVER_MODULE(vge, cardbus, vge_driver, vge_devclass, 0, 0); DRIVER_MODULE(miibus, vge, miibus_driver, miibus_devclass, 0, 0); #ifdef VGE_EEPROM Modified: user/imp/newcard/sys/dev/xl/if_xl.c ============================================================================== --- user/imp/newcard/sys/dev/xl/if_xl.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/dev/xl/if_xl.c Sun Nov 2 02:56:16 2008 (r184549) @@ -314,7 +314,6 @@ static driver_t xl_driver = { static devclass_t xl_devclass; -DRIVER_MODULE(xl, cardbus, xl_driver, xl_devclass, 0, 0); DRIVER_MODULE(xl, pci, xl_driver, xl_devclass, 0, 0); DRIVER_MODULE(miibus, xl, miibus_driver, miibus_devclass, 0, 0); Modified: user/imp/newcard/sys/pci/if_rl.c ============================================================================== --- user/imp/newcard/sys/pci/if_rl.c Sun Nov 2 01:28:47 2008 (r184548) +++ user/imp/newcard/sys/pci/if_rl.c Sun Nov 2 02:56:16 2008 (r184549) @@ -261,7 +261,6 @@ static driver_t rl_driver = { static devclass_t rl_devclass; DRIVER_MODULE(rl, pci, rl_driver, rl_devclass, 0, 0); -DRIVER_MODULE(rl, cardbus, rl_driver, rl_devclass, 0, 0); DRIVER_MODULE(miibus, rl, miibus_driver, miibus_devclass, 0, 0); #define EE_SET(x) \ From owner-svn-src-user@FreeBSD.ORG Sun Nov 2 06:40:33 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ECFCC1065670; Sun, 2 Nov 2008 06:40:33 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DCB148FC16; Sun, 2 Nov 2008 06:40:33 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA26eXlB030966; Sun, 2 Nov 2008 06:40:33 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA26eXl3030964; Sun, 2 Nov 2008 06:40:33 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811020640.mA26eXl3030964@svn.freebsd.org> From: Kip Macy Date: Sun, 2 Nov 2008 06:40:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184553 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Nov 2008 06:40:34 -0000 Author: kmacy Date: Sun Nov 2 06:40:33 2008 New Revision: 184553 URL: http://svn.freebsd.org/changeset/base/184553 Log: add debugging to INVARIANTS Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c user/kmacy/HEAD_fast_xmit/sys/net/flowtable.h Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Sun Nov 2 03:02:56 2008 (r184552) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Sun Nov 2 06:40:33 2008 (r184553) @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -531,12 +532,20 @@ route_to_rtentry_info(struct route *ro, ri->ri_flags = rt->rt_flags; ri->ri_mtu = rt->rt_rmx.rmx_mtu; + if ((rt->rt_flags & RTF_GATEWAY) && !IN_MULTICAST(sin->sin_addr.s_addr)) memcpy(&ri->ri_dst, rt->rt_gateway, sizeof(struct sockaddr)); else memcpy(&ri->ri_dst, sin, sizeof(struct sockaddr_in)); if (desten) { +#ifdef INVARIANTS + int i; + + for (i = 0; i < 3; i++) + if (((uint16_t *)desten)[i] == 0) + panic("bad juju with the MAC addr dude"); +#endif memcpy(ri->ri_desten, desten, ETHER_ADDR_LEN); ri->ri_flags |= RTF_DESTEN_VALID; } @@ -594,7 +603,6 @@ flowtable_lookup(struct flowtable *ft, s hash = ipv4_flow_lookup_hash_internal(m, &ro, key, &flags, &proto); - /* * Ports are zero and this isn't a transmit cache * - thus not a protocol for which we need to keep @@ -640,6 +648,12 @@ uncached: if (ro.ro_rt == NULL) error = ENETUNREACH; else { +#ifdef INVARIANTS + log(LOG_DEBUG, "destination address=%s proto=%d hash=%x " + "rt_flags=%lx", + inet_ntoa(((struct sockaddr_in*)&ro.ro_dst)->sin_addr), proto, hash, + ro.ro_rt->rt_flags); +#endif if (ro.ro_rt->rt_flags & RTF_GATEWAY) error = arpresolve(ro.ro_rt->rt_ifp, ro.ro_rt, NULL, ro.ro_rt->rt_gateway, desten); Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.h ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.h Sun Nov 2 03:02:56 2008 (r184552) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.h Sun Nov 2 06:40:33 2008 (r184553) @@ -18,7 +18,7 @@ struct rtentry_info { int ri_flags; int ri_mtu; u_char ri_desten[ETHER_ADDR_LEN]; - struct sockaddr_in ri_dst; /* rt_gateway if RTF_GATEWAY */ + struct sockaddr ri_dst; /* rt_gateway if RTF_GATEWAY */ }; struct rtentry_info6 { From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 03:17:35 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75B81106567D; Mon, 3 Nov 2008 03:17:35 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 651058FC19; Mon, 3 Nov 2008 03:17:35 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA33HZwU055104; Mon, 3 Nov 2008 03:17:35 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA33HZpR055103; Mon, 3 Nov 2008 03:17:35 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811030317.mA33HZpR055103@svn.freebsd.org> From: Kip Macy Date: Mon, 3 Nov 2008 03:17:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184574 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 03:17:35 -0000 Author: kmacy Date: Mon Nov 3 03:17:35 2008 New Revision: 184574 URL: http://svn.freebsd.org/changeset/base/184574 Log: There is no point in repeatedly asking for a route to be cloned on lookup. Modified: user/kmacy/HEAD_fast_xmit/sys/net/radix_mpath.c Modified: user/kmacy/HEAD_fast_xmit/sys/net/radix_mpath.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/radix_mpath.c Mon Nov 3 00:53:54 2008 (r184573) +++ user/kmacy/HEAD_fast_xmit/sys/net/radix_mpath.c Mon Nov 3 03:17:35 2008 (r184574) @@ -266,7 +266,7 @@ rtalloc_mpath_fib(struct route *ro, u_in */ if (ro->ro_rt && ro->ro_rt->rt_ifp && (ro->ro_rt->rt_flags & RTF_UP)) return; /* XXX */ - ro->ro_rt = rtalloc1_fib(&ro->ro_dst, 1, 0UL, fibnum); + ro->ro_rt = rtalloc1_fib(&ro->ro_dst, 1, RTF_CLONING, fibnum); /* if the route does not exist or it is not multipath, don't care */ if (ro->ro_rt == NULL) From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 03:17:57 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D2151065752; Mon, 3 Nov 2008 03:17:57 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 12EA08FC1C; Mon, 3 Nov 2008 03:17:57 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA33HuYp055145; Mon, 3 Nov 2008 03:17:56 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA33HuAH055144; Mon, 3 Nov 2008 03:17:56 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811030317.mA33HuAH055144@svn.freebsd.org> From: Kip Macy Date: Mon, 3 Nov 2008 03:17:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184575 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 03:17:57 -0000 Author: kmacy Date: Mon Nov 3 03:17:56 2008 New Revision: 184575 URL: http://svn.freebsd.org/changeset/base/184575 Log: add DIAGNOSTICs Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Mon Nov 3 03:17:35 2008 (r184574) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Mon Nov 3 03:17:56 2008 (r184575) @@ -539,13 +539,6 @@ route_to_rtentry_info(struct route *ro, memcpy(&ri->ri_dst, sin, sizeof(struct sockaddr_in)); if (desten) { -#ifdef INVARIANTS - int i; - - for (i = 0; i < 3; i++) - if (((uint16_t *)desten)[i] == 0) - panic("bad juju with the MAC addr dude"); -#endif memcpy(ri->ri_desten, desten, ETHER_ADDR_LEN); ri->ri_flags |= RTF_DESTEN_VALID; } @@ -648,18 +641,29 @@ uncached: if (ro.ro_rt == NULL) error = ENETUNREACH; else { -#ifdef INVARIANTS - log(LOG_DEBUG, "destination address=%s proto=%d hash=%x " - "rt_flags=%lx", - inet_ntoa(((struct sockaddr_in*)&ro.ro_dst)->sin_addr), proto, hash, - ro.ro_rt->rt_flags); -#endif if (ro.ro_rt->rt_flags & RTF_GATEWAY) error = arpresolve(ro.ro_rt->rt_ifp, ro.ro_rt, NULL, ro.ro_rt->rt_gateway, desten); - else + else error = arpresolve(ro.ro_rt->rt_ifp, ro.ro_rt, NULL, &ro.ro_dst, desten); +#ifdef DIAGNOSTICS + log(LOG_WARNING, "dst=%s gw=%s proto=%d hash=%x " + "rt_flags=%lx error=%d\n", + inet_ntoa(((struct sockaddr_in*)&ro.ro_dst)->sin_addr), + inet_ntoa(((struct sockaddr_in*)&ro.ro_rt->rt_gateway)->sin_addr), + proto, hash, ro.ro_rt->rt_flags, error); + + if (!error) + log(LOG_WARNING, "desten=%x:%x:%x:%x:%x:%x", + desten[0], desten[1], desten[2], desten[3], + desten[4], desten[5]); + + /* XXXX expire needs to be set to zero or some value + greater than uptime :/ + */ + +#endif route_to_rtentry_info(&ro, error ? NULL : desten, ri); if (error == 0 && cache) From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 03:18:29 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6DE8106564A; Mon, 3 Nov 2008 03:18:29 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D60118FC16; Mon, 3 Nov 2008 03:18:29 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA33ITkF055198; Mon, 3 Nov 2008 03:18:29 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA33ITq1055197; Mon, 3 Nov 2008 03:18:29 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811030318.mA33ITq1055197@svn.freebsd.org> From: Kip Macy Date: Mon, 3 Nov 2008 03:18:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184576 - user/kmacy/HEAD_fast_xmit/sys/netinet X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 03:18:30 -0000 Author: kmacy Date: Mon Nov 3 03:18:29 2008 New Revision: 184576 URL: http://svn.freebsd.org/changeset/base/184576 Log: Be more parsimonious about route cloning. Modified: user/kmacy/HEAD_fast_xmit/sys/netinet/if_ether.c Modified: user/kmacy/HEAD_fast_xmit/sys/netinet/if_ether.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/netinet/if_ether.c Mon Nov 3 03:17:56 2008 (r184575) +++ user/kmacy/HEAD_fast_xmit/sys/netinet/if_ether.c Mon Nov 3 03:18:29 2008 (r184576) @@ -419,7 +419,11 @@ arpresolve(struct ifnet *ifp, struct rte * come from the local interface should have a ll entry. * It may be incomplete but that's ok. */ - rt = arplookup(SIN(dst)->sin_addr.s_addr, 1, 0, fibnum); + /* + * Only create a cloned route if one doesn't exist for this + * address + */ + rt = arplookup(SIN(dst)->sin_addr.s_addr, (rt != NULL), 0, fibnum); if (rt == NULL) { log(LOG_DEBUG, "arpresolve: can't allocate route for %s\n", From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 05:53:10 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ABF53106564A; Mon, 3 Nov 2008 05:53:10 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9AACE8FC2C; Mon, 3 Nov 2008 05:53:10 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA35rAcx058012; Mon, 3 Nov 2008 05:53:10 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA35rATx058011; Mon, 3 Nov 2008 05:53:10 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811030553.mA35rATx058011@svn.freebsd.org> From: Kip Macy Date: Mon, 3 Nov 2008 05:53:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184580 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 05:53:10 -0000 Author: kmacy Date: Mon Nov 3 05:53:10 2008 New Revision: 184580 URL: http://svn.freebsd.org/changeset/base/184580 Log: add sport and dport to logging don't take dport in to account for TCP Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Mon Nov 3 05:52:43 2008 (r184579) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Mon Nov 3 05:53:10 2008 (r184580) @@ -334,6 +334,7 @@ ipv4_flow_lookup_hash_internal(struct mb struct ip *ip = mtod(m, struct ip *); uint8_t proto = ip->ip_p; int iphlen = ip->ip_hl << 2; + uint32_t hash; struct sockaddr_in *sin; struct tcphdr *th; struct udphdr *uh; @@ -354,8 +355,8 @@ ipv4_flow_lookup_hash_internal(struct mb switch (proto) { case IPPROTO_TCP: th = (struct tcphdr *)((caddr_t)ip + iphlen); - sport = th->th_sport; - dport = th->th_dport; + sport = ntohs(th->th_sport); + dport = ntohs(th->th_dport); *flags |= th->th_flags; if (*flags & TH_RST) *flags |= FL_STALE; @@ -387,10 +388,13 @@ ipv4_flow_lookup_hash_internal(struct mb proto = sport = dport = 0; ((uint16_t *)key)[0] = sport; - ((uint16_t *)key)[1] = dport; +#if 0 + ((uint16_t *)key)[1] = dport; +#endif + hash = hashword(key, 3, hashjitter + proto); + CTR5(KTR_SPARE3, "proto=%d hash=%x key[0]=%x sport=%d dport=%d\n", proto, hash, key[0], sport, dport); - return (hashword(key, 3, hashjitter + proto)); - + return (hash); noop: *protop = proto; return (0); @@ -596,6 +600,7 @@ flowtable_lookup(struct flowtable *ft, s hash = ipv4_flow_lookup_hash_internal(m, &ro, key, &flags, &proto); + /* * Ports are zero and this isn't a transmit cache * - thus not a protocol for which we need to keep From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 06:25:02 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95C8F106567F; Mon, 3 Nov 2008 06:25:02 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8461F8FC1E; Mon, 3 Nov 2008 06:25:02 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA36P2Fs058626; Mon, 3 Nov 2008 06:25:02 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA36P2dc058625; Mon, 3 Nov 2008 06:25:02 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811030625.mA36P2dc058625@svn.freebsd.org> From: Kip Macy Date: Mon, 3 Nov 2008 06:25:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184582 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 06:25:02 -0000 Author: kmacy Date: Mon Nov 3 06:25:02 2008 New Revision: 184582 URL: http://svn.freebsd.org/changeset/base/184582 Log: dport is not the problem that netperf is seeing - the issue is with the control connection and the data connection going to different hosts - something that is intrinsic to hashing ports Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Mon Nov 3 06:06:22 2008 (r184581) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Mon Nov 3 06:25:02 2008 (r184582) @@ -388,9 +388,8 @@ ipv4_flow_lookup_hash_internal(struct mb proto = sport = dport = 0; ((uint16_t *)key)[0] = sport; -#if 0 ((uint16_t *)key)[1] = dport; -#endif + hash = hashword(key, 3, hashjitter + proto); CTR5(KTR_SPARE3, "proto=%d hash=%x key[0]=%x sport=%d dport=%d\n", proto, hash, key[0], sport, dport); From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 06:26:27 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DEC31065680; Mon, 3 Nov 2008 06:26:27 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F08DB8FC0A; Mon, 3 Nov 2008 06:26:26 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA36QQPr058682; Mon, 3 Nov 2008 06:26:26 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA36QQhg058681; Mon, 3 Nov 2008 06:26:26 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811030626.mA36QQhg058681@svn.freebsd.org> From: Kip Macy Date: Mon, 3 Nov 2008 06:26:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184583 - user/kmacy/HEAD_fast_xmit/sys/netinet X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 06:26:27 -0000 Author: kmacy Date: Mon Nov 3 06:26:26 2008 New Revision: 184583 URL: http://svn.freebsd.org/changeset/base/184583 Log: make sure RADIX_MPATH define gets pulled in Modified: user/kmacy/HEAD_fast_xmit/sys/netinet/ip_input.c Modified: user/kmacy/HEAD_fast_xmit/sys/netinet/ip_input.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/netinet/ip_input.c Mon Nov 3 06:25:02 2008 (r184582) +++ user/kmacy/HEAD_fast_xmit/sys/netinet/ip_input.c Mon Nov 3 06:26:26 2008 (r184583) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include "opt_ipsec.h" #include "opt_mac.h" #include "opt_carp.h" +#include "opt_mpath.h" #include #include From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 18:45:46 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5F9EC1065673; Mon, 3 Nov 2008 18:45:46 +0000 (UTC) (envelope-from john@baldwin.cx) Received: from server.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id F1C7F8FC1A; Mon, 3 Nov 2008 18:45:45 +0000 (UTC) (envelope-from john@baldwin.cx) Received: from localhost.corp.yahoo.com (john@localhost [IPv6:::1]) (authenticated bits=0) by server.baldwin.cx (8.14.3/8.14.3) with ESMTP id mA3IjdRO091877; Mon, 3 Nov 2008 13:45:40 -0500 (EST) (envelope-from john@baldwin.cx) From: John Baldwin To: Edwin Groothuis Date: Mon, 3 Nov 2008 12:31:36 -0500 User-Agent: KMail/1.9.7 References: <200811012211.mA1MBAQI020235@svn.freebsd.org> In-Reply-To: <200811012211.mA1MBAQI020235@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200811031231.37264.john@baldwin.cx> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [IPv6:::1]); Mon, 03 Nov 2008 13:45:40 -0500 (EST) X-Virus-Scanned: ClamAV 0.93.1/8559/Mon Nov 3 11:41:26 2008 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00,NO_RELAYS autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r184537 - user/edwin/releasenotes X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 18:45:46 -0000 On Saturday 01 November 2008 06:11:09 pm Edwin Groothuis wrote: > Author: edwin > Date: Sat Nov 1 22:11:09 2008 > New Revision: 184537 > URL: http://svn.freebsd.org/changeset/base/184537 > > Log: > notice 2008i > > Modified: > user/edwin/releasenotes/contrib.xml > > Modified: user/edwin/releasenotes/contrib.xml > ============================================================================== > --- user/edwin/releasenotes/contrib.xml Sat Nov 1 21:56:45 2008 (r184536) > +++ user/edwin/releasenotes/contrib.xml Sat Nov 1 22:11:09 2008 (r184537) > @@ -107,12 +107,21 @@ > ]]> > > > + > + 2008-10-28 > + 2008-10-28 > + 2008-10-28 > + 2008-10-28 > + 2008-10-28 > + 2008-10-29 > + Is it really worthwhile to note merges to a release branch prior to the actual release being cut? (6.4 in this case) -- John Baldwin From owner-svn-src-user@FreeBSD.ORG Mon Nov 3 18:45:55 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 866C21065773; Mon, 3 Nov 2008 18:45:52 +0000 (UTC) (envelope-from john@baldwin.cx) Received: from server.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id AEB048FC14; Mon, 3 Nov 2008 18:45:51 +0000 (UTC) (envelope-from john@baldwin.cx) Received: from localhost.corp.yahoo.com (john@localhost [IPv6:::1]) (authenticated bits=0) by server.baldwin.cx (8.14.3/8.14.3) with ESMTP id mA3IjdRP091877; Mon, 3 Nov 2008 13:45:45 -0500 (EST) (envelope-from john@baldwin.cx) From: John Baldwin To: Warner Losh Date: Mon, 3 Nov 2008 12:47:02 -0500 User-Agent: KMail/1.9.7 References: <200811020256.mA22uG1i026765@svn.freebsd.org> In-Reply-To: <200811020256.mA22uG1i026765@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200811031247.02826.john@baldwin.cx> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [IPv6:::1]); Mon, 03 Nov 2008 13:45:45 -0500 (EST) X-Virus-Scanned: ClamAV 0.93.1/8559/Mon Nov 3 11:41:26 2008 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00,NO_RELAYS autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r184549 - in user/imp/newcard/sys: dev/aic7xxx dev/ath dev/dc dev/firewire dev/fxp dev/if_ndis dev/ipw dev/malo dev/puc dev/ral dev/re dev/sio dev/sound/pci dev/uart dev/usb dev/vge dev... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2008 18:45:55 -0000 On Saturday 01 November 2008 10:56:16 pm Warner Losh wrote: > Author: imp > Date: Sun Nov 2 02:56:16 2008 > New Revision: 184549 > URL: http://svn.freebsd.org/changeset/base/184549 > > Log: > MFp4(newcard): remove explicit cardbus driver attachments. > > Since the pci/cardbus refactor, these have been unnecessary. Well, > almost unnecessary. There's a bug somewhere in subr_bus.c that > prevents kldload from working entirely correctly. Remove them from my > tree in the hopes I'll fix that bug. The problem is that in device_probe_child() we only use the drivers attached to the devclass of the bus device. Probably what you would need to change would be to make a 'devclass_probe_child()' that takes a devclass and tries all the drivers for that devclass (basically, the first for-loop in device_probe_child()). Then I would change device_probe_child() to try any base devclasses the driver inherits from. You can find these in the "baseclasses" array in the 'driver_t' object. However, there are several edge cases to consider. For example, do you only try the "base" devclasses if none of the drivers in the main devclass match? Or do you do always do a full walk of all the devclasses to find the best driver? That is, suppose I have a driver hung off of "cardbus" that returns BUS_PROBE_GENERIC and a driver hung off of "pci" that returns BUS_PROBE_DEFAULT? I think I'd actually be inclined to prefer the "cardbus" driver. Thus, I would do one pass of the 'main' devclass and only walk the 'baseclasses' if I didn't get a matching device. For the walk of the baseclasses the same question applies. For that I'm less sure, though it is probably easier to implement a strategy where you stop the first time you find a devclass with a matching driver. -- John Baldwin From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 03:47:20 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14CAA1065680; Tue, 4 Nov 2008 03:47:20 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 044158FC13; Tue, 4 Nov 2008 03:47:20 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA43lJ6D085375; Tue, 4 Nov 2008 03:47:19 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA43lJVv085374; Tue, 4 Nov 2008 03:47:19 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040347.mA43lJVv085374@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 03:47:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184613 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 03:47:20 -0000 Author: kmacy Date: Tue Nov 4 03:47:19 2008 New Revision: 184613 URL: http://svn.freebsd.org/changeset/base/184613 Log: don't leak rtentry references on insert failure Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Tue Nov 4 03:42:01 2008 (r184612) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Tue Nov 4 03:47:19 2008 (r184613) @@ -483,7 +483,7 @@ flowtable_set_hashkey(struct flowtable * hashkey[i] = key[i]; } -static void +static int flowtable_insert(struct flowtable *ft, uint32_t hash, uint32_t *key, uint8_t proto, struct rtentry *rt, u_char *desten, uint16_t flags) { @@ -505,7 +505,7 @@ retry: } FL_ENTRY_UNLOCK(ft, hash); if (!stale) - return; + return (ENOSPC); RTFREE(rt0); /* * We might end up on a different cpu @@ -522,6 +522,7 @@ retry: fle->f_uptime = time_uptime; memcpy(fle->f_desten, desten, ETHER_ADDR_LEN); FL_ENTRY_UNLOCK(ft, hash); + return (0); } void @@ -670,10 +671,12 @@ uncached: #endif route_to_rtentry_info(&ro, error ? NULL : desten, ri); - if (error == 0 && cache) - flowtable_insert(ft, hash, key, proto, + if (error == 0 && cache) { + error = flowtable_insert(ft, hash, key, proto, ro.ro_rt, desten, flags); - else + + } + if (error || !cache) RTFREE(ro.ro_rt); error = 0; } From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 03:53:56 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C44C1065686; Tue, 4 Nov 2008 03:53:56 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 72EA48FC08; Tue, 4 Nov 2008 03:53:56 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA43rult085520; Tue, 4 Nov 2008 03:53:56 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA43rumg085519; Tue, 4 Nov 2008 03:53:56 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040353.mA43rumg085519@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 03:53:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184614 - user/kmacy/HEAD_multi_tx X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 03:53:56 -0000 Author: kmacy Date: Tue Nov 4 03:53:56 2008 New Revision: 184614 URL: http://svn.freebsd.org/changeset/base/184614 Log: Create new branch for importing ifnet multiple transmit queue support Added: user/kmacy/HEAD_multi_tx/ - copied from r184613, user/kmacy/HEAD_fast_xmit/ From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 06:24:46 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96EFA1065679; Tue, 4 Nov 2008 06:24:46 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 85C8C8FC18; Tue, 4 Nov 2008 06:24:46 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA46OkG1088269; Tue, 4 Nov 2008 06:24:46 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA46Okq1088268; Tue, 4 Nov 2008 06:24:46 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040624.mA46Okq1088268@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 06:24:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184615 - user/kmacy/HEAD_multi_tx/sys/sys X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 06:24:46 -0000 Author: kmacy Date: Tue Nov 4 06:24:46 2008 New Revision: 184615 URL: http://svn.freebsd.org/changeset/base/184615 Log: fix ordering to avoid padding on 64-bit and add rss_hash field Modified: user/kmacy/HEAD_multi_tx/sys/sys/mbuf.h Modified: user/kmacy/HEAD_multi_tx/sys/sys/mbuf.h ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/sys/mbuf.h Tue Nov 4 03:53:56 2008 (r184614) +++ user/kmacy/HEAD_multi_tx/sys/sys/mbuf.h Tue Nov 4 06:24:46 2008 (r184615) @@ -121,6 +121,7 @@ struct pkthdr { u_int16_t tso_segsz; /* TSO segment size */ u_int16_t ether_vtag; /* Ethernet 802.1p+q vlan tag */ SLIST_HEAD(packet_tags, m_tag) tags; /* list of packet tags */ + uint32_t rss_hash; /* hash identifying the flow */ }; /* @@ -133,8 +134,8 @@ struct m_ext { (void *, void *); void *ext_arg1; /* optional argument pointer */ void *ext_arg2; /* optional argument pointer */ - u_int ext_size; /* size of buffer, for ext_free */ volatile u_int *ref_cnt; /* pointer to ref count info */ + u_int ext_size; /* size of buffer, for ext_free */ int ext_type; /* type of external storage */ }; From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 06:25:32 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C8B6106568B; Tue, 4 Nov 2008 06:25:32 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BA9D8FC16; Tue, 4 Nov 2008 06:25:32 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA46PW4F088325; Tue, 4 Nov 2008 06:25:32 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA46PWp9088324; Tue, 4 Nov 2008 06:25:32 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040625.mA46PWp9088324@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 06:25:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184616 - user/kmacy/HEAD_multi_tx/sys/kern X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 06:25:32 -0000 Author: kmacy Date: Tue Nov 4 06:25:32 2008 New Revision: 184616 URL: http://svn.freebsd.org/changeset/base/184616 Log: initialize in order of entries add init for rss_hash Modified: user/kmacy/HEAD_multi_tx/sys/kern/kern_mbuf.c Modified: user/kmacy/HEAD_multi_tx/sys/kern/kern_mbuf.c ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/kern/kern_mbuf.c Tue Nov 4 06:24:46 2008 (r184615) +++ user/kmacy/HEAD_multi_tx/sys/kern/kern_mbuf.c Tue Nov 4 06:25:32 2008 (r184616) @@ -409,13 +409,14 @@ mb_ctor_mbuf(void *mem, int size, void * if (flags & M_PKTHDR) { m->m_data = m->m_pktdat; m->m_pkthdr.rcvif = NULL; - m->m_pkthdr.len = 0; m->m_pkthdr.header = NULL; + m->m_pkthdr.len = 0; m->m_pkthdr.csum_flags = 0; m->m_pkthdr.csum_data = 0; m->m_pkthdr.tso_segsz = 0; m->m_pkthdr.ether_vtag = 0; SLIST_INIT(&m->m_pkthdr.tags); + m->m_pkthdr.rss_hash = 0; #ifdef MAC /* If the label init fails, fail the alloc */ error = mac_mbuf_init(m, how); From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 06:27:48 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB0EA1065673; Tue, 4 Nov 2008 06:27:48 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B97BC8FC1F; Tue, 4 Nov 2008 06:27:48 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA46RmcL088406; Tue, 4 Nov 2008 06:27:48 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA46RmtT088404; Tue, 4 Nov 2008 06:27:48 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040627.mA46RmtT088404@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 06:27:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184617 - user/kmacy/HEAD_multi_tx/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 06:27:48 -0000 Author: kmacy Date: Tue Nov 4 06:27:48 2008 New Revision: 184617 URL: http://svn.freebsd.org/changeset/base/184617 Log: add if_start_mbuf interface to ifnet add initialization in if_attach using default function which does the same as IFQ_HANDOFF Modified: user/kmacy/HEAD_multi_tx/sys/net/if.c user/kmacy/HEAD_multi_tx/sys/net/if_var.h Modified: user/kmacy/HEAD_multi_tx/sys/net/if.c ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/net/if.c Tue Nov 4 06:25:32 2008 (r184616) +++ user/kmacy/HEAD_multi_tx/sys/net/if.c Tue Nov 4 06:27:48 2008 (r184617) @@ -125,6 +125,8 @@ static void if_start_deferred(void *cont static void do_link_state_change(void *, int); static int if_getgroup(struct ifgroupreq *, struct ifnet *); static int if_getgroupmembers(struct ifgroupreq *); +static int if_start_mbuf(struct ifnet *ifp, struct mbuf *m); + #ifdef INET6 /* * XXX: declare here to avoid to include many inet6 related files.. @@ -518,7 +520,7 @@ if_attach(struct ifnet *ifp) getmicrotime(&ifp->if_lastchange); ifp->if_data.ifi_epoch = time_uptime; ifp->if_data.ifi_datalen = sizeof(struct if_data); - + ifp->if_start_mbuf = if_start_mbuf; #ifdef MAC mac_ifnet_init(ifp); mac_ifnet_create(ifp); @@ -2797,6 +2799,19 @@ if_start_deferred(void *context, int pen (ifp->if_start)(ifp); } +/* + * Backwards compatibility interface for drivers + * that have not implemented it + */ +static int +if_start_mbuf(struct ifnet *ifp, struct mbuf *m) +{ + int error; + + IFQ_HANDOFF(ifp, m, error); + return (error); +} + int if_handoff(struct ifqueue *ifq, struct mbuf *m, struct ifnet *ifp, int adjust) { Modified: user/kmacy/HEAD_multi_tx/sys/net/if_var.h ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/net/if_var.h Tue Nov 4 06:25:32 2008 (r184616) +++ user/kmacy/HEAD_multi_tx/sys/net/if_var.h Tue Nov 4 06:27:48 2008 (r184617) @@ -186,7 +186,9 @@ struct ifnet { /* protected by if_addr_mtx */ void *if_pf_kif; void *if_lagg; /* lagg glue */ - void *if_pspare[10]; /* multiq/TOE 3; vimage 3; general use 4 */ + void *if_pspare[9]; /* multiq/TOE 3; vimage 3; general use 4 */ + int (*if_start_mbuf) /* initiate output routine */ + (struct ifnet *, struct mbuf *); int if_ispare[2]; /* general use 2 */ }; From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 06:29:16 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18EEA1065676; Tue, 4 Nov 2008 06:29:16 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 07E9A8FC24; Tue, 4 Nov 2008 06:29:16 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA46TFUZ088470; Tue, 4 Nov 2008 06:29:15 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA46TF6u088469; Tue, 4 Nov 2008 06:29:15 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040629.mA46TF6u088469@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 06:29:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184618 - user/kmacy/HEAD_multi_tx/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 06:29:16 -0000 Author: kmacy Date: Tue Nov 4 06:29:15 2008 New Revision: 184618 URL: http://svn.freebsd.org/changeset/base/184618 Log: set rss_hash in mbuf if it isn't set Modified: user/kmacy/HEAD_multi_tx/sys/net/flowtable.c Modified: user/kmacy/HEAD_multi_tx/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/net/flowtable.c Tue Nov 4 06:27:48 2008 (r184617) +++ user/kmacy/HEAD_multi_tx/sys/net/flowtable.c Tue Nov 4 06:29:15 2008 (r184618) @@ -600,7 +600,8 @@ flowtable_lookup(struct flowtable *ft, s hash = ipv4_flow_lookup_hash_internal(m, &ro, key, &flags, &proto); - + if (m->m_pkthdr.rss_hash == 0) + m->m_pkthdr.rss_hash = hash; /* * Ports are zero and this isn't a transmit cache * - thus not a protocol for which we need to keep @@ -611,7 +612,6 @@ flowtable_lookup(struct flowtable *ft, s cache = 0; goto uncached; } - FL_ENTRY_LOCK(ft, hash); fle = FL_ENTRY(ft, hash); if (fle->f_fhash == hash From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 06:30:20 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94A6F10656E4; Tue, 4 Nov 2008 06:30:20 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 83DED8FC21; Tue, 4 Nov 2008 06:30:20 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA46UKxP088530; Tue, 4 Nov 2008 06:30:20 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA46UKBm088529; Tue, 4 Nov 2008 06:30:20 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040630.mA46UKBm088529@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 06:30:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184619 - user/kmacy/HEAD_multi_tx/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 06:30:20 -0000 Author: kmacy Date: Tue Nov 4 06:30:20 2008 New Revision: 184619 URL: http://svn.freebsd.org/changeset/base/184619 Log: replace IFQ_HANDOFF in ether_output_frame with call to ifp's if_start_mbuf Modified: user/kmacy/HEAD_multi_tx/sys/net/if_ethersubr.c Modified: user/kmacy/HEAD_multi_tx/sys/net/if_ethersubr.c ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/net/if_ethersubr.c Tue Nov 4 06:29:15 2008 (r184618) +++ user/kmacy/HEAD_multi_tx/sys/net/if_ethersubr.c Tue Nov 4 06:30:20 2008 (r184619) @@ -408,7 +408,6 @@ bad: if (m != NULL) int ether_output_frame(struct ifnet *ifp, struct mbuf *m) { - int error; #if defined(INET) || defined(INET6) INIT_VNET_NET(ifp->if_vnet); struct ip_fw *rule = ip_dn_claim_rule(m); @@ -428,8 +427,7 @@ ether_output_frame(struct ifnet *ifp, st * Queue message on interface, update output statistics if * successful, and start output if interface not yet active. */ - IFQ_HANDOFF(ifp, m, error); - return (error); + return ((ifp->if_start_mbuf)(ifp, m)); } #if defined(INET) || defined(INET6) From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 06:34:02 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40604106564A; Tue, 4 Nov 2008 06:34:02 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F04758FC08; Tue, 4 Nov 2008 06:34:01 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA46Y1mI088709; Tue, 4 Nov 2008 06:34:01 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA46Y1E5088707; Tue, 4 Nov 2008 06:34:01 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200811040634.mA46Y1E5088707@svn.freebsd.org> From: Kip Macy Date: Tue, 4 Nov 2008 06:34:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184620 - user/kmacy/HEAD_multi_tx/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 06:34:02 -0000 Author: kmacy Date: Tue Nov 4 06:34:01 2008 New Revision: 184620 URL: http://svn.freebsd.org/changeset/base/184620 Log: replace calls to IFQ_HANDOFF with if_start_mbuf in vlan and lagg Modified: user/kmacy/HEAD_multi_tx/sys/net/if_lagg.c user/kmacy/HEAD_multi_tx/sys/net/if_vlan.c Modified: user/kmacy/HEAD_multi_tx/sys/net/if_lagg.c ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/net/if_lagg.c Tue Nov 4 06:30:20 2008 (r184619) +++ user/kmacy/HEAD_multi_tx/sys/net/if_lagg.c Tue Nov 4 06:34:01 2008 (r184620) @@ -1370,10 +1370,8 @@ out: int lagg_enqueue(struct ifnet *ifp, struct mbuf *m) { - int error = 0; - IFQ_HANDOFF(ifp, m, error); - return (error); + return ((ifp->if_start_mbuf)(ifp, m)); } /* Modified: user/kmacy/HEAD_multi_tx/sys/net/if_vlan.c ============================================================================== --- user/kmacy/HEAD_multi_tx/sys/net/if_vlan.c Tue Nov 4 06:30:20 2008 (r184619) +++ user/kmacy/HEAD_multi_tx/sys/net/if_vlan.c Tue Nov 4 06:34:01 2008 (r184620) @@ -868,7 +868,7 @@ vlan_start(struct ifnet *ifp) * Send it, precisely as ether_output() would have. * We are already running at splimp. */ - IFQ_HANDOFF(p, m, error); + error = (ifp->if_start_mbuf)(p, m); if (!error) ifp->if_opackets++; else From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 11:29:05 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A7C02106567A; Tue, 4 Nov 2008 11:29:05 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7D8FB8FC1D; Tue, 4 Nov 2008 11:29:05 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA4BT5I6094955; Tue, 4 Nov 2008 11:29:05 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA4BT5cM094954; Tue, 4 Nov 2008 11:29:05 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811041129.mA4BT5cM094954@svn.freebsd.org> From: Doug Rabson Date: Tue, 4 Nov 2008 11:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184622 - user/dfr X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 11:29:05 -0000 Author: dfr Date: Tue Nov 4 11:29:05 2008 New Revision: 184622 URL: http://svn.freebsd.org/changeset/base/184622 Log: Add my user dir. Added: user/dfr/ From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 11:30:24 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84EE8106567B; Tue, 4 Nov 2008 11:30:24 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5B30C8FC13; Tue, 4 Nov 2008 11:30:24 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA4BUOWj095024; Tue, 4 Nov 2008 11:30:24 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA4BUOXW095023; Tue, 4 Nov 2008 11:30:24 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811041130.mA4BUOXW095023@svn.freebsd.org> From: Doug Rabson Date: Tue, 4 Nov 2008 11:30:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184623 - user/dfr/gssapi X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 11:30:24 -0000 Author: dfr Date: Tue Nov 4 11:30:24 2008 New Revision: 184623 URL: http://svn.freebsd.org/changeset/base/184623 Log: Make a sandbox for back-porting RPCSEC_GSS support. Added: user/dfr/gssapi/ From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 11:31:10 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6313F1065670; Tue, 4 Nov 2008 11:31:10 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 393FE8FC1D; Tue, 4 Nov 2008 11:31:10 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA4BVAuR095077; Tue, 4 Nov 2008 11:31:10 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA4BVATI095076; Tue, 4 Nov 2008 11:31:10 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811041131.mA4BVATI095076@svn.freebsd.org> From: Doug Rabson Date: Tue, 4 Nov 2008 11:31:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184624 - user/dfr/gssapi/7 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 11:31:10 -0000 Author: dfr Date: Tue Nov 4 11:31:09 2008 New Revision: 184624 URL: http://svn.freebsd.org/changeset/base/184624 Log: Branch RELENG_7 to work on merging RPCSEC_GSS support. Added: user/dfr/gssapi/7/ - copied from r184623, stable/7/ From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 11:54:27 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 24C281065677; Tue, 4 Nov 2008 11:54:27 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0F1848FC22; Tue, 4 Nov 2008 11:54:27 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA4BsRLw095692; Tue, 4 Nov 2008 11:54:27 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA4BsQ2E095680; Tue, 4 Nov 2008 11:54:26 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811041154.mA4BsQ2E095680@svn.freebsd.org> From: Doug Rabson Date: Tue, 4 Nov 2008 11:54:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184626 - in user/dfr/gssapi/7/sys: . compat/freebsd32 conf fs/unionfs kern kgssapi modules/kgssapi modules/kgssapi_krb5 modules/nfsclient modules/nfsserver nfsclient nfsserver nlm rpc ... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 11:54:27 -0000 Author: dfr Date: Tue Nov 4 11:54:26 2008 New Revision: 184626 URL: http://svn.freebsd.org/changeset/base/184626 Log: Merged /head/sys:r183005,184588 Added: user/dfr/gssapi/7/sys/kgssapi/ - copied from r184588, head/sys/kgssapi/ user/dfr/gssapi/7/sys/modules/kgssapi/ - copied from r184588, head/sys/modules/kgssapi/ user/dfr/gssapi/7/sys/modules/kgssapi_krb5/ - copied from r184588, head/sys/modules/kgssapi_krb5/ user/dfr/gssapi/7/sys/nfsclient/nfs_krpc.c - copied unchanged from r184588, head/sys/nfsclient/nfs_krpc.c user/dfr/gssapi/7/sys/nfsserver/nfs_fha.c - copied unchanged from r184588, head/sys/nfsserver/nfs_fha.c user/dfr/gssapi/7/sys/nfsserver/nfs_fha.h - copied unchanged from r184588, head/sys/nfsserver/nfs_fha.h user/dfr/gssapi/7/sys/nfsserver/nfs_srvkrpc.c - copied unchanged from r184588, head/sys/nfsserver/nfs_srvkrpc.c user/dfr/gssapi/7/sys/rpc/replay.c - copied unchanged from r184588, head/sys/rpc/replay.c user/dfr/gssapi/7/sys/rpc/replay.h - copied unchanged from r184588, head/sys/rpc/replay.h user/dfr/gssapi/7/sys/rpc/rpcsec_gss/ - copied from r184588, head/sys/rpc/rpcsec_gss/ user/dfr/gssapi/7/sys/rpc/rpcsec_gss.h - copied unchanged from r184588, head/sys/rpc/rpcsec_gss.h Modified: user/dfr/gssapi/7/sys/ (props changed) user/dfr/gssapi/7/sys/compat/freebsd32/syscalls.master user/dfr/gssapi/7/sys/conf/files user/dfr/gssapi/7/sys/conf/options user/dfr/gssapi/7/sys/fs/unionfs/union_vfsops.c user/dfr/gssapi/7/sys/kern/syscalls.master user/dfr/gssapi/7/sys/kern/vfs_export.c user/dfr/gssapi/7/sys/kern/vfs_mount.c user/dfr/gssapi/7/sys/modules/nfsclient/Makefile user/dfr/gssapi/7/sys/modules/nfsserver/Makefile user/dfr/gssapi/7/sys/nfsclient/nfs.h user/dfr/gssapi/7/sys/nfsclient/nfs_socket.c user/dfr/gssapi/7/sys/nfsclient/nfs_subs.c user/dfr/gssapi/7/sys/nfsclient/nfs_vfsops.c user/dfr/gssapi/7/sys/nfsclient/nfsmount.h user/dfr/gssapi/7/sys/nfsserver/nfs.h user/dfr/gssapi/7/sys/nfsserver/nfs_serv.c user/dfr/gssapi/7/sys/nfsserver/nfs_srvcache.c user/dfr/gssapi/7/sys/nfsserver/nfs_srvsock.c user/dfr/gssapi/7/sys/nfsserver/nfs_srvsubs.c user/dfr/gssapi/7/sys/nfsserver/nfs_syscalls.c user/dfr/gssapi/7/sys/nfsserver/nfsm_subs.h user/dfr/gssapi/7/sys/nfsserver/nfsrvcache.h user/dfr/gssapi/7/sys/nlm/nlm.h user/dfr/gssapi/7/sys/nlm/nlm_advlock.c user/dfr/gssapi/7/sys/nlm/nlm_prot_impl.c user/dfr/gssapi/7/sys/nlm/nlm_prot_svc.c user/dfr/gssapi/7/sys/rpc/auth.h user/dfr/gssapi/7/sys/rpc/auth_none.c user/dfr/gssapi/7/sys/rpc/auth_unix.c user/dfr/gssapi/7/sys/rpc/clnt.h user/dfr/gssapi/7/sys/rpc/clnt_dg.c user/dfr/gssapi/7/sys/rpc/clnt_rc.c user/dfr/gssapi/7/sys/rpc/clnt_vc.c user/dfr/gssapi/7/sys/rpc/rpc_com.h user/dfr/gssapi/7/sys/rpc/rpc_generic.c user/dfr/gssapi/7/sys/rpc/rpc_msg.h user/dfr/gssapi/7/sys/rpc/rpc_prot.c user/dfr/gssapi/7/sys/rpc/svc.c user/dfr/gssapi/7/sys/rpc/svc.h user/dfr/gssapi/7/sys/rpc/svc_auth.c user/dfr/gssapi/7/sys/rpc/svc_auth.h user/dfr/gssapi/7/sys/rpc/svc_auth_unix.c user/dfr/gssapi/7/sys/rpc/svc_dg.c user/dfr/gssapi/7/sys/rpc/svc_generic.c user/dfr/gssapi/7/sys/rpc/svc_vc.c user/dfr/gssapi/7/sys/rpc/xdr.h user/dfr/gssapi/7/sys/sys/mount.h user/dfr/gssapi/7/sys/xdr/xdr_mbuf.c Modified: user/dfr/gssapi/7/sys/compat/freebsd32/syscalls.master ============================================================================== --- user/dfr/gssapi/7/sys/compat/freebsd32/syscalls.master Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/compat/freebsd32/syscalls.master Tue Nov 4 11:54:26 2008 (r184626) @@ -824,3 +824,4 @@ uint32_t idlo, uint32_t idhi, \ size_t cpusetsize, \ const cpuset_t *mask); } +505 AUE_NULL UNIMPL gssd_syscall Modified: user/dfr/gssapi/7/sys/conf/files ============================================================================== --- user/dfr/gssapi/7/sys/conf/files Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/conf/files Tue Nov 4 11:54:26 2008 (r184626) @@ -339,7 +339,7 @@ crypto/camellia/camellia.c optional cryp crypto/camellia/camellia-api.c optional crypto | ipsec crypto/des/des_ecb.c optional crypto | ipsec | netsmb crypto/des/des_setkey.c optional crypto | ipsec | netsmb -crypto/rc4/rc4.c optional netgraph_mppc_encryption +crypto/rc4/rc4.c optional netgraph_mppc_encryption | kgssapi crypto/rijndael/rijndael-alg-fst.c optional crypto | geom_bde | \ ipsec | random | wlan_ccmp crypto/rijndael/rijndael-api-fst.c optional geom_bde | random @@ -1565,6 +1565,56 @@ kern/vfs_subr.c standard kern/vfs_syscalls.c standard kern/vfs_vnops.c standard # +# Kernel GSS-API +# +gssd.h optional kgssapi \ + dependency "$S/kgssapi/gssd.x" \ + compile-with "rpcgen -hM $S/kgssapi/gssd.x | grep -v pthread.h > gssd.h" \ + no-obj no-implicit-rule before-depend local \ + clean "gssd.h" +gssd_xdr.c optional kgssapi \ + dependency "$S/kgssapi/gssd.x gssd.h" \ + compile-with "rpcgen -c $S/kgssapi/gssd.x -o gssd_xdr.c" \ + no-implicit-rule before-depend local \ + clean "gssd_xdr.c" +gssd_clnt.c optional kgssapi \ + dependency "$S/kgssapi/gssd.x gssd.h" \ + compile-with "rpcgen -lM $S/kgssapi/gssd.x | grep -v string.h > gssd_clnt.c" \ + no-implicit-rule before-depend local \ + clean "gssd_clnt.c" +kgssapi/gss_accept_sec_context.c optional kgssapi +kgssapi/gss_add_oid_set_member.c optional kgssapi +kgssapi/gss_acquire_cred.c optional kgssapi +kgssapi/gss_canonicalize_name.c optional kgssapi +kgssapi/gss_create_empty_oid_set.c optional kgssapi +kgssapi/gss_delete_sec_context.c optional kgssapi +kgssapi/gss_display_status.c optional kgssapi +kgssapi/gss_export_name.c optional kgssapi +kgssapi/gss_get_mic.c optional kgssapi +kgssapi/gss_init_sec_context.c optional kgssapi +kgssapi/gss_impl.c optional kgssapi +kgssapi/gss_import_name.c optional kgssapi +kgssapi/gss_names.c optional kgssapi +kgssapi/gss_pname_to_uid.c optional kgssapi +kgssapi/gss_release_buffer.c optional kgssapi +kgssapi/gss_release_cred.c optional kgssapi +kgssapi/gss_release_name.c optional kgssapi +kgssapi/gss_release_oid_set.c optional kgssapi +kgssapi/gss_set_cred_option.c optional kgssapi +kgssapi/gss_test_oid_set_member.c optional kgssapi +kgssapi/gss_unwrap.c optional kgssapi +kgssapi/gss_verify_mic.c optional kgssapi +kgssapi/gss_wrap.c optional kgssapi +kgssapi/gss_wrap_size_limit.c optional kgssapi +kgssapi/gssd_prot.c optional kgssapi +kgssapi/krb5/krb5_mech.c optional kgssapi +kgssapi/krb5/kcrypto.c optional kgssapi +kgssapi/krb5/kcrypto_aes.c optional kgssapi +kgssapi/krb5/kcrypto_arcfour.c optional kgssapi +kgssapi/krb5/kcrypto_des.c optional kgssapi +kgssapi/krb5/kcrypto_des3.c optional kgssapi +kgssapi/kgss_if.m optional kgssapi +kgssapi/gsstest.c optional kgssapi_debug # These files in libkern/ are those needed by all architectures. Some # of the files in libkern/ are only needed on some architectures, e.g., # libkern/divdi3.c is needed by i386 but not alpha. Also, some of these @@ -1910,18 +1960,21 @@ nfsclient/krpc_subr.c optional bootp nf nfsclient/nfs_bio.c optional nfsclient nfsclient/nfs_diskless.c optional nfsclient nfs_root nfsclient/nfs_node.c optional nfsclient -nfsclient/nfs_socket.c optional nfsclient +nfsclient/nfs_socket.c optional nfsclient nfs_legacyrpc +nfsclient/nfs_krpc.c optional nfsclient nfsclient/nfs_subs.c optional nfsclient nfsclient/nfs_nfsiod.c optional nfsclient nfsclient/nfs_vfsops.c optional nfsclient nfsclient/nfs_vnops.c optional nfsclient nfsclient/nfs_lock.c optional nfsclient +nfsserver/nfs_fha.c optional nfsserver nfsserver/nfs_serv.c optional nfsserver -nfsserver/nfs_srvsock.c optional nfsserver -nfsserver/nfs_srvcache.c optional nfsserver +nfsserver/nfs_srvkrpc.c optional nfsserver +nfsserver/nfs_srvsock.c optional nfsserver nfs_legacyrpc +nfsserver/nfs_srvcache.c optional nfsserver nfs_legacyrpc nfsserver/nfs_srvsubs.c optional nfsserver -nfsserver/nfs_syscalls.c optional nfsserver -nlm/nlm_advlock.c optional nfslockd +nfsserver/nfs_syscalls.c optional nfsserver nfs_legacyrpc +nlm/nlm_advlock.c optional nfslockd nfsclient nlm/nlm_prot_clnt.c optional nfslockd nlm/nlm_prot_impl.c optional nfslockd nlm/nlm_prot_server.c optional nfslockd @@ -1957,27 +2010,33 @@ pci/ncr.c optional ncr pci pci/nfsmb.c optional nfsmb pci pci/viapm.c optional viapm pci pci/xrpu.c optional xrpu pci -rpc/auth_none.c optional krpc | nfslockd -rpc/auth_unix.c optional krpc | nfslockd -rpc/authunix_prot.c optional krpc | nfslockd -rpc/clnt_dg.c optional krpc | nfslockd -rpc/clnt_rc.c optional krpc | nfslockd -rpc/clnt_vc.c optional krpc | nfslockd -rpc/getnetconfig.c optional krpc | nfslockd -rpc/inet_ntop.c optional krpc | nfslockd -rpc/inet_pton.c optional krpc | nfslockd -rpc/rpc_callmsg.c optional krpc | nfslockd -rpc/rpc_generic.c optional krpc | nfslockd -rpc/rpc_prot.c optional krpc | nfslockd -rpc/rpcb_clnt.c optional krpc | nfslockd -rpc/rpcb_prot.c optional krpc | nfslockd +rpc/auth_none.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/auth_unix.c optional krpc | nfslockd | nfsclient +rpc/authunix_prot.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/clnt_dg.c optional krpc | nfslockd | nfsclient +rpc/clnt_rc.c optional krpc | nfslockd | nfsclient +rpc/clnt_vc.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/getnetconfig.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/inet_ntop.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/inet_pton.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/replay.c optional krpc | nfslockd | nfsserver +rpc/rpc_callmsg.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/rpc_generic.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/rpc_prot.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/rpcb_clnt.c optional krpc | nfslockd | nfsclient | nfsserver +rpc/rpcb_prot.c optional krpc | nfslockd | nfsclient | nfsserver rpc/rpcclnt.c optional nfsclient -rpc/svc.c optional krpc | nfslockd -rpc/svc_auth.c optional krpc | nfslockd -rpc/svc_auth_unix.c optional krpc | nfslockd -rpc/svc_dg.c optional krpc | nfslockd -rpc/svc_generic.c optional krpc | nfslockd -rpc/svc_vc.c optional krpc | nfslockd +rpc/svc.c optional krpc | nfslockd | nfsserver +rpc/svc_auth.c optional krpc | nfslockd | nfsserver +rpc/svc_auth_unix.c optional krpc | nfslockd | nfsserver +rpc/svc_dg.c optional krpc | nfslockd | nfsserver +rpc/svc_generic.c optional krpc | nfslockd | nfsserver +rpc/svc_vc.c optional krpc | nfslockd | nfsserver +rpc/rpcsec_gss/rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi +rpc/rpcsec_gss/rpcsec_gss_conf.c optional krpc kgssapi | nfslockd kgssapi +rpc/rpcsec_gss/rpcsec_gss_misc.c optional krpc kgssapi | nfslockd kgssapi +rpc/rpcsec_gss/rpcsec_gss_prot.c optional krpc kgssapi | nfslockd kgssapi +rpc/rpcsec_gss/svc_rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi security/audit/audit.c optional audit security/audit/audit_arg.c optional audit security/audit/audit_bsm.c optional audit @@ -2059,12 +2118,12 @@ vm/vm_phys.c standard vm/vm_unix.c standard vm/vm_zeroidle.c standard vm/vnode_pager.c standard -xdr/xdr.c optional krpc | nfslockd -xdr/xdr_array.c optional krpc | nfslockd -xdr/xdr_mbuf.c optional krpc | nfslockd -xdr/xdr_mem.c optional krpc | nfslockd -xdr/xdr_reference.c optional krpc | nfslockd -xdr/xdr_sizeof.c optional krpc | nfslockd +xdr/xdr.c optional krpc | nfslockd | nfsclient | nfsserver +xdr/xdr_array.c optional krpc | nfslockd | nfsclient | nfsserver +xdr/xdr_mbuf.c optional krpc | nfslockd | nfsclient | nfsserver +xdr/xdr_mem.c optional krpc | nfslockd | nfsclient | nfsserver +xdr/xdr_reference.c optional krpc | nfslockd | nfsclient | nfsserver +xdr/xdr_sizeof.c optional krpc | nfslockd | nfsclient | nfsserver # gnu/fs/xfs/xfs_alloc.c optional xfs \ compile-with "${NORMAL_C} -I$S/gnu/fs/xfs/FreeBSD -I$S/gnu/fs/xfs/FreeBSD/support -I$S/gnu/fs/xfs" \ Modified: user/dfr/gssapi/7/sys/conf/options ============================================================================== --- user/dfr/gssapi/7/sys/conf/options Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/conf/options Tue Nov 4 11:54:26 2008 (r184626) @@ -215,6 +215,10 @@ PSEUDOFS_TRACE opt_pseudofs.h # Broken - ffs_snapshot() dependency from ufs_lookup() :-( FFS opt_ffs_broken_fixme.h +# In-kernel GSS-API +KGSSAPI opt_kgssapi.h +KGSSAPI_DEBUG opt_kgssapi.h + # These static filesystems have one slightly bogus static dependency in # sys/i386/i386/autoconf.c. If any of these filesystems are # statically compiled into the kernel, code for mounting them as root @@ -223,6 +227,11 @@ NFSCLIENT opt_nfs.h NFSSERVER opt_nfs.h NFS4CLIENT opt_nfs.h +# Use this option to compile both NFS client and server using the +# legacy RPC implementation instead of the newer KRPC system (which +# supports modern features such as RPCSEC_GSS +NFS_LEGACYRPC opt_nfs.h + # filesystems and libiconv bridge CD9660_ICONV opt_dontuse.h MSDOSFS_ICONV opt_dontuse.h Modified: user/dfr/gssapi/7/sys/fs/unionfs/union_vfsops.c ============================================================================== --- user/dfr/gssapi/7/sys/fs/unionfs/union_vfsops.c Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/fs/unionfs/union_vfsops.c Tue Nov 4 11:54:26 2008 (r184626) @@ -520,7 +520,7 @@ unionfs_fhtovp(struct mount *mp, struct static int unionfs_checkexp(struct mount *mp, struct sockaddr *nam, int *extflagsp, - struct ucred **credanonp) + struct ucred **credanonp, int *numsecflavors, int **secflavors) { return (EOPNOTSUPP); } Modified: user/dfr/gssapi/7/sys/kern/syscalls.master ============================================================================== --- user/dfr/gssapi/7/sys/kern/syscalls.master Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/kern/syscalls.master Tue Nov 4 11:54:26 2008 (r184626) @@ -871,5 +871,7 @@ cpuwhich_t which, id_t id, size_t cpusetsize, \ const cpuset_t *mask); } +; 505 is initialised by the kgssapi code, if present. +505 AUE_NULL NOSTD { int gssd_syscall(char *path); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master Modified: user/dfr/gssapi/7/sys/kern/vfs_export.c ============================================================================== --- user/dfr/gssapi/7/sys/kern/vfs_export.c Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/kern/vfs_export.c Tue Nov 4 11:54:26 2008 (r184626) @@ -68,6 +68,8 @@ struct netcred { struct radix_node netc_rnodes[2]; int netc_exflags; struct ucred netc_anon; + int netc_numsecflavors; + int netc_secflavors[MAXSECFLAVORS]; }; /* @@ -120,6 +122,9 @@ vfs_hang_addrlist(struct mount *mp, stru np->netc_anon.cr_ngroups = argp->ex_anon.cr_ngroups; bcopy(argp->ex_anon.cr_groups, np->netc_anon.cr_groups, sizeof(np->netc_anon.cr_groups)); + np->netc_numsecflavors = argp->ex_numsecflavors; + bcopy(argp->ex_secflavors, np->netc_secflavors, + sizeof(np->netc_secflavors)); refcount_init(&np->netc_anon.cr_ref, 1); MNT_ILOCK(mp); mp->mnt_flag |= MNT_DEFEXPORTED; @@ -203,6 +208,9 @@ vfs_hang_addrlist(struct mount *mp, stru np->netc_anon.cr_ngroups = argp->ex_anon.cr_ngroups; bcopy(argp->ex_anon.cr_groups, np->netc_anon.cr_groups, sizeof(np->netc_anon.cr_groups)); + np->netc_numsecflavors = argp->ex_numsecflavors; + bcopy(argp->ex_secflavors, np->netc_secflavors, + sizeof(np->netc_secflavors)); refcount_init(&np->netc_anon.cr_ref, 1); return (0); out: @@ -253,6 +261,10 @@ vfs_export(struct mount *mp, struct expo struct netexport *nep; int error; + if (argp->ex_numsecflavors < 0 + || argp->ex_numsecflavors >= MAXSECFLAVORS) + return (EINVAL); + nep = mp->mnt_export; error = 0; lockmgr(&mp->mnt_explock, LK_EXCLUSIVE, NULL, curthread); @@ -441,7 +453,7 @@ vfs_export_lookup(struct mount *mp, stru int vfs_stdcheckexp(struct mount *mp, struct sockaddr *nam, int *extflagsp, - struct ucred **credanonp) + struct ucred **credanonp, int *numsecflavors, int **secflavors) { struct netcred *np; @@ -452,6 +464,10 @@ vfs_stdcheckexp(struct mount *mp, struct return (EACCES); *extflagsp = np->netc_exflags; *credanonp = &np->netc_anon; + if (numsecflavors) + *numsecflavors = np->netc_numsecflavors; + if (secflavors) + *secflavors = np->netc_secflavors; return (0); } Modified: user/dfr/gssapi/7/sys/kern/vfs_mount.c ============================================================================== --- user/dfr/gssapi/7/sys/kern/vfs_mount.c Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/kern/vfs_mount.c Tue Nov 4 11:54:26 2008 (r184626) @@ -838,6 +838,7 @@ vfs_domount( struct vnode *vp; struct mount *mp; struct vfsconf *vfsp; + struct oexport_args oexport; struct export_args export; int error, flag = 0; struct vattr va; @@ -1021,6 +1022,19 @@ vfs_domount( if (vfs_copyopt(mp->mnt_optnew, "export", &export, sizeof(export)) == 0) error = vfs_export(mp, &export); + else if (vfs_copyopt(mp->mnt_optnew, "export", &oexport, + sizeof(oexport)) == 0) { + export.ex_flags = oexport.ex_flags; + export.ex_root = oexport.ex_root; + export.ex_anon = oexport.ex_anon; + export.ex_addr = oexport.ex_addr; + export.ex_addrlen = oexport.ex_addrlen; + export.ex_mask = oexport.ex_mask; + export.ex_masklen = oexport.ex_masklen; + export.ex_indexfile = oexport.ex_indexfile; + export.ex_numsecflavors = 0; + error = vfs_export(mp, &export); + } } if (!error) { Modified: user/dfr/gssapi/7/sys/modules/nfsclient/Makefile ============================================================================== --- user/dfr/gssapi/7/sys/modules/nfsclient/Makefile Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/modules/nfsclient/Makefile Tue Nov 4 11:54:26 2008 (r184626) @@ -6,11 +6,11 @@ KMOD= nfsclient SRCS= vnode_if.h \ nfs_bio.c nfs_lock.c nfs_node.c nfs_socket.c nfs_subs.c nfs_nfsiod.c \ - nfs_vfsops.c nfs_vnops.c nfs_common.c \ + nfs_vfsops.c nfs_vnops.c nfs_common.c nfs_krpc.c \ opt_inet.h opt_nfs.h opt_bootp.h opt_nfsroot.h SRCS+= nfs4_dev.c nfs4_idmap.c nfs4_socket.c nfs4_subs.c \ nfs4_vfs_subs.c nfs4_vfsops.c nfs4_vn_subs.c nfs4_vnops.c -SRCS+= opt_inet6.h +SRCS+= opt_inet6.h opt_kgssapi.h # USE THE RPCCLNT: CFLAGS+= -DRPCCLNT_DEBUG Modified: user/dfr/gssapi/7/sys/modules/nfsserver/Makefile ============================================================================== --- user/dfr/gssapi/7/sys/modules/nfsserver/Makefile Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/modules/nfsserver/Makefile Tue Nov 4 11:54:26 2008 (r184626) @@ -3,8 +3,8 @@ .PATH: ${.CURDIR}/../../nfsserver ${.CURDIR}/../../nfs KMOD= nfsserver SRCS= vnode_if.h \ - nfs_serv.c nfs_srvsock.c nfs_srvcache.c nfs_srvsubs.c nfs_syscalls.c \ - nfs_common.c \ + nfs_serv.c nfs_srvkrpc.c nfs_srvsock.c nfs_srvcache.c nfs_srvsubs.c \ + nfs_syscalls.c nfs_common.c \ opt_mac.h \ opt_nfs.h SRCS+= opt_inet6.h Modified: user/dfr/gssapi/7/sys/nfsclient/nfs.h ============================================================================== --- user/dfr/gssapi/7/sys/nfsclient/nfs.h Tue Nov 4 11:52:50 2008 (r184625) +++ user/dfr/gssapi/7/sys/nfsclient/nfs.h Tue Nov 4 11:54:26 2008 (r184626) @@ -132,7 +132,9 @@ MALLOC_DECLARE(M_NFSDIRECTIO); extern struct uma_zone *nfsmount_zone; +#ifdef NFS_LEGACYRPC extern struct callout nfs_callout; +#endif extern struct nfsstats nfsstats; extern struct mtx nfs_iod_mtx; @@ -157,6 +159,8 @@ extern int nfsv3_procid[NFS_NPROCS]; (e) != ERESTART && (e) != EWOULDBLOCK && \ ((s) & PR_CONNREQUIRED) == 0) +#ifdef NFS_LEGACYRPC + /* * Nfs outstanding request list element */ @@ -196,6 +200,17 @@ extern TAILQ_HEAD(nfs_reqq, nfsreq) nfs_ #define R_GETONEREP 0x80 /* Probe for one reply only */ #define R_PIN_REQ 0x100 /* Pin request down (rexmit in prog or other) */ +#else + +/* + * This is only needed to keep things working while we support + * compiling for both RPC implementations. + */ +struct nfsreq; +struct nfsmount; + +#endif + struct buf; struct socket; struct uio; @@ -291,12 +306,18 @@ vfs_init_t nfs_init; vfs_uninit_t nfs_uninit; int nfs_mountroot(struct mount *mp, struct thread *td); +#ifdef NFS_LEGACYRPC #ifndef NFS4_USE_RPCCLNT int nfs_send(struct socket *, struct sockaddr *, struct mbuf *, struct nfsreq *); int nfs_connect_lock(struct nfsreq *); void nfs_connect_unlock(struct nfsreq *); +void nfs_up(struct nfsreq *, struct nfsmount *, struct thread *, + const char *, int); +void nfs_down(struct nfsreq *, struct nfsmount *, struct thread *, + const char *, int, int); #endif /* ! NFS4_USE_RPCCLNT */ +#endif int nfs_vinvalbuf(struct vnode *, int, struct thread *, int); int nfs_readrpc(struct vnode *, struct uio *, struct ucred *); @@ -309,10 +330,6 @@ int nfs_nfsiodnew(void); int nfs_asyncio(struct nfsmount *, struct buf *, struct ucred *, struct thread *); int nfs_doio(struct vnode *, struct buf *, struct ucred *, struct thread *); void nfs_doio_directwrite (struct buf *); -void nfs_up(struct nfsreq *, struct nfsmount *, struct thread *, - const char *, int); -void nfs_down(struct nfsreq *, struct nfsmount *, struct thread *, - const char *, int, int); int nfs_readlinkrpc(struct vnode *, struct uio *, struct ucred *); int nfs_sigintr(struct nfsmount *, struct nfsreq *, struct thread *); int nfs_readdirplusrpc(struct vnode *, struct uio *, struct ucred *); Copied: user/dfr/gssapi/7/sys/nfsclient/nfs_krpc.c (from r184588, head/sys/nfsclient/nfs_krpc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/dfr/gssapi/7/sys/nfsclient/nfs_krpc.c Tue Nov 4 11:54:26 2008 (r184626, copy of r184588, head/sys/nfsclient/nfs_krpc.c) @@ -0,0 +1,769 @@ +/*- + * Copyright (c) 1989, 1991, 1993, 1995 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Rick Macklem at The University of Guelph. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)nfs_socket.c 8.5 (Berkeley) 3/30/95 + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * Socket operations for use by nfs + */ + +#include "opt_inet6.h" +#include "opt_kgssapi.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#ifndef NFS_LEGACYRPC + +static int nfs_realign_test; +static int nfs_realign_count; +static int nfs_bufpackets = 4; +static int nfs_reconnects; +static int nfs3_jukebox_delay = 10; +static int nfs_skip_wcc_data_onerr = 1; +static int fake_wchan; + +SYSCTL_DECL(_vfs_nfs); + +SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_test, CTLFLAG_RW, &nfs_realign_test, 0, + "Number of realign tests done"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_count, CTLFLAG_RW, &nfs_realign_count, 0, + "Number of mbuf realignments done"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, + "Buffer reservation size 2 < x < 64"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, + "Number of times the nfs client has had to reconnect"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, &nfs3_jukebox_delay, 0, + "Number of seconds to delay a retry after receiving EJUKEBOX"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, &nfs_skip_wcc_data_onerr, 0, + "Disable weak cache consistency checking when server returns an error"); + +static void nfs_down(struct nfsmount *, struct thread *, const char *, + int, int); +static void nfs_up(struct nfsmount *, struct thread *, const char *, + int, int); +static int nfs_msg(struct thread *, const char *, const char *, int); + +extern int nfsv2_procid[]; + +struct nfs_cached_auth { + int ca_refs; /* refcount, including 1 from the cache */ + uid_t ca_uid; /* uid that corresponds to this auth */ + AUTH *ca_auth; /* RPC auth handle */ +}; + +/* + * RTT estimator + */ + +static enum nfs_rto_timer_t nfs_proct[NFS_NPROCS] = { + NFS_DEFAULT_TIMER, /* NULL */ + NFS_GETATTR_TIMER, /* GETATTR */ + NFS_DEFAULT_TIMER, /* SETATTR */ + NFS_LOOKUP_TIMER, /* LOOKUP */ + NFS_GETATTR_TIMER, /* ACCESS */ + NFS_READ_TIMER, /* READLINK */ + NFS_READ_TIMER, /* READ */ + NFS_WRITE_TIMER, /* WRITE */ + NFS_DEFAULT_TIMER, /* CREATE */ + NFS_DEFAULT_TIMER, /* MKDIR */ + NFS_DEFAULT_TIMER, /* SYMLINK */ + NFS_DEFAULT_TIMER, /* MKNOD */ + NFS_DEFAULT_TIMER, /* REMOVE */ + NFS_DEFAULT_TIMER, /* RMDIR */ + NFS_DEFAULT_TIMER, /* RENAME */ + NFS_DEFAULT_TIMER, /* LINK */ + NFS_READ_TIMER, /* READDIR */ + NFS_READ_TIMER, /* READDIRPLUS */ + NFS_DEFAULT_TIMER, /* FSSTAT */ + NFS_DEFAULT_TIMER, /* FSINFO */ + NFS_DEFAULT_TIMER, /* PATHCONF */ + NFS_DEFAULT_TIMER, /* COMMIT */ + NFS_DEFAULT_TIMER, /* NOOP */ +}; + +/* + * Choose the correct RTT timer for this NFS procedure. + */ +static inline enum nfs_rto_timer_t +nfs_rto_timer(u_int32_t procnum) +{ + return nfs_proct[procnum]; +} + +/* + * Initialize the RTT estimator state for a new mount point. + */ +static void +nfs_init_rtt(struct nfsmount *nmp) +{ + int i; + + for (i = 0; i < NFS_MAX_TIMER; i++) { + nmp->nm_timers[i].rt_srtt = hz; + nmp->nm_timers[i].rt_deviate = 0; + nmp->nm_timers[i].rt_rtxcur = hz; + } +} + +/* + * Initialize sockets and congestion for a new NFS connection. + * We do not free the sockaddr if error. + */ +int +nfs_connect(struct nfsmount *nmp, struct nfsreq *rep) +{ + int rcvreserve, sndreserve; + int pktscale; + struct sockaddr *saddr; + struct ucred *origcred; + struct thread *td = curthread; + CLIENT *client; + struct netconfig *nconf; + rpcvers_t vers; + int one = 1, retries; + + /* + * We need to establish the socket using the credentials of + * the mountpoint. Some parts of this process (such as + * sobind() and soconnect()) will use the curent thread's + * credential instead of the socket credential. To work + * around this, temporarily change the current thread's + * credential to that of the mountpoint. + * + * XXX: It would be better to explicitly pass the correct + * credential to sobind() and soconnect(). + */ + origcred = td->td_ucred; + td->td_ucred = nmp->nm_mountp->mnt_cred; + saddr = nmp->nm_nam; + + vers = NFS_VER2; + if (nmp->nm_flag & NFSMNT_NFSV3) + vers = NFS_VER3; + else if (nmp->nm_flag & NFSMNT_NFSV4) + vers = NFS_VER4; + if (saddr->sa_family == AF_INET) + if (nmp->nm_sotype == SOCK_DGRAM) + nconf = getnetconfigent("udp"); + else + nconf = getnetconfigent("tcp"); + else + if (nmp->nm_sotype == SOCK_DGRAM) + nconf = getnetconfigent("udp6"); + else + nconf = getnetconfigent("tcp6"); + + /* + * Get buffer reservation size from sysctl, but impose reasonable + * limits. + */ + pktscale = nfs_bufpackets; + if (pktscale < 2) + pktscale = 2; + if (pktscale > 64) + pktscale = 64; + mtx_lock(&nmp->nm_mtx); + if (nmp->nm_sotype == SOCK_DGRAM) { + sndreserve = (nmp->nm_wsize + NFS_MAXPKTHDR) * pktscale; + rcvreserve = (max(nmp->nm_rsize, nmp->nm_readdirsize) + + NFS_MAXPKTHDR) * pktscale; + } else if (nmp->nm_sotype == SOCK_SEQPACKET) { + sndreserve = (nmp->nm_wsize + NFS_MAXPKTHDR) * pktscale; + rcvreserve = (max(nmp->nm_rsize, nmp->nm_readdirsize) + + NFS_MAXPKTHDR) * pktscale; + } else { + if (nmp->nm_sotype != SOCK_STREAM) + panic("nfscon sotype"); + sndreserve = (nmp->nm_wsize + NFS_MAXPKTHDR + + sizeof (u_int32_t)) * pktscale; + rcvreserve = (nmp->nm_rsize + NFS_MAXPKTHDR + + sizeof (u_int32_t)) * pktscale; + } + mtx_unlock(&nmp->nm_mtx); + + client = clnt_reconnect_create(nconf, saddr, NFS_PROG, vers, + sndreserve, rcvreserve); + CLNT_CONTROL(client, CLSET_WAITCHAN, "nfsreq"); + if (nmp->nm_flag & NFSMNT_INT) + CLNT_CONTROL(client, CLSET_INTERRUPTIBLE, &one); + if (nmp->nm_flag & NFSMNT_RESVPORT) + CLNT_CONTROL(client, CLSET_PRIVPORT, &one); + if (nmp->nm_flag & NFSMNT_SOFT) + retries = nmp->nm_retry; + else + retries = INT_MAX; + CLNT_CONTROL(client, CLSET_RETRIES, &retries); + + mtx_lock(&nmp->nm_mtx); + if (nmp->nm_client) { + /* + * Someone else already connected. + */ + CLNT_RELEASE(client); + } else { + nmp->nm_client = client; + } + + /* + * Protocols that do not require connections may be optionally left + * unconnected for servers that reply from a port other than NFS_PORT. + */ + if (!(nmp->nm_flag & NFSMNT_NOCONN)) { + mtx_unlock(&nmp->nm_mtx); + CLNT_CONTROL(client, CLSET_CONNECT, &one); + } else { + mtx_unlock(&nmp->nm_mtx); + } + + /* Restore current thread's credentials. */ + td->td_ucred = origcred; + + mtx_lock(&nmp->nm_mtx); + /* Initialize other non-zero congestion variables */ + nfs_init_rtt(nmp); + mtx_unlock(&nmp->nm_mtx); + return (0); +} + +/* + * NFS disconnect. Clean up and unlink. + */ +void +nfs_disconnect(struct nfsmount *nmp) +{ + CLIENT *client; + + mtx_lock(&nmp->nm_mtx); + if (nmp->nm_client) { + client = nmp->nm_client; + nmp->nm_client = NULL; + mtx_unlock(&nmp->nm_mtx); +#ifdef KGSSAPI + rpc_gss_secpurge(client); +#endif + CLNT_CLOSE(client); + CLNT_RELEASE(client); + } else { + mtx_unlock(&nmp->nm_mtx); + } +} + +void +nfs_safedisconnect(struct nfsmount *nmp) +{ + + nfs_disconnect(nmp); +} + +static AUTH * +nfs_getauth(struct nfsmount *nmp, struct ucred *cred) +{ +#ifdef KGSSAPI + rpc_gss_service_t svc; + AUTH *auth; +#endif + + switch (nmp->nm_secflavor) { +#ifdef KGSSAPI + case RPCSEC_GSS_KRB5: + case RPCSEC_GSS_KRB5I: + case RPCSEC_GSS_KRB5P: + if (!nmp->nm_mech_oid) { + if (!rpc_gss_mech_to_oid("kerberosv5", + &nmp->nm_mech_oid)) + return (NULL); + } + if (nmp->nm_secflavor == RPCSEC_GSS_KRB5) + svc = rpc_gss_svc_none; + else if (nmp->nm_secflavor == RPCSEC_GSS_KRB5I) + svc = rpc_gss_svc_integrity; + else + svc = rpc_gss_svc_privacy; + auth = rpc_gss_secfind(nmp->nm_client, cred, + nmp->nm_principal, nmp->nm_mech_oid, svc); + if (auth) + return (auth); + /* fallthrough */ +#endif + case AUTH_SYS: + default: + return (authunix_create(cred)); + + } +} + +/* + * Callback from the RPC code to generate up/down notifications. + */ + +struct nfs_feedback_arg { + struct nfsmount *nf_mount; + int nf_lastmsg; /* last tprintf */ + int nf_tprintfmsg; + struct thread *nf_td; +}; + +static void +nfs_feedback(int type, int proc, void *arg) +{ + struct nfs_feedback_arg *nf = (struct nfs_feedback_arg *) arg; + struct nfsmount *nmp = nf->nf_mount; + struct timeval now; + + getmicrouptime(&now); + + switch (type) { + case FEEDBACK_REXMIT2: + case FEEDBACK_RECONNECT: + if (nf->nf_lastmsg + nmp->nm_tprintf_delay < now.tv_sec) { + nfs_down(nmp, nf->nf_td, + "not responding", 0, NFSSTA_TIMEO); + nf->nf_tprintfmsg = TRUE; + nf->nf_lastmsg = now.tv_sec; + } + break; + + case FEEDBACK_OK: + nfs_up(nf->nf_mount, nf->nf_td, + "is alive again", NFSSTA_TIMEO, nf->nf_tprintfmsg); + break; + } +} + +/* + * nfs_request - goes something like this + * - fill in request struct + * - links it into list + * - calls nfs_send() for first transmit + * - calls nfs_receive() to get reply + * - break down rpc header and return with nfs reply pointed to + * by mrep or error + * nb: always frees up mreq mbuf list + */ +int +nfs_request(struct vnode *vp, struct mbuf *mreq, int procnum, + struct thread *td, struct ucred *cred, struct mbuf **mrp, + struct mbuf **mdp, caddr_t *dposp) +{ + struct mbuf *mrep; + u_int32_t *tl; + struct nfsmount *nmp; + struct mbuf *md; + time_t waituntil; + caddr_t dpos; + int error = 0; + struct timeval now; + AUTH *auth = NULL; + enum nfs_rto_timer_t timer; + struct nfs_feedback_arg nf; + struct rpc_callextra ext; + enum clnt_stat stat; + struct timeval timo; + + /* Reject requests while attempting a forced unmount. */ + if (vp->v_mount->mnt_kern_flag & MNTK_UNMOUNTF) { + m_freem(mreq); + return (ESTALE); + } + nmp = VFSTONFS(vp->v_mount); + if ((nmp->nm_flag & NFSMNT_NFSV4) != 0) + return nfs4_request(vp, mreq, procnum, td, cred, mrp, mdp, dposp); + bzero(&nf, sizeof(struct nfs_feedback_arg)); + nf.nf_mount = nmp; + nf.nf_td = td; + getmicrouptime(&now); + nf.nf_lastmsg = now.tv_sec - + ((nmp->nm_tprintf_delay) - (nmp->nm_tprintf_initial_delay)); + + /* + * XXX if not already connected call nfs_connect now. Longer + * term, change nfs_mount to call nfs_connect unconditionally + * and let clnt_reconnect_create handle reconnects. + */ + if (!nmp->nm_client) + nfs_connect(nmp, NULL); + + auth = nfs_getauth(nmp, cred); + if (!auth) { + m_freem(mreq); + return (EACCES); + } + bzero(&ext, sizeof(ext)); + ext.rc_auth = auth; + + ext.rc_feedback = nfs_feedback; + ext.rc_feedback_arg = &nf; + + /* + * Use a conservative timeout for RPCs other than getattr, + * lookup, read or write. The justification for doing "other" + * this way is that these RPCs happen so infrequently that + * timer est. would probably be stale. Also, since many of + * these RPCs are non-idempotent, a conservative timeout is + * desired. + */ + timer = nfs_rto_timer(procnum); + if (timer != NFS_DEFAULT_TIMER) { + ext.rc_timers = &nmp->nm_timers[timer - 1]; + } else { + ext.rc_timers = NULL; + } + + nfsstats.rpcrequests++; +tryagain: + timo.tv_sec = nmp->nm_timeo / NFS_HZ; + timo.tv_usec = (nmp->nm_timeo * 1000000) / NFS_HZ; + mrep = NULL; + stat = CLNT_CALL_MBUF(nmp->nm_client, &ext, + (nmp->nm_flag & NFSMNT_NFSV3) ? procnum : nfsv2_procid[procnum], + mreq, &mrep, timo); + + /* + * If there was a successful reply and a tprintf msg. + * tprintf a response. + */ + if (stat == RPC_SUCCESS) { + error = 0; + } else if (stat == RPC_TIMEDOUT) { + error = ETIMEDOUT; + } else if (stat == RPC_VERSMISMATCH) { + error = EOPNOTSUPP; + } else if (stat == RPC_PROGVERSMISMATCH) { + error = EPROTONOSUPPORT; + } else { + error = EACCES; + } + md = mrep; + if (error) { + m_freem(mreq); + AUTH_DESTROY(auth); + return (error); + } + + KASSERT(mrep != NULL, ("mrep shouldn't be NULL if no error\n")); + + dpos = mtod(mrep, caddr_t); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); + if (*tl != 0) { + error = fxdr_unsigned(int, *tl); + if ((nmp->nm_flag & NFSMNT_NFSV3) && + error == NFSERR_TRYLATER) { + m_freem(mrep); + error = 0; + waituntil = time_second + nfs3_jukebox_delay; + while (time_second < waituntil) { + (void) tsleep(&fake_wchan, PSOCK, "nqnfstry", hz); + } + goto tryagain; + } + + /* + * If the File Handle was stale, invalidate the lookup + * cache, just in case. + */ + if (error == ESTALE) + cache_purge(vp); + /* + * Skip wcc data on NFS errors for now. NetApp filers + * return corrupt postop attrs in the wcc data for NFS + * err EROFS. Not sure if they could return corrupt + * postop attrs for others errors. + */ + if ((nmp->nm_flag & NFSMNT_NFSV3) && !nfs_skip_wcc_data_onerr) { + *mrp = mrep; + *mdp = md; + *dposp = dpos; + error |= NFSERR_RETERR; + } else + m_freem(mrep); + m_freem(mreq); + AUTH_DESTROY(auth); + return (error); + } + + m_freem(mreq); + *mrp = mrep; + *mdp = md; + *dposp = dpos; + AUTH_DESTROY(auth); + return (0); + +nfsmout: + m_freem(mreq); + if (auth) + AUTH_DESTROY(auth); + return (error); +} + +/* + * Mark all of an nfs mount's outstanding requests with R_SOFTTERM and + * wait for all requests to complete. This is used by forced unmounts + * to terminate any outstanding RPCs. + */ +int +nfs_nmcancelreqs(struct nfsmount *nmp) +{ + + if (nmp->nm_client) + CLNT_CLOSE(nmp->nm_client); + return (0); +} + +/* + * Any signal that can interrupt an NFS operation in an intr mount + * should be added to this set. SIGSTOP and SIGKILL cannot be masked. + */ +int nfs_sig_set[] = { + SIGINT, + SIGTERM, + SIGHUP, + SIGKILL, + SIGSTOP, + SIGQUIT +}; + +/* + * Check to see if one of the signals in our subset is pending on + * the process (in an intr mount). *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Tue Nov 4 12:02:01 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EDC141065670; Tue, 4 Nov 2008 12:02:01 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8F5F8FC36; Tue, 4 Nov 2008 12:02:01 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mA4C21bP096011; Tue, 4 Nov 2008 12:02:01 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mA4C21CG096007; Tue, 4 Nov 2008 12:02:01 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811041202.mA4C21CG096007@svn.freebsd.org> From: Doug Rabson Date: Tue, 4 Nov 2008 12:02:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184627 - in user/dfr/gssapi/7/usr.sbin: . adduser bsnmpd/modules/snmp_pf cdcontrol config cron cron/cron extattr freebsd-update gssd iostat mountd ndiscvt newsyslog nfsd nscd ntp pkg_i... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2008 12:02:02 -0000 Author: dfr Date: Tue Nov 4 12:02:01 2008 New Revision: 184627 URL: http://svn.freebsd.org/changeset/base/184627 Log: Merged /head/usr.sbin:r184588 Added: user/dfr/gssapi/7/usr.sbin/gssd/ - copied from r184588, head/usr.sbin/gssd/ Modified: user/dfr/gssapi/7/usr.sbin/ (props changed) user/dfr/gssapi/7/usr.sbin/Makefile user/dfr/gssapi/7/usr.sbin/adduser/ (props changed) user/dfr/gssapi/7/usr.sbin/bsnmpd/modules/snmp_pf/ (props changed) user/dfr/gssapi/7/usr.sbin/cdcontrol/ (props changed) user/dfr/gssapi/7/usr.sbin/config/ (props changed) user/dfr/gssapi/7/usr.sbin/cron/ (props changed) user/dfr/gssapi/7/usr.sbin/cron/cron/ (props changed) user/dfr/gssapi/7/usr.sbin/extattr/ (props changed) user/dfr/gssapi/7/usr.sbin/freebsd-update/ (props changed) user/dfr/gssapi/7/usr.sbin/iostat/ (props changed) user/dfr/gssapi/7/usr.sbin/mountd/ (props changed) user/dfr/gssapi/7/usr.sbin/mountd/exports.5 user/dfr/gssapi/7/usr.sbin/mountd/mountd.c user/dfr/gssapi/7/usr.sbin/ndiscvt/ (props changed) user/dfr/gssapi/7/usr.sbin/newsyslog/newsyslog.conf.5 (props changed) user/dfr/gssapi/7/usr.sbin/nfsd/nfsd.c user/dfr/gssapi/7/usr.sbin/nscd/ (props changed) user/dfr/gssapi/7/usr.sbin/ntp/ (props changed) user/dfr/gssapi/7/usr.sbin/pkg_install/ (props changed) user/dfr/gssapi/7/usr.sbin/pmcstat/ (props changed) user/dfr/gssapi/7/usr.sbin/portsnap/ (props changed) user/dfr/gssapi/7/usr.sbin/powerd/ (props changed) user/dfr/gssapi/7/usr.sbin/pw/ (props changed) user/dfr/gssapi/7/usr.sbin/rpc.lockd/ (props changed) user/dfr/gssapi/7/usr.sbin/rpc.statd/ (props changed) user/dfr/gssapi/7/usr.sbin/setfib/ (props changed) user/dfr/gssapi/7/usr.sbin/sysinstall/ (props changed) user/dfr/gssapi/7/usr.sbin/syslogd/ (props changed) user/dfr/gssapi/7/usr.sbin/tzsetup/ (props changed) user/dfr/gssapi/7/usr.sbin/wpa/wpa_supplicant/ (props changed) Modified: user/dfr/gssapi/7/usr.sbin/Makefile ============================================================================== --- user/dfr/gssapi/7/usr.sbin/Makefile Tue Nov 4 11:54:26 2008 (r184626) +++ user/dfr/gssapi/7/usr.sbin/Makefile Tue Nov 4 12:02:01 2008 (r184627) @@ -64,6 +64,7 @@ SUBDIR= ac \ getpmac \ gstat \ ${_i4b} \ + ${_gssd} \ ifmcstat \ inetd \ iostat \ @@ -234,6 +235,10 @@ _keyserv= keyserv _ftp-proxy= ftp-proxy .endif +.if ${MK_GSSAPI} != no +_gssd= gssd +.endif + .if ${MK_INET6} != "no" _faithd= faithd _ip6addrctl= ip6addrctl Modified: user/dfr/gssapi/7/usr.sbin/mountd/exports.5 ============================================================================== --- user/dfr/gssapi/7/usr.sbin/mountd/exports.5 Tue Nov 4 11:54:26 2008 (r184626) +++ user/dfr/gssapi/7/usr.sbin/mountd/exports.5 Tue Nov 4 12:02:01 2008 (r184627) @@ -149,6 +149,17 @@ option is given, all users (including root) will be mapped to that credential in place of their own. .Pp +.Sm off +.Fl sec Li = Sy flavor1:flavor2... +.Sm on +specifies a colon separated list of acceptable security flavors to be +used for remote access. +Supported security flavors are sys, krb5, krb5i and krb5p. +If multiple flavors are listed, they should be ordered with the most +preferred flavor first. +If this option is not present, +the default security flavor list of just sys is used. +.Pp The .Fl ro option specifies that the file system should be exported read-only @@ -305,6 +316,8 @@ the default remote mount-point file /u2 -maproot=root friends /u2 -alldirs -network cis-net -mask cis-mask /cdrom -alldirs,quiet,ro -network 192.168.33.0 -mask 255.255.255.0 +/private -sec=krb5i +/secret -sec=krb5p .Ed .Pp Given that @@ -411,6 +424,15 @@ While there is no CD-ROM medium mounted it would export the (normally empty) directory .Pa /cdrom of the root file system instead. +.Pp +The file system rooted at +.Pa /private +will be exported using Kerberos 5 authentication and will require +integrity protected messages for all accesses. +The file system rooted at +.Pa /secret +will also be exported using Kerberos 5 authentication and all messages +used to access it will be encrypted. .Sh SEE ALSO .Xr netgroup 5 , .Xr mountd 8 , Modified: user/dfr/gssapi/7/usr.sbin/mountd/mountd.c ============================================================================== --- user/dfr/gssapi/7/usr.sbin/mountd/mountd.c Tue Nov 4 11:54:26 2008 (r184626) +++ user/dfr/gssapi/7/usr.sbin/mountd/mountd.c Tue Nov 4 12:02:01 2008 (r184627) @@ -113,6 +113,8 @@ struct exportlist { fsid_t ex_fs; char *ex_fsdir; char *ex_indexfile; + int ex_numsecflavors; + int ex_secflavors[MAXSECFLAVORS]; }; /* ex_flag bits */ #define EX_LINKED 0x1 @@ -150,6 +152,8 @@ struct fhreturn { int fhr_flag; int fhr_vers; nfsfh_t fhr_fh; + int fhr_numsecflavors; + int *fhr_secflavors; }; /* Global defs */ @@ -240,6 +244,7 @@ struct pidfh *pfh = NULL; #define OP_HAVEMASK 0x80 /* A mask was specified or inferred. */ #define OP_QUIET 0x100 #define OP_MASKLEN 0x200 +#define OP_SEC 0x400 #ifdef DEBUG int debug = 1; @@ -817,6 +822,8 @@ mntsrv(rqstp, transp) sigprocmask(SIG_UNBLOCK, &sighup_mask, NULL); return; } + fhr.fhr_numsecflavors = ep->ex_numsecflavors; + fhr.fhr_secflavors = ep->ex_secflavors; if (!svc_sendreply(transp, (xdrproc_t)xdr_fhs, (caddr_t)&fhr)) syslog(LOG_ERR, "can't send reply"); @@ -934,6 +941,7 @@ xdr_fhs(xdrsp, cp) { struct fhreturn *fhrp = (struct fhreturn *)cp; u_long ok = 0, len, auth; + int i; if (!xdr_long(xdrsp, &ok)) return (0); @@ -946,11 +954,20 @@ xdr_fhs(xdrsp, cp) return (0); if (!xdr_opaque(xdrsp, (caddr_t)&fhrp->fhr_fh, len)) return (0); - auth = RPCAUTH_UNIX; - len = 1; - if (!xdr_long(xdrsp, &len)) - return (0); - return (xdr_long(xdrsp, &auth)); + if (fhrp->fhr_numsecflavors) { + if (!xdr_int(xdrsp, &fhrp->fhr_numsecflavors)) + return (0); + for (i = 0; i < fhrp->fhr_numsecflavors; i++) + if (!xdr_int(xdrsp, &fhrp->fhr_secflavors[i])) + return (0); + return (1); + } else { + auth = AUTH_SYS; + len = 1; + if (!xdr_long(xdrsp, &len)) + return (0); + return (xdr_long(xdrsp, &auth)); + } }; return (0); } @@ -1765,6 +1782,57 @@ free_dir(dp) } /* + * Parse a colon separated list of security flavors + */ +int +parsesec(seclist, ep) + char *seclist; + struct exportlist *ep; +{ + char *cp, savedc; + int flavor; + + ep->ex_numsecflavors = 0; + for (;;) { + cp = strchr(seclist, ':'); + if (cp) { + savedc = *cp; + *cp = '\0'; + } + + if (!strcmp(seclist, "sys")) + flavor = AUTH_SYS; + else if (!strcmp(seclist, "krb5")) + flavor = RPCSEC_GSS_KRB5; + else if (!strcmp(seclist, "krb5i")) + flavor = RPCSEC_GSS_KRB5I; + else if (!strcmp(seclist, "krb5p")) + flavor = RPCSEC_GSS_KRB5P; + else { + if (cp) + *cp = savedc; + syslog(LOG_ERR, "bad sec flavor: %s", seclist); + return (1); + } + if (ep->ex_numsecflavors == MAXSECFLAVORS) { + if (cp) + *cp = savedc; + syslog(LOG_ERR, "too many sec flavors: %s", seclist); + return (1); + } + ep->ex_secflavors[ep->ex_numsecflavors] = flavor; + ep->ex_numsecflavors++; + if (cp) { + *cp = savedc; + seclist = cp + 1; + } else { + break; + } + } + return (0); +} + +/* * Parse the option string and update fields. * Option arguments may either be -