next up previous
Next: MultiNet Service Up: Implementation Previous: Implementation

MultiNet Driver

To the Windows NDIS interface we added an intermediate driver, which we refer to as the MultiNet Driver. NDIS requires the lower edge of the network protocol driver to bind to a network miniport driver[*], and the upper edge of miniport drivers to bind to a protocol driver. Therefore the MultiNet Driver comprises two components: the MultiNet Protocol Driver (MPD) that binds at the lower edge to the network card miniport driver, and the MultiNet Miniport Driver (MMD) that binds at the upper edge to the network protocols, such as TCP/IP. The modified stack is illustrated in Figure 3. The MPD exposes a virtual adapter for each network to which the wireless card is connected. The MMD maintains the state for each virtual adapter. The advantage of this architecture is that there is a different IP address for each network.

Figure 3: The modified Windows network stack
\includegraphics[width=2.5in]{graphics/implementation.eps}

The network stack sees each virtual adapter as a different wireless card interface. Ideally, each of these virtual adapters should have a distinct MAC address. Although it is possible to do this over an IEEE 802.3 (Ethernet) interface, commercially available IEEE 802.11 cards do not forward packets from another MAC address. Therefore, each virtual adapter is given the MAC address of the underlying wireless card.

The MPD manages the state of the virtual adapters. It switches the association of the underlying card across different networks, and buffers packets if the SSID of the associated network is different from the SSID of the sending virtual adapter. MPD also buffers packets on the instruction of the MultiNet Service (described later). The MPD also handles packets received by the wireless adapter. A wireless card can send and receive packets only on the currently associated network. A packet received on the wireless adapter is sent to the virtual adapter that is active at that instant. The information about the currently active virtual adapter is maintained by the MPD.

The MMD maintains the state for each virtual adapter. This includes the SSID and operational mode of the wireless network. It is also responsible for handling query and set operations meant for the underlying wireless adapter.


next up previous
Next: MultiNet Service Up: Implementation Previous: Implementation
Ranveer 2004-11-12