diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:59:05 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:59:05 -0400 |
| commit | 1f19f33e45791ea59aed048796fc68672c6723a5 (patch) | |
| tree | 54625fba89e91d1c2177801ec635e8528bba937f /static/netbsd/man4/icmp6.4 4.html | |
| parent | ac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (diff) | |
docs: Removed Precompiled HTML
Diffstat (limited to 'static/netbsd/man4/icmp6.4 4.html')
| -rw-r--r-- | static/netbsd/man4/icmp6.4 4.html | 387 |
1 files changed, 0 insertions, 387 deletions
diff --git a/static/netbsd/man4/icmp6.4 4.html b/static/netbsd/man4/icmp6.4 4.html deleted file mode 100644 index 451ebb87..00000000 --- a/static/netbsd/man4/icmp6.4 4.html +++ /dev/null @@ -1,387 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">ICMP6(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">ICMP6(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">icmp6</code> — <span class="Nd">Internet - Control Message Protocol for IPv6</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/socket.h</a>></code> - <br/> - <code class="In">#include <<a class="In">netinet/in.h</a>></code> - <br/> - <code class="In">#include <<a class="In">netinet/icmp6.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_INET6</var>, - <var class="Fa" style="white-space: nowrap;">SOCK_RAW</var>, - <var class="Fa" style="white-space: nowrap;">IPPROTO_ICMPV6</var>);</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">ICMPv6 is the error and control message protocol used by IPv6 and - the IPv6 protocol family (see <a class="Xr">ip6(4)</a> and - <a class="Xr">inet6(4)</a>). It may be accessed through a “raw - socket” for network monitoring and diagnostic functions.</p> -<p class="Pp">The <var class="Fa">proto</var> parameter to the - <a class="Xr">socket(2)</a> call to create an ICMPv6 socket may be obtained - from <a class="Xr">getprotobyname(3)</a>. ICMPv6 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 <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 IPv6 header prepended to - them (based on the destination address). Incoming packets on the socket are - received with the IPv6 header and any extension headers removed.</p> -<section class="Ss"> -<h2 class="Ss" id="Types"><a class="permalink" href="#Types">Types</a></h2> -<p class="Pp">ICMPv6 messages are classified according to the type and code - fields present in the ICMPv6 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>1</td> - <td>unreach</td> - <td>Destination unreachable</td> - </tr> - <tr> - <td>2</td> - <td>toobig</td> - <td>Packet too big</td> - </tr> - <tr> - <td>3</td> - <td>timex</td> - <td>Time exceeded</td> - </tr> - <tr> - <td>4</td> - <td>paramprob</td> - <td>Invalid IPv6 header</td> - </tr> - <tr> - <td>128</td> - <td>echoreq</td> - <td>Echo service request</td> - </tr> - <tr> - <td>129</td> - <td>echorep</td> - <td>Echo service reply</td> - </tr> - <tr> - <td>130</td> - <td>groupqry</td> - <td>Group membership query</td> - </tr> - <tr> - <td>130</td> - <td>listqry</td> - <td>Multicast listener query</td> - </tr> - <tr> - <td>131</td> - <td>grouprep</td> - <td>Group membership report</td> - </tr> - <tr> - <td>131</td> - <td>listenrep</td> - <td>Multicast listener report</td> - </tr> - <tr> - <td>132</td> - <td>groupterm</td> - <td>Group membership termination</td> - </tr> - <tr> - <td>132</td> - <td>listendone</td> - <td>Multicast listener done</td> - </tr> - <tr> - <td>133</td> - <td>routersol</td> - <td>Router solicitation</td> - </tr> - <tr> - <td>134</td> - <td>routeradv</td> - <td>Router advertisement</td> - </tr> - <tr> - <td>135</td> - <td>neighbrsol</td> - <td>Neighbor solicitation</td> - </tr> - <tr> - <td>136</td> - <td>neighbradv</td> - <td>Neighbor advertisement</td> - </tr> - <tr> - <td>137</td> - <td>redir</td> - <td>Shorter route exists</td> - </tr> - <tr> - <td>138</td> - <td>routrrenum</td> - <td>Route renumbering</td> - </tr> - <tr> - <td>139</td> - <td>fqdnreq</td> - <td>FQDN query</td> - </tr> - <tr> - <td>139</td> - <td>niqry</td> - <td>Node information query</td> - </tr> - <tr> - <td>139</td> - <td>wrureq</td> - <td>Who-are-you request</td> - </tr> - <tr> - <td>140</td> - <td>fqdnrep</td> - <td>FQDN reply</td> - </tr> - <tr> - <td>140</td> - <td>nirep</td> - <td>Node information reply</td> - </tr> - <tr> - <td>140</td> - <td>wrurep</td> - <td>Who-are-you reply</td> - </tr> - <tr> - <td>200</td> - <td>mtraceresp</td> - <td>mtrace response</td> - </tr> - <tr> - <td>201</td> - <td>mtrace</td> - <td>mtrace messages</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>noroute-unr</td> - <td>unreach</td> - <td>No route to destination</td> - </tr> - <tr> - <td>1</td> - <td>admin-unr</td> - <td>unreach</td> - <td>Administratively prohibited</td> - </tr> - <tr> - <td>2</td> - <td>beyond-unr</td> - <td>unreach</td> - <td>Beyond scope of source address</td> - </tr> - <tr> - <td>2</td> - <td>notnbr-unr</td> - <td>unreach</td> - <td>Not a neighbor (obsolete)</td> - </tr> - <tr> - <td>3</td> - <td>addr-unr</td> - <td>unreach</td> - <td>Address unreachable</td> - </tr> - <tr> - <td>4</td> - <td>port-unr</td> - <td>unreach</td> - <td>Port unreachable</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>Erroneous header field</td> - </tr> - <tr> - <td>1</td> - <td>nxthdr</td> - <td>paramprob</td> - <td>Unrecognized next header</td> - </tr> - <tr> - <td>2</td> - <td></td> - <td>redir</td> - <td>Unrecognized option</td> - </tr> - <tr> - <td>0</td> - <td>redironlink</td> - <td>redir</td> - <td>Redirection to on-link node</td> - </tr> - <tr> - <td>1</td> - <td>redirrouter</td> - <td>redir</td> - <td>Redirection to better router</td> - </tr> -</table> -</section> -<section class="Ss"> -<h2 class="Ss" id="Headers"><a class="permalink" href="#Headers">Headers</a></h2> -<p class="Pp">All ICMPv6 messages are prefixed with an ICMPv6 header. This - header corresponds to the <var class="Vt">icmp6_hdr</var> structure and has - the following definition:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>struct icmp6_hdr { - uint8_t icmp6_type; /* type field */ - uint8_t icmp6_code; /* code field */ - uint16_t icmp6_cksum; /* checksum field */ - union { - uint32_t icmp6_un_data32[1]; /* type-specific */ - uint16_t icmp6_un_data16[2]; /* type-specific */ - uint8_t icmp6_un_data8[4]; /* type-specific */ - } icmp6_dataun; -} __packed; - -#define icmp6_data32 icmp6_dataun.icmp6_un_data32 -#define icmp6_data16 icmp6_dataun.icmp6_un_data16 -#define icmp6_data8 icmp6_dataun.icmp6_un_data8 -#define icmp6_pptr icmp6_data32[0] /* parameter prob */ -#define icmp6_mtu icmp6_data32[0] /* packet too big */ -#define icmp6_id icmp6_data16[0] /* echo request/reply */ -#define icmp6_seq icmp6_data16[1] /* echo request/reply */ -#define icmp6_maxdelay icmp6_data16[0] /* mcast group membership*/</pre> -</div> -<p class="Pp"><var class="Va">icmp6_type</var> describes the type of the - message. Suitable values are defined in - <code class="In"><<a class="In">netinet/icmp6.h</a>></code>. - <var class="Va">icmp6_code</var> describes the sub-type of the message and - depends on <var class="Va">icmp6_type</var>. - <var class="Va">icmp6_cksum</var> contains the checksum for the message and - is filled in by the kernel on outgoing messages. The other fields are used - for type-specific purposes.</p> -</section> -<section class="Ss"> -<h2 class="Ss" id="Filters"><a class="permalink" href="#Filters">Filters</a></h2> -<p class="Pp">Because of the extra functionality of ICMPv6 in comparison to - ICMPv4, a larger number of messages may be potentially received on an ICMPv6 - socket. Input filters may therefore be used to restrict input to a subset of - the incoming ICMPv6 messages so only interesting messages are returned by - the <a class="Xr">recv(2)</a> family of calls to an application.</p> -<p class="Pp">The <var class="Vt">icmp6_filter</var> structure may be used to - refine the input message set according to the ICMPv6 type. By default, all - messages types are allowed on newly created raw ICMPv6 sockets. The - following macros may be used to refine the input set:</p> -<dl class="Bl-tag"> - <dt id="void"><var class="Ft">void</var> - <a class="permalink" href="#void"><code class="Fn">ICMP6_FILTER_SETPASSALL</code></a>(<var class="Fa">struct - icmp6_filter *filterp</var>)</dt> - <dd>Allow all incoming messages. <var class="Va">filterp</var> is modified to - allow all message types.</dd> - <dt id="void~2"><var class="Ft">void</var> - <a class="permalink" href="#void~2"><code class="Fn">ICMP6_FILTER_SETBLOCKALL</code></a>(<var class="Fa">struct - icmp6_filter *filterp</var>)</dt> - <dd>Ignore all incoming messages. <var class="Va">filterp</var> is modified to - ignore all message types.</dd> - <dt id="void~3"><var class="Ft">void</var> - <a class="permalink" href="#void~3"><code class="Fn">ICMP6_FILTER_SETPASS</code></a>(<var class="Fa">int - type</var>, <var class="Fa">struct icmp6_filter *filterp</var>)</dt> - <dd>Allow ICMPv6 messages with the given <var class="Fa">type</var>. - <var class="Va">filterp</var> is modified to allow such messages.</dd> - <dt id="void~4"><var class="Ft">void</var> - <a class="permalink" href="#void~4"><code class="Fn">ICMP6_FILTER_SETBLOCK</code></a>(<var class="Fa">int - type</var>, <var class="Fa">struct icmp6_filter *filterp</var>)</dt> - <dd>Ignore ICMPv6 messages with the given <var class="Fa">type</var>. - <var class="Va">filterp</var> is modified to ignore such messages.</dd> - <dt id="int"><var class="Ft">int</var> - <a class="permalink" href="#int"><code class="Fn">ICMP6_FILTER_WILLPASS</code></a>(<var class="Fa">int - type</var>, <var class="Fa">const struct icmp6_filter *filterp</var>)</dt> - <dd>Determine if the given filter will allow an ICMPv6 message of the given - type.</dd> - <dt id="int~2"><var class="Ft">int</var> - <a class="permalink" href="#int~2"><code class="Fn">ICMP6_FILTER_WILLBLOCK</code></a>(<var class="Fa">int - type</var>, <var class="Fa">const struct icmp6_filter *filterp</var>)</dt> - <dd>Determine if the given filter will ignore an ICMPv6 message of the given - type.</dd> -</dl> -<p class="Pp">The <a class="Xr">getsockopt(2)</a> and - <a class="Xr">setsockopt(2)</a> calls may be used to obtain and install the - filter on ICMPv6 sockets at option level - <code class="Dv">IPPROTO_ICMPV6</code> and name - <code class="Dv">ICMPV6_FILTER</code> with a pointer to the - <var class="Vt">icmp6_filter</var> structure as the option value.</p> -</section> -</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">setsockopt(2)</a>, - <a class="Xr">socket(2)</a>, <a class="Xr">getprotobyname(3)</a>, - <a class="Xr">inet6(4)</a>, <a class="Xr">ip6(4)</a>, - <a class="Xr">netintro(4)</a></p> -<p class="Pp"><cite class="Rs"><span class="RsA">W. Stevens</span> and - <span class="RsA">M. Thomas</span>, <span class="RsT">Advanced Sockets API - for IPv6</span>, <span class="RsN">RFC 2292</span>, - <span class="RsD">February 1998</span>.</cite></p> -<p class="Pp"><cite class="Rs"><span class="RsA">A. Conta</span> and - <span class="RsA">S. Deering</span>, <span class="RsT">Internet Control - Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) - Specification</span>, <span class="RsN">RFC 2463</span>, - <span class="RsD">December 1998</span>.</cite></p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">December 20, 2004</td> - <td class="foot-os">NetBSD 10.1</td> - </tr> -</table> |
