Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenreceive.h
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS TCP/IP protocol driver 00004 * FILE: include/receive.h 00005 * PURPOSE: Internet Protocol receive prototypes 00006 */ 00007 00008 #pragma once 00009 00010 #include <ip.h> 00011 00012 /* Number of seconds before destroying the IPDR */ 00013 #define MAX_TIMEOUT_COUNT 3 00014 00015 /* IP datagram fragment descriptor. Used to store IP datagram fragments */ 00016 typedef struct IP_FRAGMENT { 00017 LIST_ENTRY ListEntry; /* Entry on list */ 00018 PNDIS_PACKET Packet; /* NDIS packet containing fragment data */ 00019 BOOLEAN ReturnPacket; /* States whether to call NdisReturnPackets */ 00020 UINT PacketOffset; /* Offset into NDIS packet where data is */ 00021 UINT Offset; /* Offset into datagram where this fragment is */ 00022 UINT Size; /* Size of this fragment */ 00023 } IP_FRAGMENT, *PIP_FRAGMENT; 00024 00025 /* IP datagram hole descriptor. Used to reassemble IP datagrams */ 00026 typedef struct IPDATAGRAM_HOLE { 00027 LIST_ENTRY ListEntry; /* Entry on list */ 00028 UINT First; /* Offset of first octet of the hole */ 00029 UINT Last; /* Offset of last octet of the hole */ 00030 } IPDATAGRAM_HOLE, *PIPDATAGRAM_HOLE; 00031 00032 /* IP datagram reassembly information */ 00033 typedef struct IPDATAGRAM_REASSEMBLY { 00034 LIST_ENTRY ListEntry; /* Entry on list */ 00035 KSPIN_LOCK Lock; /* Protecting spin lock */ 00036 UINT DataSize; /* Size of datagram data area */ 00037 IP_ADDRESS SrcAddr; /* Source address */ 00038 IP_ADDRESS DstAddr; /* Destination address */ 00039 UCHAR Protocol; /* Internet Protocol number */ 00040 USHORT Id; /* Identification number */ 00041 PIP_HEADER IPv4Header; /* Pointer to IP header */ 00042 UINT HeaderSize; /* Length of IP header */ 00043 LIST_ENTRY FragmentListHead; /* IP fragment list */ 00044 LIST_ENTRY HoleListHead; /* IP datagram hole list */ 00045 UINT TimeoutCount; /* Timeout counter */ 00046 } IPDATAGRAM_REASSEMBLY, *PIPDATAGRAM_REASSEMBLY; 00047 00048 00049 extern LIST_ENTRY ReassemblyListHead; 00050 extern KSPIN_LOCK ReassemblyListLock; 00051 extern NPAGED_LOOKASIDE_LIST IPDRList; 00052 extern NPAGED_LOOKASIDE_LIST IPFragmentList; 00053 extern NPAGED_LOOKASIDE_LIST IPHoleList; 00054 00055 00056 VOID IPFreeReassemblyList( 00057 VOID); 00058 00059 VOID IPDatagramReassemblyTimeout( 00060 VOID); 00061 00062 VOID IPReceive( 00063 PIP_INTERFACE IF, 00064 PIP_PACKET IPPacket); 00065 00066 /* EOF */ Generated on Tue May 22 2012 04:31:57 for ReactOS by
1.7.6.1
|