:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / drivers / net / tcpip / include / transmit.h
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS TCP/IP protocol driver
4  * FILE:        include/transmit.h
5  * PURPOSE:     Internet Protocol transmit prototypes
6  */
7 #ifndef __TRANSMIT_H
8 #define __TRANSMIT_H
9
10 #include <neighbor.h>
11 #include <route.h>
12 #include <ip.h>
13
14
15 /* IP fragment context information */
16 typedef struct IPFRAGMENT_CONTEXT {
17     struct IPFRAGMENT_CONTEXT *Next;    /* Pointer to next in list */
18     PNDIS_PACKET Datagram;              /* Pointer to original NDIS packet */
19     PVOID DatagramData;                 /* Pointer to datagram data */
20     UINT HeaderSize;                    /* IP datagram header size */
21     PNDIS_PACKET NdisPacket;            /* Pointer to NDIS packet */
22     PNDIS_BUFFER NdisBuffer;            /* Pointer to NDIS buffer */
23     PVOID Header;                       /* Pointer to IP header in fragment buffer */
24     PVOID Data;                         /* Pointer to fragment data */
25     UINT Position;                      /* Current fragment offset */
26     UINT BytesLeft;                     /* Number of bytes left to send */
27     UINT PathMTU;                       /* Path Maximum Transmission Unit */
28     PNEIGHBOR_CACHE_ENTRY NCE;          /* Pointer to NCE to use */
29 } IPFRAGMENT_CONTEXT, *PIPFRAGMENT_CONTEXT;
30
31
32 VOID IPSendComplete(
33     PVOID Context,
34     PNDIS_PACKET NdisPacket,
35     NDIS_STATUS NdisStatus);
36
37 NTSTATUS IPSendFragment(
38     PNDIS_PACKET NdisPacket,
39     PNEIGHBOR_CACHE_ENTRY NCE);
40
41 NTSTATUS IPSendDatagram(
42     PIP_PACKET IPPacket,
43     PROUTE_CACHE_NODE RCN);
44
45 #endif /* __TRANSMIT_H */
46
47 /* EOF */