,
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.
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.