diff options
Diffstat (limited to 'static/freebsd/man4/ng_l2cap.4 3.html')
| -rw-r--r-- | static/freebsd/man4/ng_l2cap.4 3.html | 378 |
1 files changed, 378 insertions, 0 deletions
diff --git a/static/freebsd/man4/ng_l2cap.4 3.html b/static/freebsd/man4/ng_l2cap.4 3.html new file mode 100644 index 00000000..01162c9c --- /dev/null +++ b/static/freebsd/man4/ng_l2cap.4 3.html @@ -0,0 +1,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> — + <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 + <<a class="In">sys/types.h</a>></code> + <br/> + <code class="In">#include + <<a class="In">netgraph/bluetooth/include/ng_hci.h</a>></code> + <br/> + <code class="In">#include + <<a class="In">netgraph/bluetooth/include/ng_l2cap.h</a>></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 “channels”. 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 “type” 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> + <<a class="Mt" href="mailto:m_evmenkin@yahoo.com">m_evmenkin@yahoo.com</a>></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> |
