summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/icmp6.4 4.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man4/icmp6.4 4.html')
-rw-r--r--static/netbsd/man4/icmp6.4 4.html387
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> &#x2014; <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
- &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">netinet/icmp6.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_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 &#x201C;raw
- socket&#x201D; 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">&lt;<a class="In">netinet/icmp6.h</a>&gt;</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>