User-Mode Prototypes in Kernel-Mode Protocol Stacks
First Claim
1. One or more tangible device-readable media with device-executable instructions for performing steps comprising:
- defining at least a first interception point in a kernel-mode module which forms part of a data path for packets;
intercepting a first packet at the first interception point;
sending an intercepted packet to a user-mode module, said intercepted packet comprising one of the first packet and a copy of the first packet;
receiving, at an interception point in the data path, the intercepted packet after processing by the user-mode module;
inserting the received packet into the data path.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods of enabling user-mode prototypes in kernel-mode protocol stacks are described. A protocol stack comprises a set of kernel-mode modules. The protocol stack defines a data path for packets. At least one interception point is defined in a kernel-mode module at which a packet can be intercepted and/or inserted. In an embodiment, each packet intercepted at the interception point, or a copy of said packet, is sent to a user-mode module. The user-mode module processes the packet in some way and then returns the packet to the same, or a different, interception point in the data path. In this way, a user-mode module (which is easier to program) can be used to prototype functionality of a kernel-mode module without requiring kernel-mode code to be written.
72 Citations
20 Claims
-
1. One or more tangible device-readable media with device-executable instructions for performing steps comprising:
-
defining at least a first interception point in a kernel-mode module which forms part of a data path for packets; intercepting a first packet at the first interception point; sending an intercepted packet to a user-mode module, said intercepted packet comprising one of the first packet and a copy of the first packet; receiving, at an interception point in the data path, the intercepted packet after processing by the user-mode module; inserting the received packet into the data path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. One or more tangible device-readable media with device-executable instructions for implementing a user-mode module in a system also comprising a set of kernel-mode modules which form a data path for packets, the device-executable instructions performing steps comprising:
-
receiving a packet, the received packet comprising one of a packet which has been intercepted by a first interception point in one of the kernel-mode modules and a copy of said packet; selecting a form of processing for the received packet, wherein the processing is selected from at least one of; sending the packet unmodified to the first interception point; sending the packet unmodified to a different interception point; modifying the packet and sending the packet to the first interception point; and modifying the packet and sending the packet to a different interception point. - View Dependent Claims (19)
-
-
20. A method of prototyping a kernel-mode program module in software comprising a set of kernel-mode program modules and at least one user-mode program module, the set of kernel-mode program modules forming a protocol stack with a data path, the method comprising:
-
creating a prototype user-mode program module having functionality which is to be prototyped; adding at least a first interception point and a second interception point at different positions along the data path through the protocol stack; forwarding, from the first interception point to the prototype user-mode program module, packets intercepted in the data path; processing forwarded packets at the prototype user-mode program module to form processed packets; returning processed packets to the second interception point; and inserting the processed packets into the data path at the second interception point.
-
Specification