<!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>