#define TCPIP_PROTOCOL_NAME L"Tcpip"
#endif /* _NTTEST_ */
-/* TCP/UDP/RawIP IOCTL code definitions */
-
-#define FSCTL_TCP_BASE FILE_DEVICE_NETWORK
-
-#define _TCP_CTL_CODE(Function, Method, Access) \
- CTL_CODE(FSCTL_TCP_BASE, Function, Method, Access)
-
-#define IOCTL_TCP_QUERY_INFORMATION_EX \
- _TCP_CTL_CODE(0, METHOD_NEITHER, FILE_ANY_ACCESS)
-
-#define IOCTL_TCP_SET_INFORMATION_EX \
- _TCP_CTL_CODE(1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-#define IOCTL_SET_IP_ADDRESS \
- _TCP_CTL_CODE(14, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-#define IOCTL_DELETE_IP_ADDRESS \
- _TCP_CTL_CODE(16, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
/* Unique error values for log entries */
#define TI_ERROR_DRIVERENTRY 0
-/* Internal status codes */
-#define IP_SUCCESS 0x0000 /* Successful */
-#define IP_NO_RESOURCES 0x0001 /* Not enough free resources */
-#define IP_NO_ROUTE_TO_DESTINATION 0x0002 /* No route to destination */
-
/* EOF */
* NdisPacket = Pointer to NDIS packet to send
* Offset = Offset in packet where packet data starts
* LinkAddress = Pointer to link address
- * Type = LAN protocol type (unused)
+ * Type = LAN protocol type
*/
{
PCHAR PacketBuffer;
ASSERT_KM_POINTER(PC(NdisPacket));
ASSERT_KM_POINTER(PC(NdisPacket)->DLComplete);
+ if (Type != LAN_PROTO_IPv4)
+ {
+ TI_DbgPrint(MAX_TRACE, ("Received unsupported protocol %u\n", Type));
+ PC(NdisPacket)->DLComplete(PC(NdisPacket)->Context, NdisPacket, NDIS_STATUS_NOT_SUPPORTED);
+ return;
+ }
+
TI_DbgPrint(MAX_TRACE, ("Called (NdisPacket = %x)\n", NdisPacket));
GetDataPtr( NdisPacket, 0, &PacketBuffer, &PacketLength );
Loopback = IPCreateInterface(&BindInfo);
if (!Loopback) return NDIS_STATUS_RESOURCES;
-
+
Loopback->MTU = 16384;
Loopback->Name.Buffer = L"Loopback";
AddrInitIPv4(&Loopback->Broadcast, LOOPBACK_BCASTADDR_IPv4);
IPRegisterInterface(Loopback);
-
+
IPAddInterfaceRoute(Loopback);
TI_DbgPrint(MAX_TRACE, ("Leaving.\n"));