Bring in the ndis(4) man page from FreeBSD (with minor modifications).
[dragonfly.git] / share / man / man4 / man4.i386 / ndis.4
1 .\" Copyright (c) 2003
2 .\"     Bill Paul <wpaul@windriver.com>. All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by Bill Paul.
15 .\" 4. Neither the name of the author nor the names of any co-contributors
16 .\"    may be used to endorse or promote products derived from this software
17 .\"   without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
23 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
29 .\" THE POSSIBILITY OF SUCH DAMAGE.
30 .\"
31 .\" $FreeBSD: src/share/man/man4/man4.i386/ndis.4,v 1.9 2004/12/21 01:09:34 brueffer Exp $
32 .\" $DragonFly: src/share/man/man4/man4.i386/ndis.4,v 1.1 2006/02/25 10:20:10 swildner Exp $
33 .\"
34 .Dd December 10, 2003
35 .Dt NDIS 4 i386
36 .Os
37 .Sh NAME
38 .Nm ndis
39 .Nd NDIS miniport driver wrapper
40 .Sh SYNOPSIS
41 .\".Cd "options NDISAPI"
42 .Cd "device ndis"
43 .Cd "device wlan"
44 .Sh DESCRIPTION
45 The
46 .Nm
47 driver is a wrapper designed to allow binary
48 .Tn Windows\[rg]
49 NDIS miniport
50 network drivers to be used with
51 .Fx .
52 The
53 .Nm
54 driver is provided in source code form and must be combined with
55 the
56 .Tn Windows\[rg]
57 driver supplied with your network adapter.
58 The
59 .Nm
60 driver uses the
61 .Xr ndisapi 9
62 kernel subsystem to relocate and link the
63 .Tn Windows\[rg]
64 binary so
65 that it can be used in conjunction with native code.
66 The
67 .Xr ndisapi 9
68 subsystem provides an interface between the NDIS API and the
69 .Fx
70 networking infrastructure.
71 The
72 .Tn Windows\[rg]
73 driver is essentially
74 fooled into thinking it is running on
75 .Tn Windows\[rg] .
76 Note that this
77 means the
78 .Nm
79 driver is only useful on x86 machines.
80 .Pp
81 To build a functional driver, the user must have a copy of the
82 driver distribution media for his or her card.
83 From this distribution,
84 the user must extract two files: the
85 .Pa .SYS
86 file containing the driver
87 binary code, and its companion
88 .Pa .INF
89 file, which contains the
90 definitions for driver-specific registry keys and other installation
91 data such as device identifiers.
92 These two files can be converted
93 into a
94 .Pa ndis_driver_data.h
95 file using the
96 .Xr ndiscvt 8
97 utility.
98 This file contains a binary image of the driver plus
99 registry key data.
100 When the
101 .Nm
102 driver loads, it will create
103 .Xr sysctl 3
104 nodes for each registry key extracted from the
105 .Pa .INF
106 file.
107 .Pp
108 The
109 .Nm
110 driver is designed to support mainly Ethernet and wireless
111 network devices with PCI and PCMCIA bus attachments.
112 (Cardbus
113 devices are also supported as a subset of PCI.)
114 It can
115 support many different media types and speeds.
116 One limitation
117 however, is that there is no consistent way to learn if an
118 Ethernet device is operating in full or half duplex mode.
119 The NDIS API allows for a generic means for determining link
120 state and speed, but not the duplex setting.
121 There may be
122 driver-specific registry keys to control the media setting
123 which can be configured via the
124 .Xr sysctl 8
125 command.
126 .Sh DIAGNOSTICS
127 .Bl -diag
128 .It "ndis%d: watchdog timeout"
129 A packet was queued for transmission and a transmit command was
130 issued, however the device failed to acknowledge the transmission
131 before a timeout expired.
132 .El
133 .Sh SEE ALSO
134 .Xr arp 4 ,
135 .Xr netintro 4 ,
136 .Xr ng_ether 4 ,
137 .Xr ifconfig 8 ,
138 .Xr ndiscvt 8 ,
139 .Xr ndisapi 9
140 .Rs
141 .%T "NDIS 5.1 specification"
142 .%O http://www.microsoft.com
143 .Re
144 .Sh HISTORY
145 The
146 .Nm
147 device driver first appeared in
148 .Fx 5.3
149 and was imported into
150 .Dx 1.0 .
151 .Sh AUTHORS
152 .An -nosplit
153 The
154 .Nm
155 driver was written by
156 .An Bill Paul Aq wpaul@windriver.com .
157 Porting to
158 .Dx
159 was done by
160 .An Matthew Dillon .