System and method for layering drivers
First Claim
1. In a computer operating system capable of transferring a data packet along a data flow path from a transport layer driver to a network, a method for facilitating the transfer of the data packet from the transport layer driver to the network via a partitioned link layer device driver that includes at least one link layer intermediate driver and a lower link layer device driver, the partitioning of the link layer device driver allowing for the functionality of the link layer device driver to be adjusted by replacing a component of the link layer device driver rather than reconstructing the entire link layer device driver, said method comprising the following specific acts:
- providing an abstract interface to convey said data packet from said transport layer driver to said lower link layer device driver via said at least one link layer intermediate driver; and
configuring said abstract interface to receive the data packet from the transport layer driver and provide the data packet to the at least one link layer intermediate driver for further processing, the abstract interface further configured to receive the processed data packet from the at least one link layer intermediate driver, the abstract interface then providing the processed data packet to the lower link layer device driver, wherein said at least one link layer intermediate driver is incorporated into said data flow path.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for incorporating intermediate link layer drivers into a network protocol stack is presented. The system and method utilize an abstract interface for interfacing both inputs and outputs of intermediate drivers and for providing an interface for link layer device drivers. The abstract interface provides routing of data packets through the intermediate drivers and device drivers to facilitate the desired data flow. The abstract interface facilitates reuse and portability of intermediate drivers across varying computer platforms. Layering of intermediate drivers also accommodates data flow modification with minimal impact to existing drivers.
-
Citations
24 Claims
-
1. In a computer operating system capable of transferring a data packet along a data flow path from a transport layer driver to a network, a method for facilitating the transfer of the data packet from the transport layer driver to the network via a partitioned link layer device driver that includes at least one link layer intermediate driver and a lower link layer device driver, the partitioning of the link layer device driver allowing for the functionality of the link layer device driver to be adjusted by replacing a component of the link layer device driver rather than reconstructing the entire link layer device driver, said method comprising the following specific acts:
-
providing an abstract interface to convey said data packet from said transport layer driver to said lower link layer device driver via said at least one link layer intermediate driver; and
configuring said abstract interface to receive the data packet from the transport layer driver and provide the data packet to the at least one link layer intermediate driver for further processing, the abstract interface further configured to receive the processed data packet from the at least one link layer intermediate driver, the abstract interface then providing the processed data packet to the lower link layer device driver, wherein said at least one link layer intermediate driver is incorporated into said data flow path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
said abstract interface receiving link layer intermediate driver interconnection information upon installation of said link layer intermediate driver describing said data flow path; and
referencing said link layer intermediate driver interconnection information when determining where to convey said data through said data flow path.
-
-
5. The method for facilitating the transfer of the data packet as recited in claim 4, wherein said specific act of said abstract interface receiving link layer intermediate driver interconnection information further comprises a specific act of binding said link layer intermediate driver interconnection information into said abstract interface for use in said specific act of referencing said link layer intermediate driver interconnection information.
-
6. The method for facilitating the transfer of the data packet as recited in claim 1, wherein said link layer intermediate driver is further incorporated into a second data flow path.
-
7. The method for facilitating the transfer of the data packet as recited in claim 1, further comprising the following specific acts:
-
routing said data packet from said abstract interface to said link layer intermediate driver for processing into said processed data packet;
receiving said processed data packet at said abstract interface from said link layer intermediate driver; and
routing said processed data to said lower link layer device driver according to said driver interconnection information.
-
-
8. The method for facilitating the transfer of the data packet as recited in claim 1, further comprising a specific act of porting said link layer intermediate driver into a second data flow path of a second operating system comprised of said abstract interface.
-
9. The method for facilitating the transfer of the data packet as recited in claim 4, wherein said specific act of receiving link layer intermediate driver interconnection information further comprises the following specific acts:
-
establishing dependency relationships between said link layer intermediate driver and said lower link layer device driver; and
storing said dependency relationships for access by said operating system upon initialization.
-
-
10. In a computer operating system capable of transferring data along a data flow path to a first physical device, a method for facilitating the transfer of the data to the first physical device via a partitioned link layer device driver that includes at least one link layer intermediate driver and a lower link layer device driver, the partitioning of the link layer device driver allowing for the functionality of the link layer device driver to be adjusted by replacing a component of the link layer device driver rather than reconstructing the entire link layer device driver, said method comprising the following specific acts:
-
providing an abstract interface to said operating system to convey the data to said lower link layer device driver via said at least one link layer intermediate driver;
configuring said abstract interface to route the data through the at least one link layer intermediate driver prior to being provided to the lower link layer device driver. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
partitioning said link layer device driver into said at least one link layer intermediate driver, the link layer intermediate having an input and output interface compatible with said abstract interface and said lower link layer device driver having an input interface compatible with said abstract interface and an output interface for operatively coupling with said first physical device; and
providing operative interconnection from said operating system to said first physical device by providing operative interconnection from said operating system to said lower link layer device driver via said at least one link layer intermediate driver coupled to said lower link layer device driver via said abstract interface.
-
-
13. The method for facilitating the transfer of the data as recited in claim 12, wherein said specific act of providing operative interconnection comprises the following specific acts:
-
storing driver interconnection information of said operative interconnection of said at least one link layer intermediate driver and said lower link layer device driver; and
referencing said driver interconnection information of said operative interconnection to establish an order of said at least one link layer intermediate driver and said lower link layer device driver.
-
-
14. The method for facilitating the transfer of the data as recited in claim 12 wherein said specific act of providing operative interconnection further comprises a specific act of providing operative interconnection of said at least one link layer intermediate driver with a second physical device driver operably coupled to a second physical device.
-
15. The method for facilitating the transfer of the data as recited in claim 14, further comprising a specific act of selectively switching from said first physical device driver to said second physical device driver when said operating system detects a fault condition with said first physical device.
-
16. The method for facilitating the transfer of the data as recited in claim 12, wherein said specific act of partitioning comprises the following specific acts:
-
partitioning said link layer device driver into at least a first and a second link layer intermediate driver having a first and second input and a first and second output interface compatible with said abstract interface;
providing a third link layer intermediate driver having a third input interface compatible with said abstract interface and an output interface for operatively coupling with said first physical device; and
said third link layer intermediate driver multiplexing said first and second outputs of said first and second intermediate drivers coupled to said third input of said third link layer intermediate driver via said abstract interface.
-
-
17. The method for facilitating the transfer of the data as recited in claim 16, wherein said specific act of partitioning said first link layer device driver into at least a first and a second intermediate driver further comprises a specific act of presenting to said operating system at least two virtual interfaces to said first physical device.
-
18. The method for facilitating the transfer of the data as recited in claim 17 wherein said specific act of presenting further comprises a specific act of providing aggregated bandwidth to said operating system via said at least two virtual interfaces.
-
19. A computer-readable medium for use in a computer operating system capable of transferring a data packet along a data flow path from a transport layer driver to a network, the computer-readable medium containing computer-executable instructions for implementing a method for facilitating the transfer of the data packet from the transport layer driver to the network via a partitioned link layer device driver that includes at least one link layer intermediate driver and a lower link layer device driver, the partitioning of the link layer device driver allowing for the functionality of the link layer device driver to be adjusted by replacing a component of the link layer device driver rather than reconstructing the entire link layer device driver, said computer-readable medium having computer-executable instructions for performing the following specific acts:
-
providing an abstract interface to convey said data packet from said transport layer driver to said lower link layer device driver via said at least one link layer intermediate driver; and
configuring said abstract interface to receive the data packet from the transport layer driver and provide the data packet to the at least one link layer intermediate driver for further processing, the abstract interface further configured to receive the processed data packet from the at least one link layer intermediate driver, the abstract interface then providing the processed data packet to the lower link layer device driver, wherein said at least one link layer intermediate driver is incorporated into said data flow path. - View Dependent Claims (20, 21, 22, 23, 24)
said abstract interface receiving link layer intermediate driver interconnection information upon installation of said link layer intermediate driver describing said data flow path; and
referencing said link layer intermediate driver interconnection information when determining where to convey said data through said data flow path.
-
-
23. The computer-readable medium as recited in claim 22, wherein said computer-executable instructions for receiving link layer intermediate driver interconnection information further comprise computer-executable instructions for performing a specific act of binding said link layer intermediate driver interconnection information into said abstract interface for use in said specific act of referencing.
-
24. The computer-readable medium as recited in claim 19 having computer-executable instructions for incorporating a second data flow path incorporating said link layer intermediate driver therein.
Specification