summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/ng_l2cap.4 3.html
blob: 01162c9cd9788960395eeec844c8f102cf1582cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
<table class="head">
  <tr>
    <td class="head-ltitle">NG_L2CAP(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">NG_L2CAP(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">ng_l2cap</code> &#x2014;
    <span class="Nd">Netgraph node type that implements Bluetooth Logical Link
    Control and Adaptation Protocol (L2CAP)</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="In">#include
    &lt;<a class="In">sys/types.h</a>&gt;</code>
  <br/>
  <code class="In">#include
    &lt;<a class="In">netgraph/bluetooth/include/ng_hci.h</a>&gt;</code>
  <br/>
  <code class="In">#include
    &lt;<a class="In">netgraph/bluetooth/include/ng_l2cap.h</a>&gt;</code></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">l2cap</code> node type is a Netgraph node
    type that implements Bluetooth Logical Link Control and Adaptation Protocol
    as per chapter D of the Bluetooth Specification Book v1.1.</p>
<p class="Pp">L2CAP provides connection-oriented and connectionless data
    services to upper layer protocols with protocol multiplexing capability,
    segmentation and reassembly operation, and group abstractions. L2CAP permits
    higher level protocols and applications to transmit and receive L2CAP data
    packets up to 64 kilobytes in length.</p>
<section class="Ss">
<h2 class="Ss" id="L2CAP_Assumptions"><a class="permalink" href="#L2CAP_Assumptions">L2CAP
  Assumptions</a></h2>
<ol class="Bl-enum Bd-indent">
  <li>The ACL link between two units is set up. The Baseband provides orderly
      delivery of data packets, although there might be individual packet
      corruption and duplicates. No more than one ACL link exists between any
      two devices.</li>
  <li>The Baseband always provides the impression of full-duplex communication
      channels. This does not imply that all L2CAP communications are
      bi-directional. Multicasts and unidirectional traffic (e.g., video) do not
      require duplex channels.</li>
  <li>L2CAP provides a reliable channel using the mechanisms available at the
      Baseband layer. The Baseband always performs data integrity checks when
      requested and resends data until it has been successfully acknowledged or
      a timeout occurs. As acknowledgements may be lost, timeouts may occur even
      after the data has been successfully sent.</li>
</ol>
</section>
</section>
<section class="Sh">
<h1 class="Sh" id="L2CAP_GENERAL_OPERATION"><a class="permalink" href="#L2CAP_GENERAL_OPERATION">L2CAP
  GENERAL OPERATION</a></h1>
<p class="Pp">The Logical Link Control and Adaptation Protocol (L2CAP) is based
    around the concept of &#x201C;channels&#x201D;. Each channel is bound to a
    single protocol in a many-to-one fashion. Multiple channels can be bound to
    the same protocol, but a channel cannot be bound to multiple protocols. Each
    L2CAP packet received on a channel is directed to the appropriate higher
    level protocol.</p>
<p class="Pp">Each one of the end-points of an L2CAP channel is referred to by a
    channel identifier. Channel identifiers (CIDs) are local names representing
    a logical channel end-point on the device. Identifiers from 0x0001 to 0x003F
    are reserved for specific L2CAP functions. The null identifier (0x0000) is
    defined as an illegal identifier and must never be used as a destination
    end-point. All L2CAP signalling commands are sent to CID 0x0001. CID 0x0002
    is reserved for group-oriented channel. The same CID must not be reused as a
    local L2CAP channel endpoint for multiple simultaneous L2CAP channels
    between a local device and some remote device.</p>
<p class="Pp">CID assignment is relative to a particular device and a device can
    assign CIDs independently from other devices. Thus, even if the same CID
    value has been assigned to (remote) channel endpoints by several remote
    devices connected to a single local device, the local device can still
    uniquely associate each remote CID with a different device.</p>
<section class="Ss">
<h2 class="Ss" id="Channel_Operational_States"><a class="permalink" href="#Channel_Operational_States">Channel
  Operational States</a></h2>
<dl class="Bl-tag">
  <dt id="NG_L2CAP_CLOSED"><a class="permalink" href="#NG_L2CAP_CLOSED"><code class="Dv">NG_L2CAP_CLOSED</code></a></dt>
  <dd>In this state, there is no channel associated with this CID. This is the
      only state when a link level connection (Baseband) may not exist. Link
      disconnection forces all other states into the
      <code class="Dv">NG_L2CAP_CLOSED</code> state.</dd>
  <dt id="NG_L2CAP_W4_L2CAP_CON_RSP"><a class="permalink" href="#NG_L2CAP_W4_L2CAP_CON_RSP"><code class="Dv">NG_L2CAP_W4_L2CAP_CON_RSP</code></a></dt>
  <dd>In this state, the CID represents a local end-point and an L2CAP Connect
      Request message has been sent referencing this endpoint and it is now
      waiting for the corresponding L2CAP Connect Response message.</dd>
  <dt id="NG_L2CAP_W4_L2CA_CON_RSP"><a class="permalink" href="#NG_L2CAP_W4_L2CA_CON_RSP"><code class="Dv">NG_L2CAP_W4_L2CA_CON_RSP</code></a></dt>
  <dd>In this state, the remote end-point exists and an L2CAP Connect Request
      has been received by the local L2CAP entity. An L2CA Connect Indication
      has been sent to the upper layer and the part of the local L2CAP entity
      processing the received L2CAP Connect Request waits for the corresponding
      response. The response may require a security check to be performed.</dd>
  <dt id="NG_L2CAP_CONFIG"><a class="permalink" href="#NG_L2CAP_CONFIG"><code class="Dv">NG_L2CAP_CONFIG</code></a></dt>
  <dd>In this state, the connection has been established but both sides are
      still negotiating the channel parameters. The Configuration state may also
      be entered when the channel parameters are being renegotiated. Prior to
      entering the <code class="Dv">NG_L2CAP_CONFIG</code> state, all outgoing
      data traffic is suspended since the traffic parameters of the data traffic
      are to be renegotiated. Incoming data traffic is accepted until the remote
      channel endpoint has entered the <code class="Dv">NG_L2CAP_CONFIG</code>
      state. In the <code class="Dv">NG_L2CAP_CONFIG</code> state, both sides
      will issue L2CAP Configuration Request messages if only defaults are being
      used, a null message will be sent. If a large amount of parameters need to
      be negotiated, multiple messages will be sent to avoid any MTU limitations
      and negotiate incrementally. Moving from the
      <code class="Dv">NG_L2CAP_CONFIG</code> state to the
      <code class="Dv">NG_L2CAP_OPEN</code> state requires both sides to be
      ready. An L2CAP entity is ready when it has received a positive response
      to its final request and it has positively responded to the final request
      from the remote device.</dd>
  <dt id="NG_L2CAP_OPEN"><a class="permalink" href="#NG_L2CAP_OPEN"><code class="Dv">NG_L2CAP_OPEN</code></a></dt>
  <dd>In this state, the connection has been established and configured, and
      data flow may proceed.</dd>
  <dt id="NG_L2CAP_W4_L2CAP_DISCON_RSP"><a class="permalink" href="#NG_L2CAP_W4_L2CAP_DISCON_RSP"><code class="Dv">NG_L2CAP_W4_L2CAP_DISCON_RSP</code></a></dt>
  <dd>In this state, the connection is shutting down and an L2CAP Disconnect
      Request message has been sent. This state is now waiting for the
      corresponding response.</dd>
  <dt id="NG_L2CAP_W4_L2CA_DISCON_RSP"><a class="permalink" href="#NG_L2CAP_W4_L2CA_DISCON_RSP"><code class="Dv">NG_L2CAP_W4_L2CA_DISCON_RSP</code></a></dt>
  <dd>In this state, the connection on the remote endpoint is shutting down and
      an L2CAP Disconnect Request message has been received. An L2CA Disconnect
      Indication has been sent to the upper layer to notify the owner of the CID
      that the remote endpoint is being closed. This state is now waiting for
      the corresponding response from the upper layer before responding to the
      remote endpoint.</dd>
</dl>
</section>
<section class="Ss">
<h2 class="Ss" id="Protocol_Multiplexing"><a class="permalink" href="#Protocol_Multiplexing">Protocol
  Multiplexing</a></h2>
<p class="Pp">L2CAP supports protocol multiplexing because the Baseband Protocol
    does not support any &#x201C;type&#x201D; field identifying the higher layer
    protocol being multiplexed above it. L2CAP is able to distinguish between
    upper layer protocols such as the Service Discovery Protocol, RFCOMM and
    Telephony Control.</p>
</section>
<section class="Ss">
<h2 class="Ss" id="Segmentation_and_Reassembly"><a class="permalink" href="#Segmentation_and_Reassembly">Segmentation
  and Reassembly</a></h2>
<p class="Pp">The data packets defined by the Baseband Protocol are limited in
    size. Large L2CAP packets must be segmented into multiple smaller Baseband
    packets prior to their transmission over the air. Similarly, multiple
    received Baseband packets may be reassembled into a single larger L2CAP
    packet.</p>
</section>
<section class="Ss">
<h2 class="Ss" id="Quality_of_Service"><a class="permalink" href="#Quality_of_Service">Quality
  of Service</a></h2>
<p class="Pp">The L2CAP connection establishment process allows the exchange of
    information regarding the quality of service (QoS) expected between two
    Bluetooth units.</p>
</section>
<section class="Ss">
<h2 class="Ss" id="Groups"><a class="permalink" href="#Groups">Groups</a></h2>
<p class="Pp">The Baseband Protocol supports the concept of a piconet, a group
    of devices synchronously hopping together using the same clock. The L2CAP
    group abstraction permits implementations to efficiently map protocol groups
    on to piconets.</p>
<p class="Pp">The following features are outside the scope of L2CAP
    responsibilities:</p>
<ul class="Bl-dash Bd-indent">
  <li>L2CAP does not transport audio designated for SCO links.</li>
  <li>L2CAP does not enforce a reliable channel or ensure data integrity, that
      is, L2CAP performs no retransmissions or checksum calculations.</li>
  <li>L2CAP does not support a reliable multicast channel.</li>
  <li>L2CAP does not support the concept of a global group name.</li>
</ul>
</section>
</section>
<section class="Sh">
<h1 class="Sh" id="HOOKS"><a class="permalink" href="#HOOKS">HOOKS</a></h1>
<p class="Pp">This node type supports the following hooks:</p>
<dl class="Bl-tag">
  <dt id="hci"><var class="Va">hci</var></dt>
  <dd>Bluetooth Host Controller Interface downstream hook.</dd>
  <dt id="l2c"><var class="Va">l2c</var></dt>
  <dd>Upper layer protocol upstream hook. Usually the Bluetooth L2CAP socket
      layer is connected to the hook.</dd>
  <dt id="ctl"><var class="Va">ctl</var></dt>
  <dd>Control hook. Usually the Bluetooth raw L2CAP sockets layer is connected
      to the hook.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="INTERFACE_TO_THE_UPPER_LAYER_PROTOCOLS_(L2CA_CONTROL_MESSAGES)"><a class="permalink" href="#INTERFACE_TO_THE_UPPER_LAYER_PROTOCOLS_(L2CA_CONTROL_MESSAGES)">INTERFACE
  TO THE UPPER LAYER PROTOCOLS (L2CA CONTROL MESSAGES)</a></h1>
<p class="Pp">Bluetooth specification says that L2CA request must block until
    response is ready. L2CAP node uses <var class="Va">token</var> field from
    Netgraph message header to match L2CA request and response. The upper layer
    protocol must populate <var class="Va">token</var>. L2CAP node will queue
    request and start processing. Later, when response is ready or timeout has
    occurred, L2CAP node will create new Netgraph message, set
    <var class="Va">token</var> and <code class="Dv">NFG_RESP</code> flag and
    send message to the upper layer. Note that L2CA indication messages will not
    populate <var class="Va">token</var> and will not set
    <code class="Dv">NGF_RESP</code> flag. There is no reason for this, because
    they are just notifications and do not require acknowledgment.</p>
<dl class="Bl-tag">
  <dt id="NGM_L2CAP_L2CA_CON"><a class="permalink" href="#NGM_L2CAP_L2CA_CON"><code class="Dv">NGM_L2CAP_L2CA_CON</code></a></dt>
  <dd>Requests the creation of a channel representing a logical connection to a
      physical address. Input parameters are the target protocol (PSM) and
      remote device's 48-bit address (BD_ADDR). Output parameters are the local
      CID (LCID) allocated by the local L2CAP entity, and Result of the request.
      If Result indicates a pending notification, the Status value may contain
      more information of what processing is delaying the establishment of the
      connection.</dd>
  <dt id="NGM_L2CAP_L2CA_CON_IND"><a class="permalink" href="#NGM_L2CAP_L2CA_CON_IND"><code class="Dv">NGM_L2CAP_L2CA_CON_IND</code></a></dt>
  <dd>This message includes the parameters for the address of the remote device
      that issued the connection request, the local CID representing the channel
      being requested, the Identifier contained in the request, and the PSM
      value the request is targeting.</dd>
  <dt id="NGM_L2CAP_L2CA_CON_RSP"><a class="permalink" href="#NGM_L2CAP_L2CA_CON_RSP"><code class="Dv">NGM_L2CAP_L2CA_CON_RSP</code></a></dt>
  <dd>Issues a response to a connection request event indication. Input
      parameters are the remote device's 48-bit address, Identifier sent in the
      request, local CID, the Response code, and the Status attached to the
      Response code. The output parameter is the Result of the service request.
      This primitive must be called no more than once after receiving the
      indication.</dd>
  <dt id="NGM_L2CAP_L2CA_CFG"><a class="permalink" href="#NGM_L2CAP_L2CA_CFG"><code class="Dv">NGM_L2CAP_L2CA_CFG</code></a></dt>
  <dd>Requests the initial configuration (or reconfiguration) of a channel to a
      new set of channel parameters. Input parameters are the local CID
      endpoint, new incoming receivable MTU (InMTU), new outgoing flow
      spec-ification, and flush and link timeouts. Output parameters are the
      Result, accepted incoming MTU (InMTU), the remote side's flow requests,
      and flush and link timeouts.</dd>
  <dt id="NGM_L2CAP_L2CA_CFG_IND"><a class="permalink" href="#NGM_L2CAP_L2CA_CFG_IND"><code class="Dv">NGM_L2CAP_L2CA_CFG_IND</code></a></dt>
  <dd>This message includes the parameters indicating the local CID of the
      channel the request has been sent to, the outgoing MTU size (maximum
      packet that can be sent across the channel) and the flowspec describing
      the characteristics of the incoming data. All other channel parameters are
      set to their default values if not provided by the remote device.</dd>
  <dt id="NGM_L2CAP_L2CA_CFG_RSP"><a class="permalink" href="#NGM_L2CAP_L2CA_CFG_RSP"><code class="Dv">NGM_L2CAP_L2CA_CFG_RSP</code></a></dt>
  <dd>Issues a response to a configuration request event indication. Input
      parameters include the local CID of the endpoint being configured,
      outgoing transmit MTU (which may be equal or less to the OutMTU parameter
      in the configuration indication event) and the accepted flowspec for
      incoming traffic. The output parameter is the Result value.</dd>
  <dt id="NGM_L2CAP_L2CA_QOS_IND"><a class="permalink" href="#NGM_L2CAP_L2CA_QOS_IND"><code class="Dv">NGM_L2CAP_L2CA_QOS_IND</code></a></dt>
  <dd>This message includes the parameter indicating the address of the remote
      Bluetooth device where the QoS contract has been violated.</dd>
  <dt id="NGM_L2CAP_L2CA_DISCON"><a class="permalink" href="#NGM_L2CAP_L2CA_DISCON"><code class="Dv">NGM_L2CAP_L2CA_DISCON</code></a></dt>
  <dd>Requests the disconnection of the channel. Input parameter is the CID
      representing the local channel endpoint. Output parameter is Result.
      Result is zero if an L2CAP Disconnect Response is received, otherwise a
      non-zero value is returned. Once disconnection has been requested, no
      process will be able to successfully read or write from the CID.</dd>
  <dt id="NGM_L2CAP_L2CA_DISCON_IND"><a class="permalink" href="#NGM_L2CAP_L2CA_DISCON_IND"><code class="Dv">NGM_L2CAP_L2CA_DISCON_IND</code></a></dt>
  <dd>This message includes the parameter indicating the local CID the request
      has been sent to.</dd>
  <dt id="NGM_L2CAP_L2CA_WRITE"><a class="permalink" href="#NGM_L2CAP_L2CA_WRITE"><code class="Dv">NGM_L2CAP_L2CA_WRITE</code></a></dt>
  <dd>Response to transfer of data request. Actual data must be received from
      appropriate upstream hook and must be prepended with header defined as
      follows.
    <div class="Bd Pp Bd-indent Li">
    <pre>/* L2CA data packet header */
typedef struct {
        uint32_t token;  /* token to use in L2CAP_L2CA_WRITE */
        uint16_t length; /* length of the data */
        uint16_t lcid;   /* local channel ID */
} __attribute__ ((packed)) ng_l2cap_l2ca_hdr_t;</pre>
    </div>
    <p class="Pp">The output parameters are Result and Length of data
      written.</p>
  </dd>
  <dt id="NGM_L2CAP_L2CA_GRP_CREATE"><a class="permalink" href="#NGM_L2CAP_L2CA_GRP_CREATE"><code class="Dv">NGM_L2CAP_L2CA_GRP_CREATE</code></a></dt>
  <dd>Requests the creation of a CID to represent a logical connection to
      multiple devices. Input parameter is the PSM value that the outgoing
      connectionless traffic is labelled with, and the filter used for incoming
      traffic. Output parameter is the CID representing the local endpoint. On
      creation, the group is empty but incoming traffic destined for the PSM
      value is readable.
    <div class="Bf Em">This request has not been implemented.</div>
  </dd>
  <dt id="NGM_L2CAP_L2CA_GRP_CLOSE"><a class="permalink" href="#NGM_L2CAP_L2CA_GRP_CLOSE"><code class="Dv">NGM_L2CAP_L2CA_GRP_CLOSE</code></a></dt>
  <dd>The use of this message closes down a Group.
    <div class="Bf Em">This request has not been implemented.</div>
  </dd>
  <dt id="NGM_L2CAP_L2CA_GRP_ADD_MEMBER"><a class="permalink" href="#NGM_L2CAP_L2CA_GRP_ADD_MEMBER"><code class="Dv">NGM_L2CAP_L2CA_GRP_ADD_MEMBER</code></a></dt>
  <dd>Requests the addition of a member to a group. The input parameter includes
      the CID representing the group and the BD_ADDR of the group member to be
      added. The output parameter Result confirms the success or failure of the
      request.
    <div class="Bf Em">This request has not been implemented.</div>
  </dd>
  <dt id="NGM_L2CAP_L2CA_GRP_REM_MEMBER"><a class="permalink" href="#NGM_L2CAP_L2CA_GRP_REM_MEMBER"><code class="Dv">NGM_L2CAP_L2CA_GRP_REM_MEMBER</code></a></dt>
  <dd>Requests the removal of a member from a group. The input parameters
      include the CID representing the group and BD_ADDR of the group member to
      be removed. The output parameter Result confirms the success or failure of
      the request.
    <div class="Bf Em">This request has not been implemented.</div>
  </dd>
  <dt id="NGM_L2CAP_L2CA_GRP_MEMBERSHIP"><a class="permalink" href="#NGM_L2CAP_L2CA_GRP_MEMBERSHIP"><code class="Dv">NGM_L2CAP_L2CA_GRP_MEMBERSHIP</code></a></dt>
  <dd>Requests a report of the members of a group. The input parameter CID
      represents the group being queried. The output parameter Result confirms
      the success or failure of the operation. If the Result is successful,
      BD_ADDR_Lst is a list of the Bluetooth addresses of the N members of the
      group.
    <div class="Bf Em">This request has not been implemented.</div>
  </dd>
  <dt id="NGM_L2CAP_L2CA_PING"><a class="permalink" href="#NGM_L2CAP_L2CA_PING"><code class="Dv">NGM_L2CAP_L2CA_PING</code></a></dt>
  <dd>Initiates an L2CA Echo Request message and the reception of the
      corresponding L2CAP Echo Response message. The input parameters are remote
      Bluetooth device BD_ADDR, Echo Data and Length of the echo data. The
      output parameters are Result, Echo Data and Length of the echo data.</dd>
  <dt id="NGM_L2CAP_L2CA_GET_INFO"><a class="permalink" href="#NGM_L2CAP_L2CA_GET_INFO"><code class="Dv">NGM_L2CAP_L2CA_GET_INFO</code></a></dt>
  <dd>Initiates an L2CA Information Request message and the reception of the
      corresponding L2CAP Info Response message. The input parameters are remote
      Bluetooth device BD_ADDR and Information Type. The output parameters are
      Result, Information Data and Size of the information data.</dd>
  <dt id="NGM_L2CAP_L2CA_ENABLE_CLT"><a class="permalink" href="#NGM_L2CAP_L2CA_ENABLE_CLT"><code class="Dv">NGM_L2CAP_L2CA_ENABLE_CLT</code></a></dt>
  <dd>Request to disable (enable) the reception of connectionless packets. The
      input parameter is the PSM value indicating service that should be blocked
      (unblocked) and Enable flag.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="NETGRAPH_CONTROL_MESSAGES"><a class="permalink" href="#NETGRAPH_CONTROL_MESSAGES">NETGRAPH
  CONTROL MESSAGES</a></h1>
<p class="Pp">This node type supports the generic control messages, plus the
    following:</p>
<dl class="Bl-tag">
  <dt id="NGM_L2CAP_NODE_GET_FLAGS"><a class="permalink" href="#NGM_L2CAP_NODE_GET_FLAGS"><code class="Dv">NGM_L2CAP_NODE_GET_FLAGS</code></a></dt>
  <dd>Returns current state for the node.</dd>
  <dt id="NGM_L2CAP_NODE_GET_DEBUG"><a class="permalink" href="#NGM_L2CAP_NODE_GET_DEBUG"><code class="Dv">NGM_L2CAP_NODE_GET_DEBUG</code></a></dt>
  <dd>Returns an integer containing the current debug level for the node.</dd>
  <dt id="NGM_L2CAP_NODE_SET_DEBUG"><a class="permalink" href="#NGM_L2CAP_NODE_SET_DEBUG"><code class="Dv">NGM_L2CAP_NODE_SET_DEBUG</code></a></dt>
  <dd>This command takes an integer argument and sets current debug level for
      the node.</dd>
  <dt id="NGM_L2CAP_NODE_GET_CON_LIST"><a class="permalink" href="#NGM_L2CAP_NODE_GET_CON_LIST"><code class="Dv">NGM_L2CAP_NODE_GET_CON_LIST</code></a></dt>
  <dd>Returns list of active baseband connections (i.e., ACL links).</dd>
  <dt id="NGM_L2CAP_NODE_GET_CHAN_LIST"><a class="permalink" href="#NGM_L2CAP_NODE_GET_CHAN_LIST"><code class="Dv">NGM_L2CAP_NODE_GET_CHAN_LIST</code></a></dt>
  <dd>Returns list of active L2CAP channels.</dd>
  <dt id="NGM_L2CAP_NODE_GET_AUTO_DISCON_TIMO"><a class="permalink" href="#NGM_L2CAP_NODE_GET_AUTO_DISCON_TIMO"><code class="Dv">NGM_L2CAP_NODE_GET_AUTO_DISCON_TIMO</code></a></dt>
  <dd>Returns an integer containing the current value of the auto disconnect
      timeout (in sec).</dd>
  <dt id="NGM_L2CAP_NODE_SET_AUTO_DISCON_TIMO"><a class="permalink" href="#NGM_L2CAP_NODE_SET_AUTO_DISCON_TIMO"><code class="Dv">NGM_L2CAP_NODE_SET_AUTO_DISCON_TIMO</code></a></dt>
  <dd>This command accepts an integer and sets the value of the auto disconnect
      timeout (in sec). The special value of 0 (zero) disables auto disconnect
      timeout.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SHUTDOWN"><a class="permalink" href="#SHUTDOWN">SHUTDOWN</a></h1>
<p class="Pp">This node shuts down upon receipt of an
    <code class="Dv">NGM_SHUTDOWN</code> control message, or when all hooks have
    been disconnected.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">netgraph(4)</a>, <a class="Xr">l2control(8)</a>,
    <a class="Xr">l2ping(8)</a>, <a class="Xr">ngctl(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">l2cap</code> node type was implemented in
    <span class="Ux">FreeBSD 5.0</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="An">Maksim Yevmenkin</span>
    &lt;<a class="Mt" href="mailto:m_evmenkin@yahoo.com">m_evmenkin@yahoo.com</a>&gt;</p>
</section>
<section class="Sh">
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
<p class="Pp">Most likely. Please report if found.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">July 4, 2002</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>