Four layer architecture for network device drivers
First Claim
1. A computer readable storage medium comprising executable instructions that make up a layered network device driver system configured to interface with a host computer system having an operating system, memory, and a processor, the layered network device driver system comprising:
- an operating system dependent module in the network device driver system configured to communicate in an operating system dependent format to initiate sending of transmit data and to provide received data from or to the memory associated with the host computer system, respectively;
an operating system independent module in the network device driver system configured to communicate with the operating system dependent module and perform processing on the transmit data and the received data;
a network device independent module in the network device driver system and comprising encoding that is compatible across multiple network devices, the network device independent module configured to place the transmit data in one or more transmit descriptor rings and obtain the received data from one or more receive descriptor rings that reside in the host computer system; and
a network device dependent module in the network device driver system and configured to communicate with the network device independent module and with one or more network devices and control the one or more network devices to send the transmit data from the one or more transmit descriptor rings and to receive the received data into the one or more receive descriptor rings,wherein the network device independent module is operable to selectively append the transmit or receive data with optional parameters; and
wherein the network device dependent module is operable to verify that the optional parameters comply with capabilities of the network device.
6 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a four layer architecture that includes reusable components that can be used in varied operating environments and with varied network devices. The architecture includes an operating system dependent layer, an operating system independent layer, a media independent layer, and a media dependent layer. The operating system dependent layer can vary for differing operating system. In contrast, the operating system independent layer is identical or substantially similar for differing operating systems. Similarly, the media independent layer is identical or substantially similar for different network devices (e.g., a family or group of network devices). The media dependent layer can vary according to differing and varied network devices.
23 Citations
16 Claims
-
1. A computer readable storage medium comprising executable instructions that make up a layered network device driver system configured to interface with a host computer system having an operating system, memory, and a processor, the layered network device driver system comprising:
-
an operating system dependent module in the network device driver system configured to communicate in an operating system dependent format to initiate sending of transmit data and to provide received data from or to the memory associated with the host computer system, respectively; an operating system independent module in the network device driver system configured to communicate with the operating system dependent module and perform processing on the transmit data and the received data; a network device independent module in the network device driver system and comprising encoding that is compatible across multiple network devices, the network device independent module configured to place the transmit data in one or more transmit descriptor rings and obtain the received data from one or more receive descriptor rings that reside in the host computer system; and a network device dependent module in the network device driver system and configured to communicate with the network device independent module and with one or more network devices and control the one or more network devices to send the transmit data from the one or more transmit descriptor rings and to receive the received data into the one or more receive descriptor rings, wherein the network device independent module is operable to selectively append the transmit or receive data with optional parameters; and wherein the network device dependent module is operable to verify that the optional parameters comply with capabilities of the network device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of transmitting a frame using a host computer system, the method comprising:
-
obtaining a packet to be transmitted from an operating system in the host computer system; converting the packet into an array based data structure that is independent of the operating system; converting one or more virtual memory addresses of the array based data structure that reference one or more data buffers in a host memory that store the packet into one or more physical memory addresses; identifying any logically contiguous data buffers associated with the virtual memory addresses of the array based data structure that store the packet, and replacing virtual pointers associated with the identified logically contiguous data buffers with a single physical pointer; attaching the one or more data buffers to a transmit descriptor by storing one or more physical pointers associated with the one or more buffers and control information associated with the packet in a transmit descriptor ring associated with the transmit descriptor; attaching optional information to the transmit descriptor by an operating system independent module by storing the optional information in the transmit descriptor ring; transmitting the packet by a network device by retrieving data from the one or more buffers using the one or more physical pointers within the transmit descriptor ring; and freeing the one or more data buffers for other use after transmitting the packet. - View Dependent Claims (14, 15, 16)
-
Specification