summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/send.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/send.4 3.html')
-rw-r--r--static/freebsd/man4/send.4 3.html203
1 files changed, 0 insertions, 203 deletions
diff --git a/static/freebsd/man4/send.4 3.html b/static/freebsd/man4/send.4 3.html
deleted file mode 100644
index d166f2e1..00000000
--- a/static/freebsd/man4/send.4 3.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">SEND(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">SEND(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">send</code> &#x2014; <span class="Nd">Kernel side
- support for Secure Neighbor Discovery (SeND)</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/socket.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">netinet/in.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">netinet6/send.h</a>&gt;</code></p>
-<p class="Pp"><var class="Ft">int</var>
- <br/>
- <code class="Fn">socket</code>(<var class="Fa" style="white-space: nowrap;">PF_INET6</var>,
- <var class="Fa" style="white-space: nowrap;">SOCK_RAW</var>,
- <var class="Fa" style="white-space: nowrap;">IPPROTO_SEND</var>);</p>
-<p class="Pp">To load the driver as a module at boot time, place the following
- line in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>send_load=&quot;YES&quot;</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">IPv6 nodes use the Neighbor Discovery Protocol (NDP) to discover
- other nodes on the link, to determine their link-layer addresses to find
- routers, and to maintain reachability information about the paths to active
- members. NDP is vulnerable to various attacks [RFC3756]. Secure Neighbor
- Discovery is a set of extensions to NDP that counter threats to NDP
- [RFC3971].</p>
-<p class="Pp">Kernel side support for SeND consists of a kernel module with
- hooks that divert relevant packets (Neighbor Solicitations, Neighbor
- Advertisements, Router Solicitations, Router Advertisements and Redirects)
- from the NDP stack, send them to user space on a dedicated socket and
- reinject them back for further processing. Hooks are triggered only if the
- <code class="Nm">send</code> module is loaded.</p>
-<p class="Pp">The native SeND socket is similar to a raw IP socket, but with its
- own, internal pseudo-protocol (IPPROTO_SEND). Struct sockaddr_send is
- defined in
- <code class="In">&lt;<a class="In">netinet6/send.h</a>&gt;</code>. It
- defines the total length of the structure, the address family, packet's
- incoming or outgoing direction from the interface's point of view, and the
- interface index.</p>
-<div class="Bd Pp Li">
-<pre>struct sockaddr_send {
- unsigned char send_len; /* total length */
- sa_family_t send_family; /* address family */
- int send_direction;
- int send_ifidx;
- char send_zero[8];
-};</pre>
-</div>
-<p class="Pp">The address family is always <var class="Va">AF_INET6</var>. The
- <var class="Va">send_direction</var> variable denotes the direction of the
- packet from the interface's point of view and has either the value
- <code class="Dv">SND_IN</code> or <code class="Dv">SND_OUT</code>. The
- <var class="Va">send_ifidx</var> variable is the interface index of the
- receiving or sending interface. The <var class="Va">send_zero</var> variable
- is padding and must always be zero.</p>
-<p class="Pp">In case that no user space application is connected to the send
- socket, processing continues normally as if the module was not loaded.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="INPUT_HOOK"><a class="permalink" href="#INPUT_HOOK">INPUT
- HOOK</a></h1>
-<p class="Pp">The input hook is named after the input path of the incoming or
- outgoing NDP packets, on the way from the wire, through the nd6 stack, to
- user space. Relevant packets are identified by adding an mbuf_tag (see
- <a class="Xr">mbuf_tags(9)</a>) to the <a class="Xr">mbuf(9)</a>, if the
- <code class="Nm">send</code> module is loaded. It is then passed on to the
- kernel-userland interface for either cryptographic protection or validation
- by the SeND application. The hook takes an argument that describes the
- direction of the packet, both in case of incoming and outgoing packets.
- <code class="Dv">SND_IN</code> is the direction of the incoming packets that
- are usually protected by the SeND options and then sent to user space for
- cryptographic validation. <code class="Dv">SND_OUT</code> is the outgoing
- direction. It describes both reply and locally originated outgoing packets
- that are sent to user space for the addition of SeND options.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="INCOMING_PACKETS"><a class="permalink" href="#INCOMING_PACKETS">INCOMING
- PACKETS</a></h1>
-<p class="Pp">The incoming ND packet from the wire:</p>
-<div class="Bd Pp Li">
-<pre> kernelspace ( userspace
- )
- incoming SeND/ND packet (
- | )
- v ( SND_IN ) (
- icmp6_input() -&gt; send_input_hook ---&gt; send socket ----+
- : ) |
- : # # ( |
- normal : # # ) v
- processing : # send.ko # ( SeND application
- path : # # ) |
- : # # ( |
- v ) |
- icmp6/nd6_??_input() &lt;- protocol switch &lt;--- send socket &lt;---+
- | structure (IPPPROTO_SEND) )
- | ( SND_IN ) (
- v )
- continue normal ND processing (</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="OUTGOING_PACKETS"><a class="permalink" href="#OUTGOING_PACKETS">OUTGOING
- PACKETS</a></h1>
-<p class="Pp">Outgoing ND packet (reply or locally triggered):</p>
-<div class="Bd Pp Li">
-<pre> kernelspace ( userspace
- )
- nd6_na_input() (
- +PACKET_TAG_ND_OUTGOING )
- | )
- | outgoing packet (
- | | )
- | v (
- | icmp6_redirect_output() )
- | nd6_ns_output() (
- | nd6_na_output() )
- | +PACKET_TAG_ND_OUTGOING (
- | | )
- | +-----------&lt;- rip6_output() &lt;----------)----- rtsol/rtadvd/..
- | | +PACKET_TAG_ND_OUTGOING (
- | v )
- | ip6_output() (
- | | )
- +--------&gt;-+ (
- | )
- v ( SND_OUT ) (
- nd6_output_lle() -&gt; send_input_hook ---&gt; send socket ----+
- -PACKET_TAG_ND_OUTGOING ) |
- : # # ( |
- normal : # # ) v
- processing : # send.ko # ( SeND application
- path : # # ) |
- : # # ( |
- v ) |
- (*ifp-&gt;if_output)() &lt;- protocol switch &lt;--- send socket &lt;---+
- | structure (IPPPROTO_SEND) )
- | ( SND_OUT ) (
- v )
- continue with normal packet output (</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
-<p class="Pp">A socket operation may fail with one of the following errors
- returned:</p>
-<dl class="Bl-tag">
- <dt id="EEXIST">[<a class="permalink" href="#EEXIST"><code class="Er">EEXIST</code></a>]</dt>
- <dd>Another user space SeND application is bound to the socket.</dd>
- <dt id="ENOBUFS">[<a class="permalink" href="#ENOBUFS"><code class="Er">ENOBUFS</code></a>]</dt>
- <dd>Shortage of space to receive the incoming (SeND-protected) or outgoing
- (SeND-validated) packet from the SeND application.</dd>
- <dt id="ENOSYS">[<a class="permalink" href="#ENOSYS"><code class="Er">ENOSYS</code></a>]</dt>
- <dd>A packet received from user space and passed to the NDP stack for further
- processing is neither Neighbor Solicitation, Neighbor Advertisement,
- Router Solicitation, Router Advertisement nor Redirect.</dd>
- <dt id="ENOENT">[<a class="permalink" href="#ENOENT"><code class="Er">ENOENT</code></a>]</dt>
- <dd>Occurs if interface output routines fail to send the packet out of the
- interface.</dd>
-</dl>
-</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">recvfrom(2)</a>, <a class="Xr">sendto(2)</a>,
- <a class="Xr">socket(2)</a>, <a class="Xr">loader.conf(5)</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">send</code> module first appeared in
- <span class="Ux">FreeBSD 9.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">Ana Kukec</span>
- &lt;<a class="Mt" href="mailto:anchie@FreeBSD.org">anchie@FreeBSD.org</a>&gt;,
- University of Zagreb</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-<p class="Pp">Due to the lack of NDP locking, it is currently not possible to
- unload the <code class="Nm">send</code> module.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">September 19, 2010</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>