00001 #ifndef _IP_H 00002 #define _IP_H 00003 00004 /* 00005 * Copyright (C) 2001-2002 by egnite Software GmbH. All rights reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * 1. Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 2. Redistributions in binary form must reproduce the above copyright 00014 * notice, this list of conditions and the following disclaimer in the 00015 * documentation and/or other materials provided with the distribution. 00016 * 3. All advertising materials mentioning features or use of this 00017 * software must display the following acknowledgement: 00018 * 00019 * This product includes software developed by egnite Software GmbH 00020 * and its contributors. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS 00023 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00024 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00025 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE 00026 * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00027 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00028 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 00029 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 00030 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00031 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 00032 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00033 * SUCH DAMAGE. 00034 * 00035 * For additional information see http://www.ethernut.de/ 00036 * 00037 * - 00038 * Portions Copyright (c) 1993 by Digital Equipment Corporation. 00039 * 00040 * Permission to use, copy, modify, and distribute this software for any 00041 * purpose with or without fee is hereby granted, provided that the above 00042 * copyright notice and this permission notice appear in all copies, and that 00043 * the name of Digital Equipment Corporation not be used in advertising or 00044 * publicity pertaining to distribution of the document or software without 00045 * specific, written prior permission. 00046 * 00047 * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 00048 * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 00049 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT 00050 * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 00051 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 00052 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 00053 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 00054 * SOFTWARE. 00055 */ 00056 00057 /* 00058 * $Log: ip.h,v $ 00059 * Revision 1.2 2003/01/24 12:01:07 przemko 00060 * Obciecie dosowych znakow konca lini 00061 * 00062 * Revision 1.1.1.1 2002/12/07 07:16:53 marwi 00063 * 00064 * 00065 * Revision 1.2 2002/08/01 19:50:38 harald 00066 * First public release 00067 * 00068 * Revision 1.1 2002/08/01 17:34:30 harald 00069 * First check in 00070 * 00071 */ 00072 00073 #include "types.h" 00074 00079 00080 #define INADDR_BROADCAST (u_long)0xffffffff 00081 00082 /* 00083 * Protocols 00084 */ 00085 #define IPPROTO_IP 0 00086 #define IPPROTO_ICMP 1 00087 #define IPPROTO_TCP 6 00088 #define IPPROTO_UDP 17 00090 #define IPVERSION 4 00092 #define IP_DF 0x4000 00093 #define IP_MF 0x2000 00094 #define IP_OFFMASK 0x1fff 00096 typedef struct ip { 00097 u_char ip_hl:4, 00098 ip_v:4; 00099 u_char ip_tos; 00100 short ip_len; 00101 u_short ip_id; 00102 short ip_off; 00103 u_char ip_ttl; 00104 u_char ip_p; 00105 u_short ip_sum; 00106 u_long ip_src; 00107 u_long ip_dst; 00108 } IPHDR; 00109 00112 extern u_short IpChkSum(u_short partial_csum, void *buf, u_short count); 00113 extern int IpInput(u_char proto, u_short tms); 00114 extern int IpOutput(u_long dst, u_char proto, u_short len); 00115 00116 #endif