Go to the source code of this file.
◆ ADE_ADDRMASK
Definition at line 112 of file ip.h.
◆ ADE_BROADCAST
Definition at line 111 of file ip.h.
◆ ADE_MULTICAST
Definition at line 114 of file ip.h.
◆ ADE_POINTOPOINT
Definition at line 113 of file ip.h.
◆ ADE_UNICAST
Definition at line 110 of file ip.h.
◆ FOURCC
Definition at line 12 of file ip.h.
◆ IP_ADDRESS_V4
Definition at line 32 of file ip.h.
◆ IP_ADDRESS_V6
Definition at line 33 of file ip.h.
◆ IP_DEFAULT_LINK_SPEED
#define IP_DEFAULT_LINK_SPEED 10000 |
Definition at line 201 of file ip.h.
◆ IP_PACKET_FLAG_RAW
Definition at line 93 of file ip.h.
◆ IP_PROTOCOL_TABLE_SIZE
#define IP_PROTOCOL_TABLE_SIZE 0x100 |
Definition at line 179 of file ip.h.
◆ IP_TIMEOUT
Definition at line 200 of file ip.h.
◆ IPPROTO_ICMP
Definition at line 194 of file ip.h.
◆ IPPROTO_IGMP
Definition at line 195 of file ip.h.
◆ IPPROTO_RAW
Definition at line 192 of file ip.h.
◆ IPPROTO_TCP
Definition at line 196 of file ip.h.
◆ IPPROTO_UDP
Definition at line 197 of file ip.h.
◆ IPv4_DF_MASK
Definition at line 67 of file ip.h.
◆ IPv4_FRAGOFS_MASK
Definition at line 65 of file ip.h.
◆ IPv4_MAX_HEADER_SIZE
#define IPv4_MAX_HEADER_SIZE 60 |
Definition at line 68 of file ip.h.
◆ IPv4_MF_MASK
Definition at line 66 of file ip.h.
◆ LOOPBACK_ADDRESS_IPv4
Definition at line 186 of file ip.h.
◆ LOOPBACK_ADDRMASK_IPv4
Definition at line 188 of file ip.h.
◆ LOOPBACK_BCASTADDR_IPv4
Definition at line 187 of file ip.h.
◆ PC
Definition at line 106 of file ip.h.
◆ IP_ADDRESS
◆ IP_HEADER
◆ IP_INTERFACE
◆ IP_PACKET
◆ IP_PROTOCOL_HANDLER
Definition at line 181 of file ip.h.
◆ IP_SET_ADDRESS
◆ IPv4_HEADER
◆ IPv4_RAW_ADDRESS
Definition at line 15 of file ip.h.
◆ IPv6_HEADER
◆ IPv6_RAW_ADDRESS
typedef USHORT IPv6_RAW_ADDRESS[8] |
Definition at line 19 of file ip.h.
◆ LL_TRANSMIT_ROUTINE
Definition at line 118 of file ip.h.
◆ LLIP_BIND_INFO
◆ OBJECT_FREE_ROUTINE
Definition at line 10 of file ip.h.
◆ PACKET_COMPLETION_ROUTINE
Definition at line 71 of file ip.h.
◆ PACKET_CONTEXT
◆ PIP_ADDRESS
◆ PIP_HEADER
◆ PIP_INTERFACE
◆ PIP_PACKET
◆ PIP_SET_ADDRESS
◆ PIPv4_HEADER
◆ PIPv4_RAW_ADDRESS
Definition at line 16 of file ip.h.
◆ PIPv6_HEADER
◆ PIPv6_RAW_ADDRESS
Definition at line 20 of file ip.h.
◆ PLLIP_BIND_INFO
◆ PPACKET_CONTEXT
◆ PSEND_RECV_STATS
◆ SEND_RECV_STATS
◆ IPAddInterfaceRoute()
Definition at line 262 of file ip.c.
262 {
265
266
270 if (!NCE) {
272 return;
273 }
274
276
279 }
280
281
282
285
287}
VOID AddrWidenAddress(PIP_ADDRESS Network, PIP_ADDRESS Source, PIP_ADDRESS Netmask)
BOOLEAN ARPTransmit(PIP_ADDRESS Address, PVOID LinkAddress, PIP_INTERFACE Interface)
#define TI_DbgPrint(_t_, _x_)
VOID TCPUpdateInterfaceIPInformation(PIP_INTERFACE IF)
_Must_inspect_result_ _Out_ PNDIS_STATUS _Outptr_result_bytebuffer_to_ NetworkAddressLength PVOID * NetworkAddress
PNEIGHBOR_CACHE_ENTRY NBAddNeighbor(PIP_INTERFACE Interface, PIP_ADDRESS Address, PVOID LinkAddress, UINT LinkAddressLength, UCHAR Type, UINT EventTimer)
PFIB_ENTRY RouterAddRoute(PIP_ADDRESS NetworkAddress, PIP_ADDRESS Netmask, PNEIGHBOR_CACHE_ENTRY Router, UINT Metric)
Referenced by DispTdiSetIPAddress(), LoopRegisterAdapter(), and ReadIpConfiguration().
◆ IPCreateInterface()
Definition at line 182 of file ip.c.
192{
194
196
197#if DBG
201 A[0],
A[1],
A[2],
A[3],
A[4],
A[5]));
202 }
203#endif
204
207 if (!IF) {
210 }
211
213
221
226
228
234 }
235
237
239
240 return IF;
241}
VOID TcpipInitializeSpinLock(PKSPIN_LOCK SpinLock)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define ExAllocatePool(type, size)
VOID InsertTDIInterfaceEntity(PIP_INTERFACE Interface)
VOID FreeIF(PVOID Object)
VOID TCPRegisterInterface(PIP_INTERFACE IF)
#define ExFreePoolWithTag(_P, _T)
LL_TRANSMIT_ROUTINE Transmit
LL_TRANSMIT_ROUTINE Transmit
#define RtlZeroMemory(Destination, Length)
Referenced by BindAdapter(), LoopRegisterAdapter(), and main().
◆ IPCreatePacket()
◆ IPDestroyInterface()
◆ IPDispatchProtocol()
Definition at line 142 of file ip.c.
154{
157
158 switch (IPPacket->
Type) {
162 break;
164
166 return;
167 default:
169 return;
170 }
171
173
175 {
176
178 }
179}
#define AddrInitIPv4(IPAddress, RawAddress)
#define IP_PROTOCOL_TABLE_SIZE
struct IPv4_HEADER * PIPv4_HEADER
IP_PROTOCOL_HANDLER ProtocolTable[IP_PROTOCOL_TABLE_SIZE]
VOID NBResetNeighborTimeout(PIP_ADDRESS Address)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Referenced by ProcessFragment().
◆ IPInitializePacket()
◆ IPRegisterInterface()
Definition at line 289 of file ip.c.
298{
300 UINT ChosenIndex = 0;
303
305
307
308
309 do {
310 IndexHasBeenChosen =
TRUE;
313 ChosenIndex++;
314 IndexHasBeenChosen =
FALSE;
315 }
317 } while( !IndexHasBeenChosen );
318
319 IF->
Index = ChosenIndex;
320
321
325
327
329}
VOID TcpipReleaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL Irql)
VOID TcpipInterlockedInsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Item, PKSPIN_LOCK Lock)
VOID TcpipAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL Irql)
KSPIN_LOCK InterfaceListLock
LIST_ENTRY InterfaceListHead
#define ForEachInterface(n)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Referenced by BindAdapter(), and LoopRegisterAdapter().
◆ IPRegisterProtocol()
◆ IPRemoveInterfaceRoute()
Definition at line 331 of file ip.c.
331 {
334
336 if (NCE)
337 {
340
342
344
346 }
347}
PCHAR A2S(PIP_ADDRESS Address)
PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor(PIP_ADDRESS Address, PIP_INTERFACE Interface)
VOID NBRemoveNeighbor(PNEIGHBOR_CACHE_ENTRY NCE)
NTSTATUS RouterRemoveRoute(PIP_ADDRESS Target, PIP_ADDRESS Router)
Referenced by DispTdiDeleteIPAddress(), DispTdiSetIPAddress(), and IPUnregisterInterface().
◆ IPShutdown()
Definition at line 473 of file ip.c.
480{
482
485
486
488
489
491
493
494
498
500
502}
VOID NTAPI ExDeleteNPagedLookasideList(IN PNPAGED_LOOKASIDE_LIST Lookaside)
NPAGED_LOOKASIDE_LIST IPHoleList
VOID IPFreeReassemblyList(VOID)
NPAGED_LOOKASIDE_LIST IPDRList
NPAGED_LOOKASIDE_LIST IPFragmentList
NTSTATUS RouterShutdown(VOID)
Referenced by TiUnload().
◆ IPStartup()
Definition at line 407 of file ip.c.
415{
417
419
420
425 0,
428 0);
429
434 0,
437 0);
438
443 0,
446 0);
447
448
450
451
453
454
455
458
459
462
463
466
468
470}
#define InitializeListHead(ListHead)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LIST_ENTRY NetTableListHead
KSPIN_LOCK NetTableListLock
VOID IPRegisterProtocol(UINT ProtocolNumber, IP_PROTOCOL_HANDLER Handler)
VOID NTAPI ExInitializeNPagedLookasideList(IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate OPTIONAL, IN PFREE_FUNCTION Free OPTIONAL, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth)
LIST_ENTRY ReassemblyListHead
KSPIN_LOCK ReassemblyListLock
NTSTATUS RouterStartup(VOID)
Referenced by DriverEntry(), and main().
◆ IPTimeoutDpcFn()
Definition at line 112 of file ip.c.
126{
128
130 {
132 }
133
134
136
137
139}
VOID LogActiveObjects(VOID)
VOID IPDatagramReassemblyTimeout(VOID)
Referenced by DriverEntry().
◆ IPUnregisterInterface()
◆ InterfaceListHead
◆ InterfaceListLock
◆ NetTableListHead
◆ NetTableListLock