<!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/ip.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.3 --> <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#a0">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#a1">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#a2">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#a3">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#a4">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#a5">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#a6">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#a7">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#a8">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#a9">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#a10">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#a11">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#a12">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#a13">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#a14">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#a15">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#a16">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#a17">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#a18">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#a19">IPH_VHLTOS_SET</a>(hdr, v, hl, tos) (hdr)->_v_hl_tos = HTONS(((v) << 12) | ((hl) << 8) | (tos))</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#a20">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#a21">IPH_ID_SET</a>(hdr, id) (hdr)->_id = (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#a22">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#a23">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#a24">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#a25">IPH_CHKSUM_SET</a>(hdr, chksum) (hdr)->_chksum = (chksum)</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#a27">ip_init</a> (void)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="types_8h.html#a1">uInt8</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip_8h.html#a28">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="structnetif.html">netif</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip_8h.html#a29">ip_route</a> (struct <a class="el" href="structip__addr.html">ip_addr</a> *dest)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="err_8h.html#a12">err_t</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip_8h.html#a30">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="err_8h.html#a12">err_t</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip_8h.html#a31">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#a1">uInt8</a> ttl, <a class="el" href="types_8h.html#a1">uInt8</a> proto)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="err_8h.html#a12">err_t</a> </td><td class="memItemRight" valign=bottom><a class="el" href="ipv4_2ip_8h.html#a32">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#a1">uInt8</a> ttl, <a class="el" href="types_8h.html#a1">uInt8</a> proto, struct <a class="el" href="structnetif.html">netif</a> *<a class="el" href="structnetif.html">netif</a>)</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#a26">PACK_STRUCT_STRUCT</a></td></tr> </table> <hr><h2>Define Documentation</h2> <a name="a7" doxytag="ipv4/ip.h::IP_DF"></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 IP_DF 0x4000 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a5" doxytag="ipv4/ip.h::IP_HDRINCL"></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 IP_HDRINCL NULL </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a0" doxytag="ipv4/ip.h::IP_HLEN"></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 IP_HLEN 20 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a8" doxytag="ipv4/ip.h::IP_MF"></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 IP_MF 0x2000 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a9" doxytag="ipv4/ip.h::IP_OFFMASK"></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 IP_OFFMASK 0x1fff </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a1" doxytag="ipv4/ip.h::IP_PROTO_ICMP"></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 IP_PROTO_ICMP 1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a4" doxytag="ipv4/ip.h::IP_PROTO_TCP"></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 IP_PROTO_TCP 6 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a2" doxytag="ipv4/ip.h::IP_PROTO_UDP"></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 IP_PROTO_UDP 17 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a3" doxytag="ipv4/ip.h::IP_PROTO_UDPLITE"></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 IP_PROTO_UDPLITE 170 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a6" doxytag="ipv4/ip.h::IP_RF"></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 IP_RF 0x8000 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a18" doxytag="ipv4/ip.h::IPH_CHKSUM"></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 IPH_CHKSUM</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> ((hdr)->_chksum) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a25" doxytag="ipv4/ip.h::IPH_CHKSUM_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 IPH_CHKSUM_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>chksum </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_chksum = (chksum) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a11" doxytag="ipv4/ip.h::IPH_HL"></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 IPH_HL</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)->_v_hl_tos) >> 8) & 0x0f) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a14" doxytag="ipv4/ip.h::IPH_ID"></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 IPH_ID</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> ((hdr)->_id) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a21" doxytag="ipv4/ip.h::IPH_ID_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 IPH_ID_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>id </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_id = (id) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a13" doxytag="ipv4/ip.h::IPH_LEN"></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 IPH_LEN</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> ((hdr)->_len) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a20" doxytag="ipv4/ip.h::IPH_LEN_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 IPH_LEN_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>len </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_len = (len) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a15" doxytag="ipv4/ip.h::IPH_OFFSET"></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 IPH_OFFSET</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> ((hdr)->_offset) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a22" doxytag="ipv4/ip.h::IPH_OFFSET_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 IPH_OFFSET_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>off </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_offset = (off) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a17" doxytag="ipv4/ip.h::IPH_PROTO"></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 IPH_PROTO</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)->_ttl_proto) & 0xff) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a24" doxytag="ipv4/ip.h::IPH_PROTO_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 IPH_PROTO_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>proto </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_ttl_proto = HTONS((proto) | (IPH_TTL(hdr) << 8)) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a12" doxytag="ipv4/ip.h::IPH_TOS"></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 IPH_TOS</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> HTONS((NTOHS((hdr)->_v_hl_tos) & 0xff)) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a16" doxytag="ipv4/ip.h::IPH_TTL"></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 IPH_TTL</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)->_ttl_proto) >> 8) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a23" doxytag="ipv4/ip.h::IPH_TTL_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 IPH_TTL_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>ttl </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_ttl_proto = HTONS(IPH_PROTO(hdr) | ((ttl) << 8)) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a10" doxytag="ipv4/ip.h::IPH_V"></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 IPH_V</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)->_v_hl_tos) >> 12) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a19" doxytag="ipv4/ip.h::IPH_VHLTOS_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 IPH_VHLTOS_SET</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hdr, <tr> <td></td> <td></td> <td class="md" nowrap>v, <tr> <td></td> <td></td> <td class="md" nowrap>hl, <tr> <td></td> <td></td> <td class="md" nowrap>tos </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hdr)->_v_hl_tos = HTONS(((v) << 12) | ((hl) << 8) | (tos)) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Function Documentation</h2> <a name="a27" doxytag="ipv4/ip.h::ip_init"></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 ip_init </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a30" doxytag="ipv4/ip.h::ip_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"> <a class="el" href="err_8h.html#a12">err_t</a> ip_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="a28" doxytag="ipv4/ip.h::ip_lookup"></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"> <a class="el" href="types_8h.html#a1">uInt8</a> ip_lookup </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void * </td> <td class="mdname" nowrap> <em>header</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="a31" doxytag="ipv4/ip.h::ip_output"></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"> <a class="el" href="err_8h.html#a12">err_t</a> ip_output </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="structip__addr.html">ip_addr</a> * </td> <td class="mdname" nowrap> <em>src</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="mdname" nowrap> <em>dest</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="types_8h.html#a1">uInt8</a> </td> <td class="mdname" nowrap> <em>ttl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="types_8h.html#a1">uInt8</a> </td> <td class="mdname" nowrap> <em>proto</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="a32" doxytag="ipv4/ip.h::ip_output_if"></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"> <a class="el" href="err_8h.html#a12">err_t</a> ip_output_if </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="structip__addr.html">ip_addr</a> * </td> <td class="mdname" nowrap> <em>src</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="mdname" nowrap> <em>dest</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="types_8h.html#a1">uInt8</a> </td> <td class="mdname" nowrap> <em>ttl</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="types_8h.html#a1">uInt8</a> </td> <td class="mdname" nowrap> <em>proto</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>netif</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="a29" doxytag="ipv4/ip.h::ip_route"></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="structnetif.html">netif</a>* ip_route </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">struct <a class="el" href="structip__addr.html">ip_addr</a> * </td> <td class="mdname1" valign="top" nowrap> <em>dest</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></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="a26" doxytag="ipv4/ip.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="structip__hdr.html">ip_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>