summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/udp.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/udp.4 3.html')
-rw-r--r--static/freebsd/man4/udp.4 3.html128
1 files changed, 128 insertions, 0 deletions
diff --git a/static/freebsd/man4/udp.4 3.html b/static/freebsd/man4/udp.4 3.html
new file mode 100644
index 00000000..dfe33785
--- /dev/null
+++ b/static/freebsd/man4/udp.4 3.html
@@ -0,0 +1,128 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">UDP(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">UDP(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">udp</code> &#x2014; <span class="Nd">Internet
+ User Datagram Protocol</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">sys/socket.h</a>&gt;</code>
+ <br/>
+ <code class="In">#include &lt;<a class="In">netinet/in.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;">AF_INET</var>,
+ <var class="Fa" style="white-space: nowrap;">SOCK_DGRAM</var>,
+ <var class="Fa" style="white-space: nowrap;">0</var>);</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">UDP is a simple, unreliable datagram protocol which is used to
+ support the <code class="Dv">SOCK_DGRAM</code> abstraction for the Internet
+ protocol family. UDP sockets are connectionless, and are normally used with
+ the <a class="Xr">sendto(2)</a> and <a class="Xr">recvfrom(2)</a> calls,
+ though the <a class="Xr">connect(2)</a> call may also be used to fix the
+ destination for future packets (in which case the <a class="Xr">recv(2)</a>
+ or <a class="Xr">read(2)</a> and <a class="Xr">send(2)</a> or
+ <a class="Xr">write(2)</a> system calls may be used).</p>
+<p class="Pp">UDP address formats are identical to those used by TCP. In
+ particular UDP provides a port identifier in addition to the normal Internet
+ address format. Note that the UDP port space is separate from the TCP port
+ space (i.e., a UDP port may not be &#x201C;connected&#x201D; to a TCP port).
+ In addition broadcast packets may be sent (assuming the underlying network
+ supports this) by using a reserved &#x201C;broadcast address&#x201D;; this
+ address is network interface dependent.</p>
+<p class="Pp">Options at the IP transport level may be used with UDP; see
+ <a class="Xr">ip(4)</a>. UDP_ENCAP socket option may be used at the
+ IPPROTO_UDP level to encapsulate ESP packets in UDP. Only one value is
+ supported for this option: UDP_ENCAP_ESPINUDP from RFC 3948, defined in
+ <code class="In">&lt;<a class="In">netinet/udp.h</a>&gt;</code>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FIB_support"><a class="permalink" href="#FIB_support">FIB
+ support</a></h1>
+<p class="Pp">UDP sockets are FIB-aware. They inherit the FIB of the process
+ which created the socket. By default, a UDP socket bound to an address can
+ receive datagrams originating from any FIB. If the
+ <var class="Va">net.inet.udp.bind_all_fibs</var> tunable is set to 0, all
+ UDP sockets will receive only datagrams originating from the same FIB as the
+ socket. In this mode, multiple sockets can be bound to the same address, so
+ long as each socket belongs to a different FIB, similar to the behavior of
+ the <code class="Dv">SO_REUSEPORT</code> option.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="MIB_(sysctl)_Variables"><a class="permalink" href="#MIB_(sysctl)_Variables">MIB
+ (sysctl) Variables</a></h1>
+<p class="Pp">The <code class="Nm">udp</code> protocol implements a number of
+ variables in the <var class="Va">net.inet.udp</var> branch of the
+ <a class="Xr">sysctl(3)</a> MIB, which can be also read or modified with
+ <a class="Xr">sysctl(8)</a>:</p>
+<dl class="Bl-tag">
+ <dt id="blackhole"><var class="Va">blackhole</var></dt>
+ <dd>When a datagram is received on a port where there is no socket listening,
+ do not return an ICMP port unreachable message. (Disabled by default. See
+ <a class="Xr">blackhole(4)</a>.)</dd>
+ <dt id="checksum"><var class="Va">checksum</var></dt>
+ <dd>Enable UDP checksums (enabled by default).</dd>
+ <dt id="log_in_vain"><var class="Va">log_in_vain</var></dt>
+ <dd>For all UDP datagrams, to ports on which there is no socket listening, log
+ the connection attempt (disabled by default).</dd>
+ <dt id="maxdgram"><var class="Va">maxdgram</var></dt>
+ <dd>Maximum outgoing UDP datagram size</dd>
+ <dt id="recvspace"><var class="Va">recvspace</var></dt>
+ <dd>Maximum space for incoming UDP datagrams</dd>
+</dl>
+</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="EISCONN">[<a class="permalink" href="#EISCONN"><code class="Er">EISCONN</code></a>]</dt>
+ <dd>when trying to establish a connection on a socket which already has one,
+ or when trying to send a datagram with the destination address specified
+ and the socket is already connected;</dd>
+ <dt id="ENOTCONN">[<a class="permalink" href="#ENOTCONN"><code class="Er">ENOTCONN</code></a>]</dt>
+ <dd>when trying to send a datagram, but no destination address is specified,
+ and the socket has not been connected;</dd>
+ <dt id="ENOBUFS">[<a class="permalink" href="#ENOBUFS"><code class="Er">ENOBUFS</code></a>]</dt>
+ <dd>when the system runs out of memory for an internal data structure;</dd>
+ <dt id="EADDRINUSE">[<a class="permalink" href="#EADDRINUSE"><code class="Er">EADDRINUSE</code></a>]</dt>
+ <dd>when an attempt is made to create a socket with a port which has already
+ been allocated;</dd>
+ <dt id="EADDRNOTAVAIL">[<a class="permalink" href="#EADDRNOTAVAIL"><code class="Er">EADDRNOTAVAIL</code></a>]</dt>
+ <dd>when an attempt is made to create a socket with a network address for
+ which no network interface exists.</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">getsockopt(2)</a>, <a class="Xr">recv(2)</a>,
+ <a class="Xr">send(2)</a>, <a class="Xr">socket(2)</a>,
+ <a class="Xr">blackhole(4)</a>, <a class="Xr">inet(4)</a>,
+ <a class="Xr">intro(4)</a>, <a class="Xr">ip(4)</a>,
+ <a class="Xr">udplite(4)</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">udp</code> protocol appeared in
+ <span class="Ux">4.2BSD</span>.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">January 20, 2025</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>