<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>UbixOS V2: src/sys/include/net/ipv4/ip.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.7 --> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="classes.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <div class="nav"> <a class="el" href="dir_897b6a2d7bab147dd1db58381aad3984.html">src</a> » <a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a> » <a class="el" href="dir_caf4200c438ae9601464168e21e8e4d8.html">include</a> » <a class="el" href="dir_c1d11d251a83b2498f44d410b793c5eb.html">net</a> » <a class="el" href="dir_c3e84400a32e4fc888777536359ca22b.html">ipv4</a></div> <h1>ip.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="def_8h-source.html">net/def.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="ipv4_2ip__addr_8h-source.html">net/ipv4/ip_addr.h</a>"</code><br> <code>#include "<a class="el" href="netif_8h-source.html">net/netif.h</a>"</code><br> <code>#include "<a class="el" href="err_8h-source.html">net/err.h</a>"</code><br> <p> <a href="ipv4_2ip_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="structip__hdr.html">ip_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_2ip_8h.html#e2473f4a88d141d5298f92a4335b714a">IP_DF</a> 0x4000</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#4c4294940df109ad673a7295b74259b0">IP_HDRINCL</a> NULL</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#d76777d4d34f33ab5f715f9ca15503c3">IP_HLEN</a> 20</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#e8afe1e04bb9bad791443556c3b2cd73">IP_MF</a> 0x2000</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#d059798b16d1f615b5af8770175121ba">IP_OFFMASK</a> 0x1fff</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#acaea7b8c4c8a5229c02b653766b4793">IP_PROTO_ICMP</a> 1</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#634284ee3a136d6ad61bc5d917ebb82f">IP_PROTO_TCP</a> 6</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#76212e7ef71a99646040d2e454388bed">IP_PROTO_UDP</a> 17</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#3ef2b8a1cb4f7acee3142337438dfd0d">IP_PROTO_UDPLITE</a> 170</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#895709708f8f909cf7b7459491d549e7">IP_RF</a> 0x8000</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#773b96f54c75b35bcd24e7f857fcf988">IPH_CHKSUM</a>(hdr) ((hdr)->_chksum)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#ec30403fb98b013bd094688de55cdaef">IPH_CHKSUM_SET</a>(hdr, chksum) (hdr)->_chksum = (chksum)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#7c60caeb708571a07a44309c10ec3a01">IPH_HL</a>(hdr) ((NTOHS((hdr)->_v_hl_tos) >> 8) & 0x0f)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#e79eaecc0bf9e4dbb9e47ea56ad2157a">IPH_ID</a>(hdr) ((hdr)->_id)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#3b2c57b6a9dc9cc32fc2f145a96bbf8f">IPH_ID_SET</a>(hdr, <a class="el" href="elf_8c.html#ffd99ec09f321a630ec19d0333e291cd">id</a>) (hdr)->_id = (<a class="el" href="elf_8c.html#ffd99ec09f321a630ec19d0333e291cd">id</a>)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#ec0328fe4711b8c1ef4dd6709e4fd6d5">IPH_LEN</a>(hdr) ((hdr)->_len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#069cb9b3765c4bdd63d13efb2df0206e">IPH_LEN_SET</a>(hdr, len) (hdr)->_len = (len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#559dce3878f1d6a46bcb4cb312962397">IPH_OFFSET</a>(hdr) ((hdr)->_offset)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#4c2189e1400dca1c0f785de96ceda2b6">IPH_OFFSET_SET</a>(hdr, off) (hdr)->_offset = (off)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#a2de6f9d35337b4be67d799805665e11">IPH_PROTO</a>(hdr) (NTOHS((hdr)->_ttl_proto) & 0xff)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#49753f7668f741b1877340bff6fb97c3">IPH_PROTO_SET</a>(hdr, proto) (hdr)->_ttl_proto = HTONS((proto) | (IPH_TTL(hdr) << 8))</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#13fb5476ab97db9c5de6c1f5ca0d82e6">IPH_TOS</a>(hdr) HTONS((NTOHS((hdr)->_v_hl_tos) & 0xff))</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#0d8238411ce35a007170f652e62209b3">IPH_TTL</a>(hdr) (NTOHS((hdr)->_ttl_proto) >> 8)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#a0e49f03bd4c3144e3548a0db72d1deb">IPH_TTL_SET</a>(hdr, ttl) (hdr)->_ttl_proto = HTONS(IPH_PROTO(hdr) | ((ttl) << 8))</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#05a9e8ecf4eff38244b4c13c7e70094c">IPH_V</a>(hdr) (NTOHS((hdr)->_v_hl_tos) >> 12)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#65a5ff431603908b698b69ff5151f888">IPH_VHLTOS_SET</a>(hdr, v, hl, tos) (hdr)->_v_hl_tos = HTONS(((v) << 12) | ((hl) << 8) | (tos))</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_2ip_8h.html#8be0857c3bd133182ecd9e0dd700f7c7">ip_init</a> (void)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="err_8h.html#b7190f3da5c85931fc059e0312bc1407">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#3c420dab0c6760df099a2d688fa42a26">ip_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"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#b3e95b26f169c5d3ed21c88553052a3d">ip_lookup</a> (void *header, struct <a class="el" href="structnetif.html">netif</a> *inp)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="err_8h.html#b7190f3da5c85931fc059e0312bc1407">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#c360020282b7630ac9e9780e7a5bb758">ip_output</a> (struct <a class="el" href="structpbuf.html">pbuf</a> *p, struct <a class="el" href="structip__addr.html">ip_addr</a> *src, struct <a class="el" href="structip__addr.html">ip_addr</a> *dest, <a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> ttl, <a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> proto)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="err_8h.html#b7190f3da5c85931fc059e0312bc1407">err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#786ad4beeca101382b74feb53bd3b05d">ip_output_if</a> (struct <a class="el" href="structpbuf.html">pbuf</a> *p, struct <a class="el" href="structip__addr.html">ip_addr</a> *src, struct <a class="el" href="structip__addr.html">ip_addr</a> *dest, <a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> ttl, <a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> proto, struct <a class="el" href="structnetif.html">netif</a> *<a class="el" href="structnetif.html">netif</a>)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structnetif.html">netif</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#27aecc05841bdece5d6bed810cc0ce71">ip_route</a> (struct <a class="el" href="structip__addr.html">ip_addr</a> *dest)</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="structip__hdr.html">ip_hdr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipv4_2ip_8h.html#cc2e6fec3924fc843f79b23e2562e2c6">PACK_STRUCT_STRUCT</a></td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="e2473f4a88d141d5298f92a4335b714a"></a><!-- doxytag: member="ip.h::IP_DF" ref="e2473f4a88d141d5298f92a4335b714a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_DF 0x4000 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00082">82</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="4c4294940df109ad673a7295b74259b0"></a><!-- doxytag: member="ip.h::IP_HDRINCL" ref="4c4294940df109ad673a7295b74259b0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_HDRINCL NULL </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00070">70</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="d76777d4d34f33ab5f715f9ca15503c3"></a><!-- doxytag: member="ip.h::IP_HLEN" ref="d76777d4d34f33ab5f715f9ca15503c3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_HLEN 20 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00057">57</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="e8afe1e04bb9bad791443556c3b2cd73"></a><!-- doxytag: member="ip.h::IP_MF" ref="e8afe1e04bb9bad791443556c3b2cd73" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_MF 0x2000 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00083">83</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="d059798b16d1f615b5af8770175121ba"></a><!-- doxytag: member="ip.h::IP_OFFMASK" ref="d059798b16d1f615b5af8770175121ba" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_OFFMASK 0x1fff </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00084">84</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="acaea7b8c4c8a5229c02b653766b4793"></a><!-- doxytag: member="ip.h::IP_PROTO_ICMP" ref="acaea7b8c4c8a5229c02b653766b4793" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_PROTO_ICMP 1 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00059">59</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="634284ee3a136d6ad61bc5d917ebb82f"></a><!-- doxytag: member="ip.h::IP_PROTO_TCP" ref="634284ee3a136d6ad61bc5d917ebb82f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_PROTO_TCP 6 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00062">62</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="76212e7ef71a99646040d2e454388bed"></a><!-- doxytag: member="ip.h::IP_PROTO_UDP" ref="76212e7ef71a99646040d2e454388bed" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_PROTO_UDP 17 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00060">60</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="3ef2b8a1cb4f7acee3142337438dfd0d"></a><!-- doxytag: member="ip.h::IP_PROTO_UDPLITE" ref="3ef2b8a1cb4f7acee3142337438dfd0d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_PROTO_UDPLITE 170 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00061">61</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="895709708f8f909cf7b7459491d549e7"></a><!-- doxytag: member="ip.h::IP_RF" ref="895709708f8f909cf7b7459491d549e7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IP_RF 0x8000 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00081">81</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="773b96f54c75b35bcd24e7f857fcf988"></a><!-- doxytag: member="ip.h::IPH_CHKSUM" ref="773b96f54c75b35bcd24e7f857fcf988" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_CHKSUM </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((hdr)->_chksum)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00102">102</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="ec30403fb98b013bd094688de55cdaef"></a><!-- doxytag: member="ip.h::IPH_CHKSUM_SET" ref="ec30403fb98b013bd094688de55cdaef" args="(hdr, chksum)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_CHKSUM_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">chksum </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_chksum = (chksum)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00110">110</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="7c60caeb708571a07a44309c10ec3a01"></a><!-- doxytag: member="ip.h::IPH_HL" ref="7c60caeb708571a07a44309c10ec3a01" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_HL </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((NTOHS((hdr)->_v_hl_tos) >> 8) & 0x0f)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00095">95</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="e79eaecc0bf9e4dbb9e47ea56ad2157a"></a><!-- doxytag: member="ip.h::IPH_ID" ref="e79eaecc0bf9e4dbb9e47ea56ad2157a" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_ID </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((hdr)->_id)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00098">98</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="3b2c57b6a9dc9cc32fc2f145a96bbf8f"></a><!-- doxytag: member="ip.h::IPH_ID_SET" ref="3b2c57b6a9dc9cc32fc2f145a96bbf8f" args="(hdr, id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_ID_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="elf_8c.html#ffd99ec09f321a630ec19d0333e291cd">id</a> </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_id = (<a class="el" href="elf_8c.html#ffd99ec09f321a630ec19d0333e291cd">id</a>)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00106">106</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="ec0328fe4711b8c1ef4dd6709e4fd6d5"></a><!-- doxytag: member="ip.h::IPH_LEN" ref="ec0328fe4711b8c1ef4dd6709e4fd6d5" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_LEN </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((hdr)->_len)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00097">97</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="069cb9b3765c4bdd63d13efb2df0206e"></a><!-- doxytag: member="ip.h::IPH_LEN_SET" ref="069cb9b3765c4bdd63d13efb2df0206e" args="(hdr, len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_LEN_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">len </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_len = (len)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00105">105</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="559dce3878f1d6a46bcb4cb312962397"></a><!-- doxytag: member="ip.h::IPH_OFFSET" ref="559dce3878f1d6a46bcb4cb312962397" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_OFFSET </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((hdr)->_offset)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00099">99</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="4c2189e1400dca1c0f785de96ceda2b6"></a><!-- doxytag: member="ip.h::IPH_OFFSET_SET" ref="4c2189e1400dca1c0f785de96ceda2b6" args="(hdr, off)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_OFFSET_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">off </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_offset = (off)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00107">107</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="a2de6f9d35337b4be67d799805665e11"></a><!-- doxytag: member="ip.h::IPH_PROTO" ref="a2de6f9d35337b4be67d799805665e11" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_PROTO </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (NTOHS((hdr)->_ttl_proto) & 0xff)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00101">101</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="49753f7668f741b1877340bff6fb97c3"></a><!-- doxytag: member="ip.h::IPH_PROTO_SET" ref="49753f7668f741b1877340bff6fb97c3" args="(hdr, proto)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_PROTO_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">proto </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_ttl_proto = HTONS((proto) | (IPH_TTL(hdr) << 8))</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00109">109</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="13fb5476ab97db9c5de6c1f5ca0d82e6"></a><!-- doxytag: member="ip.h::IPH_TOS" ref="13fb5476ab97db9c5de6c1f5ca0d82e6" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_TOS </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> HTONS((NTOHS((hdr)->_v_hl_tos) & 0xff))</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00096">96</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="0d8238411ce35a007170f652e62209b3"></a><!-- doxytag: member="ip.h::IPH_TTL" ref="0d8238411ce35a007170f652e62209b3" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_TTL </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (NTOHS((hdr)->_ttl_proto) >> 8)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00100">100</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="a0e49f03bd4c3144e3548a0db72d1deb"></a><!-- doxytag: member="ip.h::IPH_TTL_SET" ref="a0e49f03bd4c3144e3548a0db72d1deb" args="(hdr, ttl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_TTL_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ttl </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_ttl_proto = HTONS(IPH_PROTO(hdr) | ((ttl) << 8))</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00108">108</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="05a9e8ecf4eff38244b4c13c7e70094c"></a><!-- doxytag: member="ip.h::IPH_V" ref="05a9e8ecf4eff38244b4c13c7e70094c" args="(hdr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_V </td> <td>(</td> <td class="paramtype">hdr </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (NTOHS((hdr)->_v_hl_tos) >> 12)</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00094">94</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <a class="anchor" name="65a5ff431603908b698b69ff5151f888"></a><!-- doxytag: member="ip.h::IPH_VHLTOS_SET" ref="65a5ff431603908b698b69ff5151f888" args="(hdr, v, hl, tos)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define IPH_VHLTOS_SET </td> <td>(</td> <td class="paramtype">hdr, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">v, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">hl, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tos </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> (hdr)->_v_hl_tos = HTONS(((v) << 12) | ((hl) << 8) | (tos))</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="ipv4_2ip_8h-source.html#l00104">104</a> of file <a class="el" href="ipv4_2ip_8h-source.html">ip.h</a>. </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="8be0857c3bd133182ecd9e0dd700f7c7"></a><!-- doxytag: member="ip.h::ip_init" ref="8be0857c3bd133182ecd9e0dd700f7c7" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ip_init </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Referenced by <a class="el" href="tcpip_8c-source.html#l00068">tcpip_thread()</a>. </div> </div><p> <a class="anchor" name="3c420dab0c6760df099a2d688fa42a26"></a><!-- doxytag: member="ip.h::ip_input" ref="3c420dab0c6760df099a2d688fa42a26" args="(struct pbuf *p, struct netif *inp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="err_8h.html#b7190f3da5c85931fc059e0312bc1407">err_t</a> ip_input </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structpbuf.html">pbuf</a> * </td> <td class="paramname"> <em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structnetif.html">netif</a> * </td> <td class="paramname"> <em>inp</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Referenced by <a class="el" href="tcpip_8c-source.html#l00068">tcpip_thread()</a>. </div> </div><p> <a class="anchor" name="b3e95b26f169c5d3ed21c88553052a3d"></a><!-- doxytag: member="ip.h::ip_lookup" ref="b3e95b26f169c5d3ed21c88553052a3d" args="(void *header, struct netif *inp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> ip_lookup </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>header</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structnetif.html">netif</a> * </td> <td class="paramname"> <em>inp</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c360020282b7630ac9e9780e7a5bb758"></a><!-- doxytag: member="ip.h::ip_output" ref="c360020282b7630ac9e9780e7a5bb758" args="(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, uInt8 ttl, uInt8 proto)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="err_8h.html#b7190f3da5c85931fc059e0312bc1407">err_t</a> ip_output </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structpbuf.html">pbuf</a> * </td> <td class="paramname"> <em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> </td> <td class="paramname"> <em>ttl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> </td> <td class="paramname"> <em>proto</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="786ad4beeca101382b74feb53bd3b05d"></a><!-- doxytag: member="ip.h::ip_output_if" ref="786ad4beeca101382b74feb53bd3b05d" args="(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, uInt8 ttl, uInt8 proto, struct netif *netif)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="err_8h.html#b7190f3da5c85931fc059e0312bc1407">err_t</a> ip_output_if </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structpbuf.html">pbuf</a> * </td> <td class="paramname"> <em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> </td> <td class="paramname"> <em>ttl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> </td> <td class="paramname"> <em>proto</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structnetif.html">netif</a> * </td> <td class="paramname"> <em>netif</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="27aecc05841bdece5d6bed810cc0ce71"></a><!-- doxytag: member="ip.h::ip_route" ref="27aecc05841bdece5d6bed810cc0ce71" args="(struct ip_addr *dest)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structnetif.html">netif</a>* ip_route </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="paramname"> <em>dest</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="cc2e6fec3924fc843f79b23e2562e2c6"></a><!-- doxytag: member="ip.h::PACK_STRUCT_STRUCT" ref="cc2e6fec3924fc843f79b23e2562e2c6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structip__hdr.html">ip_hdr</a> <a class="el" href="arp_8c.html#b335643ec08d519342c9d3834091d6e0">PACK_STRUCT_STRUCT</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr size="1"><address style="align: right;"><small>Generated on Tue Dec 12 08:52:10 2006 for UbixOS V2 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address> </body> </html>