diff options
Diffstat (limited to 'static/freebsd/man4/icmp.4 3.html')
| -rw-r--r-- | static/freebsd/man4/icmp.4 3.html | 477 |
1 files changed, 477 insertions, 0 deletions
diff --git a/static/freebsd/man4/icmp.4 3.html b/static/freebsd/man4/icmp.4 3.html new file mode 100644 index 00000000..78c88ccb --- /dev/null +++ b/static/freebsd/man4/icmp.4 3.html @@ -0,0 +1,477 @@ +<table class="head"> + <tr> + <td class="head-ltitle">ICMP(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">ICMP(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">icmp</code> — <span class="Nd">Internet + Control Message 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 + <<a class="In">sys/types.h</a>></code> + <br/> + <code class="In">#include <<a class="In">sys/socket.h</a>></code> + <br/> + <code class="In">#include <<a class="In">netinet/in.h</a>></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_RAW</var>, + <var class="Fa" style="white-space: nowrap;">proto</var>);</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">ICMP is the error and control message protocol used by IP and the + Internet protocol family. It may be accessed through a “raw + socket” for network monitoring and diagnostic functions. The + <var class="Fa">proto</var> parameter to the socket call to create an ICMP + socket is obtained from <a class="Xr">getprotobyname(3)</a>. ICMP 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">read(2)</a> + or <a class="Xr">recv(2)</a> and <a class="Xr">write(2)</a> or + <a class="Xr">send(2)</a> system calls may be used).</p> +<p class="Pp">Outgoing packets automatically have an IP header prepended to them + (based on the destination address). Incoming packets are received with the + IP header and options intact.</p> +<section class="Ss"> +<h2 class="Ss" id="Types"><a class="permalink" href="#Types">Types</a></h2> +<p class="Pp">ICMP messages are classified according to the type and code fields + present in the ICMP header. The abbreviations for the types and codes may be + used in rules in <a class="Xr">pf.conf(5)</a>. The following types are + defined:</p> +<table class="Bl-column Bd-indent"> + <tr id="Num"> + <td><a class="permalink" href="#Num"><b class="Sy">Num</b></a></td> + <td><a class="permalink" href="#Abbrev."><b class="Sy" id="Abbrev.">Abbrev.</b></a></td> + <td><a class="permalink" href="#Description"><b class="Sy" id="Description">Description</b></a></td> + </tr> + <tr> + <td>0</td> + <td>echorep</td> + <td>Echo reply</td> + </tr> + <tr> + <td>3</td> + <td>unreach</td> + <td>Destination unreachable</td> + </tr> + <tr> + <td>4</td> + <td>squench</td> + <td>Packet loss, slow down</td> + </tr> + <tr> + <td>5</td> + <td>redir</td> + <td>Shorter route exists</td> + </tr> + <tr> + <td>6</td> + <td>althost</td> + <td>Alternate host address</td> + </tr> + <tr> + <td>8</td> + <td>echoreq</td> + <td>Echo request</td> + </tr> + <tr> + <td>9</td> + <td>routeradv</td> + <td>Router advertisement</td> + </tr> + <tr> + <td>10</td> + <td>routersol</td> + <td>Router solicitation</td> + </tr> + <tr> + <td>11</td> + <td>timex</td> + <td>Time exceeded</td> + </tr> + <tr> + <td>12</td> + <td>paramprob</td> + <td>Invalid IP header</td> + </tr> + <tr> + <td>13</td> + <td>timereq</td> + <td>Timestamp request</td> + </tr> + <tr> + <td>14</td> + <td>timerep</td> + <td>Timestamp reply</td> + </tr> + <tr> + <td>15</td> + <td>inforeq</td> + <td>Information request</td> + </tr> + <tr> + <td>16</td> + <td>inforep</td> + <td>Information reply</td> + </tr> + <tr> + <td>17</td> + <td>maskreq</td> + <td>Address mask request</td> + </tr> + <tr> + <td>18</td> + <td>maskrep</td> + <td>Address mask reply</td> + </tr> + <tr> + <td>30</td> + <td>trace</td> + <td>Traceroute</td> + </tr> + <tr> + <td>31</td> + <td>dataconv</td> + <td>Data conversion problem</td> + </tr> + <tr> + <td>32</td> + <td>mobredir</td> + <td>Mobile host redirection</td> + </tr> + <tr> + <td>33</td> + <td>ipv6-where</td> + <td>IPv6 where-are-you</td> + </tr> + <tr> + <td>34</td> + <td>ipv6-here</td> + <td>IPv6 i-am-here</td> + </tr> + <tr> + <td>35</td> + <td>mobregreq</td> + <td>Mobile registration request</td> + </tr> + <tr> + <td>36</td> + <td>mobregrep</td> + <td>Mobile registration reply</td> + </tr> + <tr> + <td>39</td> + <td>skip</td> + <td>SKIP</td> + </tr> + <tr> + <td>40</td> + <td>photuris</td> + <td>Photuris</td> + </tr> +</table> +<p class="Pp">The following codes are defined:</p> +<table class="Bl-column Bd-indent"> + <tr id="Num~2"> + <td><a class="permalink" href="#Num~2"><b class="Sy">Num</b></a></td> + <td><a class="permalink" href="#Abbrev.~2"><b class="Sy" id="Abbrev.~2">Abbrev.</b></a></td> + <td><a class="permalink" href="#Type"><b class="Sy" id="Type">Type</b></a></td> + <td><a class="permalink" href="#Description~2"><b class="Sy" id="Description~2">Description</b></a></td> + </tr> + <tr> + <td>0</td> + <td>net-unr</td> + <td>unreach</td> + <td>Network unreachable</td> + </tr> + <tr> + <td>1</td> + <td>host-unr</td> + <td>unreach</td> + <td>Host unreachable</td> + </tr> + <tr> + <td>2</td> + <td>proto-unr</td> + <td>unreach</td> + <td>Protocol unreachable</td> + </tr> + <tr> + <td>3</td> + <td>port-unr</td> + <td>unreach</td> + <td>Port unreachable</td> + </tr> + <tr> + <td>4</td> + <td>needfrag</td> + <td>unreach</td> + <td>Fragmentation needed but DF bit set</td> + </tr> + <tr> + <td>5</td> + <td>srcfail</td> + <td>unreach</td> + <td>Source routing failed</td> + </tr> + <tr> + <td>6</td> + <td>net-unk</td> + <td>unreach</td> + <td>Network unknown</td> + </tr> + <tr> + <td>7</td> + <td>host-unk</td> + <td>unreach</td> + <td>Host unknown</td> + </tr> + <tr> + <td>8</td> + <td>isolate</td> + <td>unreach</td> + <td>Host isolated</td> + </tr> + <tr> + <td>9</td> + <td>net-prohib</td> + <td>unreach</td> + <td>Network administratively prohibited</td> + </tr> + <tr> + <td>10</td> + <td>host-prohib</td> + <td>unreach</td> + <td>Host administratively prohibited</td> + </tr> + <tr> + <td>11</td> + <td>net-tos</td> + <td>unreach</td> + <td>Invalid TOS for network</td> + </tr> + <tr> + <td>12</td> + <td>host-tos</td> + <td>unreach</td> + <td>Invalid TOS for host</td> + </tr> + <tr> + <td>13</td> + <td>filter-prohib</td> + <td>unreach</td> + <td>Prohibited access</td> + </tr> + <tr> + <td>14</td> + <td>host-preced</td> + <td>unreach</td> + <td>Precedence violation</td> + </tr> + <tr> + <td>15</td> + <td>cutoff-preced</td> + <td>unreach</td> + <td>Precedence cutoff</td> + </tr> + <tr> + <td>0</td> + <td>redir-net</td> + <td>redir</td> + <td>Shorter route for network</td> + </tr> + <tr> + <td>1</td> + <td>redir-host</td> + <td>redir</td> + <td>Shorter route for host</td> + </tr> + <tr> + <td>2</td> + <td>redir-tos-net</td> + <td>redir</td> + <td>Shorter route for TOS and network</td> + </tr> + <tr> + <td>3</td> + <td>redir-tos-host</td> + <td>redir</td> + <td>Shorter route for TOS and host</td> + </tr> + <tr> + <td>0</td> + <td>normal-adv</td> + <td>routeradv</td> + <td>Normal advertisement</td> + </tr> + <tr> + <td>16</td> + <td>common-adv</td> + <td>routeradv</td> + <td>Selective advertisement</td> + </tr> + <tr> + <td>0</td> + <td>transit</td> + <td>timex</td> + <td>Time exceeded in transit</td> + </tr> + <tr> + <td>1</td> + <td>reassemb</td> + <td>timex</td> + <td>Time exceeded in reassembly</td> + </tr> + <tr> + <td>0</td> + <td>badhead</td> + <td>paramprob</td> + <td>Invalid option pointer</td> + </tr> + <tr> + <td>1</td> + <td>optmiss</td> + <td>paramprob</td> + <td>Missing option</td> + </tr> + <tr> + <td>2</td> + <td>badlen</td> + <td>paramprob</td> + <td>Invalid length</td> + </tr> + <tr> + <td>1</td> + <td>unknown-ind</td> + <td>photuris</td> + <td>Unknown security index</td> + </tr> + <tr> + <td>2</td> + <td>auth-fail</td> + <td>photuris</td> + <td>Authentication failed</td> + </tr> + <tr> + <td>3</td> + <td>decrypt-fail</td> + <td>photuris</td> + <td>Decryption failed</td> + </tr> +</table> +</section> +<section class="Ss"> +<h2 class="Ss" id="MIB_(sysctl)_Variables"><a class="permalink" href="#MIB_(sysctl)_Variables">MIB + (sysctl) Variables</a></h2> +<p class="Pp">The ICMP protocol implements a number of variables in the + <var class="Va">net.inet.icmp</var> branch of the + <a class="Xr">sysctl(3)</a> MIB, which can also be read or modified with + <a class="Xr">sysctl(8)</a>.</p> +<dl class="Bl-tag"> + <dt id="bmcastecho"><var class="Va">bmcastecho</var></dt> + <dd>(<var class="Vt">boolean</var>) Enable/disable ICMP replies received via + broadcast or multicast. Defaults to false.</dd> + <dt id="drop_redirect"><var class="Va">drop_redirect</var></dt> + <dd>(<var class="Vt">boolean</var>) Enable/disable dropping of ICMP Redirect + packets. Defaults to false.</dd> + <dt id="icmplim"><var class="Va">icmplim</var></dt> + <dd>(<var class="Vt">unsigned integer</var>) Mean rate limit for replies in + packets/second. The actual limit is <var class="Va">icmplim</var> plus a + random jitter limited by <var class="Va">icmplim_jitter</var>. If set to + zero, no limiting will occur. Defaults to 200.</dd> + <dt id="icmplim_jitter"><var class="Va">icmplim_jitter</var></dt> + <dd>(<var class="Vt">unsigned integer</var>) A random jitter between the + negative of <var class="Va">icmplim_jitter</var> and + <var class="Va">icmplim_jitter</var> is applied to + <var class="Va">icmplim</var> for limiting the sending rate of replies. + <var class="Va">icmplim_jitter</var> must be smaller than + <var class="Va">icmplim</var>, if <var class="Va">icmplim</var> is not + zero. If set to zero, no jitter will be applied. Defaults to 16.</dd> + <dt id="icmplim_output"><var class="Va">icmplim_output</var></dt> + <dd>(<var class="Vt">boolean</var>) Enable/disable logging of ICMP replies + bandwidth limiting. Defaults to true.</dd> + <dt id="log_redirect"><var class="Va">log_redirect</var></dt> + <dd>(<var class="Vt">boolean</var>) Enable/disable logging of ICMP Redirect + packets. Defaults to false.</dd> + <dt id="maskfake"><var class="Va">maskfake</var></dt> + <dd>(<var class="Vt">unsigned integer</var>) When + <var class="Va">maskrepl</var> is set and this value is non-zero, it will + be used instead of the real address mask when the system replies to an + ICMP Address Mask Request packet. Defaults to 0.</dd> + <dt id="maskrepl"><var class="Va">maskrepl</var></dt> + <dd>(<var class="Vt">boolean</var>) Enable/disable replies to ICMP Address + Mask Request packets. Defaults to false.</dd> + <dt id="quotelen"><var class="Va">quotelen</var></dt> + <dd>(<var class="Vt">integer</var>) Number of bytes from original packet to + quote in ICMP reply. This number is internally enforced to be at least 8 + bytes (per RFC792) and at most the maximal space left in the ICMP reply + mbuf.</dd> + <dt id="redirtimeout"><var class="Va">redirtimeout</var></dt> + <dd>(<var class="Vt">integer</var>) Delay in seconds before expiring route + created by ICMP redirect.</dd> + <dt id="reply_from_interface"><var class="Va">reply_from_interface</var></dt> + <dd>(<var class="Vt">boolean</var>) Use the IP address of the interface the + packet came in through for responses to packets which are not directly + addressed to us. If enabled, this rule is processed before all others. By + default, continue with normal source selection. Enabling this option is + particularly useful on routers because it makes external traceroutes show + the actual path a packet has taken instead of the possibly different + return path.</dd> + <dt id="reply_src"><var class="Va">reply_src</var></dt> + <dd>(<var class="Vt">str</var>) An interface name used for the ICMP reply + source in response to packets which are not directly addressed to us. By + default continue with normal source selection.</dd> + <dt id="tstamprepl"><var class="Va">tstamprepl</var></dt> + <dd>(<var class="Vt">boolean</var>) Enable/disable replies to ICMP Timestamp + packets. Defaults to true.</dd> +</dl> +</section> +</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="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">recv(2)</a>, <a class="Xr">send(2)</a>, + <a class="Xr">sysctl(3)</a>, <a class="Xr">inet(4)</a>, + <a class="Xr">intro(4)</a>, <a class="Xr">ip(4)</a>, + <a class="Xr">pf.conf(5)</a>, <a class="Xr">sysctl(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">icmp</code> protocol implementation appeared + in <span class="Ux">4.2BSD</span>.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">December 11, 2024</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
