<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Ubixos: ipv4/icmp.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.3 --> <h1>icmp.h File Reference</h1><code>#include "<a class="el" href="arch_8h-source.html">net/arch.h</a>"</code><br> <code>#include "<a class="el" href="opt_8h-source.html">net/opt.h</a>"</code><br> <code>#include "<a class="el" href="pbuf_8h-source.html">net/pbuf.h</a>"</code><br> <code>#include "<a class="el" href="netif_8h-source.html">net/netif.h</a>"</code><br> <p> <a href="ipv4_2icmp_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structicmp__dur__hdr.html">icmp_dur_hdr</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structicmp__echo__hdr.html">icmp_echo_hdr</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structicmp__te__hdr.html">icmp_te_hdr</a></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a0">ICMP_ER</a> 0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a1">ICMP_DUR</a> 3</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a2">ICMP_SQ</a> 4</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a3">ICMP_RD</a> 5</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a4">ICMP_ECHO</a> 8</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a5">ICMP_TE</a> 11</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a6">ICMP_PP</a> 12</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a7">ICMP_TS</a> 13</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a8">ICMP_TSR</a> 14</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a9">ICMP_IRQ</a> 15</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a10">ICMP_IR</a> 16</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a11">ICMPH_TYPE</a>(hdr) (NTOHS((hdr)->_type_code) >> 8)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a12">ICMPH_CODE</a>(hdr) (NTOHS((hdr)->_type_code) & 0xff)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a13">ICMPH_TYPE_SET</a>(hdr, type) ((hdr)->_type_code = HTONS(ICMPH_CODE(hdr) | ((type) << 8)))</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a14">ICMPH_CODE_SET</a>(hdr, code) ((hdr)->_type_code = HTONS((code) | (ICMPH_TYPE(hdr) << 8)))</td></tr> <tr><td colspan=2><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a27">icmp_dur_type</a> { <br> <a class="el" href="ipv4_2icmp_8h.html#a27a16">ICMP_DUR_NET</a> = 0, <a class="el" href="ipv4_2icmp_8h.html#a27a17">ICMP_DUR_HOST</a> = 1, <a class="el" href="ipv4_2icmp_8h.html#a27a18">ICMP_DUR_PROTO</a> = 2, <a class="el" href="ipv4_2icmp_8h.html#a27a19">ICMP_DUR_PORT</a> = 3, <br> <a class="el" href="ipv4_2icmp_8h.html#a27a20">ICMP_DUR_FRAG</a> = 4, <a class="el" href="ipv4_2icmp_8h.html#a27a21">ICMP_DUR_SR</a> = 5 <br> }</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a28">icmp_te_type</a> { <a class="el" href="ipv4_2icmp_8h.html#a28a22">ICMP_TE_TTL</a> = 0, <a class="el" href="ipv4_2icmp_8h.html#a28a23">ICMP_TE_FRAG</a> = 1 }</td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a24">icmp_input</a> (struct <a class="el" href="structpbuf.html">pbuf</a> *p, struct <a class="el" href="structnetif.html">netif</a> *inp)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a25">icmp_dest_unreach</a> (struct <a class="el" href="structpbuf.html">pbuf</a> *p, enum <a class="el" href="ipv6_2icmp_8h.html#a15">icmp_dur_type</a> t)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a26">icmp_time_exceeded</a> (struct <a class="el" href="structpbuf.html">pbuf</a> *p, enum <a class="el" href="ipv6_2icmp_8h.html#a16">icmp_te_type</a> t)</td></tr> <tr><td colspan=2><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="structicmp__echo__hdr.html">icmp_echo_hdr</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2icmp_8h.html#a15">PACK_STRUCT_STRUCT</a></td></tr> </table> <hr><h2>Define Documentation</h2> <a name="a1" doxytag="ipv4/icmp.h::ICMP_DUR"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_DUR 3 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a4" doxytag="ipv4/icmp.h::ICMP_ECHO"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_ECHO 8 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a0" doxytag="ipv4/icmp.h::ICMP_ER"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_ER 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a10" doxytag="ipv4/icmp.h::ICMP_IR"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_IR 16 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a9" doxytag="ipv4/icmp.h::ICMP_IRQ"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_IRQ 15 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a6" doxytag="ipv4/icmp.h::ICMP_PP"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_PP 12 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a3" doxytag="ipv4/icmp.h::ICMP_RD"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_RD 5 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a2" doxytag="ipv4/icmp.h::ICMP_SQ"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_SQ 4 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a5" doxytag="ipv4/icmp.h::ICMP_TE"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_TE 11 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a7" doxytag="ipv4/icmp.h::ICMP_TS"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_TS 13 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a8" doxytag="ipv4/icmp.h::ICMP_TSR"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMP_TSR 14 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a12" doxytag="ipv4/icmp.h::ICMPH_CODE"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMPH_CODE</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (NTOHS((hdr)->_type_code) & 0xff) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a14" doxytag="ipv4/icmp.h::ICMPH_CODE_SET"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMPH_CODE_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>code </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((hdr)->_type_code = HTONS((code) | (ICMPH_TYPE(hdr) << 8))) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a11" doxytag="ipv4/icmp.h::ICMPH_TYPE"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMPH_TYPE</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (NTOHS((hdr)->_type_code) >> 8) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a13" doxytag="ipv4/icmp.h::ICMPH_TYPE_SET"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ICMPH_TYPE_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>type </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((hdr)->_type_code = HTONS(ICMPH_CODE(hdr) | ((type) << 8))) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Enumeration Type Documentation</h2> <a name="a27" doxytag="ipv4/icmp.h::icmp_dur_type"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> enum <a class="el" href="ipv6_2icmp_8h.html#a15">icmp_dur_type</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <dl compact><dt><b>Enumeration values: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em><a name="a27a16" doxytag="ICMP_DUR_NET"></a><em>ICMP_DUR_NET</em></em> </td><td> </td></tr> <tr><td valign=top><em><a name="a27a17" doxytag="ICMP_DUR_HOST"></a><em>ICMP_DUR_HOST</em></em> </td><td> </td></tr> <tr><td valign=top><em><a name="a27a18" doxytag="ICMP_DUR_PROTO"></a><em>ICMP_DUR_PROTO</em></em> </td><td> </td></tr> <tr><td valign=top><em><a name="a27a19" doxytag="ICMP_DUR_PORT"></a><em>ICMP_DUR_PORT</em></em> </td><td> </td></tr> <tr><td valign=top><em><a name="a27a20" doxytag="ICMP_DUR_FRAG"></a><em>ICMP_DUR_FRAG</em></em> </td><td> </td></tr> <tr><td valign=top><em><a name="a27a21" doxytag="ICMP_DUR_SR"></a><em>ICMP_DUR_SR</em></em> </td><td> </td></tr> </table> </dl> </td> </tr> </table> <a name="a28" doxytag="ipv4/icmp.h::icmp_te_type"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> enum <a class="el" href="ipv6_2icmp_8h.html#a16">icmp_te_type</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <dl compact><dt><b>Enumeration values: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em><a name="a28a22" doxytag="ICMP_TE_TTL"></a><em>ICMP_TE_TTL</em></em> </td><td> </td></tr> <tr><td valign=top><em><a name="a28a23" doxytag="ICMP_TE_FRAG"></a><em>ICMP_TE_FRAG</em></em> </td><td> </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Function Documentation</h2> <a name="a25" doxytag="ipv4/icmp.h::icmp_dest_unreach"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void icmp_dest_unreach </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">struct <a class="el" href="structpbuf.html">pbuf</a> * </td> <td class="mdname" nowrap> <em>p</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>enum <a class="el" href="ipv6_2icmp_8h.html#a15">icmp_dur_type</a> </td> <td class="mdname" nowrap> <em>t</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a24" doxytag="ipv4/icmp.h::icmp_input"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void icmp_input </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">struct <a class="el" href="structpbuf.html">pbuf</a> * </td> <td class="mdname" nowrap> <em>p</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>struct <a class="el" href="structnetif.html">netif</a> * </td> <td class="mdname" nowrap> <em>inp</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a26" doxytag="ipv4/icmp.h::icmp_time_exceeded"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void icmp_time_exceeded </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">struct <a class="el" href="structpbuf.html">pbuf</a> * </td> <td class="mdname" nowrap> <em>p</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>enum <a class="el" href="ipv6_2icmp_8h.html#a16">icmp_te_type</a> </td> <td class="mdname" nowrap> <em>t</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Variable Documentation</h2> <a name="a15" doxytag="ipv4/icmp.h::PACK_STRUCT_STRUCT"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> struct <a class="el" href="structicmp__te__hdr.html">icmp_te_hdr</a> <a class="el" href="arp_8h.html#a3">PACK_STRUCT_STRUCT</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Sat May 8 09:28:20 2004 for Ubixos by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.3 </small></address> </body> </html>