Index: head/share/man/man4/cc_newreno.4 =================================================================== --- head/share/man/man4/cc_newreno.4 (revision 344481) +++ head/share/man/man4/cc_newreno.4 (revision 344482) @@ -1,155 +1,157 @@ .\" .\" Copyright (c) 2009 Lawrence Stewart .\" Copyright (c) 2011 The FreeBSD Foundation .\" All rights reserved. .\" .\" Portions of this documentation were written at the Centre for Advanced .\" Internet Architectures, Swinburne University of Technology, Melbourne, .\" Australia by Lawrence Stewart under sponsorship from the FreeBSD Foundation. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd March 19, 2018 .Dt CC_NEWRENO 4 .Os .Sh NAME .Nm cc_newreno .Nd NewReno Congestion Control Algorithm .Sh SYNOPSIS .In netinet/cc/cc_newreno.h .Sh DESCRIPTION The NewReno congestion control algorithm is the default for TCP. Details about the algorithm can be found in RFC5681. .Sh Socket Options The .Nm module supports a number of socket options under TCP_CCALGOOPT (refer to .Xr tcp 4 and .Xr moc_cc 9 for details) which can be set with .Xr setsockopt 2 and tested with .Xr getsockopt 2 . The .Nm socket options use this structure defined in : .Bd -literal struct cc_newreno_opts { int name; uint32_t val; } .Ed .Bl -tag -width ".Va CC_NEWRENO_BETA_ECN" .It Va CC_NEWRENO_BETA Multiplicative window decrease factor, specified as a percentage, applied to the congestion window in response to a congestion signal per: cwnd = (cwnd * CC_NEWRENO_BETA) / 100. Default is 50. .It Va CC_NEWRENO_BETA_ECN Multiplicative window decrease factor, specified as a percentage, applied to the congestion window in response to an ECN congestion signal when .Va net.inet.tcp.cc.abe=1 per: cwnd = (cwnd * CC_NEWRENO_BETA_ECN) / 100. Default is 80. +.El .Sh MIB Variables The algorithm exposes these variables in the .Va net.inet.tcp.cc.newreno branch of the .Xr sysctl 3 MIB: .Bl -tag -width ".Va beta_ecn" .It Va beta Multiplicative window decrease factor, specified as a percentage, applied to the congestion window in response to a congestion signal per: cwnd = (cwnd * beta) / 100. Default is 50. .It Va beta_ecn Multiplicative window decrease factor, specified as a percentage, applied to the congestion window in response to an ECN congestion signal when .Va net.inet.tcp.cc.abe=1 per: cwnd = (cwnd * beta_ecn) / 100. Default is 80. +.El .Sh SEE ALSO .Xr cc_chd 4 , .Xr cc_cubic 4 , .Xr cc_hd 4 , .Xr cc_htcp 4 , .Xr cc_vegas 4 , .Xr mod_cc 4 , .Xr tcp 4 , .Xr mod_cc 9 .Rs .%A "Mark Allman" .%A "Vern Paxson" .%A "Ethan Blanton" .%T "TCP Congestion Control" .%O "RFC 5681" .Re .Rs .%A "Naeem Khademi" .%A "Michael Welzl" .%A "Grenville Armitage" .%A "Gorry Fairhurst" .%T "TCP Alternative Backoff with ECN (ABE)" .%R "internet draft" .%D "February 2018" .%N "draft-ietf-tcpm-alternativebackoff-ecn" .%O "work in progress" .Re .Sh ACKNOWLEDGEMENTS Development and testing of this software were made possible in part by grants from the FreeBSD Foundation and Cisco University Research Program Fund at Community Foundation Silicon Valley. .Sh HISTORY The .Nm congestion control algorithm first appeared in its modular form in .Fx 9.0 . .Pp The module was first released in 2007 by James Healy and Lawrence Stewart whilst working on the NewTCP research project at Swinburne University of Technology's Centre for Advanced Internet Architectures, Melbourne, Australia, which was made possible in part by a grant from the Cisco University Research Program Fund at Community Foundation Silicon Valley. More details are available at: .Pp http://caia.swin.edu.au/urp/newtcp/ .Sh AUTHORS .An -nosplit The .Nm congestion control module was written by .An James Healy Aq Mt jimmy@deefa.com , .An Lawrence Stewart Aq Mt lstewart@FreeBSD.org and .An David Hayes Aq Mt david.hayes@ieee.org . .Pp Support for TCP ABE was added by .An Tom Jones Aq Mt tj@enoti.me . .Pp This manual page was written by .An Lawrence Stewart Aq Mt lstewart@FreeBSD.org . Index: head/share/man/man4/ctl.4 =================================================================== --- head/share/man/man4/ctl.4 (revision 344481) +++ head/share/man/man4/ctl.4 (revision 344482) @@ -1,222 +1,223 @@ .\" Copyright (c) 2013 Edward Tomasz Napierala .\" Copyright (c) 2015-2017 Alexander Motin .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .Dd March 29, 2017 .Dt CTL 4 .Os .Sh NAME .Nm ctl .Nd CAM Target Layer .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ctl" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent ctl_load="YES" .Ed .Sh DESCRIPTION The .Nm subsystem provides SCSI target devices emulation. It supports features such as: .Pp .Bl -bullet -compact .It Disk, CD-ROM and processor device emulation .It Tagged queueing .It SCSI task attribute support (ordered, head of queue, simple tags) .It SCSI implicit command ordering support .It Full task management support (abort, query, reset, etc.) .It Support for multiple ports, initiators, targets and backing stores .It Support for VMWare VAAI and Microsoft ODX offload (COMPARE AND WRITE, XCOPY, POPULATE TOKEN/WRITE USING TOKEN, WRITE SAME and UNMAP) .It Persistent reservation support .It Extensive VPD/mode/log pages support .It Featured error reporting, error injection and basic SMART support .It High Availability clustering support with ALUA .It All I/O handled in-kernel, no userland context switch overhead .El .Pp The .Nm subsystem includes multiple frontends to provide access using different transport protocols and implementations: .Bl -tag -width cfumass .It camsim Provides access for local system via virtual initiator mode .Xr CAM 4 SIM. .It camtgt Provides access for remote systems via target mode .Xr CAM 4 SIMs, such as Fibre Channel .Xr isp 4 and .Xr mpt 4 . .It cfumass Provides access for remote systems via USB Mass Storage Class Bulk Only (BBB) Transport. .It ha Internal frontend used to receive requests from other node ports in High Availability cluster. .It ioctl Provides access for local user-level applications via .Xr ioctl 2 based API. .It iscsi Provides access for remote systems via the iSCSI protocol using .Xr cfiscsi 4 . .It tpc Internal frontend used to receive requests from Third Party Copy engine, implementing copy offload operations. .El .Pp The .Nm subsystem includes two backends to create logical units using different kinds of backing stores: .Bl -tag -width ramdisk .It block Stores data in ZFS ZVOLs, files or raw block devices. .It ramdisk Stores data in RAM, that makes it mostly useful for performance testing. Depending on configured capacity can work as black hole, thin or thick provisioned disk. .El .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va kern.cam.ctl.debug Bit mask of enabled CTL log levels: .Bl -tag -offset indent -compact .It 1 log commands with errors; .It 2 log all commands; .It 4 log data for commands other then READ/WRITE. .El Defaults to 0. .It Va kern.cam.ctl.ha_id Specifies unique position of this node within High Availability cluster. Default is 0 -- no HA, 1 and 2 -- HA enabled at specified position. .It Va kern.cam.ctl.ha_mode Specifies High Availability cluster operation mode: .Bl -tag -offset indent -compact .It 0 Active/Standby -- primary node has backend access and processes requests, while secondary can only do basic LUN discovery and reservation; .It 1 Active/Active -- both nodes have backend access and process requests, while secondary node synchronizes processing with primary one; .It 2 Active/Active -- primary node has backend access and processes requests, while secondary node forwards all requests and data to primary one; .El All above modes require established connection between HA cluster nodes. If connection is not configured, secondary node will report Unavailable state; if configured but not established -- Transitioning state. Defaults to 0. .It Va kern.cam.ctl.ha_peer String value, specifying method to establish connection to peer HA node. Can be "listen IP:port", "connect IP:port" or empty. .It Va kern.cam.ctl.ha_link Reports present state of connection between HA cluster nodes: .Bl -tag -offset indent -compact .It 0 not configured; .It 1 configured but not established; .It 2 established. .El .It Va kern.cam.ctl.ha_role Specifies default role of this node: .Bl -tag -offset indent -compact .It 0 primary; .It 1 secondary. .El This role can be overridden on per-LUN basis using "ha_role" LUN option, so that for one LUN one node is primary, while for another -- another. Role change from primary to secondary for HA modes 0 and 2 closes backends, the opposite change -- opens. If there is no primary node (both nodes are secondary, or secondary node has no connection to primary one), secondary node(s) report Transitioning state. State with two primary nodes is illegal (split brain condition). .El .Sh TUNABLE VARIABLES The following variables are available as .Xr loader 8 tunables: .Bl -tag -width indent .It Va kern.cam.ctl.max_luns Specifies the maximum number of LUNs we support, must be a power of 2. The default value is 1024. .It Va kern.cam.ctl.max_ports Specifies the maximum number of ports we support, must be a power of 2. The default value is 256. +.El .Sh SEE ALSO .Xr cfiscsi 4 , .Xr cfumass 4 , .Xr ctladm 8 , .Xr ctld 8 , .Xr ctlstat 8 .Sh HISTORY The .Nm subsystem first appeared in .Fx 9.1 . .Sh AUTHORS The .Nm subsystem was originally written by .An Kenneth Merry Aq Mt ken@FreeBSD.org . Later work was done by .An Alexander Motin Aq Mt mav@FreeBSD.org . Index: head/share/man/man4/ehci.4 =================================================================== --- head/share/man/man4/ehci.4 (revision 344481) +++ head/share/man/man4/ehci.4 (revision 344482) @@ -1,112 +1,113 @@ .\" $NetBSD: ehci.4,v 1.8 2001/11/21 17:22:56 augustss Exp $ .\" .\" Copyright (c) 2001 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Lennart Augustsson. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt EHCI 4 .Os .Sh NAME .Nm ehci .Nd USB Enhanced Host Controller driver .Sh SYNOPSIS .Cd "device ehci" .Sh DESCRIPTION The .Nm driver provides support for the .Tn USB Enhanced Host Controller Interface, which is used by .Tn USB 2.0 controllers. .Pp .Tn EHCI controllers are peculiar in that they can only handle the .Tn USB 2.0 protocol. This means that they normally have one or more companion controllers (i.e., .Xr ohci 4 or .Xr uhci 4 ) handling USB 1.x devices. Consequently each .Tn USB connector is electrically connected to two .Tn USB controllers. The handling of this is totally automatic, but can be noticed since .Tn USB 1.x and .Tn USB 2.0 devices plugged in to the same connector appear to connect to different USB buses. .Sh LOADER TUNABLES When the kernel has been compiled with .Cd options USB_DEBUG , some tunables become available that affect the behavior of .Nm . These tunables can be set at the .Xr loader 8 prompt before booting the kernel or stored in .Xr loader.conf 5 . .Bl -tag -width "xxxxxx" .It Va hw.usb.ehci.lostintrbug This tunable enables the lost interrupt quirk. The default value is 0 (off). .It Va hw.usb.ehci.iaadbug This tunable enables the EHCI doorbell quirk. The default value is 0 (off). .It Va hw.usb.ehci.no_hs This tunable disables USB devices to attach like HIGH-speed ones and will force all attached devices to attach to the FULL- or LOW-speed companion controller. The default value is 0 (off). +.El .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.ehci.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. .El .Sh SEE ALSO .Xr ohci 4 , .Xr uhci 4 , .Xr usb 4 , .Xr xhci 4 .Sh HISTORY The .Nm device driver first appeared in .Fx 5.1 . Index: head/share/man/man4/em.4 =================================================================== --- head/share/man/man4/em.4 (revision 344481) +++ head/share/man/man4/em.4 (revision 344482) @@ -1,326 +1,327 @@ .\" Copyright (c) 2001-2003, Intel Corporation .\" All rights reserved. .\" .\" 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. .\" .\" 3. Neither the name of the Intel Corporation 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. .\" .\" * Other names and brands may be claimed as the property of others. .\" .\" $FreeBSD$ .\" .Dd January 30, 2019 .Dt EM 4 .Os .Sh NAME .Nm em .Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver" .Sh SYNOPSIS 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 em" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_em_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for PCI Gigabit Ethernet adapters based on the Intel 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 82546EB, 82546GB, 82547, 82571, 81572, 82573, and 82574 Ethernet controller chips. .Pp The .Nm driver also provides support for PCI Express Gigabit Ethernet adapters based on the Intel 82575, 82576, 82580, i21x and i35x. .Pp The driver supports Transmit/Receive checksum offload and Jumbo Frames on all but 82542-based adapters. .Pp Furthermore it supports TCP segmentation offload (TSO) on all adapters but those based on the 82543, 82544 and 82547 controller chips. The identification LEDs of the adapters supported by the .Nm driver can be controlled via the .Xr led 4 API for localization purposes. For further hardware information, see the .Pa README included with the driver. .Pp For questions related to hardware requirements, refer to the documentation supplied with your Intel PRO/1000 adapter. All hardware requirements listed apply to use with .Fx . .Pp Support for Jumbo Frames is provided via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 utility configures the adapter to receive and transmit Jumbo Frames. The maximum MTU size for Jumbo Frames is 16114. .Pp This driver supports hardware assisted VLANs. The .Nm driver supports the following media types: .Bl -tag -width ".Cm 10baseT/UTP" .It Cm autoselect Enables auto-negotiation for speed and duplex. .It Cm 10baseT/UTP Sets 10Mbps operation. Use the .Cm mediaopt option to select .Cm full-duplex mode. .It Cm 100baseTX Sets 100Mbps operation. Use the .Cm mediaopt option to select .Cm full-duplex mode. .It Cm 1000baseSX Sets 1000Mbps operation. Only .Cm full-duplex mode is supported at this speed. .It Cm 1000baseTX Sets 1000Mbps operation. Only .Cm full-duplex mode is supported at this speed. .El .Pp The .Nm driver supports the following media options: .Bl -tag -width ".Cm full-duplex" .It Cm full-duplex Forces full-duplex operation .It Cm half-duplex Forces half-duplex operation. .El .Pp Only use .Cm mediaopt to set the driver to .Cm full-duplex . If .Cm mediaopt is not specified, the driver defaults to .Cm half-duplex . .Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm driver supports Gigabit Ethernet adapters based on the Intel 82540, 82541ER, 82541PI, 82542, 82543, 82544, 82545, 82546, 82546EB, 82546GB, 82547, 82571, 82572, 82573, 82574, 82575, 82576, and 82580 controller chips: .Pp .Bl -bullet -compact .It Intel Gigabit ET Dual Port Server Adapter (82576) .It Intel Gigabit VT Quad Port Server Adapter (82575) .It Intel Single, Dual and Quad Gigabit Ethernet Controller (82580) .It Intel i210 and i211 Gigabit Ethernet Controller .It Intel i350 and i354 Gigabit Ethernet Controller .It Intel PRO/1000 CT Network Connection (82547) .It Intel PRO/1000 F Server Adapter (82543) .It Intel PRO/1000 Gigabit Server Adapter (82542) .It Intel PRO/1000 GT Desktop Adapter (82541PI) .It Intel PRO/1000 MF Dual Port Server Adapter (82546) .It Intel PRO/1000 MF Server Adapter (82545) .It Intel PRO/1000 MF Server Adapter (LX) (82545) .It Intel PRO/1000 MT Desktop Adapter (82540) .It Intel PRO/1000 MT Desktop Adapter (82541) .It Intel PRO/1000 MT Dual Port Server Adapter (82546) .It Intel PRO/1000 MT Quad Port Server Adapter (82546EB) .It Intel PRO/1000 MT Server Adapter (82545) .It Intel PRO/1000 PF Dual Port Server Adapter (82571) .It Intel PRO/1000 PF Quad Port Server Adapter (82571) .It Intel PRO/1000 PF Server Adapter (82572) .It Intel PRO/1000 PT Desktop Adapter (82572) .It Intel PRO/1000 PT Dual Port Server Adapter (82571) .It Intel PRO/1000 PT Quad Port Server Adapter (82571) .It Intel PRO/1000 PT Server Adapter (82572) .It Intel PRO/1000 T Desktop Adapter (82544) .It Intel PRO/1000 T Server Adapter (82543) .It Intel PRO/1000 XF Server Adapter (82544) .It Intel PRO/1000 XT Server Adapter (82544) .El .Sh LOADER TUNABLES Tunables can be set at the .Xr loader 8 prompt before booting the kernel or stored in .Xr loader.conf 5 . .Bl -tag -width indent .It Va hw.em.disable_crc_stripping Disable or enable hardware stripping of CRC field. This is mostly useful on BMC/IPMI shared interfaces where stripping the CRC causes remote access over IPMI to fail. Default 0 (enabled). .It Va hw.em.eee_setting Disable or enable Energy Efficient Ethernet. Default 1 (disabled). .It Va hw.em.msix Enable or disable MSI-X style interrupts. Default 1 (enabled). .It Va hw.em.smart_pwr_down Enable or disable smart power down features on newer adapters. Default 0 (disabled). .It Va hw.em.sbp Show bad packets when in promiscuous mode. Default 0 (off). .It Va hw.em.rxd Number of receive descriptors allocated by the driver. The default value is 1024 for adapters newer than 82547, and 256 for older ones. The 82542 and 82543-based adapters can handle up to 256 descriptors, while others can have up to 4096. .It Va hw.em.txd Number of transmit descriptors allocated by the driver. The default value is 1024 for adapters newer than 82547, and 256 for older ones. The 82542 and 82543-based adapters can handle up to 256 descriptors, while others can have up to 4096. .It Va hw.em.rx_int_delay This value delays the generation of receive interrupts in units of 1.024 microseconds. The default value is 0, since adapters may hang with this feature being enabled. .It Va hw.em.rx_abs_int_delay If .Va hw.em.rx_int_delay is non-zero, this tunable limits the maximum delay in which a receive interrupt is generated. .It Va hw.em.tx_int_delay This value delays the generation of transmit interrupts in units of 1.024 microseconds. The default value is 64. .It Va hw.em.tx_abs_int_delay If .Va hw.em.tx_int_delay is non-zero, this tunable limits the maximum delay in which a transmit interrupt is generated. +.El .Sh FILES .Bl -tag -width /dev/led/em* .It Pa /dev/led/em* identification LED device nodes .El .Sh EXAMPLES Make the identification LED of em0 blink: .Pp .Dl "echo f2 > /dev/led/em0" .Pp Turn the identification LED of em0 off again: .Pp .Dl "echo 0 > /dev/led/em0" .Sh DIAGNOSTICS .Bl -diag .It "em%d: Unable to allocate bus resource: memory" A fatal initialization error has occurred. .It "em%d: Unable to allocate bus resource: interrupt" A fatal initialization error has occurred. .It "em%d: watchdog timeout -- resetting" The device has stopped responding to the network, or there is a problem with the network connection (cable). .El .Sh SUPPORT For general information and support, go to the Intel support website at: .Pa http://support.intel.com . .Pp If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to .Aq Mt freebsd@intel.com . .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , .Xr iflib 4 , .Xr led 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr polling 4 , .Xr vlan 4 , .Xr ifconfig 8 .Sh HISTORY The .Nm device driver first appeared in .Fx 4.4 . .Nm was merged with the igb device driver and converted to the iflib framework in .Fx 12.0 . .Sh AUTHORS .An -nosplit The .Nm driver was originally written by .An Intel Corporation Aq Mt freebsd@intel.com . It was merged with igb driver and converted to the iflib framework by .An Matthew Macy Aq Mt mmacy@mattmacy.io and .An Sean Bruno Aq Mt sbruno@FreeBSD.org . Index: head/share/man/man4/ena.4 =================================================================== --- head/share/man/man4/ena.4 (revision 344481) +++ head/share/man/man4/ena.4 (revision 344482) @@ -1,255 +1,256 @@ .\" Copyright (c) 2015-2017 Amazon.com, Inc. or its affiliates. .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT .\" OWNER 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. .\" .\" $FreeBSD$ .\" .Dd May 04, 2017 .Dt ENA 4 .Os .Sh NAME .Nm ena .Nd "FreeBSD kernel driver for Elastic Network Adapter (ENA) family" .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ena" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_ena_load="YES" .Ed .Sh DESCRIPTION The ENA is a networking interface designed to make good use of modern CPU features and system architectures. .Pp The ENA device exposes a lightweight management interface with a minimal set of memory mapped registers and extendable command set through an Admin Queue. .Pp The driver supports a range of ENA devices, is link-speed independent (i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has a negotiated and extendable feature set. .Pp Some ENA devices support SR-IOV. This driver is used for both the SR-IOV Physical Function (PF) and Virtual Function (VF) devices. .Pp The ENA devices enable high speed and low overhead network traffic processing by providing multiple Tx/Rx queue pairs (the maximum number is advertised by the device via the Admin Queue), a dedicated MSI-X interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized data placement. .Pp The .Nm driver supports industry standard TCP/IP offload features such as checksum offload and TCP transmit segmentation offload (TSO). Receive-side scaling (RSS) is supported for multi-core scaling. .Pp The .Nm driver and its corresponding devices implement health monitoring mechanisms such as watchdog, enabling the device and driver to recover in a manner transparent to the application, as well as debug logs. .Pp Some of the ENA devices support a working mode called Low-latency Queue (LLQ), which saves several more microseconds. This feature will be implemented for driver in future releases. .Sh HARDWARE Supported PCI vendor ID/device IDs: .Pp .Bl -bullet -compact .It 1d0f:0ec2 - ENA PF .It 1d0f:1ec2 - ENA PF with LLQ support .It 1d0f:ec20 - ENA VF .It 1d0f:ec21 - ENA VF with LLQ support .El .Sh DIAGNOSTICS .Ss Device initialization phase: .Bl -diag .It ena%d: failed to init mmio read less .Pp Error occurred during initialization of the mmio register read request. .It ena%d: Can not reset device .Pp Device could not be reset; device may not be responding or is already during reset. .It ena%d: device version is too low .Pp Version of the controller is too low and it is not supported by the driver. .It ena%d: Invalid dma width value %d .Pp The controller is able to request dma transcation width. Device stopped responding or it demanded invalid value. .It ena%d: Can not initialize ena admin queue with device .Pp Initialization of the Admin Queue failed; device may not be responding or there was a problem with initialization of the resources. .It ena%d: Cannot get attribute for ena device rc: %d .Pp Failed to get attributes of the device from the controller. .It ena%d: Cannot configure aenq groups rc: %d .Pp Errors occurred when trying to configure AENQ groups. .El .Ss Driver initialisation/shutdown phase: .Bl -diag .It ena%d: PCI resource allocation failed! .It ena%d: allocating ena_dev failed .It ena%d: failed to pmap registers bar .It ena%d: Error while setting up bufring .It ena%d: Error with initialization of IO rings .It ena%d: can not allocate ifnet structure .It ena%d: Error with network interface setup .It ena%d: Failed to enable and set the admin interrupts .It ena%d: Failed to allocate %d, vectors %d .It ena%d: Failed to enable MSIX, vectors %d rc %d .It ena%d: Error with MSI-X enablement .It ena%d: could not allocate irq vector: %d .It ena%d: Unable to allocate bus resource: registers .Pp Resource allocation failed when initializing the device; driver will not be attached. .It ena%d: ENA device init failed (err: %d) .Pp Device initialization failed; driver will not be attached. .It ena%d: could not activate irq vector: %d .Pp Error occurred when trying to activate interrupt vectors for Admin Queue. .It ena%d: failed to register interrupt handler for irq %ju: %d .Pp Error occurred when trying to register Admin Queue interrupt handler. .It ena%d: Cannot setup mgmnt queue intr .Pp Error occurred during configuration of the Admin Queue interrupts. .It ena%d: Enable MSI-X failed .Pp Configuration of the MSI-X for Admin Queue failed; there could be lack of resources or interrupts could not have been configured; driver will not be attached. .It ena%d: VLAN is in use, detach first .Pp VLANs are being used when trying to detach the driver; VLANs should be detached first and then detach routine should be called again. .It ena%d: Unmapped RX DMA tag associations .It ena%d: Unmapped TX DMA tag associations .Pp Error occurred when trying to destroy RX/TX DMA tag. .It ena%d: Cannot init RSS .It ena%d: Cannot fill indirect table .It ena%d: Cannot fill indirect table .It ena%d: Cannot fill hash function .It ena%d: Cannot fill hash control .It ena%d: WARNING: RSS was not properly initialized, it will affect bandwidth .Pp Error occurred during initialization of one of RSS resources; device is still going to work but it will affect performance because all RX packets will be passed to queue 0 and there will be no hash information. .It ena%d: failed to tear down irq: %d .It ena%d: dev has no parent while releasing res for irq: %d Release of the interrupts failed. .El .Ss Additional diagnostic: .Bl -diag .It ena%d: Cannot get attribute for ena device .Pp This message appears when trying to change MTU and driver is unable to get attributes from the device. .It ena%d: Invalid MTU setting. new_mtu: %d .Pp Requested MTU value is not supported and will not be set. .It ena%d: keep alive watchdog timeout .Pp Device stopped responding and will be reset. .It ena%d: Found a Tx that wasn't completed on time, qid %d, index %d. .Pp Packet was pushed to the NIC but not sent within given time limit; it may be caused by hang of the IO queue. .It ena%d: The number of lost tx completion is aboce the threshold (%d > %d). Reset the device .Pp If too many Tx wasn't completed on time the device is going to be reset; it may be caused by hanged queue or device. .It ena%d: trigger reset is on .Pp Device will be reset; reset is triggered either by watchdog or if too many TX packets were not completed on time. .It ena%d: invalid value recvd .Pp Link status received from the device in the AENQ handler is invalid. .It ena%d: Allocation for Tx Queue %u failed .It ena%d: Allocation for Rx Queue %u failed .It ena%d: Unable to create Rx DMA map for buffer %d .It ena%d: Failed to create io TX queue #%d rc: %d .It ena%d: Failed to get TX queue handlers. TX queue num %d rc: %d .It ena%d: Failed to create io RX queue[%d] rc: %d .It ena%d: Failed to get RX queue handlers. RX queue num %d rc: %d .It ena%d: failed to request irq .It ena%d: could not allocate irq vector: %d .It ena%d: failed to register interrupt handler for irq %ju: %d .Pp IO resources initialization failed. Interface will not be brought up. .It ena%d: LRO[%d] Initialization failed! .Pp Initialization of the LRO for the RX ring failed. .It ena%d: failed to alloc buffer for rx queue .It ena%d: failed to add buffer for rx queue %d .It ena%d: refilled rx queue %d with %d pages only .Pp Allocation of resources used on RX path failed; if happened during initialization of the IO queue, the interface will not be brought up. .It ena%d: ioctl promisc/allmulti .Pp IOCTL request for the device to work in promiscuous/allmulti mode; see .Xr ifconfig 8 for more details. .It ena%d: too many fragments. Last fragment: %d! .Pp Packet with unsupported number of segments was queued for sending to the device; packet will be dropped. +.El .Sh SUPPORT If an issue is identified with the released source code with a supported adapter email the specific information related to the issue to .Aq Mt mk@semihalf.com and .Aq Mt mw@semihalf.com . .Sh SEE ALSO .Xr vlan 4 , .Xr ifconfig 8 .Sh AUTHORS The .Nm driver was written by .An Semihalf. Index: head/share/man/man4/ips.4 =================================================================== --- head/share/man/man4/ips.4 (revision 344481) +++ head/share/man/man4/ips.4 (revision 344482) @@ -1,204 +1,204 @@ .\" .\" Copyright (c) 2003 Tom Rhodes .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd August 7, 2009 .Dt IPS 4 .Os .Sh NAME .Nm ips .Nd IBM/Adaptec ServeRAID controller driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device pci" .Cd "device scbus" .Cd "device ips" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent ips_load="YES" .Ed .Sh DESCRIPTION The .Nm driver claims to support the .Tn IBM (now Adaptec) ServeRAID series .Tn SCSI controller cards. .Pp These cards come with a built in configuration utility stored in the firmware known as the .Tn ISPR . This utility is accessed with the .Aq Em Ctrl+I key combination during the initial card .Tn POST . .Pp It is highly recommended that this utility be used to configure the card before attempting to diagnose the below error messages. .Pp In some cases, the .Nm driver can have difficulties attaching during the system initialization period. To avoid these difficulties, set the .Va hw.ips.0.disable tunable to 1. It will prevent the driver from attaching. .Sh HARDWARE Controllers supported by the .Nm driver include: .Pp .Bl -bullet -compact .It IBM ServeRAID 3H .It ServeRAID 4L/4M/4H .It ServeRAID Series 5 .It ServeRAID 6i/6M .It ServeRAID 7t/7k/7M .El .Pp Newer ServeRAID controllers are supported by the .Xr aac 4 or .Xr mfi 4 driver. .Sh DIAGNOSTICS Several error codes may be shown when the card initializes the .Tn IBM .Tn ISPR utility and are independent of .Fx . .Bl -diag .It ips%d: failed to get adapter configuration data from device .It ips%d: failed to get drive configuration data from device .Pp Unable to obtain adapter or drive configuration. .It ips%d iobuf error .Pp A buffer input/output error has occurred. .Bq Er ENXIO .El -.Ss General adapter errors: +.Ss General adapter errors : .Bl -diag .It Attaching bus failed .Pp This message is undocumented. .It WARNING: command timeout. Adapter is in toaster mode, resetting .Pp A command timeout has caused the adapter to be reset. .It AIEE! adapter reset failed, giving up and going home! Have a nice day .Pp An error occurred while attempting to reset the adapter. .It unable to get adapter configuration .It unable to get drive configuration .Pp There was an error when attempting to get configuration information. .It Adapter error during initialization. .It adapter initialization failed .Pp There was an error while attempting to initialize the adapter. .It adapter failed config check .It adapter clear failed .Pp There was an error while checking the adapter. .It device is disabled .Pp The adapter is disabled. .It resource allocation failed .It irq allocation failed .It irq setup failed .Pp The driver was unable to allocate resources for the device. .El -.Ss Error messages due to DMA: +.Ss Error messages due to DMA : .Bl -diag .It can't alloc command dma tag .It can't alloc SG dma tag .It can't alloc dma tag for statue queue .It dmamap failed .Pp Failure to map or allocate DMA resources. .El -.Ss Cache, buffer, and command errors: +.Ss Cache, buffer, and command errors : .Bl -diag .It failed to initialize command buffers .It no mem for command slots! .Pp The .Nm driver will return .Bq Er ENOMEM in such cases. .It ERROR: unable to get a command! can't flush cache! .It ERROR: cache flush command failed! .It ERROR: unable to get a command! can't update nvram .It ERROR: nvram update command failed! .It ERROR: unable to get a command! can't sync cache! .It ERROR: cache sync command failed! .It ERROR: unable to get a command! can't sync cache! .It ERROR: etable command failed! .El .Sh COMPATIBILITY Unlike many of the other .Tn SCSI devices in .Fx , the .Nm driver does not use the .Xr cam 4 .Tn SCSI subsystem. .Sh SEE ALSO .Xr aac 4 , .Xr ch 4 , .Xr da 4 , .Xr mfi 4 , .Xr sysctl 8 .Sh AUTHORS The .Nm driver was written by .An -nosplit .An David Jefferys and .An Scott Long Aq Mt scottl@FreeBSD.org . .Pp This manual page was written by .An Tom Rhodes Aq Mt trhodes@FreeBSD.org . Index: head/share/man/man4/liquidio.4 =================================================================== --- head/share/man/man4/liquidio.4 (revision 344481) +++ head/share/man/man4/liquidio.4 (revision 344482) @@ -1,133 +1,134 @@ .\" BSD LICENSE .\" .\" Copyright(c) 2017 Cavium, Inc.. All rights reserved. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" .\" * Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" * 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. .\" * Neither the name of Cavium, Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT .\" OWNER(S) 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. .\" $FreeBSD$ .\" .Dd August 17, 2017 .Dt LIQUIDIO 4 .Os .Sh NAME .Nm liquidio .Nd "Cavium 10Gb/25Gb Ethernet driver for the FreeBSD operating system" .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device lio" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_lio_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for 23XX 10Gb/25Gb Ethernet adapters. The driver supports Jumbo Frames, Transmit/Receive checksum offload, TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN tag insertion/extraction, VLAN checksum offload, VLAN TSO, and Receive Side Steering (RSS) .Pp Support for Jumbo Frames is provided via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 utility configures the adapter to receive and transmit Jumbo Frames. The maximum MTU size for Jumbo Frames is 16000. .Pp For more information on configuring this device, see ifconfig(8). .Sh HARDWARE The .Nm driver supports the following cards: .Pp .Bl -bullet -compact .It LiquidIO II CN2350 210SV/225SV .It LiquidIO II CN2360 210SV/225SV .El .Sh LOADER TUBABLES Tunables can be set at the .Xr loader 8 prompt before booting the kernel or stored in .Xr loader.conf 5 . .Pp .Bl -tag -width indent .It Va hw.lio.fw_type .Pp String that specifies type of firmware to be loaded. Default is "nic". Use "none" to load firmware from flash. .It Va hw.lio.num_queues_per_pf0 .Pp Unsigned integers that specify number of queues per PF0. Valid range is 0 to 64. Use 0 to derive autoconfigures based on the number of cpus with a max of 8 .It Va hw.lio.num_queues_per_pf1 .Pp Unsigned integers that specify number of queues per PF1. Valid range is 0 to 64. Use 0 to derive autoconfigures based on the number of cpus with a max of 8 .It Va hw.lio.console_bitmask .Pp Bitmask indicating which consoles have debug output redirected to syslog. .It Va hw.lio.rss .Pp To enable/disable driver RSS support .It Va hw.lio.hwlro .Pp To enable/disable hardware LRO +.El .Sh SUPPORT For general information and support, go to the Cavium support website at: .Pa http://support.cavium.com . .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr vlan 4 , .Xr ifconfig 8 .Sh HISTORY The .Nm device driver first appeared in .Fx 12.0 . .Sh AUTHORS The .Nm driver was written by .An Derek Chickles Aq Mt derek.chickles@cavium.com . Index: head/share/man/man4/nda.4 =================================================================== --- head/share/man/man4/nda.4 (revision 344481) +++ head/share/man/man4/nda.4 (revision 344482) @@ -1,87 +1,88 @@ .\" .\" Copyright (c) 2017 Netflix, Inc. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd December 20, 2017 .Dt NDA 4 .Os .Sh NAME .Nm nda .Nd NVMe Direct Access device driver .Sh SYNOPSIS .Cd device nvme .Cd device scbus .Sh DESCRIPTION The .Nm driver provides support for direct access devices, implementing the .Tn NVMe command protocol, that are attached to the system through a host adapter supported by the CAM subsystem. .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width 12 .It Va kern.cam.nda.sort_io_queue .Pp This variable determines whether the software queued entries are sorted in LBA order or not. Sorting is almost always a waste of time. The default is to not sort. .El .Pp The following report per-device settings, and are read-only unless otherwise indicated. Replace .Va N with the device unit number. .Bl -tag -width 12 .It Va kern.cam.nda.N.rotating .Pp This variable reports whether the storage volume is spinning or flash. It's value is hard coded to 0 indicating flash. .It Va kern.cam.nda.N.unmapped_io This variable reports whether the .Nm driver accepts unmapped I/O for this unit. +.El .Sh FILES .Bl -tag -width ".Pa /dev/nda*" -compact .It Pa /dev/nda* NVMe storage device nodes .El .Sh SEE ALSO -.Xr nvme 4 , -.Xr nvd 4 +.Xr nvd 4 , +.Xr nvme 4 .Sh HISTORY The .Nm driver first appeared in .Fx 12.0 . .Sh AUTHORS .An Warner Losh Aq Mt imp@FreeBSD.org Index: head/share/man/man4/ng_nat.4 =================================================================== --- head/share/man/man4/ng_nat.4 (revision 344481) +++ head/share/man/man4/ng_nat.4 (revision 344482) @@ -1,402 +1,403 @@ .\" Copyright (c) 2005 Gleb Smirnoff .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd December 12, 2018 .Dt NG_NAT 4 .Os .Sh NAME .Nm ng_nat .Nd "NAT netgraph node type" .Sh SYNOPSIS .In netgraph/ng_nat.h .Sh DESCRIPTION An .Nm node performs network address translation (NAT) of packets passing through it. A .Nm nat node uses .Xr libalias 3 engine for packet aliasing. .Sh HOOKS This node type has two hooks: .Bl -tag -width ".Va out" .It Va out Packets received on this hook are considered outgoing and will be masqueraded to a configured address. .It Va in Packets coming on this hook are considered incoming and will be dealiased. .El .Sh CONTROL MESSAGES This node type supports the generic control messages, plus the following: .Bl -tag -width foo .It Dv NGM_NAT_SET_IPADDR Pq Ic setaliasaddr Configure aliasing address for a node. After both hooks have been connected and aliasing address was configured, a node is ready for aliasing operation. .It Dv NGM_NAT_SET_MODE Pq Ic setmode Set node's operation mode using supplied .Vt "struct ng_nat_mode" . .Bd -literal struct ng_nat_mode { uint32_t flags; uint32_t mask; }; /* Supported flags: */ #define NG_NAT_LOG 0x01 #define NG_NAT_DENY_INCOMING 0x02 #define NG_NAT_SAME_PORTS 0x04 #define NG_NAT_UNREGISTERED_ONLY 0x10 #define NG_NAT_RESET_ON_ADDR_CHANGE 0x20 #define NG_NAT_PROXY_ONLY 0x40 #define NG_NAT_REVERSE 0x80 .Ed .It Dv NGM_NAT_SET_TARGET Pq Ic settarget Configure target address for a node. When an incoming packet not associated with any pre-existing aliasing link arrives at the host machine, it will be sent to the specified address. .It Dv NGM_NAT_REDIRECT_PORT Pq Ic redirectport Redirect incoming connections arriving to given port(s) to another host and port(s). The following .Vt "struct ng_nat_redirect_port" must be supplied as argument. .Bd -literal #define NG_NAT_DESC_LENGTH 64 struct ng_nat_redirect_port { struct in_addr local_addr; struct in_addr alias_addr; struct in_addr remote_addr; uint16_t local_port; uint16_t alias_port; uint16_t remote_port; uint8_t proto; char description[NG_NAT_DESC_LENGTH]; }; .Ed .Pp Redirection is assigned an unique ID which is returned as response to this message, and information about redirection added to list of static redirects which later can be retrieved by .Dv NGM_NAT_LIST_REDIRECTS message. .It Dv NGM_NAT_REDIRECT_ADDR Pq Ic redirectaddr Redirect traffic for public IP address to a machine on the local network. This function is known as .Em static NAT . The following .Vt "struct ng_nat_redirect_addr" must be supplied as argument. .Bd -literal struct ng_nat_redirect_addr { struct in_addr local_addr; struct in_addr alias_addr; char description[NG_NAT_DESC_LENGTH]; }; .Ed .Pp Unique ID for this redirection is returned as response to this message. .It Dv NGM_NAT_REDIRECT_PROTO Pq Ic redirectproto Redirect incoming IP packets of protocol .Va proto (see .Xr protocols 5 ) to a machine on the local network. The following .Vt "struct ng_nat_redirect_proto" must be supplied as argument. .Bd -literal struct ng_nat_redirect_proto { struct in_addr local_addr; struct in_addr alias_addr; struct in_addr remote_addr; uint8_t proto; char description[NG_NAT_DESC_LENGTH]; }; .Ed .Pp Unique ID for this redirection is returned as response to this message. .It Dv NGM_NAT_REDIRECT_DYNAMIC Pq Ic redirectdynamic Mark redirection with specified ID as dynamic, i.e., it will serve for exactly one next connection and then will be automatically deleted from internal links table. Only fully specified links can be made dynamic. The redirection with this ID is also immediately deleted from user-visible list of static redirects (available through .Dv NGM_NAT_LIST_REDIRECTS message). .It Dv NGM_NAT_REDIRECT_DELETE Pq Ic redirectdelete Delete redirection with specified ID (currently active connections are not affected). .It Dv NGM_NAT_ADD_SERVER Pq Ic addserver Add another server to a pool. This is used to transparently offload network load on a single server and distribute the load across a pool of servers, also known as .Em LSNAT (RFC 2391). The following .Vt "struct ng_nat_add_server" must be supplied as argument. .Bd -literal struct ng_nat_add_server { uint32_t id; struct in_addr addr; uint16_t port; }; .Ed .Pp First, the redirection is set up by .Dv NGM_NAT_REDIRECT_PORT or .Dv NGM_NAT_REDIRECT_ADDR . Then, ID of that redirection is used in multiple .Dv NGM_NAT_ADD_SERVER messages to add necessary number of servers. For redirections created by .Dv NGM_NAT_REDIRECT_ADDR , the .Va port is ignored and could have any value. Original redirection's parameters .Va local_addr and .Va local_port are also ignored after .Dv NGM_NAT_ADD_SERVER was used (they are effectively replaced by server pool). .It Dv NGM_NAT_LIST_REDIRECTS Pq Ic listredirects Return list of configured static redirects as .Vt "struct ng_nat_list_redirects" . .Bd -literal struct ng_nat_listrdrs_entry { uint32_t id; /* Anything except zero */ struct in_addr local_addr; struct in_addr alias_addr; struct in_addr remote_addr; uint16_t local_port; uint16_t alias_port; uint16_t remote_port; uint16_t proto; /* Valid proto or NG_NAT_REDIRPROTO_ADDR */ uint16_t lsnat; /* LSNAT servers count */ char description[NG_NAT_DESC_LENGTH]; }; struct ng_nat_list_redirects { uint32_t total_count; struct ng_nat_listrdrs_entry redirects[]; }; #define NG_NAT_REDIRPROTO_ADDR (IPPROTO_MAX + 3) .Ed .Pp Entries of the .Va redirects array returned in the unified format for all redirect types. Ports are meaningful only if protocol is either TCP or UDP and .Em static NAT redirection (created by .Dv NGM_NAT_REDIRECT_ADDR ) is indicated by .Va proto set to .Dv NG_NAT_REDIRPROTO_ADDR . If .Va lsnat servers counter is greater than zero, then .Va local_addr and .Va local_port are also meaningless. .It Dv NGM_NAT_PROXY_RULE Pq Ic proxyrule Specify a transparent proxying rule (string must be supplied as argument). See .Xr libalias 3 for details. .It Dv NGM_NAT_LIBALIAS_INFO Pq Ic libaliasinfo Return internal statistics of .Xr libalias 3 instance as .Vt "struct ng_nat_libalias_info" . .Bd -literal struct ng_nat_libalias_info { uint32_t icmpLinkCount; uint32_t udpLinkCount; uint32_t tcpLinkCount; uint32_t sctpLinkCount; uint32_t pptpLinkCount; uint32_t protoLinkCount; uint32_t fragmentIdLinkCount; uint32_t fragmentPtrLinkCount; uint32_t sockCount; }; .Ed In case of .Nm failed to retrieve a certain counter from its .Xr libalias instance, the corresponding field is returned as .Va UINT32_MAX . .It Dv NGM_NAT_SET_DLT Pq Ic setdlt Sets the data link type on the .Va in and .Va out hooks. Currently, supported types are .Cm DLT_RAW (raw IP datagrams , no offset applied, the default) and .Cm DLT_EN10MB (Ethernet). DLT_ definitions can be found in .In net/bpf.h . If you want to work on the .Xr ipfw 8 level you must use no additional offset by specifying .Cm DLT_RAW . If, however, you attach .Nm to a network interface directly and .Cm EN10MB is specified, then the extra offset will be applied to take into account link-level header. In this mode the .Nm would also inspect appropriate type field in the Ethernet header and pass-through any datagrams that are not IP packets. .It Dv NGM_NAT_GET_DLT Pq Ic getdlt This control message returns the current data link type of the .Va in and .Va out hooks. .El .Pp In all redirection messages .Va local_addr and .Va local_port mean address and port of target machine in the internal network, respectively. If .Va alias_addr is zero, then default aliasing address (set by .Dv NGM_NAT_SET_IPADDR ) is used. Connections can also be restricted to be accepted only from specific external machines by using non-zero .Va remote_addr and/or .Va remote_port . Each redirection assigned an ID which can be later used for redirection manipulation on individual basis (e.g., removal). This ID guaranteed to be unique until the node shuts down (it will not be reused after deletion), and is returned to user after making each new redirection or can be found in the stored list of all redirections. The .Va description passed to and from node unchanged, together with ID providing a way for several entities to concurrently manipulate redirections in automated way. .Sh SHUTDOWN This node shuts down upon receipt of a .Dv NGM_SHUTDOWN control message, or when both hooks are disconnected. .Sh EXAMPLES In the following example, the packets are injected into a .Nm nat node using the .Xr ng_ipfw 4 node. .Bd -literal -offset indent # Create NAT node ngctl mkpeer ipfw: nat 60 out ngctl name ipfw:60 nat ngctl connect ipfw: nat: 61 in ngctl msg nat: setaliasaddr x.y.35.8 # Divert traffic into NAT node ipfw add 300 netgraph 61 all from any to any in via fxp0 ipfw add 400 netgraph 60 all from any to any out via fxp0 # Let packets continue with after being (de)aliased sysctl net.inet.ip.fw.one_pass=0 .Ed .Pp The .Nm node can be inserted right after the .Xr ng_iface 4 node in the graph. In the following example, we perform masquerading on a serial line with HDLC encapsulation. .Bd -literal -offset indent /usr/sbin/ngctl -f- <<-SEQ mkpeer cp0: cisco rawdata downstream name cp0:rawdata hdlc mkpeer hdlc: nat inet in name hdlc:inet nat mkpeer nat: iface out inet msg nat: setaliasaddr x.y.8.35 SEQ ifconfig ng0 x.y.8.35 x.y.8.1 .Ed .Pp The .Nm node can also be attached directly to the physical interface via .Xr ng_ether 4 node in the graph. In the following example, we perform masquerading on a Ethernet interface connected to a public network. .Bd -literal -offset indent ifconfig igb0 inet x.y.8.35 netmask 0xfffff000 route add default x.y.0.1 /usr/sbin/ngctl -f- <<-SEQ mkpeer igb0: nat lower in name igb0:lower igb0_NAT connect igb0: igb0_NAT: upper out msg igb0_NAT: setdlt 1 msg igb0_NAT: setaliasaddr x.y.8.35 SEQ +.Ed .Sh SEE ALSO .Xr libalias 3 , .Xr ng_ipfw 4 , .Xr natd 8 , .Xr ngctl 8 , .Xr ng_ether 8 .Sh HISTORY The .Nm node type was implemented in .Fx 6.0 . .Sh AUTHORS .An Gleb Smirnoff Aq Mt glebius@FreeBSD.org Index: head/share/man/man4/ohci.4 =================================================================== --- head/share/man/man4/ohci.4 (revision 344481) +++ head/share/man/man4/ohci.4 (revision 344482) @@ -1,89 +1,90 @@ .\" Copyright (c) 1999 .\" Nick Hibma . All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt OHCI 4 .Os .Sh NAME .Nm ohci .Nd OHCI USB Host Controller driver .Sh SYNOPSIS .Cd "device ohci" .Sh DESCRIPTION The .Nm driver provides support for OHCI-type PCI based USB controllers. .Sh HARDWARE The .Nm driver supports all OHCI v1.0 compliant controllers including: .Pp .Bl -bullet -compact .It AcerLabs M5237 (Aladdin-V) .It AMD-756 .It OPTi 82C861 (FireLink) .It NEC uPD 9210 .It CMD Tech 670 (USB0670) .It CMD Tech 673 (USB0673) .It NVIDIA nForce3 .It Sun PCIO-2 (RIO USB) .El .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.ohci.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh SEE ALSO .Xr ehci 4 , .Xr uhci 4 , .Xr xhci 4 .Sh HISTORY The .Nm device driver first appeared in .Fx 3.0 . .Sh AUTHORS The .Nm driver was written by .An Lennart Augustsson Aq Mt augustss@carlstedt.se for the .Nx project. Index: head/share/man/man4/pci.4 =================================================================== --- head/share/man/man4/pci.4 (revision 344481) +++ head/share/man/man4/pci.4 (revision 344482) @@ -1,644 +1,644 @@ .\" .\" Copyright (c) 1999 Kenneth D. Merry. .\" All rights reserved. .\" .\" 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. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd June 14, 2018 .Dt PCI 4 .Os .Sh NAME .Nm pci .Nd generic PCI bus driver .Sh SYNOPSIS To compile the PCI bus driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd device pci .Ed .Pp To compile in support for Single Root I/O Virtualization .Pq SR-IOV : .Bd -ragged -offset indent .Cd options PCI_IOV .Ed .Pp To compile in support for native PCI-express HotPlug: .Bd -ragged -offset indent .Cd options PCI_HP .Ed .Sh DESCRIPTION The .Nm driver provides support for .Tn PCI devices in the kernel and limited access to .Tn PCI devices for userland. .Pp The .Nm driver provides a .Pa /dev/pci character device that can be used by userland programs to read and write .Tn PCI configuration registers. Programs can also use this device to get a list of all .Tn PCI devices, or all .Tn PCI devices that match various patterns. .Pp Since the .Nm driver provides a write interface for .Tn PCI configuration registers, system administrators should exercise caution when granting access to the .Nm device. If used improperly, this driver can allow userland applications to crash a machine or cause data loss. .Pp The .Nm driver implements the .Tn PCI bus in the kernel. It enumerates any devices on the .Tn PCI bus and gives .Tn PCI client drivers the chance to attach to them. It assigns resources to children, when the BIOS does not. It takes care of routing interrupts when necessary. It reprobes the unattached .Tn PCI children when .Tn PCI client drivers are dynamically loaded at runtime. The .Nm driver also includes support for PCI-PCI bridges, various platform-specific Host-PCI bridges, and basic support for .Tn PCI VGA adapters. .Sh IOCTLS The following .Xr ioctl 2 calls are supported by the .Nm driver. They are defined in the header file .In sys/pciio.h . .Bl -tag -width 012345678901234 .It PCIOCGETCONF This .Xr ioctl 2 takes a .Va pci_conf_io structure. It allows the user to retrieve information on all .Tn PCI devices in the system, or on .Tn PCI devices matching patterns supplied by the user. The call may set .Va errno to any value specified in either .Xr copyin 9 or .Xr copyout 9 . The .Va pci_conf_io structure consists of a number of fields: .Bl -tag -width match_buf_len .It pat_buf_len The length, in bytes, of the buffer filled with user-supplied patterns. .It num_patterns The number of user-supplied patterns. .It patterns Pointer to a buffer filled with user-supplied patterns. .Va patterns is a pointer to .Va num_patterns .Va pci_match_conf structures. The .Va pci_match_conf structure consists of the following elements: .Bl -tag -width pd_vendor .It pc_sel .Tn PCI domain, bus, slot and function. .It pd_name .Tn PCI device driver name. .It pd_unit .Tn PCI device driver unit number. .It pc_vendor .Tn PCI vendor ID. .It pc_device .Tn PCI device ID. .It pc_class .Tn PCI device class. .It flags The flags describe which of the fields the kernel should match against. A device must match all specified fields in order to be returned. The match flags are enumerated in the .Va pci_getconf_flags structure. Hopefully the flag values are obvious enough that they do not need to described in detail. .El .It match_buf_len Length of the .Va matches buffer allocated by the user to hold the results of the .Dv PCIOCGETCONF query. .It num_matches Number of matches returned by the kernel. .It matches Buffer containing matching devices returned by the kernel. The items in this buffer are of type .Va pci_conf , which consists of the following items: .Bl -tag -width pc_subvendor .It pc_sel .Tn PCI domain, bus, slot and function. .It pc_hdr .Tn PCI header type. .It pc_subvendor .Tn PCI subvendor ID. .It pc_subdevice .Tn PCI subdevice ID. .It pc_vendor .Tn PCI vendor ID. .It pc_device .Tn PCI device ID. .It pc_class .Tn PCI device class. .It pc_subclass .Tn PCI device subclass. .It pc_progif .Tn PCI device programming interface. .It pc_revid .Tn PCI revision ID. .It pd_name Driver name. .It pd_unit Driver unit number. .El .It offset The offset is passed in by the user to tell the kernel where it should start traversing the device list. The value passed out by the kernel points to the record immediately after the last one returned. The user may pass the value returned by the kernel in subsequent calls to the .Dv PCIOCGETCONF ioctl. If the user does not intend to use the offset, it must be set to zero. .It generation .Tn PCI configuration generation. This value only needs to be set if the offset is set. The kernel will compare the current generation number of its internal device list to the generation passed in by the user to determine whether its device list has changed since the user last called the .Dv PCIOCGETCONF ioctl. If the device list has changed, a status of .Va PCI_GETCONF_LIST_CHANGED will be passed back. .It status The status tells the user the disposition of his request for a device list. The possible status values are: .Bl -ohang .It PCI_GETCONF_LAST_DEVICE This means that there are no more devices in the PCI device list matching the specified criteria after the ones returned in the .Va matches buffer. .It PCI_GETCONF_LIST_CHANGED This status tells the user that the .Tn PCI device list has changed since his last call to the .Dv PCIOCGETCONF ioctl and he must reset the .Va offset and .Va generation to zero to start over at the beginning of the list. .It PCI_GETCONF_MORE_DEVS This tells the user that his buffer was not large enough to hold all of the remaining devices in the device list that match his criteria. .It PCI_GETCONF_ERROR This indicates a general error while servicing the user's request. If the .Va pat_buf_len is not equal to .Va num_patterns times .Fn sizeof "struct pci_match_conf" , .Va errno will be set to .Er EINVAL . .El .El .It PCIOCREAD This .Xr ioctl 2 reads the .Tn PCI configuration registers specified by the passed-in .Va pci_io structure. The .Va pci_io structure consists of the following fields: .Bl -tag -width pi_width .It pi_sel A .Va pcisel structure which specifies the domain, bus, slot and function the user would like to query. If the specific bus is not found, errno will be set to ENODEV and -1 returned from the ioctl. .It pi_reg The .Tn PCI configuration register the user would like to access. .It pi_width The width, in bytes, of the data the user would like to read. This value may be either 1, 2, or 4. 3-byte reads and reads larger than 4 bytes are not supported. If an invalid width is passed, errno will be set to EINVAL. .It pi_data The data returned by the kernel. .El .It PCIOCWRITE This .Xr ioctl 2 allows users to write to the .Tn PCI specified in the passed-in .Va pci_io structure. The .Va pci_io structure is described above. The limitations on data width described for reading registers, above, also apply to writing .Tn PCI configuration registers. .It PCIOCBARMMAP This .Xr ioctl 2 command allows userspace processes to .Xr mmap 2 the memory-mapped PCI BAR into its address space. The input parameters and results are passed in the .Va pci_bar_mmap structure, which has the following fields: .Bl -tag -width Vt struct pcise pbm_sel .It Vt uint64_t pbm_map_base Reports the established mapping base to the caller. If .Va PCIIO_BAR_MMAP_FIXED flag was specified, then this field must be filled before the call with the desired address for the mapping. .It Vt uint64_t pbm_map_length Reports the mapped length of the BAR, in bytes. Its .Vt uint64_t value is always multiple of machine pages. .It Vt int64_t pbm_bar_length Reports length of the bar as exposed by the device. .It Vt int pbm_bar_off Reports offset from the mapped base to the start of the first register in the bar. .It Vt struct pcisel pbm_sel Should be filled before the call. Describes the device to operate on. .It Vt int pbm_reg The BAR index to mmap. .It Vt int pbm_flags Flags which augments the operation. See below. .It Vt int pbm_memattr The caching attribute for the mapping. Typical values are .Dv VM_MEMATTR_UNCACHEABLE for control registers BARs, and .Dv VM_MEMATTR_WRITE_COMBINING for frame buffers. Regular memory-like BAR should be mapped with .Dv VM_MEMATTR_DEFAULT attribute. .El .Pp Currently defined flags are: .Bl -tag -width PCIIO_BAR_MMAP_ACTIVATE .It PCIIO_BAR_MMAP_FIXED The resulted mappings should be established at the address specified by the .Va pbm_map_base member, otherwise fail. .It PCIIO_BAR_MMAP_EXCL Must be used together with -.Vd PCIIO_BAR_MMAP_FIXED +.Dv PCIIO_BAR_MMAP_FIXED If the specified base contains already established mappings, the operation fails instead of implicitly unmapping them. .It PCIIO_BAR_MMAP_RW The requested mapping allows both reading and writing. Without the flag, read-only mapping is established. Note that it is common for the device registers to have side-effects even on reads. .It PCIIO_BAR_MMAP_ACTIVATE (Unimplemented) If the BAR is not activated, activate it in the course of mapping. Currently attempt to mmap an inactive BAR results in error. .El .El .Sh LOADER TUNABLES Tunables can be set at the .Xr loader 8 prompt before booting the kernel, or stored in .Xr loader.conf 5 . The current value of these tunables can be examined at runtime via .Xr sysctl 8 nodes of the same name. Unless otherwise specified, each of these tunables is a boolean that can be enabled by setting the tunable to a non-zero value. .Bl -tag -width indent .It Va hw.pci.clear_bars Pq Defaults to 0 Ignore any firmware-assigned memory and I/O port resources. This forces the .Tn PCI bus driver to allocate resource ranges for memory and I/O port resources from scratch. .It Va hw.pci.clear_buses Pq Defaults to 0 Ignore any firmware-assigned bus number registers in PCI-PCI bridges. This forces the .Tn PCI bus driver and PCI-PCI bridge driver to allocate bus numbers for secondary buses behind PCI-PCI bridges. .It Va hw.pci.clear_pcib Pq Defaults to 0 Ignore any firmware-assigned memory and I/O port resource windows in PCI-PCI bridges. This forces the PCI-PCI bridge driver to allocate memory and I/O port resources for resource windows from scratch. .Pp By default the PCI-PCI bridge driver will allocate windows that contain the firmware-assigned resources devices behind the bridge. In addition, the PCI-PCI bridge driver will suballocate from existing window regions when possible to satisfy a resource request. As a result, both .Va hw.pci.clear_bars and .Va hw.pci.clear_pcib must be enabled to fully ignore firmware-supplied resource assignments. .It Va hw.pci.default_vgapci_unit Pq Defaults to -1 By default, the first .Tn PCI VGA adapter encountered by the system is assumed to be the boot display device. This tunable can be set to choose a specific VGA adapter by specifying the unit number of the associated .Va vgapci Ns Ar X device. .It Va hw.pci.do_power_nodriver Pq Defaults to 0 Place devices into a low power state .Pq D3 when a suitable device driver is not found. Can be set to one of the following values: .Bl -tag -width indent .It 3 Powers down all .Tn PCI devices without a device driver. .It 2 Powers down most devices without a device driver. PCI devices with the display, memory, and base peripheral device classes are not powered down. .It 1 Similar to a setting of 2 except that storage controllers are also not powered down. .It 0 All devices are left fully powered. .El .Pp A .Tn PCI device must support power management to be powered down. Placing a device into a low power state may not reduce power consumption. .It Va hw.pci.do_power_resume Pq Defaults to 1 Place .Tn PCI devices into the fully powered state when resuming either the system or an individual device. Setting this to zero is discouraged as the system will not attempt to power up non-powered PCI devices after a suspend. .It Va hw.pci.do_power_suspend Pq Defaults to 1 Place .Tn PCI devices into a low power state when suspending either the system or individual devices. Normally the D3 state is used as the low power state, but firmware may override the desired power state during a system suspend. .It Va hw.pci.enable_ari Pq Defaults to 1 Enable support for PCI-express Alternative RID Interpretation. This is often used in conjunction with SR-IOV. .It Va hw.pci.enable_io_modes Pq Defaults to 1 Enable memory or I/O port decoding in a PCI device's command register if it has firmware-assigned memory or I/O port resources. The firmware .Pq BIOS in some systems does not enable memory or I/O port decoding for some devices even when it has assigned resources to the device. This enables decoding for such resources during bus probe. .It Va hw.pci.enable_msi Pq Defaults to 1 Enable support for Message Signalled Interrupts .Pq MSI . MSI interrupts can be disabled by setting this tunable to 0. .It Va hw.pci.enable_msix Pq Defaults to 1 Enable support for extended Message Signalled Interrupts .Pq MSI-X . MSI-X interrupts can be disabled by setting this tunable to 0. .It Va hw.pci.enable_pcie_hp Pq Defaults to 1 Enable support for native PCI-express HotPlug. .It Va hw.pci.honor_msi_blacklist Pq Defaults to 1 MSI and MSI-X interrupts are disabled for certain chipsets known to have broken MSI and MSI-X implementations when this tunable is set. It can be set to zero to permit use of MSI and MSI-X interrupts if the chipset match is a false positive. .It Va hw.pci.iov_max_config Pq Defaults to 1MB The maximum amount of memory permitted for the configuration parameters used when creating Virtual Functions via SR-IOV. This tunable can also be changed at runtime via .Xr sysctl 8 . .It Va hw.pci.realloc_bars Pq Defaults to 0 Attempt to allocate a new resource range during the initial device scan for any memory or I/O port resources with firmware-assigned ranges that conflict with another active resource. .It Va hw.pci.usb_early_takeover Pq Defaults to 1 on Tn amd64 and Tn i386 Disable legacy device emulation of USB devices during the initial device scan. Set this tunable to zero to use USB devices via legacy emulation when using a custom kernel without USB controller drivers. .It Va hw.pci...INT

.irq These tunables can be used to override the interrupt routing for legacy PCI INTx interrupts. Unlike other tunables in this list, these do not have corresponding sysctl nodes. The tunable name includes the address of the PCI device as well as the pin of the desired INTx IRQ to override: .Bl -tag -width indent .It The domain .Pq or segment of the PCI device in decimal. .It The bus address of the PCI device in decimal. .It The slot of the PCI device in decimal. .It

The interrupt pin of the PCI slot to override. One of .Ql A , .Ql B , .Ql C , or .Ql D . .El .Pp The value of the tunable is the raw IRQ value to use for the INTx interrupt pin identified by the tunable name. Mapping of IRQ values to platform interrupt sources is machine dependent. .El .Sh DEVICE WIRING You can wire the device unit at a given location with device.hints. Entries of the form .Va hints...at="pci::" or .Va hints...at="pci:::" will force the driver .Va name to probe and attach at unit .Va unit for any PCI device found to match the specification, where: .Bl -tag -width -indent .It The domain .Pq or segment of the PCI device in decimal. Defaults to 0 if unspecified .It The bus address of the PCI device in decimal. .It The slot of the PCI device in decimal. .It The function of the PCI device in decimal. .El .Pp The code to do the matching requires an exact string match. Do not specify the angle brackets .Pq < > in the hints file. Wiring multiple devices to the same .Va name and .Va unit produces undefined results. .Ss Examples Given the following lines in .Pa /boot/device.hints : .Cd hint.nvme.3.at="pci6:0:0" .Cd hint.igb.8.at="pci14:0:0" If there is a device that supports .Xr igb 4 at PCI bus 14 slot 0 function 0, then it will be assigned igb8 for probe and attach. Likewise, if there is an .Xr nvme 4 card at PCI bus 6 slot 0 function 0, then it will be assigned nvme3 for probe and attach. If another type of card is in either of these locations, the name and unit of that card will be the default names and will be unaffected by these hints. If other igb or nvme cards are located elsewhere, they will be assigned their unit numbers sequentially, skipping the unit numbers that have 'at' hints. .Sh FILES .Bl -tag -width /dev/pci -compact .It Pa /dev/pci Character device for the .Nm driver. .El .Sh SEE ALSO .Xr pciconf 8 .Sh HISTORY The .Nm driver (not the kernel's .Tn PCI support code) first appeared in .Fx 2.2 , and was written by Stefan Esser and Garrett Wollman. Support for device listing and matching was re-implemented by Kenneth Merry, and first appeared in .Fx 3.0 . .Sh AUTHORS .An Kenneth Merry Aq Mt ken@FreeBSD.org .Sh BUGS It is not possible for users to specify an accurate offset into the device list without calling the .Dv PCIOCGETCONF at least once, since they have no way of knowing the current generation number otherwise. This probably is not a serious problem, though, since users can easily narrow their search by specifying a pattern or patterns for the kernel to match against. Index: head/share/man/man4/sctp.4 =================================================================== --- head/share/man/man4/sctp.4 (revision 344481) +++ head/share/man/man4/sctp.4 (revision 344482) @@ -1,606 +1,606 @@ .\" Copyright (c) 2006, Randall Stewart. .\" .\" 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. .\" 3. 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. .\" .\" $FreeBSD$ .\" .Dd October 10, 2018 .Dt SCTP 4 .Os .Sh NAME .Nm sctp .Nd Internet Stream Control Transmission Protocol .Sh SYNOPSIS .In sys/types.h .In sys/socket.h .In netinet/sctp.h .Ft int .Fn socket AF_INET SOCK_STREAM IPPROTO_SCTP .Ft int .Fn socket AF_INET SOCK_SEQPACKET IPPROTO_SCTP .Sh DESCRIPTION The .Tn SCTP protocol provides reliable, flow-controlled, two-way transmission of data. It is a message oriented protocol and can support the .Dv SOCK_STREAM and .Dv SOCK_SEQPACKET abstractions. .Tn SCTP uses the standard Internet address format and, in addition, provides a per-host collection of .Dq "port addresses" . Thus, each address is composed of an Internet address specifying the host and network, with a specific .Tn SCTP port on the host identifying the peer entity. .Pp There are two models of programming in SCTP. The first uses the .Dv SOCK_STREAM abstraction. In this abstraction sockets utilizing the .Tn SCTP protocol are either .Dq active or .Dq passive . Active sockets initiate connections to passive sockets. By default, .Tn SCTP sockets are created active; to create a passive socket, the .Xr listen 2 system call must be used after binding the socket with the .Xr bind 2 or .Xr sctp_bindx 3 system calls. Only passive sockets may use the .Xr accept 2 call to accept incoming connections. Only active sockets may use the .Xr connect 2 call to initiate connections. .Pp The other abstraction .Dv SOCK_SEQPACKET provides a .Dq connectionless mode of operation in that the user may send to an address (using any of the valid send calls that carry a socket address) and an association will be setup implicitly by the underlying .Tn SCTP transport stack. This abstraction is the only one capable of sending data on the third leg of the four-way handshake. A user must still call .Xr listen 2 to allow the socket to accept connections. Calling .Xr listen 2 however does not restrict the user from still initiating implicit connections to other peers. .Pp The .Tn SCTP protocol directly supports multi-homing. So when binding a socket with the .Dq wildcard address .Dv INADDR_ANY , the .Tn SCTP stack will inform the peer about all of the local addresses that are deemed in scope of the peer. The peer will then possibly have multiple paths to reach the local host. .Pp The .Tn SCTP transport protocol is also multi-streamed. Multi-streaming refers to the ability to send sub-ordered flows of messages. A user performs this by specifying a specific stream in one of the extended send calls such as the .Xr sctp_send 3 function call. Sending messages on different streams will allow parallel delivery of data i.e., a message loss in stream 1 will not block the delivery of messages sent in stream 2. .Pp The .Tn SCTP transport protocol also provides a unordered service as well. The unordered service allows a message to be sent and delivered with no regard to the ordering of any other message. .Ss Extensions The FreeBSD implementation of .Tn SCTP also supports the following extensions: .Bl -tag -width "sctp partial reliability" .It "sctp partial reliability" This extension allows one to have message be skipped and not delivered based on some user specified parameters. .It "sctp dynamic addressing" This extension allows addresses to be added and deleted dynamically from an existing association. .It "sctp authentication" This extension allows the user to authenticate specific peer chunks (including data) to validate that the peer who sent the message is in fact the peer who setup the association. A shared key option is also provided for so that two stacks can pre-share keys. .It "packet drop" Some routers support a special satellite protocol that will report losses due to corruption. This allows retransmissions without subsequent loss in bandwidth utilization. .It "stream reset" This extension allows a user on either side to reset the stream sequence numbers used by any or all streams. .El .Ss Socket Options .Tn SCTP supports a number of socket options which can be set with .Xr setsockopt 2 and tested with .Xr getsockopt 2 or .Xr sctp_opt_info 3 : -.Bl -tag -indent +.Bl -tag -width indent .It Dv SCTP_NODELAY Under most circumstances, .Tn SCTP sends data when it is presented; when outstanding data has not yet been acknowledged, it gathers small amounts of output to be sent in a single packet once an acknowledgement is received. For some clients, such as window systems that send a stream of mouse events which receive no replies, this packetization may cause significant delays. The boolean option .Dv SCTP_NODELAY defeats this algorithm. .It Dv SCTP_RTOINFO This option returns specific information about an associations .Dq "Retransmission Time Out" . It can also be used to change the default values. .It Dv SCTP_ASSOCINFO This option returns specific information about the requested association. .It Dv SCTP_INITMSG This option allows you to get or set the default sending parameters when an association is implicitly setup. It allows you to change such things as the maximum number of streams allowed inbound and the number of streams requested of the peer. .It Dv SCTP_AUTOCLOSE For the one-to-many model .Dv ( SOCK_SEQPACKET ) associations are setup implicitly. This option allows the user to specify a default number of idle seconds to allow the association be maintained. After the idle timer (where no user message have been sent or have been received from the peer) the association will be gracefully closed. The default for this value is 0, or unlimited (i.e., no automatic close). .It Dv SCTP_SET_PEER_PRIMARY_ADDR The dynamic address extension allows a peer to also request a particular address of its be made into the primary address. This option allows the caller to make such a request to a peer. Note that if the peer does not also support the dynamic address extension, this call will fail. Note the caller must provide a valid local address that the peer has been told about during association setup or dynamically. .It Dv SCTP_PRIMARY_ADDR This option allows the setting of the primary address that the caller wishes to send to. The caller provides the address of a peer that is to be made primary. .It Dv SCTP_ADAPTATION_LAYER The dynamic address extension also allows a user to pass a 32 bit opaque value upon association setup. This option allows a user to set or get this value. .It Dv SCTP_DISABLE_FRAGMENTS By default .Tn SCTP will fragment user messages into multiple pieces that will fit on the network and then later, upon reception, reassemble the pieces into a single user message. If this option is enabled instead, any send that exceeds the path maximum transfer unit (P-MTU) will fail and the message will NOT be sent. .It Dv SCTP_PEER_ADDR_PARAMS This option will allow a user to set or get specific peer address parameters. .It Dv SCTP_DEFAULT_SEND_PARAM When a user does not use one of the extended send calls (e.g., .Xr sctp_sendmsg 3 ) a set of default values apply to each send. These values include things like the stream number to send to as well as the per-protocol id. This option lets a caller both get and set these values. If the user changes these default values, then these new values will be used as the default whenever no information is provided by the sender (i.e., the non-extended API is used). .It Dv SCTP_EVENTS .Tn SCTP has non-data events that it can communicate to its application. By default these are all disabled since they arrive in the data path with a special flag .Dv MSG_NOTIFICATION set upon the received message. This option lets a caller both get what events are current being received as well as set different events that they may be interested in receiving. .It Dv SCTP_I_WANT_MAPPED_V4_ADDR .Tn SCTP supports both IPV4 and IPV6. An association may span both IPV4 and IPV6 addresses since .Tn SCTP is multi-homed. By default, when opening an IPV6 socket, when data arrives on the socket from a peer's V4 address the V4 address will be presented with an address family of AF_INET. If this is undesirable, then this option can be enabled which will then convert all V4 addresses into mapped V6 representations. .It Dv SCTP_MAXSEG By default .Tn SCTP chooses its message fragmentation point based upon the smallest P-MTU of the peer. This option lets the caller set it to a smaller value. Note that while the user can change this value, if the P-MTU is smaller than the value set by the user, then the P-MTU value will override any user setting. .It Dv SCTP_DELAYED_ACK_TIME This option lets the user both set and get the delayed ack time (in milliseconds) that .Tn SCTP is using. The default is 200 milliseconds. .It Dv SCTP_PARTIAL_DELIVERY_POINT .Tn SCTP at times may need to start delivery of a very large message before the entire message has arrived. By default SCTP waits until the incoming message is larger than one fourth of the receive buffer. This option allows the stacks value to be overridden with a smaller value. .It Dv SCTP_FRAGMENT_INTERLEAVE .Tn SCTP at times will start partial delivery (as mentioned above). In the normal case successive reads will continue to return the rest of the message, blocking if needed, until all of that message is read. However this means other messages may have arrived and be ready for delivery and be blocked behind the message being partially delivered. If this option is enabled, when a partial delivery message has no more data to be received, then a subsequent read may return a different message that is ready for delivery. By default this option is off since the user must be using the extended API's to be able to tell the difference between messages (via the stream and stream sequence number). .It Dv SCTP_AUTH_CHUNK By default only the dynamic addressing chunks are authenticated. This option lets a user request an additional chunk be authenticated as well. Note that successive calls to this option will work and continue to add more chunks that require authentication. Note that this option only effects future associations and not existing ones. .It Dv SCTP_AUTH_KEY This option allows a user to specify a shared key that can be later used to authenticate a peer. .It Dv SCTP_HMAC_IDENT This option will let you get or set the list of HMAC algorithms used to authenticate peers. Note that the HMAC values are in priority order where the first HMAC identifier is the most preferred and the last is the least preferred. .It Dv SCTP_AUTH_ACTIVE_KEY This option allows you to make a key active for the generation of authentication information. Note that the peer must have the same key or else the data will be discarded. .It Dv SCTP_AUTH_DELETE_KEY This option allows you to delete an old key. .It Dv SCTP_USE_EXT_RECVINFO The sockets api document allows an extended send/receive information structure to be used. The extended structure includes additional fields related to the next message to be received (after the current receive completes) if such information is known. By default the system will not pass this information. This option allows the user to request this information. .It Dv SCTP_AUTO_ASCONF By default when bound to all address and the system administrator has enables automatic dynamic addresses, the .Tn SCTP stack will automatically generate address changes into add and delete requests to any peers by setting this option to true. This option allows an endpoint to disable that behavior. .It Dv SCTP_MAXBURST By default .Tn SCTP implements micro-burst control so that as the congestion window opens up no large burst of packets can be generated. The default burst limit is four. This option lets the user change this value. .It Dv SCTP_CONTEXT Many sctp extended calls have a context field. The context field is a 32 bit opaque value that will be returned in send failures. This option lets the caller set the default context value to use when none is provided by the user. .It Dv SCTP_EXPLICIT_EOR By default, a single send is a complete message. .Tn SCTP generates an implied record boundary. If this option is enabled, then all sends are part of the same message until the user indicates an end of record with the special flag .Dv SCTP_EOR passed in the sctp_sndrcvinfo flags field. This effectively makes all sends part of the same message until the user specifies differently. This means that a caller must NOT change the stream number until after the .Dv SCTP_EOR is passed to .Tn SCTP else an error will be returned. .It Dv SCTP_STATUS This option is a read-only option that returns various status information about the specified association. .It Dv SCTP_GET_PEER_ADDR_INFO This read-only option returns information about a peer address. .It Dv SCTP_PEER_AUTH_CHUNKS This read-only option returns a list of the chunks the peer requires to be authenticated. .It Dv SCTP_LOCAL_AUTH_CHUNKS This read-only option returns a list of the locally required chunks that must be authenticated. .It Dv SCTP_RESET_STREAMS This socket option is used to cause a stream sequence number or all stream sequence numbers to be reset. Note that the peer .Tn SCTP endpoint must also support the stream reset extension as well. .El .Ss MIB Variables The .Tn SCTP protocol implements a number of variables in the .Va net.inet.sctp branch of the .Xr sysctl 3 MIB. .Bl -ohang .It Sy Congestion Control .Bl -tag -width indent .It Va default_cc_module Default congestion control module. Default value is 0. The minimum is 0, and the maximum is 3. A value of 0 enables the default congestion control algorithm. A value of 1 enables the High Speed congestion control algorithm. A value of 2 enables the HTCP congestion control algorithm. A value of 3 enables the data center congestion control (DCCC) algorithm. .It Va initial_cwnd Defines the initial congestion window size in MTUs. .It Va cwnd_maxburst Use congestion control instead of 'blind' logic to limit maximum burst when sending. Default value is 1. May be set to 0 or 1. .It Va ecn_enable Enable Explicit Congestion Notification (ECN). Default value is 1. May be set to 0 or 1. .It Va rttvar_steady_step Number of identical bandwidth measurements DCCC takes to try step down the congestion window. Default value is 20. The minimum is 0, and the maximum is 65535. .It Va rttvar_eqret Whether DCCC reduces the congestion window size when round-trip time and bandwidth remain unchanged. Default value is 0. May be set to 0 or 1. .It Va rttvar_bw Shift amount DCCC uses for bandwidth smoothing on round-trip-time calculation. Default value is 4. The minimum is 0, and the maximum is 32. .It Va rttvar_rtt Shift amount DCCC uses for round-trip-time smoothing on round-trip-time calculation. Default value is 5. The minimum is 0, and the maximum is 32. .It Va use_dcccecn Enable ECN when using DCCC. Default value is 1. May be set to 0 or 1. .El .It Sy Misc .Bl -tag -width indent .It Va getcred Get the ucred of a SCTP connection. .It Va assoclist List of active SCTP associations. .It Va stats SCTP statistics (struct sctp_stat). .It Va diag_info_code Diagnostic information error cause code. .It Va blackhole Enable SCTP blackholing. See .Xr blackhole 4 for more details. .It Va buffer_splitting Enable send/receive buffer splitting. .It Va vtag_time_wait Vtag wait time in seconds, 0 to disable. .It Va nat_friendly_init Enable sending of the NAT-friendly SCTP option on INITs. .It Va enable_sack_immediately Enable sending of the SACK-IMMEDIATELY bit. .It Va udp_tunneling_port Set the SCTP/UDP tunneling port. .It Va mobility_fasthandoff Enable SCTP fast handoff. .It Va mobility_base Enable SCTP base mobility .It Va default_frag_interleave Default fragment interleave level. .It Va default_ss_module Default stream scheduling module. .It Va log_level Ltrace/KTR trace logging level. .It Va max_retran_chunk Number of retransmissions of a DATA chunk before an association is aborted. .It Va min_residual Minimum residual data chunk in second part of split. .It Va strict_data_order Enforce strict data ordering, abort if control inside data. .It Va abort_at_limit Abort when one-to-one hits qlimit. .It Va hb_max_burst Confirmation heartbeat max burst. .It Va do_sctp_drain Flush chunks in receive queues with TSN higher than the cumulative TSN if the system is low on mbufs. .It Va max_chained_mbufs Default max number of small mbufs on a chain. .It Va abc_l_var SCTP ABC max increase per SACK (L). .It Va nat_friendly SCTP NAT friendly operation. .It Va cmt_use_dac CMT DAC on/off flag. .It Va cmt_on_off CMT settings. .It Va outgoing_streams Default number of outgoing streams. .It Va incoming_streams Default number of incoming streams. .It Va add_more_on_output When space-wise is it worthwhile to try to add more to a socket send buffer. .It Va path_pf_threshold Default potentially failed threshold. .It Va path_rtx_max Default maximum of retransmissions per path. .It Va assoc_rtx_max Default maximum number of retransmissions per association. .It Va init_rtx_max Default maximum number of retransmissions for INIT chunks. .It Va valid_cookie_life Default cookie lifetime in seconds. .It Va init_rto_max Default maximum retransmission timeout during association setup in ms. .It Va rto_initial Default initial retransmission timeout in ms. .It Va rto_min Default minimum retransmission timeout in ms. .It Va rto_max Default maximum retransmission timeout in ms. .It Va secret_lifetime Default secret lifetime in seconds. .It Va shutdown_guard_time Shutdown guard timer in seconds (0 means 5 times RTO.Max). .It Va pmtu_raise_time Default PMTU raise timer in seconds. .It Va heartbeat_interval Default heartbeat interval in ms. .It Va asoc_resource Max number of cached resources in an association. .It Va sys_resource Max number of cached resources in the system. .It Va sack_freq Default SACK frequency. .It Va delayed_sack_time Default delayed SACK timer in ms. .It Va chunkscale Tunable for scaling of number of chunks and messages. .It Va min_split_point Minimum size when splitting a chunk. .It Va pcbhashsize Tunable for PCB hash table sizes. .It Va tcbhashsize Tunable for TCB hash table sizes. .It Va maxchunks Default max chunks on queue per association. .It Va fr_maxburst Default max burst for SCTP endpoints when fast retransmitting. .It Va maxburst Default max burst for SCTP endpoints. .It Va peer_chkoh Amount to debit peers rwnd per chunk sent. .It Va strict_sacks Enable SCTP Strict SACK checking. .It Va pktdrop_enable Enable SCTP PKTDROP. .It Va nrsack_enable Enable SCTP NR-SACK. .It Va reconfig_enable Enable SCTP RE-CONFIG. .It Va asconf_enable Enable SCTP ASCONF. .It Va auth_enable Enable SCTP AUTH. .It Va pr_enable Enable PR-SCTP. .It Va auto_asconf Enable SCTP Auto-ASCONF. .It Va recvspace Maximum incoming SCTP buffer size. .It Va sendspace Maximum outgoing SCTP buffer size. .El .El .Sh SEE ALSO .Xr accept 2 , .Xr bind 2 , .Xr connect 2 , .Xr listen 2 , .Xr sctp_bindx 3 , .Xr sctp_connectx 3 , .Xr sctp_opt_info 3 , .Xr sctp_recvmsg 3 , .Xr sctp_sendmsg 3 , .Xr blackhole 4 Index: head/share/man/man4/ses.4 =================================================================== --- head/share/man/man4/ses.4 (revision 344481) +++ head/share/man/man4/ses.4 (revision 344482) @@ -1,136 +1,136 @@ .\" Copyright (c) 2000 .\" Matthew Jacob . All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" -.Dd September 05, 2015 +.Dd September 5, 2015 .Dt SES 4 .Os .Sh NAME .Nm ses .Nd SCSI Environmental Services driver .Sh SYNOPSIS .Cd device ses .Sh DESCRIPTION The .Nm driver provides support for all .Tn SCSI devices of the environmental services class that are attached to the system through a supported .Tn SCSI Host Adapter, as well as emulated support for SAF-TE (SCSI Accessible Fault Tolerant Enclosures). The environmental services class generally are enclosure devices that provide environmental information such as number of power supplies (and state), temperature, device slots, and so on. .Pp A .Tn SCSI Host adapter must also be separately configured into the system before a .Tn SCSI Environmental Services device can be configured. .Sh KERNEL CONFIGURATION It is only necessary to explicitly configure one .Nm device; data structures are dynamically allocated as devices are found on the .Tn SCSI bus. .Pp A separate option, .Va SES_ENABLE_PASSTHROUGH , may be specified to allow the .Nm driver to perform functions on devices of other classes that claim to also support .Nm functionality. .Sh IOCTLS The following .Xr ioctl 2 calls apply to .Nm devices. They are defined in the header file .In cam/scsi/scsi_ses.h (\fIq.v.\fR). .Bl -tag -width SESIOC_GETENCSTAT .It Dv SESIOC_GETNOBJ Used to find out how many .Nm objects are driven by this particular device instance. .It Dv SESIOC_GETOBJMAP Read, from the kernel, an array of SES objects which contains the object identifier, which subenclosure it is in, and the .Nm type of the object. .It Dv SESIOC_GETENCSTAT Get the overall enclosure status. .It Dv SESIOC_SETENCSTAT Set the overall enclosure status. .It Dv SESIOC_GETOBJSTAT Get the status of a particular object. .It Dv SESIOC_SETOBJSTAT Set the status of a particular object. .It Dv SESIOC_GETTEXT Get the associated help text for an object (not yet implemented). .Nm devices often have descriptive text for an object which can tell you things like location (e.g., "left power supply"). .It Dv SESIOC_INIT Initialize the enclosure. .El .Sh EXAMPLE USAGE The files contained in .In /usr/share/examples/ses show simple mechanisms for how to use these interfaces, as well as a very stupid simple monitoring daemon. .Sh FILES .Bl -tag -width /dev/rsdXXXXX -compact .It Pa /dev/ses Ns Ar N The .Em Nth .Nm SES device. .El .Sh DIAGNOSTICS When the kernel is configured with .Tn DEBUG enabled, the first open to an SES device will spit out overall enclosure parameters to the console. .Sh SEE ALSO .Xr sesutil 8 .Sh HISTORY The .Nm driver was written for the .Tn CAM .Tn SCSI subsystem by Matthew Jacob. This is a functional equivalent of a similar driver available in Solaris, Release 7. Index: head/share/man/man4/siftr.4 =================================================================== --- head/share/man/man4/siftr.4 (revision 344481) +++ head/share/man/man4/siftr.4 (revision 344482) @@ -1,780 +1,786 @@ .\" .\" Copyright (c) 2010 The FreeBSD Foundation .\" All rights reserved. .\" .\" Portions of this software were developed at the Centre for Advanced .\" Internet Architectures, Swinburne University of Technology, Melbourne, .\" Australia by Lawrence Stewart under sponsorship from the FreeBSD .\" Foundation. .\" .\" 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, .\" without modification, immediately at the beginning of the file. .\" 2. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd March 18, 2015 .Dt SIFTR 4 .Os .Sh NAME .Nm SIFTR .Nd Statistical Information For TCP Research .Sh SYNOPSIS To load the driver as a module at run-time, run the following command as root: .Bd -literal -offset indent kldload siftr .Ed .Pp Alternatively, to load the driver as a module at boot time, add the following line into the .Xr loader.conf 5 file: .Bd -literal -offset indent siftr_load="YES" .Ed .Sh DESCRIPTION The .Nm .Po .Em S Ns tatistical .Em I Ns nformation .Em F Ns or .Em T Ns CP .Em R Ns esearch .Pc kernel module logs a range of statistics on active TCP connections to a log file. It provides the ability to make highly granular measurements of TCP connection state, aimed at system administrators, developers and researchers. .Ss Compile-time Configuration The default operation of .Nm is to capture IPv4 TCP/IP packets. .Nm can be configured to support IPv4 and IPv6 by uncommenting: .Bd -literal -offset indent CFLAGS+=-DSIFTR_IPV6 .Ed .Pp in .Aq sys/modules/siftr/Makefile and recompiling. .Pp In the IPv4-only (default) mode, standard dotted decimal notation (e.g. "136.186.229.95") is used to format IPv4 addresses for logging. In IPv6 mode, standard dotted decimal notation is used to format IPv4 addresses, and standard colon-separated hex notation (see RFC 4291) is used to format IPv6 addresses for logging. Note that SIFTR uses uncompressed notation to format IPv6 addresses. For example, the address "fe80::20f:feff:fea2:531b" would be logged as "fe80:0:0:0:20f:feff:fea2:531b". .Ss Run-time Configuration .Nm utilises the .Xr sysctl 8 interface to export its configuration variables to user-space. The following variables are available: .Bl -tag -offset indent -width Va .It Va net.inet.siftr.enabled controls whether the module performs its measurements or not. By default, the value is set to 0, which means the module will not be taking any measurements. Having the module loaded with .Va net.inet.siftr.enabled set to 0 will have no impact on the performance of the network stack, as the packet filtering hooks are only inserted when .Va net.inet.siftr.enabled is set to 1. .El .Bl -tag -offset indent -width Va .It Va net.inet.siftr.ppl controls how many inbound/outbound packets for a given TCP connection will cause a log message to be generated for the connection. By default, the value is set to 1, which means the module will log a message for every packet of every TCP connection. The value can be set to any integer in the range [1,2^32], and can be changed at any time, even while the module is enabled. .El .Bl -tag -offset indent -width Va .It Va net.inet.siftr.logfile controls the path to the file that the module writes its log messages to. By default, the file /var/log/siftr.log is used. The path can be changed at any time, even while the module is enabled. .El .Bl -tag -offset indent -width Va .It Va net.inet.siftr.genhashes controls whether a hash is generated for each TCP packet seen by .Nm . By default, the value is set to 0, which means no hashes are generated. The hashes are useful to correlate which TCP packet triggered the generation of a particular log message, but calculating them adds additional computational overhead into the fast path. .El .Ss Log Format A typical .Nm log file will contain 3 different types of log message. All messages are written in plain ASCII text. .Pp Note: The .Qq \e present in the example log messages in this section indicates a line continuation and is not part of the actual log message. .Pp The first type of log message is written to the file when the module is enabled and starts collecting data from the running kernel. The text below shows an example module enable log. The fields are tab delimited key-value pairs which describe some basic information about the system. .Bd -literal -offset indent enable_time_secs=1238556193 enable_time_usecs=462104 \\ siftrver=1.2.2 hz=1000 tcp_rtt_scale=32 \\ sysname=FreeBSD sysver=604000 ipmode=4 .Ed .Pp Field descriptions are as follows: .Bl -tag -offset indent -width Va .It Va enable_time_secs time at which the module was enabled, in seconds since the UNIX epoch. .El .Bl -tag -offset indent -width Va .It Va enable_time_usecs time at which the module was enabled, in microseconds since enable_time_secs. .El .Bl -tag -offset indent -width Va .It Va siftrver version of .Nm . .El .Bl -tag -offset indent -width Va .It Va hz tick rate of the kernel in ticks per second. .El .Bl -tag -offset indent -width Va .It Va tcp_rtt_scale smoothed RTT estimate scaling factor. .El .Bl -tag -offset indent -width Va .It Va sysname operating system name. .El .Bl -tag -offset indent -width Va .It Va sysver operating system version. .El .Bl -tag -offset indent -width Va .It Va ipmode IP mode as defined at compile time. An ipmode of "4" means IPv6 is not supported and IP addresses are logged in regular dotted quad format. An ipmode of "6" means IPv6 is supported, and IP addresses are logged in dotted quad or hex format, as described in the .Qq Compile-time Configuration subsection. .El .Pp The second type of log message is written to the file when a data log message is generated. The text below shows an example data log triggered by an IPv4 TCP/IP packet. The data is CSV formatted. .Bd -literal -offset indent o,0xbec491a5,1238556193.463551,172.16.7.28,22,172.16.2.5,55931, \\ 1073725440,172312,6144,66560,66608,8,1,4,1448,936,1,996,255, \\ 33304,208,66608,0,208,0 .Ed .Pp Field descriptions are as follows: .Bl -tag -offset indent -width Va .It Va 1 Direction of packet that triggered the log message. Either .Qq i for in, or .Qq o for out. .El .Bl -tag -offset indent -width Va .It Va 2 Hash of the packet that triggered the log message. .El .Bl -tag -offset indent -width Va .It Va 3 Time at which the packet that triggered the log message was processed by the .Xr pfil 9 hook function, in seconds and microseconds since the UNIX epoch. .El .Bl -tag -offset indent -width Va .It Va 4 The IPv4 or IPv6 address of the local host, in dotted quad (IPv4 packet) or colon-separated hex (IPv6 packet) notation. .El .Bl -tag -offset indent -width Va .It Va 5 The TCP port that the local host is communicating via. .El .Bl -tag -offset indent -width Va .It Va 6 The IPv4 or IPv6 address of the foreign host, in dotted quad (IPv4 packet) or colon-separated hex (IPv6 packet) notation. .El .Bl -tag -offset indent -width Va .It Va 7 The TCP port that the foreign host is communicating via. .El .Bl -tag -offset indent -width Va .It Va 8 The slow start threshold for the flow, in bytes. .El .Bl -tag -offset indent -width Va .It Va 9 The current congestion window for the flow, in bytes. .El .Bl -tag -offset indent -width Va .It Va 10 The current bandwidth-controlled window for the flow, in bytes. .El .Bl -tag -offset indent -width Va .It Va 11 The current sending window for the flow, in bytes. The post scaled value is reported, except during the initial handshake (first few packets), during which time the unscaled value is reported. .El .Bl -tag -offset indent -width Va .It Va 12 The current receive window for the flow, in bytes. The post scaled value is always reported. .El .Bl -tag -offset indent -width Va .It Va 13 The current window scaling factor for the sending window. .El .Bl -tag -offset indent -width Va .It Va 14 The current window scaling factor for the receiving window. .El .Bl -tag -offset indent -width Va .It Va 15 The current state of the TCP finite state machine, as defined in .Aq Pa netinet/tcp_fsm.h . .El .Bl -tag -offset indent -width Va .It Va 16 The maximum segment size for the flow, in bytes. .El .Bl -tag -offset indent -width Va .It Va 17 The current smoothed RTT estimate for the flow, in units of TCP_RTT_SCALE * HZ, where TCP_RTT_SCALE is a define found in tcp_var.h, and HZ is the kernel's tick timer. Divide by TCP_RTT_SCALE * HZ to get the RTT in secs. TCP_RTT_SCALE and HZ are reported in the enable log message. .El .Bl -tag -offset indent -width Va .It Va 18 SACK enabled indicator. 1 if SACK enabled, 0 otherwise. .El .Bl -tag -offset indent -width Va .It Va 19 The current state of the TCP flags for the flow. See .Aq Pa netinet/tcp_var.h for information about the various flags. .El .Bl -tag -offset indent -width Va .It Va 20 The current retransmission timeout length for the flow, in units of HZ, where HZ is the kernel's tick timer. Divide by HZ to get the timeout length in seconds. HZ is reported in the enable log message. .El .Bl -tag -offset indent -width Va .It Va 21 The current size of the socket send buffer in bytes. .El .Bl -tag -offset indent -width Va .It Va 22 The current number of bytes in the socket send buffer. .El .Bl -tag -offset indent -width Va .It Va 23 The current size of the socket receive buffer in bytes. .El .Bl -tag -offset indent -width Va .It Va 24 The current number of bytes in the socket receive buffer. .El .Bl -tag -offset indent -width Va .It Va 25 The current number of unacknowledged bytes in-flight. Bytes acknowledged via SACK are not excluded from this count. .El .Bl -tag -offset indent -width Va .It Va 26 The current number of segments in the reassembly queue. .El .Bl -tag -offset indent -width Va .It Va 27 Flowid for the connection. A caveat: Zero '0' either represents a valid flowid or a default value when it's not being set. There is no easy way to differentiate without looking at actual network interface card and drivers being used. .El .Bl -tag -offset indent -width Va .It Va 28 Flow type for the connection. Flowtype defines which protocol fields are hashed to produce the flowid. A complete listing is available in .Pa sys/mbuf.h under .Dv M_HASHTYPE_* . .El .Pp The third type of log message is written to the file when the module is disabled and ceases collecting data from the running kernel. The text below shows an example module disable log. The fields are tab delimited key-value pairs which provide statistics about operations since the module was most recently enabled. .Bd -literal -offset indent disable_time_secs=1238556197 disable_time_usecs=933607 \\ num_inbound_tcp_pkts=356 num_outbound_tcp_pkts=627 \\ total_tcp_pkts=983 num_inbound_skipped_pkts_malloc=0 \\ num_outbound_skipped_pkts_malloc=0 num_inbound_skipped_pkts_mtx=0 \\ num_outbound_skipped_pkts_mtx=0 num_inbound_skipped_pkts_tcb=0 \\ num_outbound_skipped_pkts_tcb=0 num_inbound_skipped_pkts_icb=0 \\ num_outbound_skipped_pkts_icb=0 total_skipped_tcp_pkts=0 \\ flow_list=172.16.7.28;22-172.16.2.5;55931, .Ed .Pp Field descriptions are as follows: .Bl -tag -offset indent -width Va .It Va disable_time_secs Time at which the module was disabled, in seconds since the UNIX epoch. .El .Bl -tag -offset indent -width Va .It Va disable_time_usecs Time at which the module was disabled, in microseconds since disable_time_secs. .El .Bl -tag -offset indent -width Va .It Va num_inbound_tcp_pkts Number of TCP packets that traversed up the network stack. This only includes inbound TCP packets during the periods when .Nm was enabled. .El .Bl -tag -offset indent -width Va .It Va num_outbound_tcp_pkts Number of TCP packets that traversed down the network stack. This only includes outbound TCP packets during the periods when .Nm was enabled. .El .Bl -tag -offset indent -width Va .It Va total_tcp_pkts The summation of num_inbound_tcp_pkts and num_outbound_tcp_pkts. .El .Bl -tag -offset indent -width Va .It Va num_inbound_skipped_pkts_malloc -Number of inbound packets that were not processed because of failed malloc() calls. +Number of inbound packets that were not processed because of failed +.Fn malloc +calls. .El .Bl -tag -offset indent -width Va .It Va num_outbound_skipped_pkts_malloc -Number of outbound packets that were not processed because of failed malloc() calls. +Number of outbound packets that were not processed because of failed +.Fn malloc +calls. .El .Bl -tag -offset indent -width Va .It Va num_inbound_skipped_pkts_mtx Number of inbound packets that were not processed because of failure to add the packet to the packet processing queue. .El .Bl -tag -offset indent -width Va .It Va num_outbound_skipped_pkts_mtx Number of outbound packets that were not processed because of failure to add the packet to the packet processing queue. .El .Bl -tag -offset indent -width Va .It Va num_inbound_skipped_pkts_tcb Number of inbound packets that were not processed because of failure to find the TCP control block associated with the packet. .El .Bl -tag -offset indent -width Va .It Va num_outbound_skipped_pkts_tcb Number of outbound packets that were not processed because of failure to find the TCP control block associated with the packet. .El .Bl -tag -offset indent -width Va .It Va num_inbound_skipped_pkts_icb Number of inbound packets that were not processed because of failure to find the IP control block associated with the packet. .El .Bl -tag -offset indent -width Va .It Va num_outbound_skipped_pkts_icb Number of outbound packets that were not processed because of failure to find the IP control block associated with the packet. .El .Bl -tag -offset indent -width Va .It Va total_skipped_tcp_pkts The summation of all skipped packet counters. .El .Bl -tag -offset indent -width Va .It Va flow_list A CSV list of TCP flows that triggered data log messages to be generated since the module was loaded. Each flow entry in the CSV list is formatted as .Qq local_ip;local_port-foreign_ip;foreign_port . If there are no entries in the list (i.e., no data log messages were generated), the value will be blank. If there is at least one entry in the list, a trailing comma will always be present. .El .Pp The total number of data log messages found in the log file for a module enable/disable cycle should equate to total_tcp_pkts - total_skipped_tcp_pkts. .Sh IMPLEMENTATION NOTES .Nm hooks into the network stack using the .Xr pfil 9 interface. In its current incarnation, it hooks into the AF_INET/AF_INET6 (IPv4/IPv6) .Xr pfil 9 filtering points, which means it sees packets at the IP layer of the network stack. This means that TCP packets inbound to the stack are intercepted before they have been processed by the TCP layer. Packets outbound from the stack are intercepted after they have been processed by the TCP layer. .Pp The diagram below illustrates how .Nm inserts itself into the stack. .Bd -literal -offset indent ---------------------------------- Upper Layers ---------------------------------- ^ | | | | | | v TCP in TCP out ---------------------------------- ^ | |________ _________| | | | v --------- | SIFTR | --------- ^ | ________| |__________ | | | v IPv{4/6} in IPv{4/6} out ---------------------------------- ^ | | | | v Layer 2 in Layer 2 out ---------------------------------- Physical Layer ---------------------------------- .Ed .Pp .Nm uses the .Xr alq 9 interface to manage writing data to disk. .Pp At first glance, you might mistakenly think that .Nm extracts information from individual TCP packets. This is not the case. .Nm uses TCP packet events (inbound and outbound) for each TCP flow originating from the system to trigger a dump of the state of the TCP control block for that flow. With the PPL set to 1, we are in effect sampling each TCP flow's control block state as frequently as flow packets enter/leave the system. For example, setting PPL to 2 halves the sampling rate i.e., every second flow packet (inbound OR outbound) causes a dump of the control block state. .Pp The distinction between interrogating individual packets versus interrogating the control block is important, because .Nm does not remove the need for packet capturing tools like .Xr tcpdump 1 . .Nm allows you to correlate and observe the cause-and-affect relationship between what you see on the wire (captured using a tool like .Xr tcpdump 1 Ns ) and changes in the TCP control block corresponding to the flow of interest. It is therefore useful to use .Nm and a tool like .Xr tcpdump 1 to gather the necessary data to piece together the complete picture. Use of either tool on its own will not be able to provide all of the necessary data. .Pp As a result of needing to interrogate the TCP control block, certain packets during the lifecycle of a connection are unable to trigger a .Nm log message. The initial handshake takes place without the existence of a control block and the final ACK is exchanged when the connection is in the TIMEWAIT state. .Pp .Nm was designed to minimise the delay introduced to packets traversing the network stack. This design called for a highly optimised and minimal hook function that extracted the minimal details necessary whilst holding the packet up, and passing these details to another thread for actual processing and logging. .Pp This multithreaded design does introduce some contention issues when accessing the data structure shared between the threads of operation. When the hook function tries to place details in the structure, it must first acquire an exclusive lock. Likewise, when the processing thread tries to read details from the structure, it must also acquire an exclusive lock to do so. If one thread holds the lock, the other must wait before it can obtain it. This does introduce some additional bounded delay into the kernel's packet processing code path. .Pp In some cases (e.g., low memory, connection termination), TCP packets that enter the .Nm .Xr pfil 9 hook function will not trigger a log message to be generated. .Nm refers to this outcome as a .Qq skipped packet . Note that .Nm always ensures that packets are allowed to continue through the stack, even if they could not successfully trigger a data log message. .Nm will therefore not introduce any packet loss for TCP/IP packets traversing the network stack. .Ss Important Behaviours The behaviour of a log file path change whilst the module is enabled is as follows: .Bl -enum .It Attempt to open the new file path for writing. If this fails, the path change will fail and the existing path will continue to be used. .It Assuming the new path is valid and opened successfully: .Bl -dash .It Flush all pending log messages to the old file path. .It Close the old file path. .It Switch the active log file pointer to point at the new file path. .It Commence logging to the new file. .El .El .Pp During the time between the flush of pending log messages to the old file and commencing logging to the new file, new log messages will still be generated and buffered. As soon as the new file path is ready for writing, the accumulated log messages will be written out to the file. .Sh EXAMPLES To enable the module's operations, run the following command as root: sysctl net.inet.siftr.enabled=1 .Pp To change the granularity of log messages such that 1 log message is generated for every 10 TCP packets per connection, run the following command as root: sysctl net.inet.siftr.ppl=10 .Pp To change the log file location to /tmp/siftr.log, run the following command as root: sysctl net.inet.siftr.logfile=/tmp/siftr.log .Sh SEE ALSO .Xr tcpdump 1 , .Xr tcp 4 , .Xr sysctl 8 , .Xr alq 9 , .Xr pfil 9 .Sh ACKNOWLEDGEMENTS Development of this software was made possible in part by grants from the Cisco University Research Program Fund at Community Foundation Silicon Valley, and the FreeBSD Foundation. .Sh HISTORY .Nm first appeared in .Fx 7.4 and .Fx 8.2 . .Pp .Nm was first released in 2007 by Lawrence Stewart and James Healy whilst working on the NewTCP research project at Swinburne University of Technology's Centre for Advanced Internet Architectures, Melbourne, Australia, which was made possible in part by a grant from the Cisco University Research Program Fund at Community Foundation Silicon Valley. More details are available at: .Pp http://caia.swin.edu.au/urp/newtcp/ .Pp Work on .Nm v1.2.x was sponsored by the FreeBSD Foundation as part of the .Qq Enhancing the FreeBSD TCP Implementation project 2008-2009. More details are available at: .Pp http://www.freebsdfoundation.org/ .Pp http://caia.swin.edu.au/freebsd/etcp09/ .Sh AUTHORS .An -nosplit .Nm was written by .An Lawrence Stewart Aq Mt lstewart@FreeBSD.org and .An James Healy Aq Mt jimmy@deefa.com . .Pp This manual page was written by .An Lawrence Stewart Aq Mt lstewart@FreeBSD.org . .Sh BUGS Current known limitations and any relevant workarounds are outlined below: .Bl -dash .It The internal queue used to pass information between the threads of operation is currently unbounded. This allows .Nm to cope with bursty network traffic, but sustained high packet-per-second traffic can cause exhaustion of kernel memory if the processing thread cannot keep up with the packet rate. .It If using .Nm on a machine that is also running other modules utilising the .Xr pfil 9 framework e.g. .Xr dummynet 4 , .Xr ipfw 8 , .Xr pf 4 Ns , the order in which you load the modules is important. You should kldload the other modules first, as this will ensure TCP packets undergo any necessary manipulations before .Nm .Qq sees and processes them. .It There is a known, harmless lock order reversal warning between the .Xr pfil 9 mutex and tcbinfo TCP lock reported by .Xr witness 4 when .Nm is enabled in a kernel compiled with .Xr witness 4 support. .It There is no way to filter which TCP flows you wish to capture data for. Post processing is required to separate out data belonging to particular flows of interest. .It The module does not detect deletion of the log file path. New log messages will simply be lost if the log file being used by .Nm is deleted whilst the module is set to use the file. Switching to a new log file using the .Em net.inet.siftr.logfile variable will create the new file and allow log messages to begin being written to disk again. The new log file path must differ from the path to the deleted file. .It The hash table used within the code is sized to hold 65536 flows. This is not a hard limit, because chaining is used to handle collisions within the hash table structure. However, we suspect (based on analogies with other hash table performance data) that the hash table look up performance (and therefore the module's packet processing performance) will degrade in an exponential manner as the number of unique flows handled in a module enable/disable cycle approaches and surpasses 65536. .It There is no garbage collection performed on the flow hash table. The only way currently to flush it is to disable .Nm . .It The PPL variable applies to packets that make it into the processing thread, not total packets received in the hook function. Packets are skipped before the PPL variable is applied, which means there may be a slight discrepancy in the triggering of log messages. For example, if PPL was set to 10, and the 8th packet since the last log message is skipped, the 11th packet will actually trigger the log message to be generated. This is discussed in greater depth in CAIA technical report 070824A. .It At the time of writing, there was no simple way to hook into the TCP layer to intercept packets. .Nm Ap s use of IP layer hook points means all IP traffic will be processed by the .Nm .Xr pfil 9 hook function, which introduces minor, but nonetheless unnecessary packet delay and processing overhead on the system for non-TCP packets as well. Hooking in at the IP layer is also not ideal from the data gathering point of view. Packets traversing up the stack will be intercepted and cause a log message generation BEFORE they have been processed by the TCP layer, which means we cannot observe the cause-and-affect relationship between inbound events and the corresponding TCP control block as precisely as could be. Ideally, .Nm should intercept packets after they have been processed by the TCP layer i.e. intercept packets coming up the stack after they have been processed by -tcp_input(), and intercept packets coming down the stack after they have been -processed by tcp_output(). +.Fn tcp_input , +and intercept packets coming down the stack after they have been +processed by +.Fn tcp_output . The current code still gives satisfactory granularity though, as inbound events tend to trigger outbound events, allowing the cause-and-effect to be observed indirectly by capturing the state on outbound events as well. .It The .Qq inflight bytes value logged by .Nm does not take into account bytes that have been .No SACK Ap ed by the receiving host. .It Packet hash generation does not currently work for IPv6 based TCP packets. .It Compressed notation is not used for IPv6 address representation. This consumes more bytes than is necessary in log output. .El Index: head/share/man/man4/smartpqi.4 =================================================================== --- head/share/man/man4/smartpqi.4 (revision 344481) +++ head/share/man/man4/smartpqi.4 (revision 344482) @@ -1,102 +1,103 @@ .\" Copyright (c) 2018 Murthy Bhat .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ stable/10/share/man/man4/smartpqi.4 195614 2017-01-11 08:10:18Z jkim $ -.Dd April 06, 2018 +.Dd April 6, 2018 .Dt SMARTPQI 4 .Os .Sh NAME .Nm smartpqi .Nd Microsemi smartpqi SCSI driver for PQI controllers .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd device pci .Cd device scbus .Cd device smartpqi +.Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent smartpqi_load="YES" .Ed .Sh DESCRIPTION The .Nm SCSI driver provides support for the new generation of PQI controllers from Microsemi. The .Nm driver is the first SCSI driver to implement the PQI queuing model. .Pp The .Nm driver will replace the aacraid driver for Adaptec Series 9 controllers. .Pp The .Pa /dev/smartpqi? device nodes provide access to the management interface of the controller. One node exists per installed card. .Sh HARDWARE Controllers supported by the .Nm driver include: .Pp .Bl -bullet -compact .It HPE Gen10 Smart Array Controller Family .It OEM Controllers based on the Microsemi Chipset .El .Sh FILES .Bl -tag -width /boot/kernel/aac.ko -compact .It Pa /dev/smartpqi? smartpqi management interface .El .Sh SEE ALSO .Xr kld 4 , .Xr linux 4 , .Xr scsi 4 , -.Xr kldload 8 -.Xr pass 4 -.Xr xpt 4 -.Xr loader.conf 5 +.Xr kldload 8 , +.Xr pass 4 , +.Xr xpt 4 , +.Xr loader.conf 5 , .Xr camcontrol 8 .Rs .%T "Microsemi Website" .%U http://www.microsemi.com/ .Re .Sh HISTORY The .Nm driver first appeared in .Fx 11.1 . -.Sh AUTHOR +.Sh AUTHORS .An Murthy Bhat .Aq murthy.bhat@microsemi.com .Sh BUGS The controller is not actually paused on suspend/resume. Index: head/share/man/man4/sysmouse.4 =================================================================== --- head/share/man/man4/sysmouse.4 (revision 344481) +++ head/share/man/man4/sysmouse.4 (revision 344482) @@ -1,466 +1,465 @@ .\" Copyright 1997 John-Mark Gurney. All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd March 25, 2014 .Dt SYSMOUSE 4 .Os .Sh NAME .Nm sysmouse .\" .Nd supplies mouse data from syscons for other applications .Nd virtualized mouse driver .Sh SYNOPSIS .In sys/mouse.h .In sys/consio.h .Sh DESCRIPTION The console driver, in conjunction with the mouse daemon .Xr moused 8 , supplies mouse data to the user process in the standardized way via the .Nm driver. This arrangement makes it possible for the console and the user process (such as the .Tn X\ Window System ) to share the mouse. .Pp The user process which wants to utilize mouse operation simply opens .Pa /dev/sysmouse with a .Xr open 2 call and reads mouse data from the device via .Xr read 2 . Make sure that .Xr moused 8 is running, otherwise the user process will not see any data coming from the mouse. -.Pp .Ss Operation Levels The .Nm driver has two levels of operation. The current operation level can be referred to and changed via ioctl calls. .Pp The level zero, the basic level, is the lowest level at which the driver offers the basic service to user programs. The .Nm driver provides horizontal and vertical movement of the mouse and state of up to three buttons in the .Tn MouseSystems format as follows. .Pp .Bl -tag -width Byte_1 -compact .It Byte 1 .Bl -tag -width bit_7 -compact .It bit 7 Always one. .It bit 6..3 Always zero. .It bit 2 Left button status; cleared if pressed, otherwise set. .It bit 1 Middle button status; cleared if pressed, otherwise set. Always one, if the device does not have the middle button. .It bit 0 Right button status; cleared if pressed, otherwise set. .El .It Byte 2 The first half of horizontal movement count in two's complement; \-128 through 127. .It Byte 3 The first half of vertical movement count in two's complement; \-128 through 127. .It Byte 4 The second half of the horizontal movement count in two's complement; \-128 through 127. To obtain the full horizontal movement count, add the byte 2 and 4. .It Byte 5 The second half of the vertical movement count in two's complement; \-128 through 127. To obtain the full vertical movement count, add the byte 3 and 5. .El .Pp At the level one, the extended level, mouse data is encoded in the standard format .Dv MOUSE_PROTO_SYSMOUSE as defined in .Xr mouse 4 . .\" .Ss Acceleration .\" The .\" .Nm .\" driver can somewhat `accelerate' the movement of the pointing device. .\" The faster you move the device, the further the pointer .\" travels on the screen. .\" The driver has an internal variable which governs the effect of .\" the acceleration. Its value can be modified via the driver flag .\" or via an ioctl call. .Sh IOCTLS This section describes two classes of .Xr ioctl 2 commands: commands for the .Nm driver itself, and commands for the console and the console control drivers. .Ss Sysmouse Ioctls There are a few commands for mouse drivers. General description of the commands is given in .Xr mouse 4 . Following are the features specific to the .Nm driver. .Pp .Bl -tag -width MOUSE -compact .It Dv MOUSE_GETLEVEL Ar int *level .It Dv MOUSE_SETLEVEL Ar int *level These commands manipulate the operation level of the mouse driver. .Pp .It Dv MOUSE_GETHWINFO Ar mousehw_t *hw Returns the hardware information of the attached device in the following structure. Only the .Va iftype field is guaranteed to be filled with the correct value in the current version of the .Nm driver. .Bd -literal typedef struct mousehw { int buttons; /* number of buttons */ int iftype; /* I/F type */ int type; /* mouse/track ball/pad... */ int model; /* I/F dependent model ID */ int hwid; /* I/F dependent hardware ID */ } mousehw_t; .Ed .Pp The .Va buttons field holds the number of buttons detected by the driver. .Pp The .Va iftype is always .Dv MOUSE_IF_SYSMOUSE . .Pp The .Va type tells the device type: .Dv MOUSE_MOUSE , .Dv MOUSE_TRACKBALL , .Dv MOUSE_STICK , .Dv MOUSE_PAD , or .Dv MOUSE_UNKNOWN . .Pp The .Va model is always .Dv MOUSE_MODEL_GENERIC at the operation level 0. It may be .Dv MOUSE_MODEL_GENERIC or one of .Dv MOUSE_MODEL_XXX constants at higher operation levels. .Pp The .Va hwid is always zero. .Pp .It Dv MOUSE_GETMODE Ar mousemode_t *mode The command gets the current operation parameters of the mouse driver. .Bd -literal typedef struct mousemode { int protocol; /* MOUSE_PROTO_XXX */ int rate; /* report rate (per sec) */ int resolution; /* MOUSE_RES_XXX, -1 if unknown */ int accelfactor; /* acceleration factor */ int level; /* driver operation level */ int packetsize; /* the length of the data packet */ unsigned char syncmask[2]; /* sync. bits */ } mousemode_t; .Ed .Pp The .Va protocol field tells the format in which the device status is returned when the mouse data is read by the user program. It is .Dv MOUSE_PROTO_MSC at the operation level zero. .Dv MOUSE_PROTO_SYSMOUSE at the operation level one. .Pp The .Va rate is always set to \-1. .Pp The .Va resolution is always set to \-1. .Pp The .Va accelfactor is always 0. .Pp The .Va packetsize field specifies the length of the data packet. It depends on the operation level. .Pp .Bl -tag -width level_0__ -compact .It Em level 0 5 bytes .It Em level 1 8 bytes .El .Pp The array .Va syncmask holds a bit mask and pattern to detect the first byte of the data packet. .Va syncmask[0] is the bit mask to be ANDed with a byte. If the result is equal to .Va syncmask[1] , the byte is likely to be the first byte of the data packet. Note that this method of detecting the first byte is not 100% reliable; thus, it should be taken only as an advisory measure. .Pp .It Dv MOUSE_SETMODE Ar mousemode_t *mode The command changes the current operation parameters of the mouse driver as specified in .Ar mode . Only .Va level may be modifiable. Setting values in the other field does not generate error and has no effect. .Pp .It Dv MOUSE_READDATA Ar mousedata_t *data .It Dv MOUSE_READSTATE Ar mousedata_t *state These commands are not supported by the .Nm driver. .Pp .It Dv MOUSE_GETSTATUS Ar mousestatus_t *status The command returns the current state of buttons and movement counts in the structure as defined in .Xr mouse 4 . .El .Ss Console and Consolectl Ioctls The user process issues console .Fn ioctl calls to the current virtual console in order to control the mouse pointer. The console .Fn ioctl also provides a method for the user process to receive a .Xr signal 3 when a button is pressed. .Pp The mouse daemon .Xr moused 8 uses .Fn ioctl calls to the console control device .Pa /dev/consolectl to inform the console of mouse actions including mouse movement and button status. .Pp Both classes of .Fn ioctl commands are defined as .Dv CONS_MOUSECTL which takes the following argument. .Bd -literal struct mouse_info { int operation; union { struct mouse_data data; struct mouse_mode mode; struct mouse_event event; } u; }; .Ed .Pp .Bl -tag -width operation -compact .It Va operation This can be one of .Pp .Bl -tag -width MOUSE_MOVEABS -compact .It Dv MOUSE_SHOW Enables and displays mouse cursor. .It Dv MOUSE_HIDE Disables and hides mouse cursor. .It Dv MOUSE_MOVEABS Moves mouse cursor to position supplied in .Va u.data . .It Dv MOUSE_MOVEREL Adds position supplied in .Va u.data to current position. .It Dv MOUSE_GETINFO Returns current mouse position in the current virtual console and button status in .Va u.data . .It Dv MOUSE_MODE This sets the .Xr signal 3 to be delivered to the current process when a button is pressed. The signal to be delivered is set in .Va u.mode . .El .Pp The above operations are for virtual consoles. The operations defined below are for the console control device and are used by .Xr moused 8 to pass mouse data to the console driver. .Pp .Bl -tag -width MOUSE_MOVEABS -compact .It Dv MOUSE_ACTION .It Dv MOUSE_MOTION_EVENT These operations take the information in .Va u.data and act upon it. Mouse data will be sent to the .Nm driver if it is open. .Dv MOUSE_ACTION also processes button press actions and sends signal to the process if requested or performs cut and paste operations if the current console is a text interface. .It Dv MOUSE_BUTTON_EVENT .Va u.data specifies a button and its click count. The console driver will use this information for signal delivery if requested or for cut and paste operations if the console is in text mode. .El .Pp .Dv MOUSE_MOTION_EVENT and .Dv MOUSE_BUTTON_EVENT are newer interface and are designed to be used together. They are intended to replace functions performed by .Dv MOUSE_ACTION alone. .Pp .It Va u This union is one of .Pp .Bl -tag -width data -compact .It Va data .Bd -literal struct mouse_data { int x; int y; int z; int buttons; }; .Ed .Pp .Va x , y and .Va z represent movement of the mouse along respective directions. .Va buttons tells the state of buttons. It encodes up to 31 buttons in the bit 0 though the bit 30. If a button is held down, the corresponding bit is set. .Pp .It Va mode .Bd -literal struct mouse_mode { int mode; int signal; }; .Ed .Pp The .Va signal field specifies the signal to be delivered to the process. It must be one of the values defined in .In signal.h . The .Va mode field is currently unused. .Pp .It Va event .Bd -literal struct mouse_event { int id; int value; }; .Ed .Pp The .Va id field specifies a button number as in .Va u.data.buttons . Only one bit/button is set. The .Va value field holds the click count: the number of times the user has clicked the button successively. .El .El .Sh FILES .Bl -tag -width /dev/consolectl -compact .It Pa /dev/consolectl device to control the console .It Pa /dev/sysmouse virtualized mouse driver .It Pa /dev/ttyv%d virtual consoles .El .Sh SEE ALSO .Xr vidcontrol 1 , .Xr ioctl 2 , .Xr signal 3 , .Xr mouse 4 , .Xr moused 8 .Sh HISTORY The .Nm driver first appeared in .Fx 2.2 . .Sh AUTHORS .An -nosplit This manual page was written by .An John-Mark Gurney Aq Mt jmg@FreeBSD.org and .An Kazutaka Yokota Aq Mt yokota@FreeBSD.org . Index: head/share/man/man4/tcp.4 =================================================================== --- head/share/man/man4/tcp.4 (revision 344481) +++ head/share/man/man4/tcp.4 (revision 344482) @@ -1,690 +1,689 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. .\" Copyright (c) 2010-2011 The FreeBSD Foundation .\" All rights reserved. .\" .\" Portions of this documentation were written at the Centre for Advanced .\" Internet Architectures, Swinburne University of Technology, Melbourne, .\" Australia by David Hayes under sponsorship from the FreeBSD Foundation. .\" .\" 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. .\" 3. 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. .\" .\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" .Dd August 6, 2018 .Dt TCP 4 .Os .Sh NAME .Nm tcp .Nd Internet Transmission Control Protocol .Sh SYNOPSIS .In sys/types.h .In sys/socket.h .In netinet/in.h .In netinet/tcp.h .Ft int .Fn socket AF_INET SOCK_STREAM 0 .Sh DESCRIPTION The .Tn TCP protocol provides reliable, flow-controlled, two-way transmission of data. It is a byte-stream protocol used to support the .Dv SOCK_STREAM abstraction. .Tn TCP uses the standard Internet address format and, in addition, provides a per-host collection of .Dq "port addresses" . Thus, each address is composed of an Internet address specifying the host and network, with a specific .Tn TCP port on the host identifying the peer entity. .Pp Sockets utilizing the .Tn TCP protocol are either .Dq active or .Dq passive . Active sockets initiate connections to passive sockets. By default, .Tn TCP sockets are created active; to create a passive socket, the .Xr listen 2 system call must be used after binding the socket with the .Xr bind 2 system call. Only passive sockets may use the .Xr accept 2 call to accept incoming connections. Only active sockets may use the .Xr connect 2 call to initiate connections. .Pp Passive sockets may .Dq underspecify their location to match incoming connection requests from multiple networks. This technique, termed .Dq "wildcard addressing" , allows a single server to provide service to clients on multiple networks. To create a socket which listens on all networks, the Internet address .Dv INADDR_ANY must be bound. The .Tn TCP port may still be specified at this time; if the port is not specified, the system will assign one. Once a connection has been established, the socket's address is fixed by the peer entity's location. The address assigned to the socket is the address associated with the network interface through which packets are being transmitted and received. Normally, this address corresponds to the peer entity's network. .Pp .Tn TCP supports a number of socket options which can be set with .Xr setsockopt 2 and tested with .Xr getsockopt 2 : .Bl -tag -width ".Dv TCP_FUNCTION_BLK" .It Dv TCP_INFO Information about a socket's underlying TCP session may be retrieved by passing the read-only option .Dv TCP_INFO to .Xr getsockopt 2 . It accepts a single argument: a pointer to an instance of .Vt "struct tcp_info" . .Pp This API is subject to change; consult the source to determine which fields are currently filled out by this option. .Fx specific additions include send window size, receive window size, and bandwidth-controlled window space. .It Dv TCP_CCALGOOPT Set or query congestion control algorithm specific parameters. See .Xr mod_cc 4 for details. .It Dv TCP_CONGESTION Select or query the congestion control algorithm that TCP will use for the connection. See .Xr mod_cc 4 for details. .It Dv TCP_FUNCTION_BLK Select or query the set of functions that TCP will use for this connection. This allows a user to select an alternate TCP stack. The alternate TCP stack must already be loaded in the kernel. To list the available TCP stacks, see .Va functions_available in the .Sx MIB Variables section further down. To list the default TCP stack, see .Va functions_default in the .Sx MIB Variables section. .It Dv TCP_KEEPINIT This .Xr setsockopt 2 option accepts a per-socket timeout argument of .Vt "u_int" in seconds, for new, non-established .Tn TCP connections. For the global default in milliseconds see .Va keepinit in the .Sx MIB Variables section further down. .It Dv TCP_KEEPIDLE This .Xr setsockopt 2 option accepts an argument of .Vt "u_int" for the amount of time, in seconds, that the connection must be idle before keepalive probes (if enabled) are sent for the connection of this socket. If set on a listening socket, the value is inherited by the newly created socket upon .Xr accept 2 . For the global default in milliseconds see .Va keepidle in the .Sx MIB Variables section further down. .It Dv TCP_KEEPINTVL This .Xr setsockopt 2 option accepts an argument of .Vt "u_int" to set the per-socket interval, in seconds, between keepalive probes sent to a peer. If set on a listening socket, the value is inherited by the newly created socket upon .Xr accept 2 . For the global default in milliseconds see .Va keepintvl in the .Sx MIB Variables section further down. .It Dv TCP_KEEPCNT This .Xr setsockopt 2 option accepts an argument of .Vt "u_int" and allows a per-socket tuning of the number of probes sent, with no response, before the connection will be dropped. If set on a listening socket, the value is inherited by the newly created socket upon .Xr accept 2 . For the global default see the .Va keepcnt in the .Sx MIB Variables section further down. .It Dv TCP_NODELAY Under most circumstances, .Tn TCP sends data when it is presented; when outstanding data has not yet been acknowledged, it gathers small amounts of output to be sent in a single packet once an acknowledgement is received. For a small number of clients, such as window systems that send a stream of mouse events which receive no replies, this packetization may cause significant delays. The boolean option .Dv TCP_NODELAY defeats this algorithm. .It Dv TCP_MAXSEG By default, a sender- and .No receiver- Ns Tn TCP will negotiate among themselves to determine the maximum segment size to be used for each connection. The .Dv TCP_MAXSEG option allows the user to determine the result of this negotiation, and to reduce it if desired. .It Dv TCP_NOOPT .Tn TCP usually sends a number of options in each packet, corresponding to various .Tn TCP extensions which are provided in this implementation. The boolean option .Dv TCP_NOOPT is provided to disable .Tn TCP option use on a per-connection basis. .It Dv TCP_NOPUSH By convention, the .No sender- Ns Tn TCP will set the .Dq push bit, and begin transmission immediately (if permitted) at the end of every user call to .Xr write 2 or .Xr writev 2 . When this option is set to a non-zero value, .Tn TCP will delay sending any data at all until either the socket is closed, or the internal send buffer is filled. .It Dv TCP_MD5SIG This option enables the use of MD5 digests (also known as TCP-MD5) on writes to the specified socket. Outgoing traffic is digested; digests on incoming traffic are verified. When this option is enabled on a socket, all inbound and outgoing TCP segments must be signed with MD5 digests. .Pp One common use for this in a .Fx router deployment is to enable based routers to interwork with Cisco equipment at peering points. Support for this feature conforms to RFC 2385. .Pp In order for this option to function correctly, it is necessary for the administrator to add a tcp-md5 key entry to the system's security associations database (SADB) using the .Xr setkey 8 utility. This entry can only be specified on a per-host basis at this time. .Pp If an SADB entry cannot be found for the destination, the system does not send any outgoing segments and drops any inbound segments. .Pp Each dropped segment is taken into account in the TCP protocol statistics. .El .Pp The option level for the .Xr setsockopt 2 call is the protocol number for .Tn TCP , available from .Xr getprotobyname 3 , or .Dv IPPROTO_TCP . All options are declared in .In netinet/tcp.h . .Pp Options at the .Tn IP transport level may be used with .Tn TCP ; see .Xr ip 4 . Incoming connection requests that are source-routed are noted, and the reverse source route is used in responding. .Pp The default congestion control algorithm for .Tn TCP is .Xr cc_newreno 4 . Other congestion control algorithms can be made available using the .Xr mod_cc 4 framework. .Ss MIB Variables The .Tn TCP protocol implements a number of variables in the .Va net.inet.tcp branch of the .Xr sysctl 3 MIB. .Bl -tag -width ".Va TCPCTL_DO_RFC1323" .It Dv TCPCTL_DO_RFC1323 .Pq Va rfc1323 Implement the window scaling and timestamp options of RFC 1323 (default is true). .It Dv TCPCTL_MSSDFLT .Pq Va mssdflt The default value used for the maximum segment size .Pq Dq MSS when no advice to the contrary is received from MSS negotiation. .It Dv TCPCTL_SENDSPACE .Pq Va sendspace Maximum .Tn TCP send window. .It Dv TCPCTL_RECVSPACE .Pq Va recvspace Maximum .Tn TCP receive window. .It Va log_in_vain Log any connection attempts to ports where there is not a socket accepting connections. The value of 1 limits the logging to .Tn SYN (connection establishment) packets only. That of 2 results in any .Tn TCP packets to closed ports being logged. Any value unlisted above disables the logging (default is 0, i.e., the logging is disabled). .It Va msl The Maximum Segment Lifetime, in milliseconds, for a packet. .It Va keepinit Timeout, in milliseconds, for new, non-established .Tn TCP connections. The default is 75000 msec. .It Va keepidle Amount of time, in milliseconds, that the connection must be idle before keepalive probes (if enabled) are sent. The default is 7200000 msec (2 hours). .It Va keepintvl The interval, in milliseconds, between keepalive probes sent to remote machines, when no response is received on a .Va keepidle probe. The default is 75000 msec. .It Va keepcnt Number of probes sent, with no response, before a connection is dropped. The default is 8 packets. .It Va always_keepalive Assume that .Dv SO_KEEPALIVE is set on all .Tn TCP connections, the kernel will periodically send a packet to the remote host to verify the connection is still up. .It Va icmp_may_rst Certain .Tn ICMP unreachable messages may abort connections in .Tn SYN-SENT state. .It Va do_tcpdrain Flush packets in the .Tn TCP reassembly queue if the system is low on mbufs. .It Va blackhole If enabled, disable sending of RST when a connection is attempted to a port where there is not a socket accepting connections. See .Xr blackhole 4 . .It Va delayed_ack Delay ACK to try and piggyback it onto a data packet. .It Va delacktime Maximum amount of time, in milliseconds, before a delayed ACK is sent. .It Va path_mtu_discovery Enable Path MTU Discovery. .It Va tcbhashsize Size of the .Tn TCP control-block hash table (read-only). This may be tuned using the kernel option .Dv TCBHASHSIZE or by setting .Va net.inet.tcp.tcbhashsize in the .Xr loader 8 . .It Va pcbcount Number of active process control blocks (read-only). .It Va syncookies Determines whether or not .Tn SYN cookies should be generated for outbound .Tn SYN-ACK packets. .Tn SYN cookies are a great help during .Tn SYN flood attacks, and are enabled by default. (See .Xr syncookies 4 . ) .It Va isn_reseed_interval The interval (in seconds) specifying how often the secret data used in RFC 1948 initial sequence number calculations should be reseeded. By default, this variable is set to zero, indicating that no reseeding will occur. Reseeding should not be necessary, and will break .Dv TIME_WAIT recycling for a few minutes. .It Va reass.cursegments The current total number of segments present in all reassembly queues. .It Va reass.maxsegments The maximum limit on the total number of segments across all reassembly queues. The limit can be adjusted as a tunable. .It Va reass.maxqueuelen The maximum number of segments allowed in each reassembly queue. By default, the system chooses a limit based on each TCP connection's receive buffer size and maximum segment size (MSS). The actual limit applied to a session's reassembly queue will be the lower of the system-calculated automatic limit and the user-specified .Va reass.maxqueuelen limit. .It Va rexmit_min , rexmit_slop Adjust the retransmit timer calculation for .Tn TCP . The slop is typically added to the raw calculation to take into account occasional variances that the .Tn SRTT (smoothed round-trip time) is unable to accommodate, while the minimum specifies an absolute minimum. While a number of .Tn TCP RFCs suggest a 1 second minimum, these RFCs tend to focus on streaming behavior, and fail to deal with the fact that a 1 second minimum has severe detrimental effects over lossy interactive connections, such as a 802.11b wireless link, and over very fast but lossy connections for those cases not covered by the fast retransmit code. For this reason, we use 200ms of slop and a near-0 minimum, which gives us an effective minimum of 200ms (similar to .Tn Linux ) . .It Va initcwnd_segments Enable the ability to specify initial congestion window in number of segments. The default value is 10 as suggested by RFC 6928. Changing the value on fly would not affect connections using congestion window from the hostcache. Caution: This regulates the burst of packets allowed to be sent in the first RTT. The value should be relative to the link capacity. Start with small values for lower-capacity links. Large bursts can cause buffer overruns and packet drops if routers have small buffers or the link is experiencing congestion. .It Va rfc3042 Enable the Limited Transmit algorithm as described in RFC 3042. It helps avoid timeouts on lossy links and also when the congestion window is small, as happens on short transfers. .It Va rfc3390 Enable support for RFC 3390, which allows for a variable-sized starting congestion window on new connections, depending on the maximum segment size. This helps throughput in general, but particularly affects short transfers and high-bandwidth large propagation-delay connections. .It Va sack.enable Enable support for RFC 2018, TCP Selective Acknowledgment option, which allows the receiver to inform the sender about all successfully arrived segments, allowing the sender to retransmit the missing segments only. .It Va sack.maxholes Maximum number of SACK holes per connection. Defaults to 128. .It Va sack.globalmaxholes Maximum number of SACK holes per system, across all connections. Defaults to 65536. .It Va maxtcptw When a TCP connection enters the .Dv TIME_WAIT state, its associated socket structure is freed, since it is of negligible size and use, and a new structure is allocated to contain a minimal amount of information necessary for sustaining a connection in this state, called the compressed TCP TIME_WAIT state. Since this structure is smaller than a socket structure, it can save a significant amount of system memory. The .Va net.inet.tcp.maxtcptw MIB variable controls the maximum number of these structures allocated. By default, it is initialized to .Va kern.ipc.maxsockets / 5. .It Va nolocaltimewait Suppress creating of compressed TCP TIME_WAIT states for connections in which both endpoints are local. .It Va fast_finwait2_recycle Recycle .Tn TCP .Dv FIN_WAIT_2 connections faster when the socket is marked as .Dv SBS_CANTRCVMORE (no user process has the socket open, data received on the socket cannot be read). The timeout used here is .Va finwait2_timeout . .It Va finwait2_timeout Timeout to use for fast recycling of .Tn TCP .Dv FIN_WAIT_2 connections. Defaults to 60 seconds. .It Va ecn.enable Enable support for TCP Explicit Congestion Notification (ECN). ECN allows a TCP sender to reduce the transmission rate in order to avoid packet drops. Settings: .Bl -tag -compact .It 0 Disable ECN. .It 1 Allow incoming connections to request ECN. Outgoing connections will request ECN. .It 2 Allow incoming connections to request ECN. Outgoing connections will not request ECN. .El .It Va ecn.maxretries Number of retries (SYN or SYN/ACK retransmits) before disabling ECN on a specific connection. This is needed to help with connection establishment when a broken firewall is in the network path. .It Va pmtud_blackhole_detection Turn on automatic path MTU blackhole detection. In case of retransmits OS will lower the MSS to check if it's MTU problem. If current MSS is greater than configured value to try, it will be set to configured value, otherwise, MSS will be set to default values .Po Va net.inet.tcp.mssdflt and .Va net.inet.tcp.v6mssdflt .Pc . .It Va pmtud_blackhole_mss MSS to try for IPv4 if PMTU blackhole detection is turned on. .It Va v6pmtud_blackhole_mss MSS to try for IPv6 if PMTU blackhole detection is turned on. .It Va pmtud_blackhole_activated Number of times configured values were used in an attempt to downshift. .It Va pmtud_blackhole_activated_min_mss Number of times default MSS was used in an attempt to downshift. .It Va pmtud_blackhole_failed Number of connections for which retransmits continued even after MSS downshift. .It Va functions_available List of available TCP function blocks (TCP stacks). .It Va functions_default The default TCP function block (TCP stack). .It Va functions_inherit_listen_socket_stack Determines whether to inherit listen socket's tcp stack or use the current system default tcp stack, as defined by -.Va functions_default -.Pc . +.Va functions_default . Default is true. .It Va insecure_rst Use criteria defined in RFC793 instead of RFC5961 for accepting RST segments. Default is false. .It Va insecure_syn Use criteria defined in RFC793 instead of RFC5961 for accepting SYN segments. Default is false. .El .Sh ERRORS A socket operation may fail with one of the following errors returned: .Bl -tag -width Er .It Bq Er EISCONN when trying to establish a connection on a socket which already has one; .It Bo Er ENOBUFS Bc or Bo Er ENOMEM Bc when the system runs out of memory for an internal data structure; .It Bq Er ETIMEDOUT when a connection was dropped due to excessive retransmissions; .It Bq Er ECONNRESET when the remote peer forces the connection to be closed; .It Bq Er ECONNREFUSED when the remote peer actively refuses connection establishment (usually because no process is listening to the port); .It Bq Er EADDRINUSE when an attempt is made to create a socket with a port which has already been allocated; .It Bq Er EADDRNOTAVAIL when an attempt is made to create a socket with a network address for which no network interface exists; .It Bq Er EAFNOSUPPORT when an attempt is made to bind or connect a socket to a multicast address. .It Bq Er EINVAL when trying to change TCP function blocks at an invalid point in the session; .It Bq Er ENOENT when trying to use a TCP function block that is not available; .El .Sh SEE ALSO .Xr getsockopt 2 , .Xr socket 2 , .Xr sysctl 3 , .Xr blackhole 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , .Xr mod_cc 4 , .Xr siftr 4 , .Xr syncache 4 , .Xr setkey 8 , .Xr tcp_functions 9 .Rs .%A "V. Jacobson" .%A "R. Braden" .%A "D. Borman" .%T "TCP Extensions for High Performance" .%O "RFC 1323" .Re .Rs .%A "A. Heffernan" .%T "Protection of BGP Sessions via the TCP MD5 Signature Option" .%O "RFC 2385" .Re .Rs .%A "K. Ramakrishnan" .%A "S. Floyd" .%A "D. Black" .%T "The Addition of Explicit Congestion Notification (ECN) to IP" .%O "RFC 3168" .Re .Sh HISTORY The .Tn TCP protocol appeared in .Bx 4.2 . The RFC 1323 extensions for window scaling and timestamps were added in .Bx 4.4 . The .Dv TCP_INFO option was introduced in .Tn Linux 2.6 and is .Em subject to change . Index: head/share/man/man4/uath.4 =================================================================== --- head/share/man/man4/uath.4 (revision 344481) +++ head/share/man/man4/uath.4 (revision 344482) @@ -1,187 +1,187 @@ .\" .\" Copyright (c) 2006 .\" Damien Bergamini .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .\" $FreeBSD$ .\" .Dd April 7, 2009 .Dt UATH 4 .Os .Sh NAME .Nm uath .Nd Atheros USB IEEE 802.11a/b/g wireless network device .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ehci" .Cd "device uhci" .Cd "device ohci" .Cd "device usb" .Cd "device uath" .Cd "device wlan" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_uath_load="YES" .Ed .Sh DESCRIPTION The .Nm driver supports USB 2.0 wireless network devices based on Atheros Communications fifth generation AR5005UG and AR5005UX chipsets. .Pp The AR5005UG chipset is made of an AR5523 multiprotocol MAC/baseband processor and an AR2112 Radio-on-a-Chip that can operate between 2300 and 2500 MHz (802.11b/g). .Pp The AR5005UX chipset is made of an AR5523 multiprotocol MAC/baseband processor and an AR5112 dual band Radio-on-a-Chip that can operate between 2300 and 2500 MHz (802.11b/g) or 4900 and 5850 MHz (802.11a). .Pp The AR5005UG and AR5005UX chipsets both have an integrated 32-bit MIPS R4000-class processor that runs a firmware and manages, among other things, the automatic control of the transmit rate and the calibration of the radio. .Pp .Nm supports .Cm station , and .Cm monitor mode operation. Only one virtual interface may be configured at any time. For more information on configuring this device, see .Xr ifconfig 8 . .Sh FIRMWARE .Nm requires firmware that is downloaded to the device. This is normally done by the .Xr uathload 8 utility that is launched by .Xr devd 8 when the device is inserted. -.Xr uathload +.Xr uathload 8 includes the firmware in the binary program. This firmware is licensed for general use and is included in the base system. .Sh HARDWARE The .Nm driver should work with the following adapters: .Bl -column "TRENDware International TEW-444UB" "AR5005UX" .It Em "Adapter" Ta Em "Chipset" .\".It Belkin F6D3050 AR5005UX .It Li "Compex WLU108AG" Ta AR5005UX .It Li "Compex WLU108G" Ta AR5005UG .\".It Li "D-Link DWL-AG132" Ta AR5005UX .It Li "D-Link DWL-G132" Ta AR5005UG .\".It Li "Edimax EW-7315Ug" Ta AR5005UG (AR2414???) .\".It Li "Lancom USB-54ag" Ta AR5005UX .\".It Li "NEC WL54TU" Ta AR5005UX .It Li "IODATA WN-G54/US" Ta AR5005UG .It Li "MELCO WLI-U2-KAMG54" Ta AR5005UX .It Li "Netgear WG111T" Ta AR5005UG .It Li "Netgear WG111U" Ta AR5005UX .It Li "Netgear WPN111" Ta AR5005UG .It Li "Olitec 000544" Ta AR5005UG .It Li "PLANET WDL-U357" Ta AR5005UX .\".It Li "Senao WUB-8004" Ta AR5005UX .It Li "Siemens Gigaset 108" Ta AR5005UG .It Li "SMC SMCWUSBT-G" Ta AR5005UG .It Li "SMC SMCWUSBT-G2" Ta AR5005UG .\".It Li "SparkLAN WL-685GS" Ta AR5005UG .It Li "SparkLAN WL-785A" Ta AR5005UX .It Li "TP-Link TL-WN620G" Ta AR5005UG .It Li "TRENDware International TEW-444UB" Ta AR5005UG .It Li "TRENDware International TEW-504UB" Ta AR5005UX .It Li "Unex Technology UR054ag" Ta AR5005UX .\".It Li "Wistron NeWeb DCUA-81" Ta AR5005UX .\".It Li "Wistron NeWeb DRUA-81" Ta AR5005UG .\".It Li "Wistron NeWeb DRUA-82" Ta AR5005UX .\".It Li "ZyXEL G-200 v2" Ta AR5005UG .It Li "ZyXEL XtremeMIMO M-202" Ta AR5005UX .El .Pp An up to date list can be found at .Pa http://customerproducts.atheros.com/customerproducts/default.asp . .Sh EXAMPLES Join an existing BSS network (i.e., connect to an access point): .Bd -literal -offset indent ifconfig wlan create wlandev uath0 inet 192.168.0.20 \e netmask 0xffffff00 .Ed .Pp Join a specific BSS network with network name .Dq Li my_net : .Pp .Dl "ifconfig wlan create wlandev uath0 ssid my_net up" .Pp Join a specific BSS network with 64-bit WEP encryption: .Bd -literal -offset indent ifconfig wlan create wlandev uath0 ssid my_net \e wepmode on wepkey 0x1234567890 weptxkey 1 up .Ed .Pp Join a specific BSS network with 128-bit WEP encryption: .Bd -literal -offset indent ifconfig wlan create wlandev uath0 wlanmode adhoc ssid my_net \e wepmode on wepkey 0x01020304050607080910111213 weptxkey 1 .Ed .Sh DIAGNOSTICS .Bl -diag .It "uath%d: could not send command (error=%s)" An attempt to send a command to the firmware failed. .It "uath%d: timeout waiting for command reply" A read command was sent to the firmware but the firmware failed to reply in time. .It "uath%d: device timeout" A frame dispatched to the hardware for transmission did not complete in time. The driver will reset the hardware. This should not happen. .El .Sh SEE ALSO .Xr netintro 4 , .Xr usb 4 , .Xr wlan 4 , .Xr wlan_ccmp 4 , .Xr wlan_tkip 4 , .Xr wlan_wep 4 , .Xr devd 8 , .Xr ifconfig 8 , .Xr uathload 8 , .Xr wpa_supplicant 8 .Sh HISTORY The .Nm driver first appeared in .Ox 4.0 . .Sh AUTHORS .An -nosplit The .Nm driver was written by .An Weongyo Jeong Aq Mt weongyo@FreeBSD.org and .An Sam Leffler Aq Mt sam@FreeBSD.org . It is distantly related to a driver written by .An Damien Bergamini Aq Mt damien@openbsd.org . .Sh CAVEATS Atheros proprietary 108 Mbps mode (aka Super AG mode) is not supported. .Pp Dual-band adapters are presently not working; to workaround, restriction operation to 2.4GHz channels. Index: head/share/man/man4/ucom.4 =================================================================== --- head/share/man/man4/ucom.4 (revision 344481) +++ head/share/man/man4/ucom.4 (revision 344482) @@ -1,165 +1,166 @@ .\" $NetBSD: ucom.4,v 1.9 2002/03/22 00:39:40 augustss Exp $ .\" .\" Copyright (c) 1999 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Lennart Augustsson. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" $FreeBSD$ .\" .Dd April 25, 2018 .Dt UCOM 4 .Os .Sh NAME .Nm ucom .Nd USB tty support .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ucom" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent ucom_load="YES" .Ed .Sh DESCRIPTION The .Nm driver attaches to USB modems, serial ports, and other devices that need to look like a tty. The .Nm driver shows a behavior like a .Xr tty 4 . This means that normal programs such as .Xr tip 1 or .Xr ppp 8 can be used to access the device. .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.ucom.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. .It Va hw.usb.ucom.device_mode_console When set to 1, the .Nm driver will mark terminals as console devices when operating in device mode. Default is 1. .It Va hw.usb.ucom.pps_mode Enables and configure PPS capture mode as described below. +.El .Sh Pulse Per Second (PPS) Timing Interface The .Nm driver can capture PPS timing information as defined in RFC 2783. The API, accessed via .Xr ioctl 2 , is available on the tty device. To use the PPS capture feature with .Xr ntpd 8 , symlink the tty device to .Va /dev/pps0. .Pp The .Va hw.usb.ucom.pps_mode sysctl configures the PPS capture mode. It can be set in .Xr loader.conf 5 or .Xr sysctl.conf 5 . The following capture modes are available: .Bl -tag -compact -offset "mmmm" -width "mmmm" .It 0 Capture disabled (default). .It 1 Capture pulses on the CTS line. .It 2 Capture pulses on the DCD line. .El .Sh FILES .Bl -tag -width "/dev/ttyU*.init" -compact .It Pa /dev/ttyU* for callin ports .It Pa /dev/ttyU*.init .It Pa /dev/ttyU*.lock corresponding callin initial-state and lock-state devices .Pp .It Pa /dev/cuaU* for callout ports .It Pa /dev/cuaU*.init .It Pa /dev/cuaU*.lock corresponding callout initial-state and lock-state devices .El .Sh SEE ALSO .Xr tty 4 , .Xr uark 4 , .Xr ubsa 4 , .Xr ubser 4 , .Xr uchcom 4 , .Xr ucycom 4 , .Xr ufoma 4 , .Xr uftdi 4 , .Xr uhso 4 , .\".Xr ugensa 4 , .Xr uipaq 4 , .Xr umcs 4 , .Xr umct 4 , .Xr umodem 4 , .Xr umoscom 4 , .Xr uplcom 4 , .Xr usb 4 , .Xr uslcom 4 , .Xr uvisor 4 , .Xr uvscom 4 .Sh HISTORY The .Nm driver was adopted from .Nx in March of 2002. This manual page was adopted from .Nx by .An Tom Rhodes Aq Mt trhodes@FreeBSD.org in April 2002. .Sh BUGS Prior to .Fx 6.0 .Nm created .Pa /dev/ucom? rather than the uniform device names created today. Old scripts must be adjusted accordingly. Index: head/share/man/man4/ugen.4 =================================================================== --- head/share/man/man4/ugen.4 (revision 344481) +++ head/share/man/man4/ugen.4 (revision 344482) @@ -1,322 +1,323 @@ .\" $NetBSD: ugen.4,v 1.13 2001/09/11 22:52:54 wiz Exp $ .\" .\" Copyright (c) 1999 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Lennart Augustsson. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt UGEN 4 .Os .Sh NAME .Nm ugen .Nd USB generic device support .Sh SYNOPSIS .Nm is integrated into the .Xr usb 4 kernel module. .Sh DESCRIPTION The .Nm driver provides support for all USB devices that do not have a special driver. It supports access to all parts of the device, but not in a way that is as convenient as a special purpose driver. .Pp There can be up to 127 USB devices connected to a USB bus. Each USB device can have up to 16 endpoints. Each of these endpoints will communicate in one of four different modes: control, isochronous, bulk, or interrupt. Each of the endpoints will have a different device node. The four least significant bits in the minor device number determine which endpoint the device accesses, and the rest of the bits determine which USB device. .Pp If an endpoint address is used both for input and output, the device can be opened for both read or write. .Pp To find out which endpoints exist, there are a series of .Xr ioctl 2 operations on the control endpoint that return the USB descriptors of the device, configurations, interfaces, and endpoints. .Pp The control transfer mode can only happen on the control endpoint which is always endpoint 0. The control endpoint accepts a request and may respond with an answer to such a request. Control requests are issued by .Xr ioctl 2 calls. .\" .Pp .\" The isochronous transfer mode can be in or out depending on the .\" endpoint. .\" To perform I/O on an isochronous endpoint .\" .Xr read 2 .\" and .\" .Xr write 2 .\" should be used. .\" Before any I/O operations can take place the transfer rate in .\" bytes/second has to be set. .\" This is done with .\" .Xr ioctl 2 .\" .Dv USB_SET_ISO_RATE . .\" Performing this call sets up a buffer corresponding to .\" about 1 second of data. .Pp The bulk transfer mode can be in or out depending on the endpoint. To perform I/O on a bulk endpoint .Xr read 2 and .Xr write 2 should be used. All I/O operations on a bulk endpoint are unbuffered. .Pp The interrupt transfer mode can be in or out depending on the endpoint. To perform I/O on an interrupt endpoint .Xr read 2 and .Xr write 2 should be used. A moderate amount of buffering is done by the driver. .Pp All endpoints handle the following .Xr ioctl 2 calls: .Bl -tag -width indent .It Dv USB_SET_SHORT_XFER Pq Vt int Allow short read transfer. Normally a transfer from the device which is shorter than the request specified is reported as an error. .It Dv USB_SET_TIMEOUT Pq Vt int Set the timeout on the device operations The time is specified in milliseconds. The value 0 is used to indicate that there is no timeout. .El .Pp The control endpoint (endpoint 0) handles the following .Xr ioctl 2 calls: .Bl -tag -width indent .It Dv USB_GET_CONFIG Pq Vt int Get the device configuration number. .It Dv USB_SET_CONFIG Pq Vt int Set the device into the given configuration number. .Pp This operation can only be performed when the control endpoint is the sole open endpoint. .It Dv USB_GET_ALTINTERFACE Pq Vt "struct usb_alt_interface" Get the alternative setting number for the interface with the given index. The .Va uai_config_index is ignored in this call. .Bd -literal struct usb_alt_interface { int uai_config_index; int uai_interface_index; int uai_alt_no; }; .Ed .It Dv USB_SET_ALTINTERFACE Pq Vt "struct usb_alt_interface" Set the alternative setting to the given number in the interface with the given index. The .Va uai_config_index is ignored in this call. .Pp This operation can only be performed when no endpoints for the interface are open. .It Dv USB_GET_NO_ALT Pq Vt "struct usb_alt_interface" Return the number of different alternate settings in the .Va uai_alt_no field. .It Dv USB_GET_DEVICE_DESC Pq Vt usb_device_descriptor_t Return the device descriptor. .It Dv USB_GET_CONFIG_DESC Pq Vt "struct usb_config_desc" Return the descriptor for the configuration with the given index. For convenience, the current configuration can be specified by .Dv USB_CURRENT_CONFIG_INDEX . .Bd -literal struct usb_config_desc { int ucd_config_index; usb_config_descriptor_t ucd_desc; }; .Ed .It Dv USB_GET_INTERFACE_DESC Pq Vt "struct usb_interface_desc" Return the interface descriptor for an interface specified by its configuration index, interface index, and alternative index. For convenience, the current alternative can be specified by .Dv USB_CURRENT_ALT_INDEX . .Bd -literal struct usb_interface_desc { int uid_config_index; int uid_interface_index; int uid_alt_index; usb_interface_descriptor_t uid_desc; }; .Ed .It Dv USB_GET_ENDPOINT_DESC Pq Vt "struct usb_endpoint_desc" Return the endpoint descriptor for the endpoint specified by its configuration index, interface index, alternative index, and endpoint index. .Bd -literal struct usb_endpoint_desc { int ued_config_index; int ued_interface_index; int ued_alt_index; int ued_endpoint_index; usb_endpoint_descriptor_t ued_desc; }; .Ed .It Dv USB_GET_FULL_DESC Pq Vt "struct usb_full_desc" Return all the descriptors for the given configuration. .Bd -literal struct usb_full_desc { int ufd_config_index; u_int ufd_size; u_char *ufd_data; }; .Ed The .Va ufd_data field should point to a memory area of the size given in the .Va ufd_size field. The proper size can be determined by first issuing a .Dv USB_GET_CONFIG_DESC and inspecting the .Va wTotalLength field. .It Dv USB_GET_STRING_DESC Pq Vt "struct usb_string_desc" Get a string descriptor for the given language ID and string index. .Bd -literal struct usb_string_desc { int usd_string_index; int usd_language_id; usb_string_descriptor_t usd_desc; }; .Ed .It Dv USB_DO_REQUEST Pq Vt "struct usb_ctl_request" Send a USB request to the device on the control endpoint. Any data sent to/from the device is located at .Va ucr_data . The size of the transferred data is determined from the .Va ucr_request . The .Va ucr_addr field is ignored in this call. The .Va ucr_flags field can be used to flag that the request is allowed to be shorter than the requested size, and .Va ucr_actlen will contain the actual size on completion. .Bd -literal struct usb_ctl_request { int ucr_addr; usb_device_request_t ucr_request; void *ucr_data; int ucr_flags; #define USBD_SHORT_XFER_OK 0x04 /* allow short reads */ int ucr_actlen; /* actual length transferred */ }; .Ed This is a dangerous operation in that it can perform arbitrary operations on the device. Some of the most dangerous (e.g., changing the device address) are not allowed. .It Dv USB_GET_DEVICEINFO Pq Vt "struct usb_device_info" Get an information summary for the device. This call will not issue any USB transactions. .El .Pp Note that there are two different ways of addressing configurations, interfaces, alternatives, and endpoints: by index or by number. The index is the ordinal number (starting from 0) of the descriptor as presented by the device. The number is the respective number of the entity as found in its descriptor. Enumeration of descriptors uses the index, getting and setting typically uses numbers. .Pp Example: all endpoints (except the control endpoint) for the current configuration can be found by iterating the .Va interface_index from 0 to .Va config_desc->bNumInterface Ns \-1 and for each of these, iterating the .Va endpoint_index from 0 to .Va interface_desc->bNumEndpoints . The .Va config_index should be set to .Dv USB_CURRENT_CONFIG_INDEX and .Va alt_index should be set to .Dv USB_CURRENT_ALT_INDEX . .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.ugen.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh FILES .Bl -tag -width ".Pa /dev/ugen Ns Ar N Ns Pa \&. Ns Ar E" -compact .It Pa /dev/ugen Ns Ar N Ns Pa \&. Ns Ar E Endpoint .Ar E of device .Ar N . .El .Sh SEE ALSO .Xr usb 4 .Sh HISTORY The .Nm driver appeared in .Nx 1.4 . .\" .Sh BUGS .\" The driver is not yet finished; there is no access to isochronous endpoints. Index: head/share/man/man4/uhci.4 =================================================================== --- head/share/man/man4/uhci.4 (revision 344481) +++ head/share/man/man4/uhci.4 (revision 344482) @@ -1,79 +1,80 @@ .\" Copyright (c) 1999 .\" Nick Hibma . All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt UHCI 4 .Os .Sh NAME .Nm uhci .Nd UHCI USB Host Controller driver .Sh SYNOPSIS .Cd "device uhci" .Sh DESCRIPTION The .Nm driver provides support for UHCI-type PCI based USB controllers. .Sh HARDWARE The .Nm driver supports all UHCI v1.1 compliant controllers including: .Pp .Bl -bullet -compact .It Intel 82371AB/EB (PIIX4) .It Intel 82371SB (PIIX3) .It VIA 83C572 .El .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.uhci.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh SEE ALSO .Xr ehci 4 , .Xr ohci 4 , .Xr xhci 4 .Sh HISTORY The .Nm device driver first appeared in .Fx 3.0 . .Sh AUTHORS The .Nm driver was written by .An Lennart Augustsson Aq Mt augustss@carlstedt.se for the .Nx project. Index: head/share/man/man4/uhid.4 =================================================================== --- head/share/man/man4/uhid.4 (revision 344481) +++ head/share/man/man4/uhid.4 (revision 344482) @@ -1,175 +1,176 @@ .\" $NetBSD: uhid.4,v 1.13 2001/12/29 14:41:59 augustss Exp $ .\" .\" Copyright (c) 1999, 2001 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Lennart Augustsson. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" $FreeBSD$ .\" .Dd July 1, 2018 .Dt UHID 4 .Os .Sh NAME .Nm uhid .Nd USB generic HID support .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device uhid" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent uhid_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for all HID (Human Interface Device) interfaces in USB devices that do not have a special driver. .Pp The device handles the following .Xr ioctl 2 calls: .Bl -tag -width indent .It Dv USB_GET_REPORT_ID Pq Vt int Get the report identifier used by this HID report. .It Dv USB_GET_REPORT_DESC Pq Vt "struct usb_gen_descriptor" Get the HID report descriptor. Copies a maximum of .Va ugd_maxlen bytes of the report descriptor data into the memory specified by .Va ugd_data . Upon return .Va ugd_actlen is set to the number of bytes copied. Using this descriptor the exact layout and meaning of data to/from the device can be found. The report descriptor is delivered without any processing. .Bd -literal struct usb_gen_descriptor { void *ugd_data; uint16_t ugd_maxlen; uint16_t ugd_actlen; uint8_t ugd_report_type; ... }; .Ed .It Dv USB_SET_IMMED Pq Vt int Sets the device in a mode where each .Xr read 2 will return the current value of the input report. Normally a .Xr read 2 will only return the data that the device reports on its interrupt pipe. This call may fail if the device does not support this feature. .It Dv USB_GET_REPORT Pq Vt "struct usb_gen_descriptor" Get a report from the device without waiting for data on the interrupt pipe. Copies a maximum of .Va ugd_maxlen bytes of the report data into the memory specified by .Va ugd_data . Upon return .Va ugd_actlen is set to the number of bytes copied. The .Va ugd_report_type field indicates which report is requested. It should be .Dv UHID_INPUT_REPORT , .Dv UHID_OUTPUT_REPORT , or .Dv UHID_FEATURE_REPORT . This call may fail if the device does not support this feature. .It Dv USB_SET_REPORT Pq Vt "struct usb_gen_descriptor" Set a report in the device. The .Va ugd_report_type field indicates which report is to be set. It should be .Dv UHID_INPUT_REPORT , .Dv UHID_OUTPUT_REPORT , or .Dv UHID_FEATURE_REPORT . The value of the report is specified by the .Va ugd_data and the .Va ugd_maxlen fields. This call may fail if the device does not support this feature. .El .Pp Use .Xr read 2 to get data from the device. Data should be read in chunks of the size prescribed by the report descriptor. .Pp Use .Xr write 2 to send data to the device. Data should be written in chunks of the size prescribed by the report descriptor. .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.uhid.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh FILES .Bl -tag -width ".Pa /dev/uhid?" .It Pa /dev/uhid? .El .Sh SEE ALSO .Xr usbhidctl 1 , .Xr usb 4 .Sh HISTORY The .Nm driver appeared in .Nx 1.4 . This manual page was adopted from .Nx by .An Tom Rhodes Aq Mt trhodes@FreeBSD.org in April 2002. Index: head/share/man/man4/ukbd.4 =================================================================== --- head/share/man/man4/ukbd.4 (revision 344481) +++ head/share/man/man4/ukbd.4 (revision 344482) @@ -1,185 +1,186 @@ .\" Copyright (c) 1997, 1998 .\" Nick Hibma . All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt UKBD 4 .Os .Sh NAME .Nm ukbd .Nd USB keyboard driver .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ukbd" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent ukbd_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for keyboards that attach to the USB port. .Xr usb 4 and one of .Xr uhci 4 or .Xr ohci 4 must be configured in the kernel as well. .Sh CONFIGURATION By default, the keyboard subsystem does not create the appropriate devices yet. Make sure you reconfigure your kernel with the following option in the kernel config file: .Pp .Dl "options KBD_INSTALL_CDEV" .Pp If both an AT keyboard USB keyboards are used at the same time, the AT keyboard will appear as .Pa kbd0 in .Pa /dev . The USB keyboards will be .Pa kbd1 , kbd2 , etc. You can see some information about the keyboard with the following command: .Pp .Dl "kbdcontrol -i < /dev/kbd1" .Pp or load a keymap with .Pp .Dl "kbdcontrol -l keymaps/pt.iso < /dev/kbd1" .Pp See .Xr kbdcontrol 1 for more possible options. .Pp You can swap console keyboards by using the command .Pp .Dl "kbdcontrol -k /dev/kbd1" .Pp From this point on, the first USB keyboard will be the keyboard to be used by the console. .Pp If you want to use a USB keyboard as your default and not use an AT keyboard at all, you will have to remove the .Cd "device atkbd" line from the kernel configuration file. Because of the device initialization order, the USB keyboard will be detected .Em after the console driver initializes itself and you have to explicitly tell the console driver to use the existence of the USB keyboard. This can be done in one of the following two ways. .Pp Run the following command as a part of system initialization: .Pp .Dl "kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null" .Pp (Note that as the USB keyboard is the only keyboard, it is accessed as .Pa /dev/kbd0 ) or otherwise tell the console driver to periodically look for a keyboard by setting a flag in the kernel configuration file: .Pp .Dl "device sc0 at isa? flags 0x100" .Pp With the above flag, the console driver will try to detect any keyboard in the system if it did not detect one while it was initialized at boot time. .Sh DRIVER CONFIGURATION .D1 Cd "options KBD_INSTALL_CDEV" .Pp Make the keyboards available through a character device in .Pa /dev . .Pp .D1 Cd options UKBD_DFLT_KEYMAP .D1 Cd makeoptions UKBD_DFLT_KEYMAP=fr.iso .Pp The above lines will put the French ISO keymap in the ukbd driver. You can specify any keymap in .Pa /usr/share/syscons/keymaps or .Pa /usr/share/vt/keymaps (depending on the console driver being used) with this option. .Pp .D1 Cd "options KBD_DISABLE_KEYMAP_LOADING" .Pp Do not allow the user to change the keymap. Note that these options also affect the AT keyboard driver, .Xr atkbd 4 . .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.ukbd.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh FILES .Bl -tag -width ".Pa /dev/kbd*" -compact .It Pa /dev/kbd* blocking device nodes .El .Sh EXAMPLES .D1 Cd "device ukbd" .Pp Add the .Nm driver to the kernel. .Sh SEE ALSO .Xr kbdcontrol 1 , .Xr ohci 4 , .Xr syscons 4 , .Xr uhci 4 , .Xr usb 4 , .Xr vt 4 , .Xr config 8 .Sh AUTHORS .An -nosplit The .Nm driver was written by .An Lennart Augustsson Aq Mt augustss@cs.chalmers.se for .Nx and was substantially rewritten for .Fx by .An Kazutaka YOKOTA Aq Mt yokota@zodiac.mech.utsunomiya-u.ac.jp . .Pp This manual page was written by .An Nick Hibma Aq Mt n_hibma@FreeBSD.org with a large amount of input from .An Kazutaka YOKOTA Aq Mt yokota@zodiac.mech.utsunomiya-u.ac.jp . Index: head/share/man/man4/umoscom.4 =================================================================== --- head/share/man/man4/umoscom.4 (revision 344481) +++ head/share/man/man4/umoscom.4 (revision 344482) @@ -1,80 +1,83 @@ .\" .\" Copyright (c) 2014 Hans Petter Selasky .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 26, 2017 .Dt UMOSCOM 4 .Os .Sh NAME .Nm umoscom .Nd USB support for serial adapters based on chips made by MOSCHIP .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device usb" .Cd "device ucom" .Cd "device umoscom" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent umoscom_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for various serial adapters based on chips from MOSCHIP. .Pp The device is accessed through the .Xr ucom 4 driver which makes it behave like a .Xr tty 4 . .Sh FILES .Bl -tag -width "/dev/ttyU*.init" -compact .It Pa /dev/ttyU* for callin ports .It Pa /dev/ttyU*.init .It Pa /dev/ttyU*.lock corresponding callin initial-state and lock-state devices .Pp .It Pa /dev/cuaU* for callout ports .It Pa /dev/cuaU*.init .It Pa /dev/cuaU*.lock corresponding callout initial-state and lock-state devices .El .Sh SEE ALSO .Xr tty 4 , .Xr ucom 4 , .Xr usb 4 .Sh HISTORY The .Nm -driver appeared in OpenBSD and was ported to FreeBSD. +driver appeared in +.Ox +and was ported to +.Fx . Index: head/share/man/man4/ums.4 =================================================================== --- head/share/man/man4/ums.4 (revision 344481) +++ head/share/man/man4/ums.4 (revision 344482) @@ -1,124 +1,125 @@ .\" Copyright (c) 1999 .\" Nick Hibma . All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt UMS 4 .Os .Sh NAME .Nm ums .Nd USB mouse driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ums" .Cd "device uhci" .Cd "device ohci" .Cd "device usb" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent ums_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for mice that attach to the USB port. Supported are mice with any number of buttons and mice with a wheel. .Pp The .Pa /dev/ums0 device presents the mouse as a .Ar sysmouse or .Ar mousesystems type device. See .Xr moused 8 for an explanation of these mouse types. .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.ums.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh FILES .Bl -tag -width /dev/ums0 -compact .It Pa /dev/ums0 blocking device node .El .Sh EXAMPLES Use the first USB mouse on the system as your console mouse: .Pp .Dl moused -p /dev/ums0 -t auto .Pp To be able to use the USB mouse under X, change the "Pointer" section in .Nm xorg.conf to the following: .Pp .Dl Device "/dev/ums0" .Dl Protocol "Auto" .Pp If you want to be able to use the mouse in both virtual consoles as well as in X change it to: .Pp .Dl Device "/dev/sysmouse" .Dl Protocol "Auto" .Sh SEE ALSO .Xr ohci 4 , .Xr sysmouse 4 , .Xr uhci 4 , .Xr usb 4 , .Xr xorg.conf 5 Pq Pa ports/x11/xorg , .Xr moused 8 .Sh AUTHORS .An -nosplit The .Nm driver was written by .An Lennart Augustsson Aq Mt augustss@cs.chalmers.se for .Nx and was adopted for .Fx by .An MAEKAWA Masahide Aq Mt bishop@rr.iij4u.or.jp . .Pp This manual page was written by .An Nick Hibma Aq Mt n_hibma@FreeBSD.org with input from .An Kazutaka YOKOTA Aq Mt yokota@zodiac.mech.utsunomiya-u.ac.jp . Index: head/share/man/man4/uplcom.4 =================================================================== --- head/share/man/man4/uplcom.4 (revision 344481) +++ head/share/man/man4/uplcom.4 (revision 344482) @@ -1,222 +1,223 @@ .\" $NetBSD: uplcom.4,v 1.9 2002/02/07 03:15:09 ross Exp $ .\" .\" Copyright (c) 2001 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Lennart Augustsson. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt UPLCOM 4 .Os .Sh NAME .Nm uplcom .Nd USB support for Prolific PL-2303/2303X/2303HX serial adapters driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device usb" .Cd "device ucom" .Cd "device uplcom" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent uplcom_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for various serial adapters based on the Prolific PL-2303, PL-2303X and PL-2303HX USB-to-RS232 Bridge chips. .Pp The device is accessed through the .Xr ucom 4 driver which makes it behave like a .Xr tty 4 . .Sh HARDWARE The .Nm driver supports the following devices and adapters: .Pp .Bl -bullet -compact .It ADLINK ND-6530 USB-Serial Adapter .It Alcatel One Touch 535/735 Phone .It Alcor AU9720 USB-RS232 Serial Adapter .It AlDiga AL-11U Modem .It Alltronix ACM003U00 Modem .It Anchor Serial adapter .It ATEN UC-232A .It BAFO BF-800 and BF-810 .It Belkin F5U257 .It BenQ S81 Phone .It Corega CG-USBRS232R Serial Adapter .It Cressi Edy (Seiko) Diving Computer .It ELECOM UC-SGT Serial Adapter .It HAL Corporation Crossam2+USB IR commander .It Hama USB RS-232 Serial Adapter .It Hamlet exaggerate XURS232 .It HP LD220 Point-Of-Sale (POS) Display .It IOGEAR UC-232A .It I/O DATA USB-RSAQ, USB-RSAQ2, USB-RSAQ3 and USB-RSAQ5 .It iTegno WM1080A GSM/GFPRS Modem .It iTegno WM2080A CDMA Modem .It Leadtek 9531 GPS .It Micromax 610U Modem .It Microsoft Palm 700WX .It Mobile Action MA-620 Infrared Adapter .It Motorola Cables .It Nokia CA-42 Cable .It OTI DKU-5 cable .It Panasonic TY-TP50P6-S flat screen .It PLX CA-42 Phone Cable .It PLANEX USB-RS232 URS-03 .It Prolific Generic USB-Serial Adapters .It Prolific Pharos USB-Serial Adapter .It RATOC REX-USB60 .It Radio Shack USB Serial Cable .It Sagem USB-Serial Adapter .It Samsung I330 Phone Cradle .It Sandberg USB to Serial Link (model number 133-08) .It Sanwa KB-USB2 Multimeter cable .It Siemens/BenQ EF81, SX1, X65 and X75 Mobile Phones .It Sitecom USB-Serial Adapter .It SMART Technologies USB-Serial Adapter .It Sony QN3 Phone Cable .It Sony Ericsson Datapilot .It Sony Ericsson DCU-10 and DCU-11 (Susteen) USB Cables .It SOURCENEXT KeikaiDenwa 8 (with and without charger) .It Speed Dragon USB-Serial Cable .It Syntech CPT-8001C Barcode Scanner .It TDK UHA6400 and UPA9664 USB-PHS Adapters .It TRENDnet USB to Serial Converter (TU-S9) .It Tripp-Lite U209-000-R USB-Serial Adapter .It UIC HCR331 Magnetic Stripe Card Reader .It UIC MSR206 Magnetic Stripe Card Reader .It Willcom W-SIM DD PHS terminal.(WS002IN) .It YC-Cable USB-Serial Adapter .It Zeagle N2iTion3 Diving Computer .El .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.uplcom.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh FILES .Bl -tag -width "/dev/ttyU*.init" -compact .It Pa /dev/ttyU* for callin ports .It Pa /dev/ttyU*.init .It Pa /dev/ttyU*.lock corresponding callin initial-state and lock-state devices .Pp .It Pa /dev/cuaU* for callout ports .It Pa /dev/cuaU*.init .It Pa /dev/cuaU*.lock corresponding callout initial-state and lock-state devices .El .Sh SEE ALSO .Xr tty 4 , .Xr ucom 4 , .Xr usb 4 .Sh HISTORY The .Nm driver appeared in .Nx 1.6 . This manual page was adopted from .Nx by .An Tom Rhodes Aq Mt trhodes@FreeBSD.org in April 2002. Index: head/share/man/man4/usb.4 =================================================================== --- head/share/man/man4/usb.4 (revision 344481) +++ head/share/man/man4/usb.4 (revision 344482) @@ -1,191 +1,192 @@ .\" Copyright (c) 1997, 1998 Nick Hibma .\" Copyright (c) 2008 Hans Petter Selasky. All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt USB 4 .Os .Sh NAME .Nm usb .Nd Universal Serial Bus .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device usb" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent usb_load="YES" .Ed .Sh USERLAND PROGRAMMING USB functions can be accessed from userland through the libusb library. See .Xr libusb 3 for more information. .Sh DESCRIPTION .Fx provides machine-independent bus support and drivers for .Tn USB devices in host and device side mode. .Pp The .Nm driver has three layers: .Bl -tag -width 6n -offset indent .It USB Controller (Bus) .It USB Device .It USB Driver .El .Pp The controller attaches to a physical bus like .Xr pci 4 . The .Tn USB bus attaches to the controller, and the root hub attaches to the controller. Any devices attached to the bus will attach to the root hub or another hub attached to the .Tn USB bus. .Pp The .Nm uhub device will always be present as it is needed for the root hub. .Sh INTRODUCTION TO USB The .Tn USB is a system where external devices can be connected to a PC. The most common USB speeds are: .Bl -tag -width 6n -offset indent .It Low Speed (1.5MBit/sec) .It Full Speed (12MBit/sec) .It High Speed (480MBit/sec) .El .Pp Each .Tn USB has a USB controller that is the master of the bus. The physical communication is simplex which means the host controller only communicates with one USB device at a time. .Pp There can be up to 127 devices connected to an USB HUB tree. The addresses are assigned dynamically by the host when each device is attached to the bus. .Pp Within each device there can be up to 16 endpoints. Each endpoint is individually addressed and the addresses are static. Each of these endpoints will communicate in one of four different modes: .Em control , isochronous , bulk , or .Em interrupt . A device always has at least one endpoint. This endpoint has address 0 and is a control endpoint and is used to give commands to and extract basic data, such as descriptors, from the device. Each endpoint, except the control endpoint, is unidirectional. .Pp The endpoints in a device are grouped into interfaces. An interface is a logical unit within a device, e.g., a compound device with both a keyboard and a trackball, would present one interface for each. An interface can sometimes be set into different modes, called alternate settings, which affects how it operates. Different alternate settings can have different endpoints within it. .Pp A device may operate in different configurations. Depending on the configuration, the device may present different sets of endpoints and interfaces. .Pp The bus enumeration of the .Tn USB bus proceeds in several steps: .Bl -enum .It Any interface specific driver can attach to the device. .It If none is found, generic interface class drivers can attach. .El .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh SEE ALSO The .Tn USB specifications can be found at: .Pp .D1 Pa http://www.usb.org/developers/docs/ .Pp .Xr libusb 3 , .Xr aue 4 , .Xr axe 4 , .Xr axge 4 , .Xr cue 4 , .Xr ehci 4 , .Xr kue 4 , .Xr mos 4 , .Xr ohci 4 , .Xr pci 4 , .Xr rue 4 , .Xr ucom 4 , .Xr udav 4 , .Xr uhci 4 , .Xr uhid 4 , .Xr ukbd 4 , .Xr ulpt 4 , .Xr umass 4 , .Xr ums 4 , .Xr uplcom 4 , .Xr urio 4 , .Xr uvscom 4 , .Xr xhci 4 .Xr usbconfig 8 , -.Xr usbdi 9 , +.Xr usbdi 9 .Sh STANDARDS The .Nm module complies with the USB 2.0 standard. .Sh HISTORY The .Nm module has been inspired by the .Nx USB stack initially written by .An Lennart Augustsson . The .Nm module was written by .An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org . Index: head/share/man/man4/uvscom.4 =================================================================== --- head/share/man/man4/uvscom.4 (revision 344481) +++ head/share/man/man4/uvscom.4 (revision 344482) @@ -1,108 +1,109 @@ .\" $NetBSD: uvscom.4,v 1.1 2002/03/19 15:17:49 augustss Exp $ .\" .\" Copyright (c) 2002 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Lennart Augustsson. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" $FreeBSD$ .\" .Dd April 26, 2017 .Dt UVSCOM 4 .Os .Sh NAME .Nm uvscom .Nd USB support for SUNTAC Slipper U VS-10U serial adapters driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device usb" .Cd "device ucom" .Cd "device uvscom" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent uvscom_load="YES" .Ed .Sh HARDWARE The .Nm driver supports the following adapters: .Pp .Bl -bullet -compact .It DDI Pocket Air H" C@rd .It DDI Pocket Air H" C@rd 64 .It NTT P-in .It NTT P-in m@ster .El .Sh DESCRIPTION The .Nm driver provides support for the SUNTAC Slipper U VS-10U chip. Slipper U is a PC Card to USB converter for data communication card adapters. .Pp The device is accessed through the .Xr ucom 4 driver which makes it behave like a .Xr tty 4 . .Sh FILES .Bl -tag -width "/dev/ttyU*.init" -compact .It Pa /dev/ttyU* for callin ports .It Pa /dev/ttyU*.init .It Pa /dev/ttyU*.lock corresponding callin initial-state and lock-state devices .Pp .It Pa /dev/cuaU* for callout ports .It Pa /dev/cuaU*.init .It Pa /dev/cuaU*.lock corresponding callout initial-state and lock-state devices +.El .Sh SEE ALSO .Xr tty 4 , .Xr ucom 4 , .Xr usb 4 .Sh HISTORY The .Nm driver first appeared in .Fx and later in .Nx 1.6 . This manual page was adopted from .Nx by .An Tom Rhodes Aq Mt trhodes@FreeBSD.org in April 2002. Index: head/share/man/man4/vale.4 =================================================================== --- head/share/man/man4/vale.4 (revision 344481) +++ head/share/man/man4/vale.4 (revision 344482) @@ -1,129 +1,129 @@ .\" Copyright (c) 2012 Luigi Rizzo, Universita` di Pisa .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" This document is derived in part from the enet man page (enet.4) .\" distributed with 4.3BSD Unix. .\" .\" $FreeBSD$ .\" $Id: $ .\" -.Dd Jan 9, 2019 +.Dd January 9, 2019 .Dt VALE 4 .Os .Sh NAME .Nm vale .Nd a very fast Virtual Local Ethernet using the netmap API .Sh SYNOPSIS .Cd device netmap .Sh DESCRIPTION .Nm is a feature of the .Xr netmap 4 module that implements multiple Virtual switches that can be used to interconnect netmap clients, including traffic sources and sinks, packet forwarders, userspace firewalls, and so on. .Pp .Nm is implemented completely in software, and is extremely fast. On a modern machine it can move almost 20 Million packets per second (Mpps) per core with small frames, and about 70 Gbit/s with 1500 byte frames. .Sh OPERATION .Nm dynamically creates switches and ports as clients connect to it using the .Xr netmap 4 API. .Pp .Nm ports are named .Pa valeSSS:PPP where .Pa vale is the prefix indicating a VALE switch rather than a standard interface, .Pa SSS indicates a specific switch (the colon is a separator), and .Pa PPP indicates a port within the switch. Both SSS and PPP have the form [0-9a-zA-Z_]+ , the string cannot exceed IFNAMSIZ characters, and PPP cannot be the name of any existing OS network interface. .Pp See .Xr netmap 4 for details on the API. .Ss LIMITS .Nm currently supports up to 4 switches, 16 ports per switch, with 1024 buffers per port. These hard limits will be changed to sysctl variables in future releases. .Sh SYSCTL VARIABLES .Nm uses the following sysctl variables to control operation: .Bl -tag -width dev.netmap.verbose .It dev.netmap.bridge_batch The maximum number of packets processed internally in each iteration. Defaults to 1024, use lower values to trade latency with throughput. .It dev.netmap.verbose Set to non-zero values to enable in-kernel diagnostics. .El .Sh EXAMPLES Create one switch, with a traffic generator connected to one port, and a netmap-enabled tcpdump instance on another port: .Bd -literal -offset indent tcpdump -ni valea:1 & pkt-gen -i valea:0 -f tx & .Ed .Pp Create two switches, each connected to two qemu machines on different ports. .Bd -literal -offset indent qemu -net nic -net netmap,ifname=vale1:a ... & qemu -net nic -net netmap,ifname=vale1:b ... & qemu -net nic -net netmap,ifname=vale2:c ... & qemu -net nic -net netmap,ifname=vale2:d ... & .Ed .Sh SEE ALSO .Xr netmap 4 .Pp Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines, June 2012, http://info.iet.unipi.it/~luigi/vale/ .Sh AUTHORS .An -nosplit The .Nm switch was designed and implemented in 2012 by .An Luigi Rizzo and .An Giuseppe Lettieri at the Universita` di Pisa. .Pp .Nm was funded by the European Commission within FP7 Projects CHANGE (257422) and OPENLAB (287581). Index: head/share/man/man4/vmci.4 =================================================================== --- head/share/man/man4/vmci.4 (revision 344481) +++ head/share/man/man4/vmci.4 (revision 344482) @@ -1,71 +1,72 @@ .\" Copyright (c) 2018 VMware, Inc. .\" .\" SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0) .\" .\" $FreeBSD$ .Dd February 10, 2018 .Dt VMCI 4 .Os .Sh NAME .Nm vmci .Nd VMware Virtual Machine Communication Interface .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device vmci" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_vmci_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for the VMware Virtual Machine Communication Interface (VMCI) in virtual machines by VMware. .Pp VMCI allows virtual machines to communicate with host kernel modules and the VMware hypervisors. User level applications in a virtual machine can use VMCI through vSockets (also known as VMCI Sockets and not included in this kernel module), a socket address family designed to be compatible with UDP and TCP at the interface level. Today, VMCI and vSockets are used by various VMware Tools components inside the guest for zero-config, network-less access to VMware host services. In addition to this, VMware's users are using vSockets for various applications, where network access of the virtual machine is restricted or non-existent. Examples of this are VMs communicating with device proxies for proprietary hardware running as host applications and automated testing of applications running within virtual machines. .Pp In a virtual machine, VMCI is exposed as a regular PCI device. The primary communication mechanisms supported are a point-to-point bidirectional transport based on a pair of memory-mapped queues, and asynchronous notifications in the form of datagrams and doorbells. These features are available to kernel level components such as vSockets through the VMCI kernel API. In addition to this, the VMCI kernel API provides support for receiving events related to the state of the VMCI communication channels, and the virtual machine itself. .Sh SEE ALSO .Xr socket 2 , .Xr pci 9 .Rs .%T "VMware vSockets Documentation" .%U https://www.vmware.com/support/developer/vmci-sdk/ +.Re .Sh HISTORY The .Nm driver first appeared in .Fx 12.0 . .Sh AUTHORS The .Nm driver and man page were written by .An Vishnu Dasa Aq Mt vdasahar@gmail.com . Index: head/share/man/man4/vmm.4 =================================================================== --- head/share/man/man4/vmm.4 (revision 344481) +++ head/share/man/man4/vmm.4 (revision 344482) @@ -1,105 +1,104 @@ .\" Copyright (c) 2013 Peter Grehan .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS 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 AUTHORS 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. .\" .\" $FreeBSD$ .\" .Dd December 19, 2013 .Dt VMM 4 .Os .Sh NAME .Nm vmm.ko .Nd "bhyve virtual machine monitor" .Sh SYNOPSIS -.Pp To load the driver as a module at boot, add this line to .Xr loader.conf 5 : .Bd -literal -offset indent .Cd vmm_load="YES" .Ed .Pp The module can also be loaded manually with .Xr kldload 8 : .Bd -literal -offset indent kldload vmm .Ed .Sh DESCRIPTION .Nm provides the kernel portion of the .Xr bhyve 4 -hypervisor. +hypervisor. .Pp An Intel CPU with VT-x/EPT or AMD CPU with SVM support is required. .Pp PCI device passthrough to a virtual machine requires hardware with VT-d support. .Sh PCI PASSTHROUGH When the hardware supports VT-d, and .Nm has been loaded at boot time, PCI devices can be reserved for use by the hypervisor. Entries consisting of the PCI .Ar bus Ns / Ns Ar slot Ns / Ns Ar function are added to the .Va pptdevs .Xr loader.conf 5 variable. Additional entries are separated by spaces. Host PCI devices that match an entry will be assigned to the hypervisor and will not be probed by .Fx device drivers. See the .Sx EXAMPLES section below for sample usage. .Pp A large number of PCI device entries may require a string longer than the 128-character limit of .Xr loader.conf 5 variables. The .Va pptdevs2 and .Va pptdevs3 variables can be used for additional entries. .Sh EXAMPLES Reserve three PCI devices for use by the hypervisor: bus 10 slot 0 function 0, bus 6 slot 5 function 0, and bus 6 slot 5 function 1. .Bd -literal -offset indent pptdevs="10/0/0 6/5/0 6/5/1" .Ed .Sh SEE ALSO .Xr bhyve 4 , .Xr loader.conf 5 , .Xr bhyve 8 , .Xr bhyveload 8 , .Xr kldload 8 .Sh HISTORY .Nm vmm.ko first appeared in .Fx 10.0 . .Sh AUTHORS .An Neel Natu Aq neel@freebsd.org .An Peter Grehan Aq grehan@freebsd.org Index: head/share/man/man4/wi.4 =================================================================== --- head/share/man/man4/wi.4 (revision 344481) +++ head/share/man/man4/wi.4 (revision 344482) @@ -1,377 +1,377 @@ .\" Copyright (c) 1997, 1998, 1999 .\" Bill Paul . All rights reserved. .\" .\" 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. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Bill Paul. .\" 4. Neither the name of the author nor the names of any co-contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY Bill Paul 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 Bill Paul OR THE VOICES IN HIS HEAD .\" 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. .\" .\" $FreeBSD$ .\" $OpenBSD: wi.4tbl,v 1.14 2002/04/29 19:53:50 jsyn Exp $ .\" .Dd July 23, 2011 .Dt WI 4 .Os .Sh NAME .Nm wi .Nd "Lucent Hermes, and Intersil PRISM IEEE 802.11 driver" .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device wi" .Cd "device wlan" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_wi_load="YES" .Ed .Sh DESCRIPTION The .Nm driver provides support for 802.11b wireless network adapters based around the Lucent Hermes, Intersil PRISM-II, Intersil PRISM-2.5, and Intersil Prism-3 chipsets. All chipsets provide a similar interface to the driver. Only the Intersil chipsets support access point operation or WPA. Very old versions of firmware are not supported at all. Older versions of the firmware that are supported may severely limit the ability to use these cards in newer networks. Only relatively recent versions of Intersil firmware supports WPA. See CAVEATS for details. All host/device interaction is via programmed I/O, even on those cards that support a DMA interface. .Pp For more information on configuring this device, see .Xr ifconfig 8 . .Pp .Nm supports .Cm station , .Cm adhoc , .Cm adhoc-demo , .Cm hostap , and .Cm monitor mode operation. Only one virtual interface may be configured at a time. For more information on configuring this device, see .Xr ifconfig 8 . .Pp Cards supported by the .Nm driver come in a variety of packages, though the most common are of the PCMCIA type. In many cases, the PCI version of a wireless card is simply a PCMCIA card bundled with a PCI adapter. The PCI adapters come in two flavors: true PCMCIA bridges and dumb PCMCIA bridges. A true PCMCIA bridge (such as those sold by Lucent) will attach as a real PCMCIA controller. The wireless card will then attach to the PCMCIA bus. Wireless cards in PCMCIA slots may be inserted and ejected on the fly. .Pp A dumb bridge, on the other hand, does not show up as a true PCMCIA bus. The wireless card will simply appear to the host as a normal PCI device and will not require any PCMCIA support. Cards in this type of adapter should only be removed when the machine is powered down. .Pp The following cards are among those supported by the .Nm driver: .Pp .Bl -column -compact "Linksys Instant Wireless WPC11 2.5" "Spectrum24" "PCI or PCMCIA" .Em "Card Chip Bus" 3Com AirConnect 3CRWE777A Prism-II PCI Accton airDirect WN3301 PCMCIA ACTIONTEC HWC01170 Prism-2.5 PCMCIA Adaptech ANW-8030 Prism-3 PCMCIA Addtron AWP-100 Prism-II PCMCIA Adtec Adlink/340C Prism-II PCMCIA Airvast WN 100 Prism-3 PCMCIA Airway 802.11 Adapter PCMCIA Agere Orinoco Hermes PCMCIA Allied Telesis WR211PCM Prism-II PCMCIA ArTem OnAir Prism? PCMCIA Asus WL100 Prism-2.5 PCMCIA Avaya Wireless Prism-II PCMCIA Bay eMobility 11B Prism-2.5? PCMCIA Blue Concentric Circle WL-379F Prism-II CF BreezeNet Wireless Prism-II PCMCIA Buffalo WLI-PCM-S11 Prism-II PCMCIA Buffalo WLI-PCM-L11G Hermes PCMCIA Buffalo WLI-CF-S11G Prism-II CF Buffalo WLI2-CF-S11G Prism 2.5 CF Cabletron RoamAbout Hermes PCMCIA Compaq Agency NC5004 Prism-II PCMCIA Compaq WL100 Prism-II PCMCIA Compaq WL110 Hermes PCMCIA Compaq WL200 Prism-II PCMCIA Contec FLEXLAN/FX-DS110-PCC Prism-II PCMCIA Corega PCC-11 Prism-II PCMCIA Corega PCCA-11 Prism-II PCMCIA Corega PCCB-11 Prism-II PCMCIA Corega CGWLPCIA11 Prism-II PCI Dell TrueMobile 1150 Hermes PCMCIA Dlink Air 660 Prism-II PCMCIA Dlink DWL520 Prism-2.5 PCI Dlink DWL650 Prism-2.5 PCMCIA ELECOM Air@Hawk/LD-WL11/PCC PCMCIA ELSA MC-11 PCMCIA ELSA XI300 Prism-II PCMCIA ELSA XI325 Prism-2.5 PCMCIA ELSA APDL325 Prism-2.5 PCMCIA ELSA XI330 Prism-3 PCMCIA ELSA XI800 Prism-II CF EMTAC A2424i Prism-II PCMCIA Farallon Skyline Prism-II PCMCIA Gemtek WL-311 Prism-2.5 PCMCIA Hawking Technology WE110P Prism-2.5 PCMCIA Home Wireless Networks Prism-II PCMCIA IBM High Rate Wireless Hermes PCMCIA ICOM SL-1100 Prism-II PCMCIA I-O DATA WN-B11/PCM Prism-II PCMCIA Intersil Prism II Prism-II PCMCIA Intersil Mini-PCI Prism-2.5 PCI Intersil ISL37100P Prism-3 PCMCIA Intersil ISL37110P Prism-3 PCMCIA Intersil ISL37300P Prism-3 PCMCIA Laneed Wireless PCMCIA Linksys Instant Wireless WPC11 Prism-II PCMCIA Linksys Instant Wireless WPC11 2.5 Prism-2.5 PCMCIA Linksys Instant Wireless WPC11 3.0 Prism-3 PCMCIA Linksys WCF11 Prism-3 PCMCIA Linksys WCF12 Prism-3 CF Lucent WaveLAN Hermes PCMCIA Melco Airconnect Prism-II PCMCIA Microsoft MN-520 WLAN Prism-II PCMCIA NANOSPEED ROOT-RZ2000 Prism-II PCMCIA NCR WaveLAN/IEEE 802.11 PCMCIA NDC/Sohoware NCP130 Prism-II PCI NEC CMZ-RT-WP Prism-II PCMCIA NEC PK-WL001 Lucent PCMCIA NEC PC-WL/11C Prism-II PCMCIA Netgear MA311 Prism-2.5 PCI Netgear MA401 Prism-II/2.5 PCMCIA Netgear MA401RA Prism-II PCMCIA Netgear MA701 Prism-II CF NOKIA C020 WLAN Prism-II PCMCIA NOKIA C110 WLAN Prism-2.5 PCMCIA NTT-ME 11Mbps Wireless LAN Prism-II PCMCIA Planex GeoWave/GW-NS110 Prism-II PCMCIA Planex GW-NS11H Prism-II PCMCIA Proxim Harmony Prism-II PCMCIA Proxim RangeLAN-DS Prism-II PCMCIA Samsung MagicLAN SWL-2000N Prism-II PCMCIA SENAO SL-2511CD Prism-3 PCMCIA Siemens SpeedStream SS1021 Prism-II PCMCIA Siemens SpeedStream SS1021 Prism-3 PCMCIA SMC 2532W-B Prism-II PCMCIA SMC 2602 EZ Connect (3.3V) Prism-II PCI or PCMCIA SMC 2632 EZ Connect Prism-II PCMCIA Socket Low Power WLAN-CF Prism-II CF Sony PCWA-C100 Lucent PCMCIA Sony PEGA-WL110 Prism-2.5 PCMCIA TDK LAK-CD011WL Prism-II PCMCIA Toshiba Wireless LAN Card Prism-II PCMCIA U.S.\& Robotics Wireless Card 2410 Prism-II PCMCIA YIS YWL-11B Prism-II PCMCIA .El .Pp Several vendors sell PCI adapters built around the PLX Technology 9050 or 9052 chip. The following such adapters are supported or expected to work: .Pp .Bl -item -compact .It 3Com AirConnect 3CRWE777A (3.3V) .It Belkin F5D6000 (a rebadged WL11000P) .It Eumitcom WL11000P .It Global Sun Technology GL24110P (untested) .It Global Sun Technology GL24110P02 .It LinkSys WDT11 (a rebadged GL24110P02) .It Netgear MA301 .It US Robotics 2415 (rebadged WL11000P) .It Wisecom Wireless LAN PCI Adapter .El .Pp The following adapters have the same model numbers as those listed above, but might not work if the actual card is after the change away from the Prism family: .Pp .Bl -item -compact .It DLink DWL520 .El .Sh EXAMPLES Join an existing BSS network (ie: connect to an access point): .Bd -literal -offset indent ifconfig wlan create wlandev wi0 inet 192.168.0.20 \e netmask 0xffffff00 .Ed .Pp Join a specific BSS network with network name .Dq Li my_net : .Bd -literal -offset indent ifconfig wlan create wlandev wi0 inet 192.168.0.20 \e netmask 0xffffff00 ssid my_net .Ed .Pp Join a specific BSS network with WEP encryption: .Bd -literal -offset indent ifconfig wlan create wlandev wi0 inet 192.168.0.20 \e netmask 0xffffff00 ssid my_net \e wepmode on wepkey 0x8736639624 weptxkey 1 .Ed .Pp Join a Lucent legacy demo ad-hoc network with network name .Dq Li my_net : .Bd -literal -offset indent ifconfig wlan create wlandev wi0 wlanmode ahdemo \e inet 192.168.0.20 netmask 0xffffff00 ssid my_net .Ed .Pp Join/create an IBSS network with network name .Dq Li my_net : .Bd -literal -offset indent ifconfig wlan create wlandev wi0 wlanmode adhoc wi0 \e inet 192.168.0.22 netmask 0xffffff00 ssid my_net .Ed .Pp Create a host-based access point (Prism only): .Bd -literal -offset indent ifconfig wlan create wlandev wi0 wlanmode hostap \e inet 192.168.0.10 netmask 0xffffff00 ssid my_ap .Ed .Pp Create a host-based access point with WEP enabled (Prism only) and plumb it into bridge to fxp0: .Bd -literal -offset indent ifconfig wlan0 create wlandev wi0 wlanmode hostap \e inet 192.168.0.10 netmask 0xffffff00 ssid my_ap \e wepmode on wepkey 0x1234567890 weptxkey 1 ifconfig bridge0 create ifconfig bridge0 addm wlan0 addm fxp0 up .Ed .Pp This will give you the same functionality as an access point. .Sh DIAGNOSTICS .Bl -diag .It "wi%d: init failed" The WaveLAN card failed to become ready after an initialization command was issued. .It "wi%d: failed to allocate %d bytes on NIC" The driver was unable to allocate memory for transmit frames in the NIC's on-board RAM. This can also be an indication of an incorrectly configured interrupt. .It "wi%d: device timeout" The WaveLAN card failed to generate an interrupt to acknowledge a transmit command. .El .Sh SEE ALSO .Xr intro 4 , .Xr pccard 4 , .Xr pccbb 4 , .Xr pcic 4 , .Xr wlan 4 , .Xr wlan_ccmp 4 , .Xr wlan_tkip 4 , .Xr wlan_wep 4 , .Xr wlan_xauth 4 , .Xr hostapd 8 , .Xr ifconfig 8 , -.Xr wpa_supplicant 8 . +.Xr wpa_supplicant 8 .Rs .%T HCF Light programming specification .%U http://web.archive.org/web/20040130141721/http://wavelan.com/ .Re .Sh HISTORY The .Nm device driver first appeared in .Fx 3.0 . .Sh AUTHORS The original .Nm driver was written by .An Bill Paul Aq Mt wpaul@ctr.columbia.edu . This man page comes from .Ox . .Sh CAVEATS The driver will reject devices with old firmware to avoid dealing with numerous defects. Unfortunately the driver does not support downloading new firmware to the card so if new firmware is needed users will have to boot a different system to accomplish this. .Pp Intersil Prism cards must have firmware versions 0.8.0 or later and version 1.7.0 or later are required to support functionality such as WPA. Some users of Prism-II and 2.5 based cards report that station firmware version 1.3.4 works better for them in hostap than 1.4.9. Older versions of the Prism station firmware have a number of issues with hostap mode. The IBSS/adhoc mode appears to work well on station firmware 1.3.1 and later. The IBSS/adhoc mode appears to have problems for some people with older versions of station firmware. .Pp Lucent cards prior to firmware version 6.0.6 do not implement IBSS mode and are not supported. .Pp Prior versions of .Nm supported Symbol firmware. That support has been removed due to persistent problems with this firmware as well as getting proper documentation on this firmware. .Pp Hermes 2 and Hermes 3 chips are not supported by this driver. .Pp Here's the above requirements in the form of a table .Pp .Bl -column -compact "Prims II/2.5" "xxxxxxxx" "xxxxxxxx" "xxxxxxxx" "xxxxxxxx" .Em "Firmware Minimum WPA Host AP Adhoc/IBSS" Prism II/2.5 0.8.0 1.7.0 1.3.4 1.3.1 Prism 3 0.8.0 1.7.0 1.4.9 1.3.1 Hermes 6.0.6 none none 6.0.6 Symbol none none none none .El .Sh BUGS Not all the new messages are documented here, and many of them are indications of transient errors that are not indications of serious problems. Index: head/share/man/man4/xe.4 =================================================================== --- head/share/man/man4/xe.4 (revision 344481) +++ head/share/man/man4/xe.4 (revision 344482) @@ -1,176 +1,176 @@ .\" .\" Copyright (c) 2003 Tom Rhodes .\" All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" -.Dd October 24 2018 +.Dd October 24, 2018 .Dt XE 4 .Os .Sh NAME .Nm xe .Nd "Xircom PCMCIA Ethernet device driver" .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device xe" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_xe_load="YES" .Ed .Sh DEPRECATION NOTICE The .Nm driver is not present in .Fx 13.0 and later. See https://github.com/freebsd/fcp/blob/master/fcp-0101.md for more information. .Sh DESCRIPTION The .Nm driver supports .Tn PCMCIA Ethernet adapters based on Xircom CE2- and CE3-class hardware. This includes devices made by Xircom along with various .Tn OEM manufacturers. .Pp Please note that the .Nm driver only supports .Tn PCMCIA cards and their Ethernet functions. .Nm does not support the on-board modem device located on some version of the Ethernet/modem combo cards. In particular, Xircom RealPort2 cards are not supported by this driver. .Pp The .Nm driver supports the following media types: .Bl -tag -width ".Cm autoselect" .It Cm autoselect Enable autoselection of media type and options. .It Cm 10Base2/BNC Select 10Mbps operation on a BNC coaxial connector. .It Cm 10BaseT/UTP Select 10Mbps operation on a RJ-45 connector. .It Cm 100BaseTX Select 100Mbps operation. .El .Pp Note that 100BaseTX operation is not available on CE2-class cards, while the 10Base2/BNC mode is only available on CE2-class cards. Full-duplex operation is currently not supported. For more information on configuring network interface devices, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm driver supports the following cards: .Pp .Bl -bullet -compact .It Xircom CreditCard Ethernet (PS-CE2-10) .It Xircom CreditCard Ethernet + Modem 28 (PS-CEM-28) .It Xircom CreditCard Ethernet + Modem 33 (CEM33) .It Xircom CreditCard 10/100 (CE3, CE3B) .It Xircom CreditCard Ethernet 10/100 + Modem 56 (CEM56) .It Xircom RealPort Ethernet 10 (RE10) .It Xircom RealPort Ethernet 10/100 (RE100) .It Xircom RealPort Ethernet 10/100 + Modem 56 (REM56, REM56G) .It Accton Fast EtherCard-16 (EN2226) .It Compaq Microcom CPQ550 Ethernet/Modem PC Card .It Compaq Netelligent 10/100 PC Card (CPQ-10/100) .It Intel EtherExpress Pro/100 PC Card Mobile Adapter 16 (Pro/100 M16A) .It Intel EtherExpress Pro/100 LAN/Modem PC Card Adapter (Pro/100 M16B) .El .Pp Other similar devices using the same hardware may also be supported. .Sh DIAGNOSTICS .Bl -diag .It "xe%d: Cannot allocate ioport" .It "xe%d: Cannot allocate irq" A fatal initialization error occurred while attempting to allocate system resources for the card. .It "xe%d: Unable to fix your %s combo card" A fatal initialization error occurred while attempting to attach an Ethernet/modem combo card. .It "xe%d: watchdog timeout: resetting card" The card failed to generate an interrupt acknowledging a transmitted packet. May indicate a .Tn PCMCIA configuration problem. .It "xe%d: no carrier" The card has lost all contact with the network; this usually indicates a cable problem. .El .Sh SEE ALSO .Xr pccard 4 , .Xr ifconfig 8 .Sh HISTORY The .Nm driver first appeared in .Fx 3.3 . .Sh AUTHORS .An -nosplit The .Nm device driver was written by .An Scott Mitchell Aq Mt rsm@FreeBSD.org . This manual page was written by .An Scott Mitchell Aq Mt rsm@FreeBSD.org , and .An Tom Rhodes Aq Mt trhodes@FreeBSD.org . .Sh BUGS Supported devices will fail to attach on some machines using the .Tn NEWCARD .Tn PC Card framework. .Pp Automatic media selection is usually unreliable. Index: head/share/man/man4/xhci.4 =================================================================== --- head/share/man/man4/xhci.4 (revision 344481) +++ head/share/man/man4/xhci.4 (revision 344482) @@ -1,79 +1,80 @@ .\" .\" Copyright (c) 2011 Hans Petter Selasky. All rights reserved. .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. .\" .\" $FreeBSD$ .\" .Dd April 24, 2018 .Dt XHCI 4 .Os .Sh NAME .Nm xhci .Nd USB eXtensible Host Controller driver .Sh SYNOPSIS .Cd "device xhci" .Sh DESCRIPTION The .Nm driver provides support for the .Tn USB eXtensible Host Controller Interface, which allows use of .Tn USB 1.0, 2.0 and 3.0 devices on the same .Tn USB port. .Pp The .Tn XHCI controller supports .Tn USB connection speeds up to 5.0Gbps when using a USB 3.0 compliant device. .Sh HARDWARE The .Nm driver supports .Tn XHCI compatible controllers having PCI class 12 (serial bus), subclass 3 (USB) and programming interface 48 (XHCI). .Sh SYSCTL VARIABLES The following variables are available as both .Xr sysctl 8 variables and .Xr loader 8 tunables: .Bl -tag -width indent .It Va hw.usb.xhci.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. +.El .Sh SEE ALSO .Xr ehci 4 , .Xr ohci 4 , .Xr uhci 4 , .Xr usb 4 .Sh HISTORY The .Nm device driver first appeared in .Fx 8.2 .