net/ip.h

00001 #ifndef __IP_H__
00002 
00003         #define __IP_H__
00004 
00005 
00006 // berechnet die Broadcast-Adresse bei gegebener IP-Adresse und Netzmaske
00007 #define CALC_BROADCAST_ADDR( ip, mask ) ( ip | ~mask )
00008 
00009 // Testet, ob eine Adresse die Broadcast-Adresse is (zu einer Netzwerkmaske)
00010 #define IS_BROADCAST_ADDR( ip, mask ) ( ( ip & ~mask ) == ~mask)
00011 
00012 // Schaut ob Ziel-IP in diesen Subnet liegt 
00013 #define IS_ADDR_IN_MY_SUBNET( ip, mask ) ( ( ip & ~mask ) == ( myIP & ~mask ) )
00014 
00015         extern unsigned long myIP;
00016 
00017         extern unsigned long Netmask;
00018 
00019         extern unsigned long Gateway;
00020 
00021         extern unsigned long DNSserver;
00022 
00023         void ip( unsigned int packet_lenght , unsigned char *buffer );
00024         void MakeIPheader( unsigned long SourceIP, unsigned char Protocoll, unsigned int Datalenght , unsigned char *ethernetbuffer );
00025 
00026         #define IP_HEADER_LENGHT 20
00027 
00028         union IP_ADDRESS {
00029                 unsigned char IPbyte[4];
00030                 unsigned long IP;
00031         };
00032         
00033         struct IP_header{
00034                 unsigned char IP_Version_Headerlen;
00035                 unsigned char IP_TOS;
00036                 unsigned int IP_Totallenght;
00037                 unsigned int IP_Identification;
00038                 unsigned char IP_Flags;
00039                 unsigned char IP_Fragmentoffset;
00040                 unsigned char IP_TTL;
00041                 unsigned char IP_Protocol;
00042                 unsigned int IP_Headerchecksum;
00043                 unsigned long IP_SourceIP;
00044                 unsigned long IP_DestinationIP;
00045         };
00046         
00047         #define PROTO_ICMP 0x01
00048         #define PROTO_TCP 0x06
00049         #define PROTO_UDP 0x11
00050         
00051 
00052 #endif

Erzeugt am Sun Sep 10 14:06:24 2006 für MikroEthernetBoard von  doxygen 1.4.6