Index: head/UPDATING =================================================================== --- head/UPDATING +++ head/UPDATING @@ -31,6 +31,13 @@ disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20190131: + Iflib is no longer unconditionally compiled into the kernel. Drivers + using iflib and statically compiled into the kernel, now require + the 'device iflib' config option. For the same drivers loaded as + modules on kernels not having 'device iflib', the iflib.ko module + is loaded automatically. + 20181230: r342635 changes the way efibootmgr(8) works by requiring users to add the -b (bootnum) parameter for commands where the bootnum was previously Index: head/share/man/man4/bnxt.4 =================================================================== --- head/share/man/man4/bnxt.4 +++ head/share/man/man4/bnxt.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 20, 2018 +.Dd January 30, 2019 .Dt BNXT 4 .Os .Sh NAME @@ -36,6 +36,7 @@ place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device iflib" .Cd "device bnxt" .Ed .Pp Index: head/share/man/man4/em.4 =================================================================== --- head/share/man/man4/em.4 +++ head/share/man/man4/em.4 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 20, 2018 +.Dd January 30, 2019 .Dt EM 4 .Os .Sh NAME @@ -39,9 +39,10 @@ .Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver" .Sh SYNOPSIS To compile this driver into the kernel, -place the following line in your +place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device iflib" .Cd "device em" .Ed .Pp Index: head/share/man/man4/iavf.4 =================================================================== --- head/share/man/man4/iavf.4 +++ head/share/man/man4/iavf.4 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 5, 2018 +.Dd January 30, 2019 .Dt IAVF 4 .Os .Sh NAME @@ -41,6 +41,7 @@ To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device iflib" .Cd "device iavf" .Ed .Pp Index: head/share/man/man4/ixgbe.4 =================================================================== --- head/share/man/man4/ixgbe.4 +++ head/share/man/man4/ixgbe.4 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 19, 2010 +.Dd January 30, 2019 .Dt IXGBE 4 .Os .Sh NAME @@ -39,9 +39,10 @@ .Nd "Intel(R) 10Gb Ethernet driver for the FreeBSD operating system" .Sh SYNOPSIS To compile this driver into the kernel, -place the following line in your +place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device iflib" .Cd "device ixgbe" .Ed .Pp Index: head/share/man/man4/ixl.4 =================================================================== --- head/share/man/man4/ixl.4 +++ head/share/man/man4/ixl.4 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 5, 2018 +.Dd January 30, 2019 .Dt IXL 4 .Os .Sh NAME @@ -41,6 +41,7 @@ To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device iflib" .Cd "device ixl" .Ed .Pp Index: head/share/man/man4/vmx.4 =================================================================== --- head/share/man/man4/vmx.4 +++ head/share/man/man4/vmx.4 @@ -17,7 +17,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 17, 2014 +.Dd January 30, 2019 .Dt VMX 4 .Os .Sh NAME @@ -25,9 +25,10 @@ .Nd VMware VMXNET3 Virtual Interface Controller device .Sh SYNOPSIS To compile this driver into the kernel, -place the following line in your +place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device iflib" .Cd "device vmx" .Ed .Pp Index: head/sys/amd64/conf/GENERIC =================================================================== --- head/sys/amd64/conf/GENERIC +++ head/sys/amd64/conf/GENERIC @@ -234,14 +234,18 @@ device puc # Multi I/O cards and multi-channel UARTs -# PCI Ethernet NICs. -device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE -device de # DEC/Intel DC21x4x (``Tulip'') +# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure +device iflib device em # Intel PRO/1000 Gigabit Ethernet Family device ix # Intel PRO/10GbE PCIE PF Ethernet device ixv # Intel PRO/10GbE PCIE VF Ethernet device ixl # Intel 700 Series Physical Function device iavf # Intel Adaptive Virtual Function +device vmx # VMware VMXNET3 Ethernet + +# PCI Ethernet NICs. +device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE +device de # DEC/Intel DC21x4x (``Tulip'') device le # AMD Am7900 LANCE and Am79C9xx PCnet device ti # Alteon Networks Tigon I/II gigabit Ethernet device txp # 3Com 3cR990 (``Typhoon'') @@ -368,9 +372,6 @@ # NOTE: XENHVM depends on xenpci. They must be added or removed together. options XENHVM # Xen HVM kernel infrastructure device xenpci # Xen HVM Hypervisor services driver - -# VMware support -device vmx # VMware VMXNET3 Ethernet # Netmap provides direct access to TX/RX rings on supported NICs device netmap # netmap(4) support Index: head/sys/arm64/conf/GENERIC =================================================================== --- head/sys/arm64/conf/GENERIC +++ head/sys/arm64/conf/GENERIC @@ -145,14 +145,17 @@ options PCI_HP # PCI-Express native HotPlug options PCI_IOV # PCI SR-IOV support +# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure +device iflib +device em # Intel PRO/1000 Gigabit Ethernet Family +device ix # Intel 10Gb Ethernet Family + # Ethernet NICs device mdio device mii device miibus # MII bus support device awg # Allwinner EMAC Gigabit Ethernet device axgbe # AMD Opteron A1100 integrated NIC -device em # Intel PRO/1000 Gigabit Ethernet Family -device ix # Intel 10Gb Ethernet Family device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device neta # Marvell Armada 370/38x/XP/3700 NIC device smc # SMSC LAN91C111 Index: head/sys/conf/NOTES =================================================================== --- head/sys/conf/NOTES +++ head/sys/conf/NOTES @@ -2092,15 +2092,18 @@ device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') +# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure +device iflib +device em # Intel Pro/1000 Gigabit Ethernet +device ix # Intel Pro/10Gbe PCIE Ethernet +device ixv # Intel Pro/10Gbe PCIE Ethernet VF + # PCI Ethernet NICs. device cxgb # Chelsio T3 10 Gigabit Ethernet device cxgb_t3fw # Chelsio T3 10 Gigabit Ethernet firmware device cxgbe # Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet device cxgbev # Chelsio T4-T6 Virtual Functions device de # DEC/Intel DC21x4x (``Tulip'') -device em # Intel Pro/1000 Gigabit Ethernet -device ix # Intel Pro/10Gbe PCIE Ethernet -device ixv # Intel Pro/10Gbe PCIE Ethernet VF device le # AMD Am7900 LANCE and Am79C9xx PCnet device mxge # Myricom Myri-10G 10GbE NIC device oce # Emulex 10 GbE (OneConnect Ethernet) Index: head/sys/conf/files =================================================================== --- head/sys/conf/files +++ head/sys/conf/files @@ -4132,10 +4132,10 @@ net/if_tap.c optional tap net/if_vlan.c optional vlan net/if_vxlan.c optional vxlan inet | vxlan inet6 -net/ifdi_if.m optional ether pci -net/iflib.c optional ether pci -net/iflib_clone.c optional ether pci -net/mp_ring.c optional ether +net/ifdi_if.m optional ether pci iflib +net/iflib.c optional ether pci iflib +net/iflib_clone.c optional ether pci iflib +net/mp_ring.c optional ether iflib net/mppcc.c optional netgraph_mppc_compression net/mppcd.c optional netgraph_mppc_compression net/netisr.c standard Index: head/sys/dev/ixgbe/if_ixv.c =================================================================== --- head/sys/dev/ixgbe/if_ixv.c +++ head/sys/dev/ixgbe/if_ixv.c @@ -144,11 +144,9 @@ devclass_t ixv_devclass; DRIVER_MODULE(ixv, pci, ixv_driver, ixv_devclass, 0, 0); IFLIB_PNP_INFO(pci, ixv_driver, ixv_vendor_info_array); +MODULE_DEPEND(ixv, iflib, 1, 1, 1); MODULE_DEPEND(ixv, pci, 1, 1, 1); MODULE_DEPEND(ixv, ether, 1, 1, 1); -#ifdef DEV_NETMAP -MODULE_DEPEND(ixv, netmap, 1, 1, 1); -#endif /* DEV_NETMAP */ static device_method_t ixv_if_methods[] = { DEVMETHOD(ifdi_attach_pre, ixv_if_attach_pre), Index: head/sys/i386/conf/GENERIC =================================================================== --- head/sys/i386/conf/GENERIC +++ head/sys/i386/conf/GENERIC @@ -220,10 +220,14 @@ device puc # Multi I/O cards and multi-channel UARTs +# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure +device iflib +device em # Intel PRO/1000 Gigabit Ethernet Family +device vmx # VMware VMXNET3 Ethernet + # PCI Ethernet NICs. device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE device de # DEC/Intel DC21x4x (``Tulip'') -device em # Intel PRO/1000 Gigabit Ethernet Family device le # AMD Am7900 LANCE and Am79C9xx PCnet device ti # Alteon Networks Tigon I/II gigabit Ethernet device txp # 3Com 3cR990 (``Typhoon'') @@ -361,9 +365,6 @@ # NOTE: XENHVM depends on xenpci. They must be added or removed together. options XENHVM # Xen HVM kernel infrastructure device xenpci # Xen HVM Hypervisor services driver - -# VMware support -device vmx # VMware VMXNET3 Ethernet # evdev interface options EVDEV_SUPPORT # evdev support in legacy drivers Index: head/sys/mips/conf/OCTEON1 =================================================================== --- head/sys/mips/conf/OCTEON1 +++ head/sys/mips/conf/OCTEON1 @@ -155,6 +155,8 @@ # physical port, but may eventually provide support for DSA or similar instead. #device mv88e61xxphy # Marvell 88E61XX +device iflib + # PCI Ethernet NICs. device em # Intel PRO/1000 Gigabit Ethernet Family device ix # Intel PRO/10GbE PF PCIE Ethernet Family Index: head/sys/mips/conf/std.XLP =================================================================== --- head/sys/mips/conf/std.XLP +++ head/sys/mips/conf/std.XLP @@ -75,6 +75,7 @@ device xlpge #device re device msk +device iflib device em # Disks Index: head/sys/modules/Makefile =================================================================== --- head/sys/modules/Makefile +++ head/sys/modules/Makefile @@ -169,6 +169,7 @@ if_tun \ if_vlan \ if_vxlan \ + iflib \ ${_iir} \ imgact_binmisc \ ${_intelspi} \ Index: head/sys/modules/iflib/Makefile =================================================================== --- head/sys/modules/iflib/Makefile +++ head/sys/modules/iflib/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/net + +KMOD= iflib +SRCS= \ + iflib.c \ + iflib_clone.c \ + mp_ring.c +SRCS+= ifdi_if.c +SRCS+= device_if.h bus_if.h pci_if.h ifdi_if.h + +.include Index: head/sys/powerpc/conf/GENERIC64 =================================================================== --- head/sys/powerpc/conf/GENERIC64 +++ head/sys/powerpc/conf/GENERIC64 @@ -159,6 +159,8 @@ device uart device uart_z8530 +device iflib + # Ethernet hardware device em # Intel PRO/1000 Gigabit Ethernet Family device ix # Intel PRO/10GbE PCIE PF Ethernet Family Index: head/sys/powerpc/conf/MPC85XX =================================================================== --- head/sys/powerpc/conf/MPC85XX +++ head/sys/powerpc/conf/MPC85XX @@ -74,6 +74,7 @@ device da device ds1307 device ds1553 +device iflib device em device alc device ether Index: head/sys/powerpc/conf/MPC85XXSPE =================================================================== --- head/sys/powerpc/conf/MPC85XXSPE +++ head/sys/powerpc/conf/MPC85XXSPE @@ -74,6 +74,7 @@ device da device ds1307 device ds1553 +device iflib device em device alc device ether Index: head/sys/powerpc/conf/QORIQ64 =================================================================== --- head/sys/powerpc/conf/QORIQ64 +++ head/sys/powerpc/conf/QORIQ64 @@ -81,6 +81,7 @@ device da device ds1307 device ds1553 +device iflib device em device alc device dpaa Index: head/sys/powerpc/conf/dpaa/DPAA =================================================================== --- head/sys/powerpc/conf/dpaa/DPAA +++ head/sys/powerpc/conf/dpaa/DPAA @@ -74,6 +74,7 @@ # Network devices device miibus # MII bus support +device iflib device em Index: head/sys/sparc64/conf/GENERIC =================================================================== --- head/sys/sparc64/conf/GENERIC +++ head/sys/sparc64/conf/GENERIC @@ -181,6 +181,8 @@ #device ppi # Parallel port interface device #device vpo # Requires scbus and da +device iflib + # PCI Ethernet NICs. #device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel PRO/1000 adapter Gigabit Ethernet Card